前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >趣谈深度学习核心----激活函数

趣谈深度学习核心----激活函数

作者头像
机器学习算法工程师
发布2018-03-06 13:57:22
8680
发布2018-03-06 13:57:22
举报
文章被收录于专栏:机器学习算法工程师

作者:詹晓辉

编辑:王抒伟

当你在苦扒图像处理方法得时候

他在用深度学习

当你在干瞪切片像素得时候

他在用深度学习

当你在愁思小偷是谁得时候

他在用深度学习

当你拥堵在北二环得时候

。。。

现在来扒扒深度学习网络心脏

激活函数

全篇概述:

深度学习在训练的过程中常常要用到激活函数

“说,目的是啥?”

“目的是为了让多层网络之间进行非线性变换”

“如果不用呢?”

“不用的话,多层的线性网络的表达能力与单层网络的表达能力是一样的,要不就没意思了”

TA 说:

在使用tensorflow的过程中我发现它提供了以下几个函数: sigmoid、tanh、elu、relu等。

“还等啥啊,赶紧给我讲”

听老衲给施主絮絮叨叨、

咱竹板这么一打啊,别的咱不夸,夸一夸激活函数呐!

函数一: sigmoid

分析:

从图像中我们可以看出当我们输入的数据非常小或非常大时它的值是0或者1那么它的梯度很小趋近于0。

在反向传播中,这个局部梯度会与整个代价函数关于该单元输出的梯度相乘,结果会接近为 0。此时相当于没有信号传到神经元,权重不会更新。

还有一个问题是:sigmoid的值总是为正值。

如果输入都是正值那么梯度总为正或负这会导致训练的时候呈现Z字形梯度下降。

函数二:Tanh

双曲正切tanh读作/tæntʃ/

有着对比精神,可以看到tanh函数其实是sigmoid函数的变形

同样的tanh函数也存在饱和的问题,不过tanh函数的值经过原点

并且函数值在(-1,1)之间的不同于sigmoid值总是为正值或负值

函数三:Relu

Relu(Rectified Linear Units)读 /'relju/

f(u) = max ( 0, u )

可以看到反向传播的时候梯度要么是0要么不变,所以梯度衰减很小,经过很多层也不会减弱.收敛的速度会比tanh和sigmoid快。

不过有个缺点是当x<0时 f '(x)=0 (z) (这里是导函数为零)所有负梯度到这都变成0,且这个神经元有可能再也不被激活,神经元的梯度永远都是0.

函数四:Elu

Elu函数是sigmoid和relu的结合体。

当x<0时,跟relu不一样的函数值趋近于-1,使elu能够对输入具有更强的鲁棒性

当下x>0时线性部分能够缓解梯度消失,Elu的输出均值是接近于0的,因此它的收敛会更快。

本文函数都是深度学习常用的激活函数当然还有其它的,大家可以维基百科!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习算法全栈工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档