隐藏单元
前面我们讨论了神经网络的设计选择,这在使用基于梯度的优化方法来训练的大多数参数化机器学习模型都是通用的。现在,我们研究一个前馈神经网络独有的问题:如何选择隐藏单元的类型?
首先,说明一些基本情况,目前隐藏单元的设计没有明确的指导性原则,所以使用哪种类型的单元需要实际尝试和验证。另外,隐藏单元可能并不都是在所有的输入点上都是可微的,但这并不会太影响实际使用,一个重要原因就是这些神经网络算法通常不会达到代价函数的局部最小值,而是仅仅显著地减小它的值。另外,如果代价函数在某个点不可微,但是如果具有该点的左导数或者右导数,那么就可以返回这俩中的其中一个。除非另有说明,大多数的隐藏单元都可以描述为:接受输入向量 x x x,计算仿射变换 z = W T x + b z = W^Tx + b z=WTx+b,然后使用一个逐元素的非线性函数 g ( x ) \mathcal{g}(x) g(x)。所以,大多数隐藏单元的区别仅仅在于激活函数 g ( x ) \mathcal{g}(x) g(x)的形式。
通常情况下,会选择整流线性单元,它的激活函数是 g ( z ) = max { 0 , z } \mathcal{g}(z) = \max \{ 0, z \} g(z)=max{ 0,