python 深度學(xué)習(xí)中的4種激活函數(shù)
這篇文章用來(lái)整理一下入門(mén)深度學(xué)習(xí)過(guò)程中接觸到的四種激活函數(shù),下面會(huì)從公式、代碼以及圖像三個(gè)方面介紹這幾種激活函數(shù),首先來(lái)明確一下是哪四種:
- Sigmoid函數(shù)
- Tahn函數(shù)
- ReLu函數(shù)
- SoftMax函數(shù)
激活函數(shù)的作用
下面圖像A是一個(gè)線性可分問(wèn)題,也就是說(shuō)對(duì)于兩類點(diǎn)(藍(lán)點(diǎn)和綠點(diǎn)),你通過(guò)一條直線就可以實(shí)現(xiàn)完全分類。

當(dāng)然圖像A是最理想、也是最簡(jiǎn)單的一種二分類問(wèn)題,但是現(xiàn)實(shí)中往往存在一些非常復(fù)雜的線性不可分問(wèn)題,比如圖像B,你是找不到任何一條直線可以將圖像B中藍(lán)點(diǎn)和綠點(diǎn)完全分開(kāi)的,你必須圈出一個(gè)封閉曲線。
而激活函數(shù)就是幫助"繪制"這個(gè)封閉曲線的非線性函數(shù),有了激活函數(shù)的幫助,很多算法的處理能力會(huì)得到加強(qiáng),也可以處理線性不可分問(wèn)題。
Sigmoid函數(shù)
Sigmoid函數(shù)曾在介紹邏輯回歸時(shí)提起過(guò),它的數(shù)學(xué)表達(dá)式為:

其中 e 為納皮爾常數(shù),其值為2.7182... 它的圖像如下:

可以觀察出圖像的一些特點(diǎn):
- 曲線的值域?yàn)?0,1)
- 當(dāng)x = 0時(shí),Sigmoid函數(shù)值為0.5
- 隨著 x 不斷增大,Sigmoid函數(shù)值無(wú)限趨近于1
- 隨著 x 不斷減小,Sigmoid函數(shù)值無(wú)限趨近于0
對(duì)于梯度下降法而言,信息的更新很大程度上都取決于梯度,而Sigmoid函數(shù)一個(gè)很明顯的缺點(diǎn)就是當(dāng)函數(shù)值特別靠近0或1這兩端時(shí),因?yàn)樗那€已經(jīng)近乎平緩,所以此時(shí)的梯度幾乎為0,這樣非常不利于權(quán)重的更新,從而就會(huì)導(dǎo)致模型不收斂。
Sigmoid函數(shù)的代碼如下:
import numpy as np def tanh(x): return (exp(x)-exp(-x))/(exp(x)+exp(-x))
Tanh函數(shù)
Tanh函數(shù)是雙曲正切函數(shù),它的的數(shù)學(xué)表達(dá)式為:

Tanh函數(shù)和Sigmoid函數(shù)非常相近,這點(diǎn)從圖像上可以很好的體現(xiàn):

這兩個(gè)函數(shù)相同的是,當(dāng)輸入的 x 值很大或者很小時(shí),對(duì)應(yīng)函數(shù)輸出的 y 值近乎相等,同樣的缺點(diǎn)也是梯度特別小,非常不利于權(quán)重的更新;不同的是Tanh函數(shù)的值域?yàn)?-1,1),并且當(dāng) x = 0 時(shí),輸出的函數(shù)值為0。
Tanh函數(shù)的代碼如下:
import numpy as np def tanh(x): return (exp(x)-exp(-x))/(exp(x)+exp(-x))
ReLu函數(shù)
ReLu是線性整流函數(shù),又稱為修正性線性單元,它的函數(shù)的數(shù)學(xué)表達(dá)式為

Tanh是一個(gè)分段函數(shù),它的圖像如下:

圖像很容易理解,若輸入的 x 值小于0,則輸出為也為0;若輸入的 x 值大于0,則直接輸出 x 值,需要注意的是ReLu函數(shù)在x = 0 處不連續(xù)(不可導(dǎo)),但同樣也可以作為激活函數(shù)。
與Sigmoid函數(shù)和Tanh函數(shù)相比,ReLu函數(shù)一個(gè)很明顯的優(yōu)點(diǎn)就是在應(yīng)用梯度下降法是收斂較快,當(dāng)輸入值為整數(shù)時(shí),不會(huì)出現(xiàn)梯度飽和的問(wèn)題,因?yàn)榇笥?的部分是一個(gè)線性關(guān)系,這個(gè)優(yōu)點(diǎn)讓ReLu成為目前應(yīng)用較廣的激活函數(shù)。
ReLu函數(shù)的代碼如下:
import numpy as np def relu(x): return np.maximum(0,x)
SoftMax函數(shù)
分類問(wèn)題可以分為二分類問(wèn)題和多分類問(wèn)題,Sigmoid函數(shù)比較適合二分類問(wèn)題,而SoftMax函數(shù)更加適合多分類問(wèn)題。
SoftMax函數(shù)的數(shù)學(xué)表達(dá)式為:

其中Vi表示分類器的輸出,i表示類別索引,總的類別個(gè)數(shù)為C,Si表示當(dāng)前元素的指數(shù)與所有元素指數(shù)和的比值。概括來(lái)說(shuō),SoftMax函數(shù)將多分類的輸出值按比例轉(zhuǎn)化為相對(duì)概率,使輸出更容易理解和比較。
為了防止SoftMax函數(shù)計(jì)算時(shí)出現(xiàn)上溢出或者下溢出的問(wèn)題,通常會(huì)提前對(duì) V 做一些數(shù)值處理,即每個(gè) V 減去 V 中的最大值,假設(shè)D=max(V),SoftMax函數(shù)數(shù)學(xué)表達(dá)式更改為:

因?yàn)镾oftMax函數(shù)計(jì)算的是概率,所以無(wú)法用圖像進(jìn)行展示,SoftMax函數(shù)的代碼如下:
import numpy as np def softmax(x): D = np.max(x) exp_x = np.exp(x-D) return exp_x / np.sum(exp_x)
以上就是python 深度學(xué)習(xí)中的4種激活函數(shù)的詳細(xì)內(nèi)容,更多關(guān)于python 激活函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- pytorch/transformers?最后一層不加激活函數(shù)的原因分析
- python人工智能tensorflow常用激活函數(shù)Activation?Functions
- YOLO v4常見(jiàn)的非線性激活函數(shù)詳解
- 使用keras實(shí)現(xiàn)非線性回歸(兩種加激活函數(shù)的方式)
- Keras 中Leaky ReLU等高級(jí)激活函數(shù)的用法
- tensorflow自定義激活函數(shù)實(shí)例
- pytorch方法測(cè)試——激活函數(shù)(ReLU)詳解
- 詳解Python中常用的激活函數(shù)(Sigmoid、Tanh、ReLU等)
相關(guān)文章
python3 sorted 如何實(shí)現(xiàn)自定義排序標(biāo)準(zhǔn)
這篇文章主要介紹了python3 sorted 如何實(shí)現(xiàn)自定義排序標(biāo)準(zhǔn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
PyTorch加載自己的數(shù)據(jù)集實(shí)例詳解
這篇文章主要介紹了PyTorch加載自己的數(shù)據(jù)集,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
python教程十行代碼教你語(yǔ)音轉(zhuǎn)文字QQ微信聊天
QQ上面發(fā)的語(yǔ)音消息是可以直接文字識(shí)別的,但是微信為什么沒(méi)有呢?是因?yàn)榧夹g(shù)太難實(shí)現(xiàn)嗎?這個(gè)很簡(jiǎn)單??!今天給大家介紹一下語(yǔ)音轉(zhuǎn)文字的原理2021-09-09
一文教會(huì)你用nginx+uwsgi部署自己的django項(xiàng)目
uWSGI是一個(gè)Web服務(wù)器,它實(shí)現(xiàn)了WSGI協(xié)議、uwsgi、http等協(xié)議,下面這篇文章主要給大家介紹了關(guān)于用nginx+uwsgi部署自己的django項(xiàng)目的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Python讀取圖片屬性信息的實(shí)現(xiàn)方法
這篇文章介紹了利用Python讀取圖片屬性信息的方法,讀取的內(nèi)容包括GPS 信息、圖片分辨率、圖片像素、設(shè)備商、拍攝設(shè)備等,有需要的朋友們可以參考借鑒。2016-09-09
解決PIP安裝第三方庫(kù)報(bào)錯(cuò)SSL: CERTIFICATE_VERIFY_FAILED問(wèn)題
這篇文章主要介紹了解決PIP安裝第三方庫(kù)報(bào)錯(cuò)SSL: CERTIFICATE_VERIFY_FAILED問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01

