【AI实战】快速掌握TensorFlow(三):激励函数

到如今咱们已经了解了TensorFlow的特色和基本操做(见文章:快速掌握TensorFlow(一)),以及TensorFlow计算图、会话的操做(见文章:快速掌握TensorFlow(二)),接下来咱们将继续学习掌握TensorFlow。python

本文主要是学习掌握TensorFlow的激励函数算法

一、什么是激励函数
激励函数是全部神经网络算法的必备神器,经过加入激励函数可实现张量计算的非线性化,从而提高神经网络模型的泛化能力。
直接构建神经网络的输入与输出是一个线性关系,以下图
 
经过在神经网络中加入非线性激励函数后,神经网络具备非线性处理的能力,可以实现对非线性数据的处理,以下图
 
通俗地讲,激励函数的做用就是将多个线性输入转换为非线性的关系。若是不使用激励函数,神经网络的每层都只是作线性变换,即便是多层输入叠加后也仍是线性变换。经过使用激励函数引入非线性因素后,使神经网络的表示能力更强了。微信

经常使用的激励函数主要有:ReLU、ReLU六、sigmoid、tanh、softsign、ELU等。
若是想要更加详细地了解激励函数,请见文章:深度学习中经常使用的激励函数网络

二、怎样使用激励函数
在TensorFlow中使用激励函数很是方便,激励函数位于神经网络库中(tensorflow.nn),下面介绍使用方法。
(0)建立一个会话,调用默认计算图分布式

import tensorflow as tf
sess = tf.Session()

(1)ReLU函数
ReLU(Rectifier linear unit,整流线性单元)是神经网络中最经常使用的激励函数,函数以下:
 
在TensorFlow中的调用方法以下:函数

df=tf.nn.relu([-5., 0., 5., 10.])
print(sess.run(df))

输出结果为:
[0.    0.    5.    10.]oop

(2)ReLU6函数
引入ReLU6主要是为了抵消ReLU函数的线性增加部分,在ReLU的基础上再加上min,函数以下:
 
在TensorFlow中的调用方法以下:学习

df=tf.nn.relu6([-5., 0., 5., 10.])
print(sess.run(df))

输出结果为:
[0.    0.    5.    6.]大数据

(3)Leaky ReLU函数
引入Leaky ReLU主要是为了不梯度消失,当神经元处于非激活状态时,容许一个非0的梯度存在,这样不会出现梯度消失,收敛速度快。函数以下:
 
在TensorFlow中的调用方法以下:人工智能

df=tf.nn.leaky_relu([-3., 0., 5.])
print(sess.run(df))

输出结果为:
[-0.3    0.    5.]

(4)sigmoid函数
sigmoid函数是神经网络中最经常使用的激励函数,它也被称为逻辑函数,它在深度学习的训练过程当中会致使梯度消失,所以在深度学习中不怎么使用。函数以下:

在TensorFlow中的调用方法以下:

df=tf.nn.sigmoid([-1., 0., 1.])
print(sess.run(df))

输出结果为:
[0.26894143    0.5    0.7310586]

(5)tanh函数
tanh函数便是双曲正切函数,tanh与sigmoid函数类似,但tanh的取值范围是0到1,sigmoid函数取值范围是-1到1。函数以下:
 
在TensorFlow中的调用方法以下:

df=tf.nn.tanh([-1., 0., 1.])
print(sess.run(df))

输出结果为:
[-0.76159418    0.    0.76159418]

(6)ELU函数
ELU在正值区间的值为x自己,而在负值区间,ELU在输入取较小值时具备软饱和的特性,提高了对噪声的鲁棒性,函数以下:
 
在TensorFlow中的调用方法以下:

df=tf.nn.elu([-1., 0., 1.])
print(sess.run(df))

输出结果为:
[-0.63212055    0.    1.]

(7)softsign函数
softsign函数是符号函数的连续估计,定义以下:
 
在TensorFlow中的调用方法以下:

df=tf.nn.softsign([-1., 0., 1.])
print(sess.run(df))

输出结果为:
[-0.5    0.    0.5]

(8)softplus函数
softplus是ReLU激励函数的平滑版,定义以下:
 
在TensorFlow中的调用方法以下:

df=tf.nn.softplus([-1., 0., 1.])
print(sess.run(df))

输出结果为:
[0.31326166    0.69314718    1.31326163]

至此,咱们已经了解了激励函数的做用,以及经常使用的激励函数原理和在TensorFlow中调用的方法。

接下来的“快速掌握TensorFlow”系列文章,还会有更多讲解TensorFlow的精彩内容,敬请期待。

 

欢迎关注本人的微信公众号“大数据与人工智能Lab”(BigdataAILab),获取更多信息

 

推荐相关阅读