国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【深度學習】2-1 神經(jīng)網(wǎng)絡(luò) - 激活函數(shù)

這篇具有很好參考價值的文章主要介紹了【深度學習】2-1 神經(jīng)網(wǎng)絡(luò) - 激活函數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

激活函數(shù)

將輸入信號的總和轉(zhuǎn)換為輸出信號,一般稱為激活函數(shù)(activation function)。激活函數(shù)作用在于決定如何來激活輸入信號的總和。
對激活函數(shù),一般要求:

  1. 非線性:為提高模型的學習能力,如果是線性,那么再多層都相當于只有兩層效果。
  2. 可微性:有時可以弱化,在一些點存在偏導即可。
  3. 單調(diào)性:保證模型簡單。

激活函數(shù)在神經(jīng)網(wǎng)絡(luò)中的作用有很多,主要作用是給神經(jīng)網(wǎng)絡(luò)提供非線性建模能力。如果沒有激活函數(shù),那么再多層的神經(jīng)網(wǎng)絡(luò)也只能處理線性可分問題。

神經(jīng)網(wǎng)絡(luò)使用的激活函數(shù):
(記住激活函數(shù)的表達式和對應(yīng)的圖形)

sigmoid函數(shù)
優(yōu)點在于輸出映射在(0,1)內(nèi),單調(diào)連續(xù),適合用作輸出層,求導容易;缺點是具有軟飽和性,一旦輸入數(shù)據(jù)落入飽和區(qū),一階導數(shù)變得接近0,就可能產(chǎn)生梯度消失問題。

公式
【深度學習】2-1 神經(jīng)網(wǎng)絡(luò) - 激活函數(shù)
在python中實現(xiàn)sigmoid函數(shù)

def sigmoid(x):
	return 1 / (1+ np.exp(-x))

這里 np.exp(-x)對應(yīng)exp(-x),要注意的是參數(shù)x為NumPy數(shù)組,結(jié)果也能正確計算,sigmoid的運算會在NumPy數(shù)組的各個元素間進行

函數(shù)圖形
【深度學習】2-1 神經(jīng)網(wǎng)絡(luò) - 激活函數(shù)

階躍函數(shù)
階躍函數(shù)的定義當輸人超過0時,輸出1否則輸出0。
實現(xiàn)如下:

def step_function(x):
    return np.array(x > 0, dtype=int)

tip: 對NumPy數(shù)組進行不等號運算后,數(shù)組的各個元素都會進行不等號原酸生成一個布爾型數(shù)組。然后將數(shù)組y的元素類型從布爾型轉(zhuǎn)換為int型

函數(shù)圖形
【深度學習】2-1 神經(jīng)網(wǎng)絡(luò) - 激活函數(shù)

sigmoid函數(shù)和階躍函數(shù)的比較

  1. “平滑性”的不同:階躍函數(shù)只能返回0或1,sigmoid函數(shù)可以返回0.71、0.80等實數(shù)
  2. 兩個函數(shù)具有相同的形狀,兩者的結(jié)構(gòu)均是“輸入小時,輸出接近0(為0),隨著輸人增大,輸出向1靠近(變成1)。
  3. 兩者均為非線性函數(shù)

要注意的是:神經(jīng)網(wǎng)絡(luò)的激活函數(shù)必須使用非線性函數(shù)。因為使用線性函數(shù)的話,加深神經(jīng)網(wǎng)絡(luò)的層數(shù)就沒有意義了。也就是常說的斷線性。
線性函數(shù)的問題在于,不管如何加深層數(shù),總是存在與之等效的“無隱藏層的神經(jīng)網(wǎng)絡(luò)”。例如:這里我們考慮把線性函數(shù)h(z)=c作為激活函數(shù),把y(z)=h(h(h(z)))的運算對應(yīng)3層神經(jīng)網(wǎng)絡(luò)·。這個運算會進行y(z)=c x c x c x X的乘法運算,但是同樣的處理可以由y(z)=az(注意a=c3)這一次乘法運算(即沒有隱藏層的神經(jīng)網(wǎng)絡(luò))來表示。換言之,用線性函數(shù)無法發(fā)揮疊加層的作用

ReLU函數(shù)
relu函數(shù)是目前最受歡迎的激活函數(shù),在x<0時,硬飽和,x>0時,導數(shù)為1,所以在x>0時保持梯度不衰減,從而可以緩解梯度消失問題,能更快收斂,并提供神經(jīng)網(wǎng)絡(luò)的稀疏表達能力。但隨著訓練的進行,部分輸入會落入硬飽和區(qū),導致對應(yīng)的權(quán)重無法更新,稱為“神經(jīng)元死亡”
ReLU函數(shù)在輸人大于0時,直接輸出該值;在輸入小于等于0時,輸出0
ReLU函數(shù)的實現(xiàn)如下:

def relu(x):
	return np,maximum(0,x)

函數(shù)圖形
【深度學習】2-1 神經(jīng)網(wǎng)絡(luò) - 激活函數(shù)

tanh
tanh激活函數(shù)同樣具有軟飽和性,輸出以0為中心,收斂速度比tanh激活函數(shù)同樣具有軟飽和性,輸出以0為中心,收斂速度比sigmoid快,但是也存在梯度消失問題
tanh函數(shù)公式如下:
【深度學習】2-1 神經(jīng)網(wǎng)絡(luò) - 激活函數(shù)
在python的實現(xiàn)如下:

def tanh(x):
    return np.tanh(x)

圖形如下:
【深度學習】2-1 神經(jīng)網(wǎng)絡(luò) - 激活函數(shù)
在搭建神經(jīng)網(wǎng)絡(luò)時,如何選擇激活函數(shù)?
如果搭建的神經(jīng)網(wǎng)絡(luò)層數(shù)不多,選擇sigmoid、tanh、relu、softmax都可以;
如果搭建的網(wǎng)絡(luò)層次比較多,那就需要小心,選擇不當就可導致梯度消失問題。此時一般不宜選擇sigmoid、tanh激活函數(shù),因它們的導數(shù)都小于1,尤其是sigmoid的導數(shù)在[0,1/4]之間,多層疊加后,根據(jù)微積分鏈式法則,隨著層數(shù)增多,導數(shù)或偏導將指數(shù)級變小。所以層數(shù)較多的激活函數(shù)需要考慮其導數(shù)不宜小于1,當然導數(shù)也不能大于1,大于1將導致梯度爆炸,導數(shù)為1最好,激活函數(shù)relu正好滿足這個條件。所以,搭建比較深的神經(jīng)網(wǎng)絡(luò)時,一般使用relu激活函數(shù),雖然一般神經(jīng)網(wǎng)絡(luò)也可使用。此外,激活函數(shù)softmax由于Σσi(Z)=1,常用于多分類神經(jīng)網(wǎng)絡(luò)輸出層

補充
飽和,軟飽和,硬飽和的概念文章來源地址http://www.zghlxwxcb.cn/news/detail-487993.html

  1. 飽和
    當x趨近于正無窮,h(x)趨近于0,稱之為右飽和。
    當n趨近于負無窮,h(x)趨近于0,稱之為左飽和。
    當一個函數(shù)既滿足左飽和又滿足右飽和的時候就稱之為飽和。
  2. 硬飽和
    對于任意的x,如果存在常數(shù)c,當x>c時,恒有h(x)=0,則稱其為右硬飽和。
    如果對于任意的x,如果存在常數(shù)c,當x<c時,恒有h(x)=0,則稱其為左硬飽和。
    既滿足左硬飽和又滿足右硬飽和的我們稱這種函數(shù)為硬飽和。
  3. 軟飽和
    對于任意的x,如果存在常數(shù)c,當x>c時,恒有h(x)趨近于0,則稱其為右軟飽和。
    如果對于任意的x,如果存在常數(shù)c,當x<c時,恒有h(x) 趨近于0,則稱其為左軟飽和。
    既滿足左軟飽和又滿足右軟飽和的我們稱這種函數(shù)為軟飽和。

到了這里,關(guān)于【深度學習】2-1 神經(jīng)網(wǎng)絡(luò) - 激活函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包