神经网络之一 激活函数

激活函数运行时激活神经网络中的某一部分神经元,将激活信息向后转入下一层的神经网络。神经网络之所以能够解决非线性问题,本质上就是激活函数加入了非线性因素,弥补了线性模型的表达力,把激活的神经元的特征通过函数保留并映射到下一层。因为神经网络的数学基础是处处可微,所以选取的激活函数要保证数据的输入与输出也是可微的。激活函数不会更改输入数据的维度。

tensorflow常见的激活函数:

1,sigmoid,优点在于输出映射在(0,1)之间,单调连续,非常适合用作输出层,并且求导比较容易。但是也有缺点,因为软饱和性,一旦输入落入饱和区,变化的趋势很容易接近0,很容易产生梯度消失。其输出不是以0为中心。

2,tanh函数,tanh函数的输出映射在(-1,1)之间。也具有软饱和性,但是是以0为中心的。同时收敛速度比sigmoid快。但是缺点和sigmoid相同。容易出现梯度消失。

神经网络之一 激活函数_第1张图片

3,relu函数,是目前最受欢迎的激活函数。softplus可以看作ReLU的平滑版本。

神经网络之一 激活函数_第2张图片

 

其他不常用的激活函数就不介绍了。

 

总结:

当输入数据特征相差明显时,用tanh的效果更好,且在循环过程会不断扩大特征效果并显示出来。当特征不明显的时候,sigmoid效果比较好。同时,用sigmoid和tanh作为激活函数时,需要对输入进行规范化,否则激活后的值都进入平坦区,会丧失原有数据的特征

你可能感兴趣的:(机器学习)