這裡不對這VGGNet網絡進行詳細的原理闡述,隻是卷積網絡的由來以及網絡結構和網絡參數進行叙述,然後通過tensorflow進行代碼實作,參看《tensorflow實戰》。
1.VGG網絡叙述
獲得2014年ILSVRC比賽分類項目的亞軍,top-5錯誤率7.3%,19層神經網絡。VGGNet探索了其深度與性能的關系,通過反複堆疊3*3的卷積層和2*2的max pooling層,建構了16~19層深的卷積神經網絡,相比之前的state-of-the-art錯誤率下降明顯,且拓展性很強,遷移到其他圖像資料集的泛化性很好,經常用來提出圖像特征。如圖1所示為VGGNet的結構,從A到E每層網絡逐漸加深,前面卷積部分雖然深,但是參數量少,不過計算量大,運作時間長,其中存在的1*1的卷積層的意義在于線性變換,輸入通道數和輸出通道數不變,沒有發生降維。VGGNet擁有5段卷積,每段有2~3個卷積層,同時每段會連接配接一個最大池化層來縮小圖檔尺寸,每段内的卷積核數量不一樣,越靠後卷積數量越多:64->128->256->512->512。兩個3*3的卷積層串聯相當于一個5*5的卷積層,三個3*3的卷積層串聯相當于一個7*7的,但是減少了參數量,增加了非線性變換,使得CNN的學習能力更強。

圖1 VGGNet的ABCDE結構
VGGNet訓練的時候有一些技巧,先訓練前面淺層A,作為後面深層BCDE網絡的初始化參數,收斂更快。在訓練中,應用了multi-sale做圖像增強,增加資料量,減防止過拟合。在預測時,VGGNet采用multi-sale的方法将圖像scale到一個尺寸q,并将圖檔輸入卷積網絡計算。
作者對比各級網絡總結出:
①LRN層作用不大
②越深的網絡效果越好
③1*1的卷積也是有效的,但是沒有3*3的卷積好,大一些的卷積核可以學習更大的空間特征。
2.VGGNet網絡tensorflow實作
啦啦啦~後續待進啦啦啦~