Maxout介绍
Maxout网络可以理解为单个神经元的扩展,主要是扩展单个神经元里面的激活函数。Maxout是将激活函数变成一个网络选择器,原理就是将多个神经元并列地放在一起,从它们的输出结果中找到最大的那个,代表对特征响应最敏感,然后取这个神经元的结束参与后面的运算。
下图是单个神经元和Maxout网络的区别:
Maxout的公式可以理解为:
这个的做法就是相当于同时使用多个神经元放在一起, 哪个有效果就用哪个。 所以这样的网络会有更好的拟合效果。
Maxout网络实现MNIST分类
Maxout网络的构建方法:通过reduce_max函数对多个神经元的输出来计算Max值,将Max值当作输入按照神经元正反传播方向进行计算
1 | from tensorflow.examples.tutorials.mnist import input_data |
Maxout的拟合功能很强大,但是也会有节点过多,参数过多,训练过慢的缺点。