首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

快速掌握TensorFlow(三):激励函数

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

1、什么是激励函数

激励函数是所有神经网络算法的必备神器,通过加入激励函数可实现张量计算的非线性化,从而提升神经网络模型的泛化能力。

直接构建神经网络的输入与输出是一个线性关系,如下图

通过在神经网络中加入非线性激励函数后,神经网络具有非线性处理的能力,能够实现对非线性数据的处理,如下图

通俗地讲,激励函数的作用就是将多个线性输入转换为非线性的关系。如果不使用激励函数,神经网络的每层都只是做线性变换,即使是多层输入叠加后也还是线性变换。通过使用激励函数引入非线性因素后,使神经网络的表示能力更强了。

常用的激励函数主要有:ReLU、ReLU6、sigmoid、tanh、softsign、ELU等。

2、怎样使用激励函数

在TensorFlow中使用激励函数非常方便,激励函数位于神经网络库中(tensorflow.nn),下面介绍使用方法。

(0)创建一个会话,调用默认计算图

import tensorflow as tf

sess = tf.Session()

(1)ReLU函数

ReLU(Rectifier linear unit,整流线性单元)是神经网络中最常用的激励函数,函数如下:

在TensorFlow中的调用方法如下:

输出结果为:

[0. 0. 5. 10.]

(2)ReLU6函数

引入ReLU6主要是为了抵消ReLU函数的线性增长部分,在ReLU的基础上再加上min,函数如下:

在TensorFlow中的调用方法如下:

输出结果为:

[0. 0. 5. 6.]

(3)Leaky ReLU函数

引入Leaky ReLU主要是为了避免梯度消失,当神经元处于非激活状态时,允许一个非0的梯度存在,这样不会出现梯度消失,收敛速度快。函数如下:

在TensorFlow中的调用方法如下:

输出结果为:

[-0.3 0. 5.]

(4)sigmoid函数

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

在TensorFlow中的调用方法如下:

输出结果为:

(5)tanh函数

tanh函数即是双曲正切函数,tanh与sigmoid函数相似,但tanh的取值范围是0到1,sigmoid函数取值范围是-1到1。函数如下:

在TensorFlow中的调用方法如下:

输出结果为:

(6)ELU函数

ELU在正值区间的值为x本身,而在负值区间,ELU在输入取较小值时具有软饱和的特性,提升了对噪声的鲁棒性,函数如下:

在TensorFlow中的调用方法如下:

输出结果为:

(7)softsign函数

softsign函数是符号函数的连续估计,定义如下:

在TensorFlow中的调用方法如下:

输出结果为:

[-0.5 0. 0.5]

(8)softplus函数

softplus是ReLU激励函数的平滑版,定义如下:

在TensorFlow中的调用方法如下:

输出结果为:

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

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

获取代码

想要阅读本案例的代码,请关注本公众号,然后回复“代码”关键字即可获取代码。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180830G1YKJH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券