
上QQ阅读APP看书,第一时间看更新
3.3.4 反馈神经网络原理的激活函数
现在回到反馈神经网络的函数:

对于此公式中的、
以及所需要计算的目标
已经做了较详尽的解释,对
则没有介绍。
回到前面生物神经元的图示中,传递进来的电信号通过神经元进行传递,由于神经元的突触强弱是有一定敏感度的,也就是只会对超过一定范围的信号进行反馈,即:这个电信号必须大于某个阈值,神经元才会被激活以引起后续的传递。
在训练模型中同样需要设置神经元的阈值,即神经元被激活的频率用于传递相应的信息,模型中这种能够确定是否当前神经元节点的函数被称为“激活函数”,如图3.22所示。

图3.22 激活函数示意图
激活函数代表了生物神经元中接收到的信号强度,目前应用范围较广的sigmoid函数。因为其在运行过程中只接受一个值,输出也是一个经过公式计算后的值,且其输出值为0~1之间。

其图形如图3.23所示。

图3.23 sigmoid激活函数图
其倒函数的求法较为简单,即:

换一种表示方式为:

sigmoid输入一个实值的数,之后将其压缩到0~1之间。较大值的负数被映射成0,大的正数被映射成1。
顺便说一句,sigmoid函数在神经网络模型中占据了很长一段时间的统治地位,但是目前已经不常使用,主要原因是其非常容易区域饱和,当输入开始非常大或者非常小的时候,其区域零会造成梯度传播过程中产生接近于0的传播梯度。这样在后续的传播时,会造成梯度消散的现象,因此并不适合现代的神经网络模型使用。
除此之外,近年来涌现出大量新的激活函数模型,例如Maxout、Tanh和ReLU,这些都是为了解决传统的sigmoid模型在更深程度上的神经网络所产生的各种不良影响。sigmoid函数的具体实现请读者参考相关资料自行完成。