總結斯坦福2015李飛飛教授以及Andrej Karpathy教授的上課的slides中關於CNN的一些內容
一:神經網絡實驗的基本策略:
1.對輸入數據進行預處理:
2.網絡結構和數據集設置:
(1)-隨機初始化weights爲一些比較小的數(fan-in,fan-out),bias設置爲0
(2)-利用好cv集,可以在少量epoch的結果下選擇最好的params,然後進行更多的epoch
3.分析實驗結果:
(1)-對 loss curve 進行分析:
(2)-對accuracy 進行分析:
(3)-對weight updates / weight的比值進行分析:
(4)-可視化隱含層單元:
(5)-dropout(Regularization)的使用:
隨機的將一些 neuron設置爲0,在使用的時候注意train的時候和predict的時候的區別(train的時候進行drop,predict的時候不進行drop):
(6)-學習率等相關設置:
一般用寫好的庫就行了,如adagrad等等
二:卷積網絡ConVNet:
1.activations:
ConVNet中的activations是一個三維的立方體,例如:對於一個32*32*3的RGB圖片,對應的activation的規格就是32widt*32height*3depth
2.local connectivity 局部連接:
(1)-局部連接是ConVNet一個很重要的思想,使用局部連接,減少了卷積層需要訓練的params:
(2)-舉個栗子:
(3)-術語上:fenture map個數=filter個數
3.padding:
增加nolinearities的數量,同時也可以保持map的大小:
4.pooling:
一般是2*2的maxpool:
5.ConVNet的設置:
三:Visualizing and Understanding ConVNet:
1.t-SNE visualization:
下圖是mnist數據集通過ConVNet後壓縮成二維向量後的點圖:
2.將最後的pooling層的特徵,重構成圖片:
3.將中間層的特徵,重構成圖片:
4.對於不可識別的圖片,ConVNet有時竟然會有很高的置信度:
5.depth is important:
改變FC層的大小,對結果並沒有多大的提升;而通過改變卷積層depth的大小(其實就是filter的數量),則對結果有較大的影響,並且:more depth = better improvement。
normalization對結果也沒有很大的影響