Maxout Networks及實現原理

maxout:http://arxiv.org/pdf/1302.4389v4.pdf
maxout出現在ICML2013上,作者Goodfellow(GAN的發明者)將maxout和dropout結合後,在MNIST, CIFAR-10, CIFAR-100, SVHN這4個資料上都取得了stat-of-the-art的識別率(大概就是最先進最好的意思吧?)。

MAXOUT

論文中證明Maxout可以擬合任何凸函式,是一個通用的函式擬合器。

如下圖二維函式(ReLU函式、V型函式、二次型函式)的擬合,
通過構造多個仿射變換來對其進行逼近,對分段函式每段取最大。

這裡寫圖片描述

具體原理如下圖:
輸入層兩維,隱層四維,輸出一維。
這裡寫圖片描述

對於一般卷積網路,直接得到h=conv(wx b)

maxout,如下圖中間又加一層(有的叫隱隱層…)五個神經元,
過程相當於

1 先conv(wx b)得到五個z值,構成5層的featuremap
2 隨後,再對以最大池化步長(max pooling stride)為5
進行maxpooling。

再一般化:
輸入/特徵圖尺寸:

(minibatch_size, num_input_channels,
image_width, image_height)

filters :

(num_filters, num_input_channels, 
filter_width, filter_height)

output shape(stride=1)

(minibatch_size, num_filters, 
image_width - filter_width   1,
image_height - filter_height   1)

在 num_filters 維度使用max-pooling(max-pooling stride=5):

(minibatch_size, num_filters / 5,
image_width - filter_width   1, 
image_height - filter_height   1)

reference

http://blog.csdn.net/zhufenghao/article/details/52527047
https://github.com/benanne/kaggle-galaxies/issues/2