文章出處

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缺乏理論支持的感覺。。

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


文章列表


不含病毒。www.avast.com
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()