日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

22个激活函数,ReLU、RReLU、LeakyReLU、PReLU、Sofplus、ELU、CELU、SELU、GELU、ReLU6、Sigmoid、Tanh、Softsign、Hardtanh等

發(fā)布時(shí)間:2024/9/27 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 22个激活函数,ReLU、RReLU、LeakyReLU、PReLU、Sofplus、ELU、CELU、SELU、GELU、ReLU6、Sigmoid、Tanh、Softsign、Hardtanh等 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)自:https://www.pianshen.com/article/33331174884/

1.22.Linear常用激活函數(shù)
1.22.1.ReLU torch.nn.ReLU()
1.22.2.RReLU torch.nn.RReLU()
1.22.3.LeakyReLU torch.nn.LeakyReLU()
1.22.4.PReLU torch.nn.PReLU()
1.22.5.Sofplus torch.nn.Softplus()
1.22.6.ELU torch.nn.ELU()
1.22.7.CELU torch.nn.CELU()
1.22.8.SELU torch.nn.SELU()
1.22.9.GELU torch.nn.GELU()
1.22.10.ReLU6 torch.nn.ReLU6()
1.22.11.Sigmoid torch.nn.Sigmoid()
1.22.12.Tanh torch.nn.Tanh()
1.22.13.Softsign torch.nn.Softsign()
1.22.14.Hardtanh torch.nn.Hardtanh()
1.22.15.Threshold torch.nn.Threshold()
1.22.16.Tanhshrink torch.nn.Tanhshrink()
1.22.17.Softshrink torch.nn.Softshrink()
1.22.18.Hardshrink torch.nn.Hardshrink()
1.22.19.LogSigmoid torch.nn.LogSigmoid()
1.22.20.Softmin torch.nn.Softmin()
1.22.21.Softmax torch.nn.Softmax()
1.22.22.LogSoftmax torch.nn.LogSoftmax()

1.22.Linear常用激活函數(shù)

1.22.1.ReLU torch.nn.ReLU()


ReLU的函數(shù)圖示如下:

1.22.2.RReLU torch.nn.RReLU()

ReLU有很多變種, RReLU是Random ReLU的意思,定義如下:

對(duì)RReLU而言, a是一個(gè)在給定范圍內(nèi)的隨機(jī)變量(訓(xùn)練), 在推理時(shí)保持不變。同LeakyReLU不同的是,RReLU的a是可以learnable的參數(shù),而LeakyReLU的a是固定的。

1.22.3.LeakyReLU torch.nn.LeakyReLU()



這里a是固定值,LeakyReLU的目的是為了避免激活函數(shù)不處理負(fù)值(小于0的部分梯度為0),通過使用negative slope,其使得網(wǎng)絡(luò)可以在傳遞負(fù)值部分的梯度,讓網(wǎng)絡(luò)可以學(xué)習(xí)更多的信息,在一些應(yīng)用中確實(shí)有較大的益處。

1.22.4.PReLU torch.nn.PReLU()


不同于RReLU的a可以是隨機(jī)的,PReLU中的a就是一個(gè)learnable的參數(shù)。
需要注意的是:上述激活函數(shù)(即ReLU、LeakyReLU、PReLU)是尺度不變(scale-invariant)的。

1.22.5.Sofplus torch.nn.Softplus()

Softplus作為損失函數(shù)在StyleGAN1和2中都得到了使用,下面分別是其表達(dá)式和圖解。

Softplus 是ReLU的光滑近似,可以有效的對(duì)輸出都為正值的網(wǎng)絡(luò)進(jìn)行約束。
隨著β的增加,Softplus與ReLU越來越接近。

1.22.6.ELU torch.nn.ELU()



ELU不同于ReLU的點(diǎn)是,它可以輸出小于0的值,使得系統(tǒng)的平均輸出為0。因此,ELU會(huì)使得模型收斂的更加快速,其變種(CELU , SELU)只是不同參數(shù)組合ELU。

1.22.7.CELU torch.nn.CELU()

跟ELU相比,CELU是將ELU中的exp(x)變?yōu)閑xp(x/a)

1.22.8.SELU torch.nn.SELU()

跟ELU相比,SELU是將ELU乘上了一個(gè)scala變量。

1.22.9.GELU torch.nn.GELU()

其中(x)Φ(x)是高斯分布的累積分布函數(shù)(Cumulative Distribution Function for Gaussian Distribution)。

1.22.10.ReLU6 torch.nn.ReLU6()



ReLU6是在ReLU的基礎(chǔ)上,限制正值的上限6. one-stage的目標(biāo)檢測(cè)網(wǎng)絡(luò)SSD中用這個(gè)損失函數(shù)。

1.22.11.Sigmoid torch.nn.Sigmoid()

Sigmoid是將數(shù)據(jù)限制在0到1之間。而且,由于Sigmoid的最大的梯度為0.25,隨著使用sigmoid的層越來越多,網(wǎng)絡(luò)就變得很難收斂。

因此,對(duì)深度學(xué)習(xí),ReLU及其變種被廣泛使用避免收斂困難的問題。

1.22.12.Tanh torch.nn.Tanh()

Tanh就是雙曲正切,其輸出的數(shù)值范圍為-1到1. 其計(jì)算可以由三角函數(shù)計(jì)算,也可以由如下的表達(dá)式來得出:


Tanh除了居中(-1到1)外,基本上與Sigmoid相同。這個(gè)函數(shù)的輸出的均值大約為0。因此,模型收斂速度更快。注意,如果每個(gè)輸入變量的平均值接近于0,那么收斂速度通常會(huì)更快,原理同Batch Norm。

1.22.13.Softsign torch.nn.Softsign()



同Sigmoid有點(diǎn)類似,但是它比Sigmoid達(dá)到漸進(jìn)線(asymptot n. [數(shù)] 漸近線)的速度更慢,有效的緩解了梯度消失的問題(gradient vanishing problem (to some extent).)。

1.22.14.Hardtanh torch.nn.Hardtanh()

如下圖所示,Hardtanh就是1個(gè)線性分段函數(shù)[-1, 1],但是用戶可以調(diào)整下限min_val和上限max_val,使其范圍擴(kuò)大/縮小。


當(dāng)權(quán)值保持在較小的范圍內(nèi)時(shí),Hardtanh的工作效果出奇的好。

1.22.15.Threshold torch.nn.Threshold()

這種Threshold的方式現(xiàn)在很少使用,因?yàn)榫W(wǎng)絡(luò)將不能傳播梯度回來。這也是在60年代和70年代阻止人們使用反向傳播的原因,因?yàn)楫?dāng)時(shí)的科研人員主要使用的是Binary的神經(jīng)元,即輸出只有0和1,脈沖信號(hào)。

1.22.16.Tanhshrink torch.nn.Tanhshrink()



除了稀疏編碼外,很少使用它來計(jì)算潛在變量(latent variable)的值。

1.22.17.Softshrink torch.nn.Softshrink()



這種方式目前也不怎么常用,其目的是通過設(shè)置λ,將靠近0的值直接強(qiáng)制歸0,由于這種方式對(duì)小于0的部分沒有約束,所以效果不太好。

1.22.18.Hardshrink torch.nn.Hardshrink()



同Softshrink類似,除了稀疏編碼以外,很少被使用。

1.22.19.LogSigmoid torch.nn.LogSigmoid()

LogSigmoid是在Sigmoid基礎(chǔ)上,wrap了一個(gè)對(duì)數(shù)函數(shù)。


這種方式用作損失函數(shù)比較多

1.22.20.Softmin torch.nn.Softmin()

將數(shù)字變成概率分布,類似Softmax。

1.22.21.Softmax torch.nn.Softmax()

1.22.22.LogSoftmax torch.nn.LogSoftmax()


同LogSigmoid類似,LogSoftmax用作損失函數(shù)比較多

總結(jié)

以上是生活随笔為你收集整理的22个激活函数,ReLU、RReLU、LeakyReLU、PReLU、Sofplus、ELU、CELU、SELU、GELU、ReLU6、Sigmoid、Tanh、Softsign、Hardtanh等的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。