PyTorch 激活函数图形汇总

Sigmoid

torch.nn.Sigmoid

公式

图形

优点:

  1. 用于二元分类的激活函数。

缺点:

  1. 梯度消失:当输入 x>5 或 x < -5 时,变化太缓慢,导数接近0,根据后向传递的数学依据是微积分求导的链式法则,当前导数需要之前各层导数的乘积,几个比较小的数相乘,导数结果很接近0,从而无法完成深层网络的训练。
  2. Sigmoid的输出不是0均值的:这会导致后层的神经元的输入是非0均值的信号,这会对梯度产生影响。以 f=sigmoid(wx+b)为例, 假设输入均为正数(或负数),那么对w的导数总是正数(或负数),这样在反向传播过程中要么都往正方向更新,要么都往负方向更新,导致有一种捆绑效果,使得收敛缓慢。
  3. 幂运算相对耗时。

Tanh

torch.nn.Tanh

公式

图形

优点:

  1. Sigmoid的变种,改善的是tanh函数将输出值映射到了-1到1之间,因此它是0均值的了。

缺点:

  1. 同样存在梯度消失和幂运算的问题。

Softsign

torch.nn.Softsign

公式

图片

优点:

  1. Tanh的变种,解决了 幂运算问题。

缺点:

  1. 还存在梯度消失问题,但梯度消失的区间变宽了,适当调整输入数据区间,还是可以获得可观的梯度。

ReLU

torch.nn.ReLU(inplace=False)
ReLU(x)=max(0,x)

图片

优点:

  1. 收敛速度比 sigmoid 和 tanh 快;(梯度不会饱和,解决了梯度消失问题)
  2. 计算复杂度低,不需要进行指数运算

缺点:

  1. 输出不是0均值的;
  2. Dead ReLU Problem(神经元坏死现象):某些神经元可能永远不会被激活,导致相应参数不会被更新(在负数部分,梯度为0)。产生这种现象的两个原因:参数初始化问题;learning rate太高导致在训练过程中参数更新太大。解决办法:采用Xavier初始化方法;以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法。
  3. ReLu不会对数据做幅度压缩,所以数据的幅度会随着模型层数的增加不断扩张。

LeakyReLU

torch.nn.LeakyReLU(negative_slope=0.01, inplace=False)

公式

negative_slope 调整 x<0 部分的斜率

negative_slope=0.01(默认)


图片

negative_slope=2.7


图片

优点:

  1. Relu变种,处理了负值的情况,并解决Relu神经元坏死。

缺点:

  1. 不会对数据做幅度压缩

PReLU

torch.nn.PReLU(num_parameters=1, init=0.25)

公式

其中a 是一个可学习的参数,当不带参数调用时,即nn.PReLU(),在所有的输入通道上使用同一个a,当带参数调用时,即nn.PReLU(nChannels),在每一个通道上学习一个单独的a。
注意:当为了获得好的performance学习一个a时,不要使用weight decay。
num_parameters:要学习的a的个数,默认1
init:a的初始值,默认0.25
图形和LeakyReLU 类似
init=0.25(默认)
图片

init=2
图片

ELU

torch.nn.ELU(alpha=1.0, inplace=False)
ELU(x)=max(0,x)+min(0,α∗(exp(x)−1))

alpha 调整 x<0 的部分

alpha=1(默认)


图片

alpha=3


图片

优点:

  1. ReLU变种,解决Relu神经元坏死,均值为0的输出、而且处处一阶可导

缺点:

  1. 幂运算问题消耗比ReLU

CELU

torch.nn.CELU(alpha=1.0, inplace=False)
CELU(x)=max(0,x)+min(0,α∗(exp(x/α)−1))

ELU变种,相对于ELU转折处更平滑

alpha=1 时和ELUalpha=1 一致
alpha=3

图片

SELU

torch.nn.SELU(inplace=False)
SELU(x)=scale∗(max(0,x)+min(0,α∗(exp(x)−1)))
α=1.6732632423543772848170429916717
scale=1.0507009873554804934193349852946

ELU变种

图片

GELU

torch.nn.GELU
GELU(x)=x∗Φ(x)
Φ(x)是高斯分布的累积分布函数

ELU变种,输出不是0均值的

图片

Softplus

torch.nn.Softplus(beta=1, threshold=20)

公式

ReLU变种,SoftPlusReLU函数的平滑近似

beta=1, threshold=20(默认)


图片

beta=.5, threshold=20


图片

ReLU6

torch.nn.ReLU6(inplace=False)
ReLU6(x)=min(max(0,x),6)

ReLU变种,和ReLU相比在x==6的位置有转折

图片

RReLU

torch.nn.RReLU(lower=0.125, upper=0.3333333333333333, inplace=False)

公式

ReLU变种,lower,upper 分别是2个斜率 对应 x<0阴影的两个斜边,也就是负值的斜率在训练中是随机的,这个值在测试环节就会固定下来

lower,upper默认


图片

lower=0.3, upper=3


图片

Threshold

torch.nn.Threshold(threshold, value, inplace=False)

ReLU变种,通过参数调整处理了负值的情况

图片

threshold=0, value=0 和 relu一致

图片

threshold=-2, value=-2


图片

threshold=0, value=-2,threshold != value 时会出现有间断


图片

Hardshrink

torch.nnHardshrink(lambd=0.5)

图片

lambd 调整中间=0 的长度

lambd=0.5(默认)


图片

lambd=2


图片

Softshrink

torch.nn.Softshrink(lambd=0.5)

图片

相对于Hardshrink没有跳跃

lambd=0.5(默认)


图片

lambd=2


图片

Tanhshrink

torch.nn.Tanhshrink
Tanhshrink(x)=x−Tanh(x)

Softshrink转折处有弧度

图片

Hardtanh

torch.nn.Hardtanh(min_val=-1.0, max_val=1.0, inplace=False)

图片

min_val=-1.0, max_val=1.0 调整中间 y=x

min_val=-1.0, max_val=1.0(默认)


图片

min_val=-3.0, max_val=3.0


图片

LogSigmoid

torch.nn.LogSigmoid()

图片

图片

Softmin

图片

对n维输入张量运用Softmin函数,将张量每个的元素缩放到(0,1)区间且最后一维和为1

图片

Softmax

图片

对n维输入张量运用Softmax函数,将张量每个的元素缩放到(0,1)区间且最后一维和为1

图片

Softmax2d

运用到输入 4D 的 tensor, 将张量每行的元素缩放到(0,1)区间

LogSoftmax

图片

对 Softmax 求 log

图片

参考:

Non-linear activations (weighted sum, nonlinearity)
Pytorch激活函数及优缺点比较
https://www.jianshu.com/p/68bd249327ce
激活函数ReLU、Leaky ReLU、PReLU和RReLU

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