激活函数 激活函数 构建神经网络中非常重要的一个环节就是选择合适的激活函数(Activation Function),激活函数是为了增加神经网络模型的非线性,也可以看做从数据空间到最终表达空间的一种映射。全连接层只是对数据做仿射变换(affine transformation),而多个仿射变换的叠加仍然是一个仿射变换。解决问题的一个方法是引入非线性变换,例如对隐藏变量使用按元素运算的非线性函数进行变换,然后再作为下一个全连接层的输入。 激活函数对比 仅就sigmod与tahn相比时,在大部分情况下我们应该优先使用tahn函数;除了在最终的输出层,因为输出层我们需要得到的是0~1范围内的概率表示。譬如在上面介绍的浅层神经网络中,我们就可以使用sigmod作为隐层的激活函数,而使用tahn作为输出层的激活函数。 不过sigmod与tahn同样都存在在极大值或者极小值处梯度较小、收敛缓慢的问题。并且采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大;而采用ReLU(rectified linear unit)激活函数,整个过程的计算量节省很多。此外,ReLU会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。 Links 从ReLU到GELU,一文概览神经网络的激活函数 一文概览深度学习中的激活函数(入门篇)