Deep Learning -- Activation Function

原文站点:https://senitco.github.io/2017/09/05/deep-learning-activation-function/

  神经网络的激活函数(activation function)通过引入非线性因素,使得网络可以逼近任何非线性函数,提高网络模型的表达能力,更好地解决复杂问题。

Overview

  激活函数通常具有以下性质:
- 非线性:使用非线性激活函数的多层神经网络可以逼近所有函数
- 可微性:对于常见的优化方法——梯度下降法,可微性是必要的
- 单调性:单调激活函数能够保证单层网络是凸函数
- 输出范围:激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显著;当输出值的范围无界时,模型训练会更加高效,不过这种情况下一般需要更小的学习率(learning rate),以保证收敛

Sigmoid

  Sigmoid的数学公式为 f(x)=11+ex ,将输入映射到区间(0, 1),函数曲线如下图所示:


sigmoid.jpeg

Sigmoid函数曾被广泛使用,但现在使用较少,主要是存在以下缺点:
- 函数饱和造成梯度消失(Sigmoids saturate and kill gradients):神经元的激活值在趋近0或1时会饱和,在这些区域梯度值几乎为0,而且梯度值非0的输入范围非常有限。在反向传播时,此处局部梯度值将与损失函数关于该神经元输出的梯度相乘,如果局部梯度非常小,那么相乘的结果也会趋近于0,造成梯度消失,使得前面网络的权值参数无法更新。为了防止饱和,初始化权重不易过大,否则大多数神经元将会饱和,导致网络难以学习。
- Sigmoid输出不是0均值(Sigmoid outputs are not zero-centered):这一性质会导致后面网络层得到的输入数据不是零中心的,影响梯度下降的运作。因为如果输入神经元的数据总是正数(比如在 f=wTx+b 中每个元素都 x>0 ),那么关于 w 的梯度在反向传播的过程中,要么全部是正数,要么全部是负数(具体依整个表达式f而定)。这将会导致梯度下降权重更新时出现z字型的下降。然而,如果是按batch去训练,那么每个batch可能得到不同的信号,整个批量的梯度加起来后,对于权重的最终更新将会有不同的正负,在一定程度上减轻了这个问题。

此外,Sigmoid函数涉及到指数运算,增加了计算量。

tanh

  双曲正切函数的数学表达式为 f(x)=1e2x1+e2x=2Sigmoid(2x)1 ,函数曲线如下图所示,输出值的范围为(-1, 1)


tanh.jpeg

tanh函数同样存在饱和和梯度消失问题,但输出是0均值的,因此在一定程度上,性能略优于Sigmoid。

Rectified Linear Units(ReLU)

  ReLU应用较为广泛,其数学表达式为 f(x)=max(0,x) ,函数曲线如左下图所示


relu_alexplot.jpg

ReLU激活函数主要有如下优缺点:
- (+)相比于Sigmoid和tanh,ReLU对于随机梯度下降(SGD)的收敛有显著的加速作用(在AlexNet中,比tanh收敛快6倍)。据称这是由其(分段)线性、非饱和导致的
- (+)Sigmoid、tanh包含指数运算,耗费计算资源,而ReLU通过和阈值比较即可得到激活值,不涉及复杂运算
- (-)ReLU的缺点是在训练时神经元比较脆弱,可能会“死掉”。当一个很大的梯度反向传播经过ReLU神经元时,可能会导致权值更新过后,对任何数据都不再出现激活现象,所有流过该神经元的梯度都将变为0。也就是说,ReLU单元在训练中将不可逆转的死亡,导致数据多样性的丢失。实际上,如果学习率设置得过高,网络中约40%的神经元都会死掉,在整个训练集中都不会再激活。因此需要合理设置学习率。

w 是二维时,ReLU的效果如图:


relu-perf.png

leaky-ReLU、P-ReLU、R-ReLU、ELU

  leaky-ReLU是用于解决ReLU中神经元死亡的尝试方案,其数学公式如下:

f(x)={αx,x<0 x,x0

α 是一个很小的常数,可取值为0.01。有研究论文指出,leaky-ReLU激活函数的效果不错,但不是很稳定。Kaiming He等人在2015年发布的论文Delving Deep into Rectifiers中介绍了一种新方法Parametric ReLU,把负区间上的斜率 α 当做每个神经元中的一个参数来训练,然而该激活函数在在不同任务中表现的效果也没有特别清晰。在另外一个版本Randomized ReLU中

yji={ajixji,xji<0 xji,xji0

在训练过程中, aji 是从一个高斯分布 U(l,u) 中随机选取的;在测试阶段是固定的,将训练过程中的所有 aji 取平均值,测试阶段激活函数为 yji=xji(l+u)/2 。此外,还有一个ELU版本,公式定义如下(式中 a>0 ),相关内容可参考文献ELU

f(x)={a(ex1),x<0 x,x0


elu.jpg

Maxout

  Maxout源于大神Goodfellow在2013年发表的一篇论文Maxout Network,可以将其看作网络中的激活函数层。假设网络某一层的输入特征向量为 x=(x1,x2,...,xd)Rd ,Maxout隐层神经元的计算公式如下:

hj(x)=maxj[1,k]zij

zij=xTW...ij+bij

式中, WRd×m×k,bRm×k ,是需要学习的参数, k 是Maxout层所需要的参数。对于传统的MLP算法,从第l层到第 l+1 层的某个神经元,其输入为 x(l+1)i=w(l+1)iy(l)+bl+1i ,对第 l 层每个神经元,原本只需要学习一组参数,引入了Maxout后,需要训练k组,并从中选取最大的输入值作为该神经元的激活值,相当于激活函数是一个分段线性函数。因此,Maxout可以说是ReLU和Leaky-ReLU的一般化归纳。Maxout具备ReLU的优点(线性、非饱和),而没有其缺点(神经元死亡)。Maxout在MLP网络和卷积网络中均可以使用,而且其参数是可学习的,激活函数并不固定。Maxout的本质就是一个线性分段函数,可以拟合任意的凸函数(“隐隐含层”节点数k足够大时),如下图所示。和其他激活函数相比,Maxout存在参数激增的现象(k倍)。


maxout.jpg

论文中给出了相关定理:对于任意的一个连续分段线性函数 g(v) ,可以找到两个凸的分段线性函数 h1(v)h2(v) ,使得这两个凸函数的差值为 g(v)


piecewise linear approximation.jpg

Summary

  通常来说,在一个网络中很少使用多种激活函数。如果使用ReLU,需要合理设置学习率,避免出现过多死亡神经元,也可以使用leaky-ReLU或者Maxout来解决该问题。

reference

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHPvod Studio(简称pv)是一款免费开源,基于PHP Mysql开发的视频点播系统,系统拥有众多的优秀功能和特性,在社区成员的积极参与下,在易用性、扩展性和性能方面不断优化和改进,使得PHPvod可以在极为繁忙的服务器环境下快速稳定运行,切实节约网站成本。强大的交互能力使PHPvod能够充分调动会员参与,快速扩充能容,帮助网站迅速发展。 PHPvod视频点播系统 2.6 for php5.3.x utf-8 系统改进列表:2014-01-27 1、修正所有已知的BUG及系统高危漏洞. 2、优化监听器模块 3、新增文档模块及文档调用标签 4、优化RSS模块 5、新增播放地址预处理接口(pv_edit_urlinfo) 6、其它页面细节调整 特点: Phpvod从创立之初即以提高产品效率为突破口,随着编译模板,数据缓存等技术的应用,和坚固的数据结构及最少化数据库查询设计,使得PHPvod 可以在极为繁忙的服务器环境下快速稳定运行,切实节约网站成本。 支持用户前台注册,并允许设置多种积分模式及相应的奖惩规则。系统会根据会员组提升方案中的公式计算会员总积分。同时也可以自定义用户组名称、升级所需积分以及相应权限,使不同用户所属不同的用户组,从而拥有不同的权限。 如果具备相应权限,用户可以于前台发布与上传影片,提交评论等操作,管理员后台进行审核(也可以不审核直接显示),从根本上避免网络资源的同质化,从而解决搜索引擎不收录网页等问题,保持网站的持久繁荣。 影片栏目支持无限级分类,并可以单独设置各栏目的访问权限,比如:只允许会员访问、为栏目添加密码、设置允许访问的最低积分,以及按用户组访问等。同时也支持自定义栏目模板文件,使不同栏目具有不同风格。 授权版本支持与UCenter深度整合,共享会员数据,除支持各应用同步登录、登出,数据资料同步之外,还支持事件推送与共享及多应用之间的积分转换功能。真正做到一处登录,全站通行。 采集插件允许自定义采集规则,轻松实现网络资源的采集获取。并支持断点采集、同名影片自动追加播放组、自动下载海报、一键更新连载影片、html标签过滤、批量替换未知栏目与地区等功能。相对于传统资源库模式,具有采集灵活、数据更新及时等特点。 插件扩展十分灵活简单,上传后简单配置即可使用。插件扩展不需要改动任何程序代码,绿色高效。在基础大框架下,插件随需使用,真正做到功能适应需求,减少累赘。通过插件机制,系统功能可以无限制扩展。 允许设置观看视频的最低积分或选择视频出售,为视频站长盈利找到突破口,免费与收费并存,平衡用户与收益的矛盾。搭配在线支付插件,让您的站点快速、方便的走上盈利道路。 系统已集成包括快播、迅播、皮皮影音在内的多种主流播放器,同时也支持用户自定义播放器代码无限扩展播放器类型,多种播放器并存并用,为用户提供多渠道、为站长提供多源头。自带联播功能,使播放功能更加人性化、个性化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值