機器學習識別圖片的基本原理

人類的視覺原理

深度學習的許多研究成果,離不開對大腦認知原理的研究,尤其是視覺原理的研究。

1981年的諾貝爾醫學獎,頒發給了David Hubel(出生于加拿大的美國神經生物學家)和TorstenWiesel,以及Roger Sperry。前兩位的主要貢獻,是“發現了視覺系統的信息處理”,可視皮層是分級的。

人類的視覺原理如下:從原始信號攝入開始(瞳孔攝入像素Pixels),接著做初步處理(大腦皮層某些細胞發現邊緣和方向),然后抽象(大腦判定,眼前的物體的形狀,是圓形的),然后進一步抽象(大腦進一步判定該物體是只氣球)。下面是人腦進行人臉識別的一個示例:

圖1

對于不同的物體,人類視覺也是通過這樣逐層分級,來進行認知的:

圖2

我們可以看到,在最底層特征基本上是類似的,就是各種邊緣,越往上,越能提取出此類物體的一些特征(輪子、眼睛、軀干等),到最上層,不同的高級特征最終組合成相應的圖像,從而能夠讓人類準確的區分不同的物體。

所以我們可以很自然的想到:可以不可以模仿人類大腦的這個特點,構造多層的神經網絡,較低層的識別初級的圖像特征,若干底層特征組成更上一層特征,最終通過多個層級的組合,最終在頂層做出分類呢?答案是肯定的,這也是許多深度學習算法的靈感來源,也包括卷積神經網絡(CNN)算法。

圖像的表示

實質上,每張圖片都可以表示為由像素值組成的矩陣。

圖3

通道(channel)是一個傳統術語,指圖像的一個特定成分。標準數碼相機拍攝的照片具有三個通道:紅、綠和藍。你可以將它們想象為三個堆疊在一起的二維矩陣(每種顏色一個),每個矩陣的像素值都在0到255之間。

而灰度圖像只有一個通道,即一個代表圖像的二維矩陣。矩陣中每個像素值的范圍在0到255之間:0表示黑色,255表示白色。

圖4

卷積處理灰度圖片

如果想讓計算機搞清楚圖像上有什么物體,我們可以做的事情是檢測圖像的垂直邊緣和水平邊緣,如下圖所示:

圖5

我們可以用一個66的灰度圖像來打比方,構造一個33的矩陣,在卷積神經網絡中通常稱之為過濾器(filter),對這個6*6的圖像進行卷積運算,以左上角的-5計算為例:

31 + 00 + 1-1 + 11 + 50 + 8-1 + 21 + 70 + 2*-1 = -5

其它的以此類推,讓過濾器在圖像上逐步滑動,對整個圖像進行卷積計算得到一幅4*4的圖像。(灰色圖片是單通道顏色值)

圖6

為什么這種卷積計算可以得到圖像的邊緣,下圖0表示圖像暗色區域,10為圖像比較亮的區域,同樣用一個3*3過濾器,對圖像進行卷積,得到的圖像中間亮,兩邊暗,亮色區域就對應圖像邊緣。

圖7

通過以下的水平過濾器和垂直過濾器,可以實現圖像水平和垂直邊緣檢測。

圖8

以下列出了一些常用的過濾器,對于不同的過濾器也有著不同的爭論,在卷積神經網絡中把這些過濾器當成我們要學習的參數,卷積神經網絡訓練的目標就是去理解過濾器的參數。

圖9

卷積前填充圖片

在上部分中,通過一個33的過濾器來對66的圖像進行卷積,得到了一幅44的圖像,假設輸出圖像大小為nn與過濾器大小為f*f,輸出圖像大小則為:

圖10

這樣做卷積運算的缺點是,卷積圖像的大小會不斷縮小,另外圖像的左上角的元素只被一個輸出所使用,所以在圖像邊緣的像素在輸出中采用較少,也就意味著我們丟掉了很多圖像邊緣的信息,為了解決這兩個問題,就引入了填充(padding)操作,也就是在圖像卷積操作之前,沿著圖像邊緣用0進行圖像填充。對于3*3的過濾器,我們填充寬度為1時,就可以保證輸出圖像和輸入圖像一樣大。

圖11

填充(padding)的兩種模式:

Valid:沒有填充,輸入圖像nn,過濾器ff,輸出圖像大小為:

圖12

Same:有填充,輸出圖像和輸入圖像一樣大

卷積圖像的步長

卷積步長是指過濾器在圖像上滑動的距離,前兩部分步長都默認為1,如果卷積步長為2,卷積運算過程如下。

圖13
圖14
圖15

加入步長(stride)后卷積圖像大小的通用計算公式為:

輸入圖像:nn,過濾器:ff步長:s,填充:p

輸出圖像大小為:

圖16

??表示向下取整以輸入圖像77,過濾器33,步長為2,填充(padding)模式為沒有填充(valid)時為例,輸出圖像大小為:

圖17

卷積處理彩色圖片

以上講述的卷積都是灰度圖像的,如果想要在RGB圖像上進行卷積,過濾器的大小不再是33而是333,最后的3對應為通道數(channels),卷積生成圖像中每個像素值為333過濾器對應位置和圖像對應位置相乘累加,過濾器依次在RGB圖像上滑動,最終生成圖像大小為44。

圖18

另外一個問題是,如果我們不僅僅在圖像中檢測一種類型的特征,而是要同時檢測垂直邊緣、水平邊緣、45度邊緣等等,也就是多個過濾器的問題。如果有兩個過濾器,最終生成圖像為442的立方體,這里的2來源于我們采用了兩個過濾器。如果有10個過濾器那么輸出圖像就是4410的立方體。

圖19

單層卷積網絡

通過上一部分的講述,圖像通過兩個過濾器得到了兩個44的矩陣,在兩個矩陣上分別加入偏差b1和b2,然后對加入偏差的矩陣做非線性的修正線性激活函數(Relu)變換,得到一個新的44矩陣,這就是單層卷積網絡的完整計算過程。用公式表示:

圖20

其中輸入圖像為a[0],過濾器用w[1]表示,對圖像進行線性變化并加入偏差得到矩陣z[1],a[1]是應用修正線性激活函數(Relu)激活后的結果。

圖21

如果有10個過濾器參數個數有多少個呢? 每個過濾器都有333+1=28個參數,333為過濾器大小,1是偏差系數,10個過濾器參數個數就是28*10=280個。不論輸入圖像大小參數個數是不會發生改變的。

描述卷積神經網絡的一些符號標識:

圖22

簡單卷積網絡

輸入圖像:39393,符號表示:

圖23

第1層超參數:

圖24

第1層輸出圖像:373710,符號表示:

圖25

第2層超參數:

圖26

第2層輸出圖像:171720,符號表示:

圖27

第3層超參數:

圖28

第3層輸出圖像:7740,符號表示:

圖29

將第三層的輸出展開成1960個元素,然后將其輸出到二分類模型(logistic)或多分類模型(softmax)來決定是判斷圖片中有沒有貓,還是想識別圖像中不同的對象。

圖30

卷積神經網絡層有三種類型:
卷積層(convolution,conv)
池化層(pooling,pool)
全連接層(Fully connected,FC)

池化層網絡

最大池化(Max pooling)的思想很簡單,以下圖為例,把44的圖像分割成4個不同的區域,然后輸出每個區域的最大值,這就是最大池化所做的事情。其實這里我們選擇了22的過濾器,步長為2。在一幅真正的圖像中提取最大值可能意味著提取了某些特定特征,比如垂直邊緣、一只眼睛等等。

圖31

以下是一個過濾器大小為3*3,步長為1的池化過程,具體計算和上面相同,最大池化中輸出圖像的大小計算方式和卷積網絡中計算方法一致,如果有多個通道需要做池化操作,那么就分通道計算池化操作。

圖32

平均池化和最大池化唯一的不同是,它計算的是區域內的平均值而最大池化計算的是最大值。在日常應用使用最多的還是最大池化。

圖32

池化的超參數:步長、過濾器大小、池化類型(最大池化或平均池化)。

全連接層

在常見的卷積神經網絡的最后往往會出現一兩層全連接層,全連接一般會把卷積輸出的二維特征圖(feature map)轉化成一維(N*1)的一個向量。或者說就是一排神經元,因為這一層是每一個單元都和前一層的每一個單元相連接,所以稱之為“全連接”。

在經過數次卷積和池化之后,我們最后會先將多維的數據進行“扁平化”,也就是把7740的卷積層壓縮成長度為7740=1960的一維數組,然后再與全連接(FC)層連接,這之后就跟普通的神經網絡無異了。

圖33

假設這里每次移動的步長設置為1(步長可以自己設置),每次相乘后將像素點索引移動一位,權重矩陣與另外一組像素相乘。以此類推,直到整個像素矩陣都與權重矩陣進行了相乘運算。整個過程與卷積運算相同,組的權重與圖像矩陣之間進行卷積運算,這也是卷積神經網絡(CNN)有“卷積”一詞的原因。

圖34

全連接層之前的卷積層、池化層作用是提取特征,全連接層的作用是分類,具體是怎么分類的呢?就是用到了數學中的概率統計等算法,這里就不深入說明了。假設,我們現在的任務是去區別一張圖片是不是貓。

圖35

再假設,這個神經網絡模型已經訓練完了,全連接層已經知道貓的特征。

圖36

當我們得到以上特征,我們就可以判斷這張圖片是貓了,因為全連接層的作用主要就是實現分類(Classification),從下圖,我們可以看出紅色的神經元表示這個特征被找到了(激活了),同一層的其他神經元,要么貓的特征不明顯,要么沒找到。

圖37

當我們把這些找到的特征組合在一起,發現最符合要求的是貓,那么我們可以認為這是貓了,貓頭有下面這些特征。

圖38

于是我們下一步的任務就是把貓頭的這些特征找到,比如眼睛、耳朵。

圖39

當我們找到這些特征,神經元就被激活了(紅色圓圈),這細節特征又是怎么來的呢?就是從前面的卷積層、池化層來的。

卷積神經網絡

以下是一個完整的卷積神經網絡,用于手寫字識別,這并不是一個LeNet-5網絡,但是設計需求來自于LeNet-5。

LeNet-5卷積神經網絡模型,是Yann LeCun在1998年設計的用于手寫數字識別的卷積神經網絡,當年美國大多數銀行就是用它來識別支票上面的手寫數字的,它是早期卷積神經網絡中最有代表性的實驗系統之一。

圖40

網絡各層參數個數表:

圖41

上面的數表中,CONV表示卷積層,POOL表示池化層,FC表示全連接層。

參考內容

https://www.cnblogs.com/kex1n/p/9083024.html
https://blog.csdn.net/ice_actor/article/details/78648780
https://blog.csdn.net/m0_37407756/article/details/80904580
http://www.dataguru.cn/article-13436-1.html
http://www.lxweimin.com/p/c0215d26d20a
https://blog.csdn.net/weixin_38208741/article/details/80615580
https://www.cnblogs.com/alexcai/p/5506806.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,363評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,497評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,305評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,962評論 1 311
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,727評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,193評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,257評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,411評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,945評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,777評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,978評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,519評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,216評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,657評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,960評論 2 373

推薦閱讀更多精彩內容