通俗易懂的激活函数总结大全

激活函数在神经网络中是非常重要的。没有激活函数,神经网络跟普通的多项式运算没什么不同,无论你神经网络有多少层,输出都是输入的线性组合,都是线性计算的。引入激活函数就是为了引入非线性,强化网络的学习能力,就相当于给了它更多的选择,更多的可能性,更多的变化。

下面逐一介绍各种激活函数的特点。

sigmoid

sigmoid

公式:
导数:
它的公式我们已经非常熟悉,取值范围在(0,1),代入它的导数,可知导数的范围是(0,0.25)。这样的导数取值范围非常不好,为什么呢?因为由于神经网络反向传播的“链式传播效果”,会出现梯度消失的情况。我们来看看下面这个图。
神经网络简示图
假设这是一个5层的神经网络,如果我们要更新的值,从图中的公式可以看到,对求导是关于多层激活函数的导数的累乘,这就是梯度的“链式传播”。如果多层激活函数都是sigmoid函数的话,由于它的取值范围是(0,0.25),那么我们想想,即使多个0.25相乘,最后的结果也会是很小很小,接近于0。这就是所谓的梯度消失。那么由于梯度消失了,的更新公式的第二项就几乎为0,就更新失败了。想想,神经网络里那么多参数更新都失败了,那这个神经网络学习就会非常的慢。
此外,因为sigmod的均值为0.5而不是0,它会改变数据的原始分布。什么意思呢?就是假设原始数据是0均值的,经过一层激活函数为sigmod的神经网络后,输出数据分布均值就为0.5了,随着网络的加深,数据分布会面目全非,这不利于学习,就像你一直学蛙泳的话很快就能学会,但是一开始就让你学花式泳,会让你不知所措一样。

tanh

公式:{\sigma}(z)=\frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}导数:{\sigma}'=\frac{2}{1+e^{-2z}}-1tanh(双曲正切函数)跟sigmod十分相似,只是:
1.对sigmod做了向下平移,使本来均值0.5变为0. 解决了sigmod函数zero-centered的问题。
2.对sigmod做了拉伸,使其导数的变化也更激烈,导数取值范围为(0,1)。可以看到虽然导数取值范围更大了,但仍然有可能导致梯度消失。

Relu

relu

公式:

导数:

可以看到:
1.在relu<0时,输出为0,导数也为0,也就是说这个样本对神经网络不起作用,是“死”的。在训练过程中,第一轮可能有很多样本经过relu都是“死”的,但是神经网络能从“活”的样本中学习到东西,从而更新了神经网络的权重,神经网络变得更加了解这个样本集。那么第二轮的时候会有更多的“活”样本,“死”样本就会少了些,如此迭代,最后仍然是“死”的样本大概率也是没用的样本,该学习的学习完了,不该学习的咱们就丢了它。这相当于起了过滤噪音的作用。
当然,有可能有用的样本也被过滤了,所以我们要把学习率设置小一点,因为一旦权值更新过头了,就很多有用的样本被误判为“死”样本了。
2.在relu>0时,导数为1,在反向传播中梯度不会消失,梯度消失问题得以解决。但是会出现梯度爆炸的现象,因为这时梯度的强度完全取决于多个权值的累乘,如果这些都很大,那么最后梯度会非常大,神经网络权值更新会非常离谱。
怎么解决呢?两个办法:1.控制w的值,使其不要太大。2.控制\frac{\partial C}{\partial b_{1}}的值,使其不要太大,这就是所谓的“梯度裁剪”。(附上我的文章(Tensorflow 梯度裁剪--防止梯度爆炸))

Leaky Relu

Leaky Relu

Leaky Relu是Relu的变种,就是将z<0部分设为一个很小的梯度,而不是0。这是因为不想让太多样本“死亡”,因为你知道你的这些样本其实都是有用的,没那么多噪音,所以还是可以用于学习的。那就设一个较小的梯度吧~

PRelu

PReLU

将z<0部分设为一个可以学习的参数,使其在训练过程中进行更新,也就是说让这个“过滤器”也有智慧,不要那么死板。

RReLU

三种Relu对比

也是Relu的变种。将z<0部分设为一个在均匀分布U(a,b)中随机抽取的值。而不是固定为一个很小的值。使“过滤器”更加没那么绝对。

CRelu

CRelu是用于图像的激活函数,也是Relu的变体。就是有人发现多层的卷积网络中,网络的前部的卷积核的参数有较强的负相关性,就是比如第一层卷积网络的两个卷积核,对应的参数是互为相反数,这个是-1,那个是1。也就是说,网络的前部倾向于同时捕获正负相位的信息,但ReLU会抹掉负响应。 这造成了一部分卷积核没有起到作用。所以就有了CRelu。
CReLU的定义很简单:CReLU(x)=[ReLU(x),ReLU(−x)]。就是两边的信息都考虑。

Selu

上面不是说均值非0的激活函数会改变原始数据的分布。以上的各种Relu明显是会有这个问题的。Selu就是为了解决这个问题。

Selu
它小于0部分设了两个参数 和 ,这两个参数是证明得到的,不需要学习的。他们的值为

α = 1.6732632423543772848170429916717
λ = 1.0507009873554804934193349852946

这样设定就使z<0部分不存在死区,但也不会无限增大,它存在饱和区,负无穷时, 趋于两个参数的负乘积 - αλ。
这样的话,假设z的分布均值为0,方差为1,使用Selu后,输入的分布均值仍然会为0,方差仍然会为1。这里就不证明了,有兴趣的读者可以参考论文https://arxiv.org/abs/1706.02515

最后附上代码:Tensorflow 实现各种激活函数
对你有帮助的话点个赞呗,谢谢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容