1. 程式人生 > >深層CNN的調參經驗 | A practical theory for designing very deep convolutional neural networks

深層CNN的調參經驗 | A practical theory for designing very deep convolutional neural networks

A practical theory for designing very deep convolutional neural networks

兩個前提假設:

  • 1.對於每一個卷積層,其學習更復雜表示的能力應該被保證
  • 2.最高層的感受野應該不大於影象範圍

Why deep?

更深:只增加了線性複雜度,但是模型的學習效果卻提升了很多

模型結構

Alt text

1.feature level:怎樣加入更深的網路

本質上為帶限制的優化問題

兩個限制:
  • 1.每一層的c-value不應該過小(c-value表示的是學習複雜pattern的能力)
  • 2.最高層的感受野應該不大於影象範圍

2.classifier level

common做法:
兩層全連線加上每層dropout

效果更好:
將input feature map降取樣至small size(5*5至 8*8),然後使用兩層5*5的卷積層,最後max pooling加上dropout

3.第一個限制:capacity of learning

3.1 卷積層的作用:

composing more complex patterns from input patterns

Alt text
(a)中生成pattern AB
(b)中卷積層不能很好的學習到pattern AB和他們的關係
解決:
+ 1.使用更大的卷積層
+ 2.通過stride=2降取樣來降低響應距離

3.2 沒有降取樣的CNN,當層數變深時學習效率變低的原因:

隨著層數加深,pattern size其實在逐漸增大,有意義的空間關係也在增大,當大部分input patterns的空間關係大於卷積層的filter size,卷積層就無法學到新的複雜patterns

3.3 Measure

Alt text

3.第二個限制:necessity of learning

增加的layers是為了學習新的patterns,當感受野到達input的邊界時,無法學習到新的patterns,同時層數的加深會引起過擬合,導致效果變差。