maxout网络结构

论文原文地址https://arxiv.org/pdf/1302.4389.pdf

1.论文核心算法:利用max操作和多个网络训练的最大值来获得输出值,具体来说,假设输入\small x \in R^{d},即x为一个长度为v的向量,需要提供一个参数k,创建k个结构相同的隐藏层,同时进行计算和训练,权重\small W_{...ij}为k个一系列大小为\small R^{d \times h}的权值矩阵,偏置项为k个一系列大小为大小为\small R^h的偏置向量。

设为第j个权值矩阵中第i个隐藏单元的权重向量,为第j个权值矩阵中第i个隐藏单元的偏置值,则对于输入x,输出为\small z_i = \mathop {max} \limits _{j=1}^{k}x^TW_{ij}+b_{ij},即第i个神经元最终的输出为k个不同的隐藏层中第i个隐藏单元的最大值。

举例来说,设输入向量x维度为4,即v=4。隐藏单元个数为2,即h=2,参数k=2,即有两个不同的隐藏层,绿色为第一个MLP中的隐藏层,蓝色为第二个MLP中的隐藏层,最终该隐藏层的输出为红色单元的值。

 maxout网络结构_第1张图片

 故也可以把maxout看成一个没有固定形式的激活函数,输出是输入的非线性近似。

2.论文核心思想:

论文中提到了max和out两个部分,名字里含有max是因为最终是做max运算,而使用out则是来自于同时期极为流行的dropout算法,作者把dropout看成是不同数据集下训练的多个模型的集成学习,类似于bagging,本文的思想也基本上是集成学习,即多个隐藏层同时训练,最终得到最大的值作为最终输出。

 

你可能感兴趣的:(机器学习,人工智能)