TensorFlow学习笔记3:激励函数
激励函数的作用
激励函数的作用就是将多个线性输入转换为非线性的关系。如果不使用激励函数,神经网络的每层都只是做线性变换,即使是多层输入叠加后也还是线性变换。通过使用激励函数引入非线性因素后,使神经网络的表示能力更强了。
使用激励函数
在TensorFlow中使用激励函数非常方便,激励函数位于神经网络库中(tensorflow.nn),下面介绍使用方法。
首先先创建一个会话,使用默认计算图:1
2import tensorflow as tf
sess = tf.Session()
ReLU函数
ReLU(Rectifier linear unit,整流线性单元)是神经网络中最常用的激励函数,函数如下:调用函数
tf.nn.relu()
ReLU6函数
引入ReLU6主要是为了抵消ReLU函数的线性增长部分,在ReLU的基础上再加上min,函数如下:调用函数
tf.nn.relu6()
Leaky ReLU函数
引入Leaky ReLU主要是为了避免梯度消失,当神经元处于非激活状态时,允许一个非0的梯度存在,这样不会出现梯度消失,收敛速度快。函数如下:调用函数
tf.nn.leaky_relu()
sigmoid函数
sigmoid函数是神经网络中最常用的激励函数,它也被称为逻辑函数,它在深度学习的训练过程中会导致梯度消失,因此在深度学习中不怎么使用。函数如下:调用函数
tf.nn.sigmoid()
tanh函数
tanh函数即是双曲正切函数,tanh与sigmoid函数相似,但tanh的取值范围是0到1,sigmoid函数取值范围是-1到1。函数如下:调用函数
tf.nn.tanh()
ELU函数
ELU在正值区间的值为x本身,而在负值区间,ELU在输入取较小值时具有软饱和的特性,提升了对噪声的鲁棒性,函数如下:调用函数
tf.nn.elu()
softsign函数
softsign函数是符号函数的连续估计,定义如下:调用函数
tf.nn.softsign()
softplus函数
softplus是ReLU激励函数的平滑版,定义如下:调用函数
tf.nn.softplus()