python 深度学习中的4种激活函数


Posted in Python onSeptember 18, 2020

这篇文章用来整理一下入门深度学习过程中接触到的四种激活函数,下面会从公式、代码以及图像三个方面介绍这几种激活函数,首先来明确一下是哪四种:

  • Sigmoid函数
  • Tahn函数
  • ReLu函数
  • SoftMax函数

激活函数的作用

下面图像A是一个线性可分问题,也就是说对于两类点(蓝点和绿点),你通过一条直线就可以实现完全分类。

python 深度学习中的4种激活函数

当然图像A是最理想、也是最简单的一种二分类问题,但是现实中往往存在一些非常复杂的线性不可分问题,比如图像B,你是找不到任何一条直线可以将图像B中蓝点和绿点完全分开的,你必须圈出一个封闭曲线。

而激活函数就是帮助"绘制"这个封闭曲线的非线性函数,有了激活函数的帮助,很多算法的处理能力会得到加强,也可以处理线性不可分问题。

Sigmoid函数

Sigmoid函数曾在介绍逻辑回归时提起过,它的数学表达式为:

python 深度学习中的4种激活函数

其中 e 为纳皮尔常数,其值为2.7182... 它的图像如下:

python 深度学习中的4种激活函数

可以观察出图像的一些特点:

  • 曲线的值域为(0,1)
  • 当x = 0时,Sigmoid函数值为0.5
  • 随着 x 不断增大,Sigmoid函数值无限趋近于1
  • 随着 x 不断减小,Sigmoid函数值无限趋近于0

对于梯度下降法而言,信息的更新很大程度上都取决于梯度,而Sigmoid函数一个很明显的缺点就是当函数值特别靠近0或1这两端时,因为它的曲线已经近乎平缓,所以此时的梯度几乎为0,这样非常不利于权重的更新,从而就会导致模型不收敛。

Sigmoid函数的代码如下:

import numpy as np
def tanh(x):
 return (exp(x)-exp(-x))/(exp(x)+exp(-x))

Tanh函数

Tanh函数是双曲正切函数,它的的数学表达式为:

python 深度学习中的4种激活函数

Tanh函数和Sigmoid函数非常相近,这点从图像上可以很好的体现:

python 深度学习中的4种激活函数

这两个函数相同的是,当输入的 x 值很大或者很小时,对应函数输出的 y 值近乎相等,同样的缺点也是梯度特别小,非常不利于权重的更新;不同的是Tanh函数的值域为(-1,1),并且当 x = 0 时,输出的函数值为0。

Tanh函数的代码如下:

import numpy as np
def tanh(x):
 return (exp(x)-exp(-x))/(exp(x)+exp(-x))

ReLu函数

ReLu是线性整流函数,又称为修正性线性单元,它的函数的数学表达式为

python 深度学习中的4种激活函数

Tanh是一个分段函数,它的图像如下:

python 深度学习中的4种激活函数

图像很容易理解,若输入的 x 值小于0,则输出为也为0;若输入的 x 值大于0,则直接输出 x 值,需要注意的是ReLu函数在x = 0 处不连续(不可导),但同样也可以作为激活函数。

与Sigmoid函数和Tanh函数相比,ReLu函数一个很明显的优点就是在应用梯度下降法是收敛较快,当输入值为整数时,不会出现梯度饱和的问题,因为大于0的部分是一个线性关系,这个优点让ReLu成为目前应用较广的激活函数。

ReLu函数的代码如下:

import numpy as np
def relu(x):
 return np.maximum(0,x)

SoftMax函数

分类问题可以分为二分类问题和多分类问题,Sigmoid函数比较适合二分类问题,而SoftMax函数更加适合多分类问题。
SoftMax函数的数学表达式为:

python 深度学习中的4种激活函数

其中Vi表示分类器的输出,i表示类别索引,总的类别个数为C,Si表示当前元素的指数与所有元素指数和的比值。概括来说,SoftMax函数将多分类的输出值按比例转化为相对概率,使输出更容易理解和比较。

为了防止SoftMax函数计算时出现上溢出或者下溢出的问题,通常会提前对 V 做一些数值处理,即每个 V 减去 V 中的最大值,假设D=max(V),SoftMax函数数学表达式更改为:

python 深度学习中的4种激活函数

因为SoftMax函数计算的是概率,所以无法用图像进行展示,SoftMax函数的代码如下:

import numpy as np
def softmax(x):
 D = np.max(x)
 exp_x = np.exp(x-D)
 return exp_x / np.sum(exp_x)

以上就是python 深度学习中的4种激活函数的详细内容,更多关于python 激活函数的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
pycharm 主题theme设置调整仿sublime的方法
May 23 Python
Python 使用PIL中的resize进行缩放的实例讲解
Aug 03 Python
Python 实现中值滤波、均值滤波的方法
Jan 09 Python
对python字典过滤条件的实例详解
Jan 22 Python
详解Python基础random模块随机数的生成
Mar 23 Python
django框架模板语言使用方法详解
Jul 18 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
Jan 25 Python
如何把外网python虚拟环境迁移到内网
May 18 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
Pycharm 设置默认解释器路径和编码格式的操作
Feb 05 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 Python
python闭包与引用以及需要注意的陷阱
Sep 18 #Python
python 代码运行时间获取方式详解
Sep 18 #Python
python判断字符串以什么结尾的实例方法
Sep 18 #Python
python绘制趋势图的示例
Sep 17 #Python
Python绘制组合图的示例
Sep 18 #Python
记一次Django响应超慢的解决过程
Sep 17 #Python
Visual Studio Code搭建django项目的方法步骤
Sep 17 #Python
You might like
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
PHP 的Opcache加速的使用方法
2017/12/29 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
jquery预览图片实现鼠标放上去显示实际大小
2014/01/16 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
[51:53]完美世界DOTA2联赛决赛日 Inki vs LBZS 第二场 11.08
2020/11/10 DOTA
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
详解Python中的type和object
2018/08/15 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
python3转换code128条形码的方法
2019/04/17 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
举例讲解Python装饰器
2020/12/24 Python
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
办公室主任岗位职责
2013/11/08 职场文书
创业计划书——互联网商机
2014/01/12 职场文书
大学生创业策划书
2014/02/02 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
大学活动总结格式
2014/04/29 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python