CNN - Convolutional Neural Networks
是近些年在機(jī)器視覺(jué)領(lǐng)域很火的模型传于,最先由 Yan Lecun 提出财破。
如果想學(xué)細(xì)節(jié)可以看 Andrej Karpathy 的 cs231n 。
How does it work?
給一張圖片,每個(gè)圓負(fù)責(zé)處理圖片的一部分窝撵。
這些圓就組成了一個(gè) filter。
filter 可以識(shí)別圖片中是否存在指定的 pattern襟铭,以及在哪個(gè)區(qū)域存在碌奉。
下圖中有4個(gè)filter,每個(gè)filter的平行的點(diǎn)會(huì)負(fù)責(zé)圖片上相同的區(qū)域寒砖。
神經(jīng)元利用 convolution 的技術(shù)查找pattern赐劣,簡(jiǎn)單地理解就是用 filter 的形式去查找圖片是否具有某種 pattern。
weights 和 bias 對(duì)模型的效果起著重要的作用入撒。
把白圓圈換成神經(jīng)元隆豹,就是CNN的樣子。
Convolution層的神經(jīng)元之間沒(méi)有聯(lián)系茅逮,它們各自都只連接inputs璃赡。
同一層的神經(jīng)元用相同的 weights 和 bias,這樣同一層的神經(jīng)元就可以抓取同樣的pattern献雅,只不過(guò)是在圖片上的不同的區(qū)域碉考。
接下來(lái)是 ReLU(Rectified Linear Unit) 層和 Pooling 層,它們用來(lái)構(gòu)建由 convolution 層找到的 pattern挺身。
CNN 也用 Back propagation 訓(xùn)練侯谁,所以也有 vanishing gradient 的可能。而 ReLU 作為激活函數(shù)的話,gradients會(huì)大體保持常值的樣子墙贱,這樣就不會(huì)在關(guān)鍵的那幾層有很明顯的下降热芹。
Pooling 層是用來(lái)降維的。
經(jīng)過(guò) convolution 和 ReLU 的作用后惨撇,會(huì)有越來(lái)越復(fù)雜的形式伊脓,所以Pooling 層負(fù)責(zé)提取出最重要的 pattern,進(jìn)而提高時(shí)間空間的效率魁衙。
這三層可以提取出有用的 pattern报腔,但它們并不知道這些 pattern 是什么。
所以接著是 Fully Connected 層剖淀,它可以對(duì)數(shù)據(jù)進(jìn)行分類纯蛾。
一個(gè)典型的 Deep CNN 由若干組 Convolution-ReLU-Pooling 層組成。
但CNN也有個(gè)缺點(diǎn)纵隔,因?yàn)樗潜O(jiān)督式學(xué)習(xí)翻诉,所以需要大量的有標(biāo)簽的數(shù)據(jù)。
我是 不會(huì)停的蝸牛 Alice
85后全職主婦
喜歡人工智能巨朦,行動(dòng)派
創(chuàng)造力米丘,思考力,學(xué)習(xí)力提升修煉進(jìn)行中
歡迎您的喜歡糊啡,關(guān)注和評(píng)論拄查!