隐藏单元的选择是神经网络设计中的一个活跃的研究领域,目前尚未有明确的指导性理论原则。
通常我们都默认选择整流线性单元作为隐藏单元,但仍有一些其他类型的隐藏单元是可用的。我们尝试建立一些对每种隐藏单元的基础直觉,通常我们无法预先得知哪种隐藏单元表现最好,设计过程中需要不断的试错,用不同的隐藏单元组成网络进行训练,最后用验证集来评估其性能。
我们知道大多数参数化机器学习模型都是使用基于梯度的优化方法来训练的。而有些隐藏单元并不是在所有的输入点上都是可微的,比如,整流线性单元
在
处不可微,这似乎使得g对于基梯度的学习算法无效,但是实践中梯度下降对这些机器学习模型仍然表现足够好。部分原因是神经网络训练算法通常不会达到代价函数的剧组最小值,而是仅仅显著的减小它的值。因为我们不再期望训练能够实际到达梯度为0的点,所以代价函数的最小值对应于梯度未定义的点是可以接受的。
大多数额隐藏单元都可以描述为接受输入向量x,计算仿射变换
,然后使用一个逐元素的非线性函数
。大多数隐藏单元的区别仅仅在于激活函数
的形式。
激活函数:
优点:易于优化,其与线性单元非常类似。单元处于激活状态时,一阶导数处处为1,二阶导数几乎处处为0。相比二阶效应的激活函数,其梯度方向对学习更有用。
缺点:不能通过基于梯度的方法来学习那些使激活为0的样本。
其扩展版本确保了它们能在各个位置都接收到梯度。扩展基于当
时使用一个非零的斜率:
(1)绝对值整流:固定 。用于图像识别寻找在输入照明极性反转下不变的特征是有意义的。
(2)渗漏整流线性单元:Leaky ReLU,将 固定成一个类似0.01的小值。
(3)参数化整流线性单元:PReLU将 作为学习的对象。
单元进一步扩展了整流线性单元。其将
划分为每组具有
个值的组,而不是使用作用于每个元素的函数
。每个maxout单元则输出每组的最大元素