About Activation Function All You Need

激活函數(shù)

激活函數(shù)的意義:激活函數(shù)為層與層之間增加非線性連接谆趾,增加模型的復(fù)雜性啄踊,如果層之間沒有非線性疏遏,那么即使很深的層堆疊也等同于單個(gè)層
例如f(x)=2x+3 \quad and \quad g(x)=5x+1連接這兩個(gè)線性函數(shù)等于得到另一個(gè)線性函數(shù)f(g(x))=2(5x+1)+3=10x+1

1.Sigmoid

  • 優(yōu)缺點(diǎn):

優(yōu)點(diǎn)

  • 平滑梯度:防止輸出值產(chǎn)生跳躍
  • 輸出值約束在0-1之間:規(guī)范化每個(gè)神經(jīng)元的輸出值
  • 明確的預(yù)測:對(duì)于X大于2或小于-2的X,趨向于將Y值(預(yù)測)帶到曲線的邊緣立哑,非常接近1或0挂滓。

缺點(diǎn)

  • 梯度消失問題:只對(duì)-4 to 4之間的值敏感苦银,對(duì)于非常高或非常低的X值,預(yù)測值幾乎沒有變化,從而導(dǎo)致梯度消失幔虏。 這可能會(huì)導(dǎo)致網(wǎng)絡(luò)拒絕進(jìn)一步學(xué)習(xí)纺念,或者太慢而無法準(zhǔn)確
  • 計(jì)算代價(jià)大
  • 不以0為中心:無法對(duì)具有強(qiáng)負(fù),中性和強(qiáng)正值的輸入數(shù)據(jù)進(jìn)行建模想括。
  • 公式及梯度公式

f(x)=\sigma(x)=\frac{1}{1+e^{-x}} \\ f^{\prime}(x)=f(x)(1-f(x))

  • 函數(shù)圖與導(dǎo)數(shù)圖
image-20210308140111421.png
  • 代碼實(shí)現(xiàn)
# sigmoid 函數(shù)
import numpy as np
def sigmoid_function(x):
    z = (1/(1 + np.exp(-x)))
    return z

# sigmoid 導(dǎo)數(shù)
def sigmoid_derivative(x):
    return sigmoid(x)*(1-sigmoid(x))

2.Tanh

  • 優(yōu)缺點(diǎn):

優(yōu)點(diǎn)

  • 以0為中心:可以更輕松地對(duì)具有強(qiáng)負(fù)陷谱,中性和強(qiáng)正值的輸入數(shù)據(jù)進(jìn)行建模。
  • 平滑梯度:防止輸出值產(chǎn)生跳躍
  • 輸出值約束在-1-1之間:規(guī)范化每個(gè)神經(jīng)元的輸出值

缺點(diǎn)

  • 梯度消失問題:僅對(duì)-2 to 2之間的值敏感瑟蜈,對(duì)于非常高或非常低的X值烟逊,預(yù)測值幾乎沒有變化,從而導(dǎo)致梯度消失铺根。 這可能會(huì)導(dǎo)致網(wǎng)絡(luò)拒絕進(jìn)一步學(xué)習(xí)宪躯,或者太慢而無法準(zhǔn)確
  • 計(jì)算代價(jià)大
  • 公式及梯度公式

f(x)=\tanh (x)=\frac{\left(e^{x}-e^{-x}\right)}{\left(e^{x}+e^{-x}\right)} \\ f^{\prime}(x)=1-f(x)^{2}

  • 函數(shù)圖與導(dǎo)數(shù)圖
image-20210308141039070.png
  • 代碼實(shí)現(xiàn)
# Tanh 函數(shù)
import numpy as np
def tanh_function(x):
    z = (2/(1 + np.exp(-2*x))) -1
    return z

# Tanh 導(dǎo)數(shù)
def tanh_derivative(x):
    return 1 - (tanh_function(x))**2

3.ReLU

  • 優(yōu)缺點(diǎn):

優(yōu)點(diǎn)

  • 計(jì)算代價(jià)小:允許網(wǎng)絡(luò)更快的收斂
  • 非線性分段函數(shù):盡管它看起來像線性函數(shù)位迂,但ReLU具有微分函數(shù)并允許反向傳播

缺點(diǎn)

  • Dying ReLU問題:當(dāng)輸入接近零或?yàn)樨?fù)時(shí)访雪,函數(shù)的梯度變?yōu)榱悖W(wǎng)絡(luò)將無法執(zhí)行反向傳播掂林,也無法學(xué)習(xí)臣缀。
  • 公式及梯度公式

f(x)=\left\{\begin{array}{ll} 0 & \text { for } x \leq 0 \\ x & \text { for } x>0 \end{array} \\ f^{\prime}(x)=\left\{\begin{array}{ll} 0 & \text { for } x \leq 0 \\ 1 & \text { for } x>0 \end{array}\right.\right.

  • 函數(shù)圖與導(dǎo)數(shù)圖
image-20210308141854474.png
  • 代碼實(shí)現(xiàn)
# ReLU 函數(shù)
def relu_function(x):
    if x<0:
        return 0
    else:
        return x

# ReLU 導(dǎo)數(shù)
def relu_derivative(x):
    if x>= 0:
        return 1
    else:
        return 0

4.Leaky ReLU

  • 優(yōu)缺點(diǎn):

優(yōu)點(diǎn)

  • 防止Dying ReLU問題:ReLU的這種變化在負(fù)區(qū)域具有較小的正斜率,因此即使對(duì)于負(fù)輸入值泻帮,它也能夠進(jìn)行反向傳播
  • 計(jì)算代價(jià)懈闻恪:允許網(wǎng)絡(luò)更快的收斂
  • 非線性分段函數(shù):盡管它看起來像線性函數(shù),但ReLU具有微分函數(shù)并允許反向傳播

缺點(diǎn)

  • 結(jié)果不一致:Leaky ReLU無法為負(fù)輸入值提供一致的預(yù)測刑顺。
  • 公式及梯度公式

f(x)=\left\{\begin{array}{ll} 0.01x & \text { for } x \leq 0 \\ x & \text { for } x>0 \end{array} \\ f^{\prime}(x)=\left\{\begin{array}{ll} 0.01 & \text { for } x \leq 0 \\ 1 & \text { for } x>0 \end{array}\right.\right.

  • 函數(shù)圖與導(dǎo)數(shù)圖
image-20210308143426244.png
  • 代碼實(shí)現(xiàn)
#  Leaky ReLU函數(shù)
import numpy as np
def leaky_relu_function(x):
    if x >= 0:
        return x
    else:
        return 0.01x

# Leaky ReLU 導(dǎo)數(shù)
def leaky_relu_derivative(x):
    if x >= 0:
        return 1
    else:
        return 0.01

5.Parametric ReLU

  • 優(yōu)缺點(diǎn):

優(yōu)點(diǎn)

  • 允許學(xué)習(xí)負(fù)斜率:與Leaky ReLU不同,此函數(shù)提供函數(shù)負(fù)數(shù)部分的斜率作為參數(shù)饲常。 因此蹲堂,可以進(jìn)行反向傳播并學(xué)習(xí)最合適的α值。

缺點(diǎn)

  • 對(duì)于不同的問題可能會(huì)有不同的表現(xiàn)贝淤。
  • 公式及梯度公式

f(x)=\left\{\begin{array}{ll} \alpha x & \text { for } x \leq 0 \\ x & \text { for } x>0 \end{array} \\ f^{\prime}(x)=\left\{\begin{array}{ll} \alpha & \text { for } x \leq 0 \\ 1 & \text { for } x>0 \end{array}\right.\right.

  • 函數(shù)圖
prelu-300x262.png
  • 代碼實(shí)現(xiàn)
# Parametric 函數(shù)
def parametric_function(x, alpha):
    if x >= 0:
        return x
    else:
        return alpha*x

# Parametric 導(dǎo)數(shù)
def parametric_derivative(x, alpha):
    if x >= 0:
        return 1
    else:
        return alpha

Softmax

  • 優(yōu)缺點(diǎn):

優(yōu)點(diǎn)

  • 能夠處理多分類:其他激活函數(shù)只能處理一個(gè)類柒竞,將每個(gè)類別的輸出歸一化在0和1之間,得出輸入值屬于特定類別的概率播聪。
  • 常用于輸出神經(jīng)元:通常朽基,Softmax僅用于輸出層,用于需要將輸入分類為多個(gè)類別的神經(jīng)網(wǎng)絡(luò)离陶。
  • 公式

\sigma\left(z_{i}\right)=\frac{e^{z_{i}}}{\sum_{j=1}^{K} e^{z_{j}}}

  • 梯度公式(由于該函數(shù)的獨(dú)特性稼虎,下面重點(diǎn)講下其推導(dǎo)過程)

推導(dǎo)開始:
\begin{array}{l} define \quad S_i =\sigma\left(z_{i}\right), \quad g_{i}=e^{x_{i}} \quad and \quad h_{i}=\sum_{k=1}^{N} e^{x_{k}} \end{array}


\begin{aligned} MainFormula &: \frac{\partial S_{i}}{\partial x_{j}}=\frac{\frac{\partial g_{i}}{\partial x_{j}} h_i-\frac{\partial h_{i}}{\partial x_{j}} g_i}{[h_i]^{2}} \\ SubFormula (1) &: \frac{\partial g_{i}}{\partial x_{j}}=\left\{\begin{array}{ll} e^{x_{j}}, & \text { if } i=j \\ 0, & \text { otherwise } \end{array}\right. \\ SubFormula (2) &: \frac{\partial h_{i}}{\partial x_{j}}=\frac{\partial\left(e^{x} 1+e^{x} 2+\ldots+e^{x} N\right)}{\partial x_{j}}=e^{x_{j}} \end{aligned}


\begin{aligned} if \quad i=j:\\ \frac{\partial \frac{e^{x_{i}}}{\sum_{k=1}^{N} e^{x_{k}}}}{\partial x_{j}} &=\frac{e^{x_{j}} \left[\sum_{k=1}^{N} e^{x_{k}}\right]-e^{x_{j}} e^{x_{i}}}{\left[\sum_{k=1}^{N} e^{x_{k}}\right]^{2}} \\ &=\frac{e^{x_{j}}\left(\left[\sum_{k=1}^{N} e^{x_{k}}\right] -e^{x_{i}}\right)}{\left[\sum_{k=1}^{N} e^{x_{k}}\right]^{2}} \\ &=\frac{e^{x_{j}}}{\sum_{k=1}^{N} e^{x_{k}}} \frac{\left[\sum_{k=1}^{N} e^{x_{k}}\right]-e^{x_{i}}}{\sum_{k=1}^{N} e^{x_{k}}} \\ &=\frac{e^{x_{j}}}{\sum_{k=1}^{N} e^{x_{k}}}\left(\frac{\sum_{k=1}^{N} e^{x_{k}}}{\sum_{k=1}^{N} e^{x_{k}}}-\frac{e^{x_{i}}}{\sum_{k=1}^{N} e^{x_{k}}}\right) \\ &=\frac{e^{x_{j}}}{\sum_{k=1}^{N} e^{x_{k}}}\left(1-\frac{e^{x_{i}}}{\sum_{k=1}^{N} e^{x_{k}}}\right) \\ &=\sigma\left(x_{j}\right)\left(1-\sigma\left(x_{i}\right)\right) \\ else \quad i\ne j:\\ \frac{\partial \frac{e^{x_{i}}}{\sum_{k=1}^{N} e^{x_{k}}}}{\partial x_{j}} &=\frac{0-e^{x_{j}} e^{x_{i}}}{\left[\sum_{k=1}^{N} e^{x_{k}}\right]^{2}} \\ &=0-\frac{e^{x_{j}}}{\sum_{k=1}^{N} e^{x_{k}}} \frac{e^{x_{i}}}{\sum_{k=1}^{N} e^{x_{k}}} \\ &=0-\sigma\left(x_{j}\right) \sigma\left(x_{i}\right) \end{aligned}

為了方便進(jìn)行代碼書寫,此處可以改寫為雅克比矩陣的形式

知識(shí)補(bǔ)充: 雅克比矩陣

假如f_1, f_2, ..., f_n都是x_1, x_2, ..., x_m的函數(shù)招刨,并且相對(duì)于各個(gè)自變量的偏微分都存在霎俩,那么定義T為:
T=\frac{\partial\left(f_{1}, f_{2}, \cdots, f_{n}\right)}{\partial\left(x_{1}, x_{2}, \cdots, x_{m}\right)}=\left(\begin{array}{cccc} \frac{\partial f_{1}}{\partial x_{1}} & \frac{\partial f_{1}}{\partial x_{2}} & \cdots & \frac{\partial f_{1}}{\partial x_{m}} \\ \frac{\partial f_{2}}{\partial x_{1}} & \frac{\partial f_{2}}{\partial x_{2}} & \cdots & \frac{\partial f_{3}}{\partial x_{m}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial \hat{s}_{n}}{\partial x_{1}} & \frac{\partial f_{n}}{\partial x_{2}} & \cdots & \frac{\partial f_{n}}{\partial \tau_{m}} \end{array}\right)

\begin{aligned} \frac{\partial S}{\partial \mathbf{x}} & = \left[\begin{array}{ccc} \frac{\partial S_{1}}{\partial x_{1}} & \cdots & \frac{\partial S_{1}}{\partial x_{N}} \\ \cdots & \frac{\partial S_{i}}{\partial x_{j}} & \cdots \\ \frac{\partial S_{N}}{\partial x_{1}} & \cdots & \frac{\partial S_{N}}{\partial x_{N}} \end{array}\right] \\ \frac{\partial S}{\partial \mathbf{x}} & = \left[\begin{array}{ccc} \sigma\left(x_{1}\right)-\sigma\left(x_{1}\right) \sigma\left(x_{1}\right) & \ldots & 0-\sigma\left(x_{1}\right) \sigma\left(x_{N}\right) \\ \ldots & \sigma\left(x_{j}\right)-\sigma\left(x_{j}\right) \sigma\left(x_{i}\right) & \ldots \\ 0-\sigma\left(x_{N}\right) \sigma\left(x_{1}\right) & \ldots & \sigma\left(x_{N}\right)-\sigma\left(x_{N}\right) \sigma\left(x_{N}\right) \end{array}\right] \\ \frac{\partial S}{\partial \mathbf{x}} & = \left[\begin{array}{ccc} \sigma\left(x_{1}\right) & \ldots & 0 \\ \ldots & \sigma\left(x_{j}\right) & \ldots \\ 0 & \ldots & \sigma\left(x_{N}\right) \end{array}\right]-\left[\begin{array}{ccc} \sigma\left(x_{1}\right) \sigma\left(x_{1}\right) & \ldots & \sigma\left(x_{1}\right) \sigma\left(x_{N}\right) \\ \ldots & \sigma\left(x_{j}\right) \sigma\left(x_{i}\right) & \ldots \\ \sigma\left(x_{N}\right) \sigma\left(x_{1}\right) & \ldots & \sigma\left(x_{N}\right) \sigma\left(x_{N}\right) \end{array}\right] \\ \frac{\partial S}{\partial \mathbf{x}} & = diag(\mathbf{x}) - \sigma(\mathbf{x})\cdot\sigma(\mathbf{x^T}) \end{aligned}

  • 代碼實(shí)現(xiàn)
# softmax 函數(shù)
import numpy as np
def softmax_function(arr):
    """
    input: a array
    return: a array after computed
    """
    exps = np.exp(arr)
    sums = np.sum(exps)
    return np.divide(exps, sums)

# softmax 導(dǎo)數(shù)
def softmax_derivative(arr):
    """
    input: a array after computed by softmax
    output: n*n matrix, n = len(arr)
    """
    s = arr.reshape(-1, 1)
    return np.diagflat(s) - np.dot(s, s.T)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子打却,更是在濱河造成了極大的恐慌杉适,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柳击,死亡現(xiàn)場離奇詭異猿推,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)捌肴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門蹬叭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哭靖,你說我怎么就攤上這事具垫。” “怎么了试幽?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵筝蚕,是天一觀的道長。 經(jīng)常有香客問我铺坞,道長起宽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任济榨,我火速辦了婚禮坯沪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘擒滑。我一直安慰自己腐晾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布丐一。 她就那樣靜靜地躺著藻糖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪库车。 梳的紋絲不亂的頭發(fā)上巨柒,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音柠衍,去河邊找鬼洋满。 笑死,一個(gè)胖子當(dāng)著我的面吹牛珍坊,可吹牛的內(nèi)容都是我干的牺勾。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼阵漏,長吁一口氣:“原來是場噩夢啊……” “哼禽最!你這毒婦竟也來了腺怯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤川无,失蹤者是張志新(化名)和其女友劉穎呛占,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體懦趋,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晾虑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仅叫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帜篇。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖诫咱,靈堂內(nèi)的尸體忽然破棺而出笙隙,到底是詐尸還是另有隱情,我是刑警寧澤坎缭,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布竟痰,位于F島的核電站,受9級(jí)特大地震影響掏呼,放射性物質(zhì)發(fā)生泄漏坏快。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一憎夷、第九天 我趴在偏房一處隱蔽的房頂上張望莽鸿。 院中可真熱鬧,春花似錦拾给、人聲如沸祥得。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽级及。三九已至,卻和暖如春窄锅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背缰雇。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國打工入偷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人械哟。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓疏之,卻偏偏與公主長得像,于是被迫代替她去往敵國和親暇咆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锋爪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350