Maxout的深入理解

轉之:http://www.cnblogs.com/tornadomeet/p/3428843.html


 maxout出現在ICML2013上,作者Goodfellow將maxout和dropout結合後,號稱在MNIST, CIFAR-10, CIFAR-100, SVHN這4個數據上都取得了start-of-art的識別率。

  從論文中可以看出,maxout其實一種激發函數形式。通常情況下,如果激發函數採用sigmoid函數的話,在前向傳播過程中,隱含層節點的輸出表達式爲:






其中W一般是2維的,這裏表示取出的是第i列,下標i前的省略號表示對應第i列中的所有行。但如果是maxout激發函數,則其隱含層節點的輸出表達式爲:



這裏的W是3維的,尺寸爲d*m*k,其中d表示輸入層節點的個數,m表示隱含層節點的個數,k表示每個隱含層節點對應了k個”隱隱含層”節點,這k個”隱隱含層”節點都是線性輸出的,而maxout的每個節點就是取這k個”隱隱含層”節點輸出值中最大的那個值。因爲激發函數中有了max操作,所以整個maxout網絡也是一種非線性的變換。因此當我們看到常規結構的神經網絡時,如果它使用了maxout激發,則我們頭腦中應該自動將這個”隱隱含層”節點加入。參考個日文的maxout ppt 中的一頁ppt如下:



ppt中箭頭前後示意圖大家應該可以明白什麼是maxout激發函數了。

  maxout的擬合能力是非常強的,它可以擬合任意的的凸函數。最直觀的解釋就是任意的凸函數都可以由分段線性函數以任意精度擬合(學過高等數學應該能明白),而maxout又是取k個隱隱含層節點的最大值,這些”隱隱含層"節點也是線性的,所以在不同的取值範圍下,最大值也可以看做是分段線性的(分段的個數與k值有關)。論文中的圖1如下(它表達的意思就是可以擬合任意凸函數,當然也包括了ReLU了):





詳細代碼見博客:

http://www.cnblogs.com/tornadomeet/p/3428843.html





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章