CNN常用圖片分類網絡
-
這些圖片分類網絡之間的關系,以及他們和RCNN等網絡之間的關系,看這篇回答,說的非常好:https://www.zhihu.com/question/43370067
我稍微摘錄一點:
首先作者給的那個圖對於從整體掌握這些網絡非常有幫助:
由於從這些pretrained網絡抽出來的deep feature有良好的generalization的能力,可以應用到其他不同的CV問題,而且比傳統的hand-craft feature如SIFT,bag of word要好一大截,所以得到廣泛應用。目前大部分的high-level vision相關的問題,都是利用基於CNN的方法了。
最近出現蠻多論文,里面在benchmark上面的比較是自己方法的核心網絡換成resnet,然后去比別人基於vgg或者alexnet的方法,自然要好不少。
對於某個CV的問題,選一個優秀的核心網絡作為基礎,然后fine-tune, 已經是套路。fine-tune的原因一是訓練AlexNet等網絡需要imagenet, places等million級別的數據,一般的CV任務都沒有這么多數據。二是因為pre-trained model本身的feature已經足夠generalizable,可以立刻應用到另外一個CV任務
AlexNet - > VGG: VGG可以看成是加深版本的AlexNet. 都是conv layer + FC layer
Network in Network -> GoogLeNet: NIN利用Global average pooling去掉了FC layer, 大大減少了模型大小,本身的網絡套網絡的結構,也激發了后來的GoogLeNet里面的各種sub-network和inception結構的設計
ResNet:這個網絡跟前面幾個網絡都不同。
這里潛在的一個問題是這些CNN網絡都是在ImageNet上面1.2million數據訓練出來的,很難分析是否數據源本身會對CNN造成影響
-
VGGNet
就用一個課件來說明吧,VGGNet從原理上來看其實也不是很復雜:
-
ResNet
看這篇文章:https://blog.csdn.net/lanran2/article/details/79057994
-
LeNet
這種比較簡單的都只用圖片示意了:
來源:https://www.jianshu.com/p/58168fec534d
- 輸入尺寸是32*32像素
- 卷積層:3個
- 降采樣層:2個
- 全連接層:1個
- 輸出:10個類別(數字0-9的概率)
-
AlexNet
看這篇文章吧:https://my.oschina.net/u/876354/blog/1633143
許多tricks,例如dropout、overlapping pooling等都是在這個網絡中使用的
一幅圖來總結下: