0、
inception結構
利用網絡中的計算資源,增加網絡的寬度和深度,但保持計算量不變。
1、
本文中,首先創新點在於算法和網絡結構;
其次注意了移動端和嵌入式的場景,考慮內存和功耗,所以提出的結構並不是固定的,參數少,計算量少。
因此提出了高效的深度神經網絡結構,稱爲inception,靈感來源於Network in Network。
在該案例中,網絡的深度主要體現在兩個方面:第一是Inception module;第二是網絡的深度。
2、相關的工作
從Lenet開始,出現通過堆積的卷積網絡結構,總體趨向於增加層的數量並使用dropout解決過擬合問題。
考慮到最大池化會降低精度,我們使用相同的卷積結構代替max pooling(alexnet)
【15】使用了一系列不同尺寸的高波濾波器,類似的googlenet使用Inception,不斷的重複,組成22層的深度網絡
network in network增加1x1的卷積層,從而增加深度。在googlenet中,1x1的卷積有兩個作用,第一是減少維度,第二是增加網絡的寬度和深度。
3、動機和高層的考慮
提高神經網絡性能最直觀的方法就是增加網絡的深度和寬度,但是存在兩個缺點,第一個缺點是容易過擬合,特別是數據較少的情況下;第二個缺點是計算量的增加。
基本的解決方法是:引入稀疏連接,代替全連接甚至是卷積。具體原因兩個:第一是生物神經系統的連接是稀疏的,第二是【2】中提到,對於規模稀疏的神經網絡,可以通過分析激活值統計特性和對高度相關的輸出進行聚類。
4、結構細節
這是個Inception的細節視頻:
http://ziyubiti.github.io/imgs/googlenet/Inception%20Module.mp4
b中採用1x1卷積減少維度,從而減少3x3卷積或者5x5卷積的計算量。設置1x1,3x3,5x5卷積也是爲方便對齊,當卷積步長爲1時,設置pad爲0,1,2,卷積之後便能得到相同尺寸的feature map。
5、使用reLU,輸入224x224 0均值 RBG圖像。
值得注意的是在中間層加上分類器,這是因爲網絡中間位置的特徵有很大的區別,不同的深處增加loss防止梯度消失。
6、訓練地策略
在分佈式機器學習系統上進行訓練,利用[17]異步隨機梯度下降,0.9動量,學習率每八個週期下降4%。最後用Polyak averaging [13]來創建最後用來測試的模型。
採樣變化很大。[8]的光度扭曲有助於對付過擬合。還進行了隨機插入。
問題:
異步梯度下降
inception結構是如何實現聚集稀疏表示,實現運算?