關於深度學習的機理,優化和網路結構的一些個人觀點(二).

這篇是承接機理1,現在給出數值的小部分證據和有趣應用,順便說說本萌的深度學習中一個隱藏計劃。另外,如果最終能刷更硬的數據,獲得更加嚴謹的驗證,本萌會開發一個讀取caffe的prototxt文件,然後判斷這個網路好不好優化,預估一下性能。當然,如果都錯了,本萌只能樓下喂貓了卻殘生。

現代很多深度學習文章,不乏利用不清不楚的網路去優化另外一個不清不楚的網路,得到一個更加不清不楚的網路的演算法,大家心理覺得酷,本萌也覺得很酷,酷的給了膝蓋。但是科學上的精神很墮落,我們還是不知道為什麼,本萌即便下跪心理還是接受不了的。

猜測機理1時,本萌其實早有隱藏計劃,後面神經網路layer by layer的前向映射是否合理(前向關聯作用),貝葉斯和有監督訓練是不是可以自然融合,超深訓練是否可以作分散式訓練(後向關聯弱化是否允許延遲更新,這個好像有人在搞)?

機理1中,本萌已經針對對這些點都說了觀點。。。機理1的想法都是大計劃中的引胃菜而已。。。。前提引胃菜是對的,不對只能繼續喂貓賣萌當吉祥物去。。。調皮點花哨點民科點說點本萌早期的腦洞。

  1. 嵌套特徵映射(深度學習嘛~但不一定是「牛牛牛」結構,可以是「犇」結構)。
  2. 有監督下的貝葉斯方案,我是變態交通道路設計者,依靠路徑拓撲實現指定分布,高爾頓板(多像一個前饋網路)就是經典中將路徑轉換成指定分布的實例,你把高爾頓板路徑按一定規則屏蔽,後期就不是高斯分布了,要按啥規則形成指定分布呢?
  3. 模塊化分散式訓練(我要層解偶,可控關聯!)。

廢話完了,開始正式的討論。機理1中,本萌提出了一個網路的3個指標,有效寬度(路徑複雜度量),有效前向深度(權重關聯),有效後向深度(梯度關聯),以及三個猜想原則。

  1. 有效寬度要小同時參數要多(防止過擬)。
  2. 後向深度要小(削弱深層訓練退化問題)。
  3. 前向深度相對小(目前還不清楚這個用途,太小並不好)。

目前還在搞一個指標和原則是用來連接貝葉斯的,目前發生點問題,暫時不公布。。。

第一猜想原則:

有效寬度小,參數大的測試,保持神經元個數相同,層數相同下,黑線勝利。括弧裡面分別是有效寬度和參數數目。

不過有時候設計不好,會是寬度小,不過參數也小,就會成黑線這樣衰了:

本萌推薦一種增加參數,又不增加太多寬度的設計(當然,還有其它的),相比傳統加寬技巧能減少寬度暴增。在CNN中,每個block設計如下,當然網路深了就要加殘差了:

第二猜想原則(小型數值測試):

下圖是層與層的梯度Pearson關聯矩陣圖(取絕對值),網路共22層,去掉頭和尾,剩下20層,可以吃了,雞肉味嘎嘣脆。。。。bar的數值比較小,看起來都沒啥關聯,不過考慮到梯度雜訊太多,不太可能強。測試數據是MNIST,樣本10000,統計關聯實在跑不起大點的。結論,普通網路關聯是全地圖形的,性能會下降:

一個有趣的應用,如下圖,普通網路第5到10層的關聯似乎比較強,於是本萌專門在5-10層加殘差,其它地方保持普通連接,如下圖右所示,關聯強度下降,性能提升。本來,本萌好想將這個當成CT掃瞄病灶技術,探測網路設計的bug處呀,可惜目前數值不穩定,而且依賴數據,換了數據,病灶區就變了。。。。

還有更硬一點的測試,為了可比較,每個block是3層conv,共47層,channels設置是4-8-16型的,選擇了四種結構,除了連接拓撲不同,其它超參一模一樣。

  1. 1+123網路:每個block中第一個conv和第三個conv作和,輸出到下一個block。
  2. 12+123網路:每個block中第二個conv同第三個conv作和,輸出到下一個block。

  3. 普通的網路
  4. 殘差網路。

下圖(圖中方塊中比如第一個,1+123表示網路結構,0.0093是平均關聯,緊跟著是分類性能。),測試是在CIFAR10下,故意只用1000個樣本。1+123和12+123都沒有加identity。但是1+123結構非常類似打捷徑,但是效果就是不如真殘差好。12+123效果最差,實際跑一個完整樣本+增強的測試,這個傢伙同plain差不多(機理1中的B網路)。我們只用小樣本訓練,看關聯圖就能判斷出來後期效果。

1+123和12+123都加了identity以後,分別記成1+123+x和12+123+x,會有下圖效果,關聯強度下降(看平均),性能提升,然而比較殘差的關聯強度,還是too simple了:

第二猜想原則(存在問題):

  1. 關聯計算坑很多,數值不穩定,注意,本萌是跑一次很小的實驗,找個trick估計關聯。跑多實驗就沒意義了,還不如直接上個大的實驗看性能這種更直接。所以還不能驗證猜想正確性。
  2. 早期本萌理論猜測後向關聯越小越好,但是目前來看,數值結果不支持,部分地方大反而更好。另外,關聯依賴數據。。。而且,目前只能相對比較。。。畢竟數值絕對值沒啥可比性。
  3. 到底關聯矩陣圖是怎樣的才利於超深網路優化,稀疏?
  4. 打捷徑看起來不像是一個很好的退關聯技巧,是否有更加特別的退關聯技巧?
  5. 似乎關聯都是懟在開頭幾層,換句話說,是不是捷徑不必要全部打,開頭幾層打殘差,後面都是plain是不是更加利於優化。

第三猜想原則:

(未完待續。。。。。轉載需經過本人同意)


推薦閱讀:

一個相關濾波跟蹤的簡單教程(附實現demo)
李宏毅機器學習2016 第二十二講 循環神經網路RNN
《Web安全之機器學習入門》上市
通往無限層神經網路 (1):對於殘差網路(Residual Network)的一種理解方法,與深層網路的訓練

TAG:深度学习DeepLearning | 机器学习 | 大数据 |