我對卷積神經網絡的一點粗淺的理解


Convolutional Neural Network,卷積神經網絡,簡稱CNN,最近幾年再次流行起來。

CNN和普通的機器學習算法有什么相同,有什么不同?

簡單說,CNN=A+B,即CNN包括兩個方面的功能:

A:feature extactor 特征提取器

普通的機器學習算法,比如決策樹、隨機森林、svm、邏輯回歸/softmax等,它的輸入通常就是若干個features

而CNN的輸入,是圖片!

我們當然可以把圖像像素作為feature vector中的一個維度。但是這畢竟過於naive。往往並不怎么work。

CNN中的特征提取,是通過卷積層完成的。這里說的卷基層,包括狹義的卷積、池化(下采樣)。

個人認為,我們並不一定要把CNN中的卷積層看作傳統人工智能中的神經網絡的改進。因為真的有點勉強:傳統神經網絡的輸入就是一個個的feature vector,用作分類器或者回歸器。CNN的輸入則是圖片。

B:classifier or regressor 分類器或回歸器

CNN中的全連接層輸出層,這個其實是和傳統的神經網絡一致的:處理的輸入是feature vectors,輸出的是類別label或者連續的預測數值

總結

CNN = 特征提取(卷積層)+ 分類(全連接層)

其中特征提取是說,feature是學出來的,而不是“手工設計的”(比如SIFT,SURF,ORB,HOG,LBP,HSC等)

但是這里還有一個疑問:學出來的feature應該是唯一的嗎?怎樣的學出來的特征算是“好的特征”?我們固然可以設計不同的網絡結構,來學習出不同的特征。但是怎樣的特征才是好的特征?以及,我們能否從特征學習的過程中,得到一些規律,用於輔助手工設計特征?畢竟搞一個CNN的話,要大量數據或者微調,而且需要GPU,並且還是一個black box缺乏理論支持的感覺。。

有想法的請留言。歡迎吐槽。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM