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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.3.3 激活函数介绍

發布時間:2025/4/16 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.3.3 激活函数介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

激活函數

到目前為止,我們使用的激活函數全部都是σσ函數,然而這并不一定是最好的函數,有時其他可選的函數效果也很好,下面我們來介紹一下其他的函數。

如圖所示,我們在這里使用σσ函數作為激活函數。我們現在使用g(z(x)),作為更一般的可以使用的函數。我們這里介紹一下tanhx,是雙曲正切函數。tanhx,實際上在數學上是σσ函數經過平移之后的結果。tanhx相比于σσ函數更好的一點,就是他介于-1到1之間,平均值為0。而σσ函數的平均值為0.5。這實際上可以讓下層的學習更方便一些。因為tanhx的平均值為0,所以幾乎在任何場景下,他的結果都比σσ函數更好,但是有一個例外是在輸出的預測值y^,因為我們希望輸出的預測值介于0和1之間,而不是-1和1之間。在這里σσ函數要效果好很多。這時我們應該使用σσ函數作為輸出層。

不過這兩個函數也有一個缺點,從圖像中我們可以看到,當z很大或者很小的時候,z的變化量接近于0,這在于我們求梯度的時候效果非常糟糕,會拖慢學習進度。

我們還有一個ReLU函數,為的就是應對這個問題,通常情況下我們都會使ReLU函數作為神經網絡的激活函數,如果你不知道選什么函數作為激活函數,一般就選擇ReLU函數。不過ReLU函數有一個缺點,就是如果z,是負數的時候,那么導數為0。在實踐中使用ReLU函數,相比于tanh函數和σσ函數而言,學習效率會高很多,因為他沒有斜率接近于0的時候。

最后,我們總結一下,如圖所示:

深度學習的一個特點就是在建立神經網絡時,可以有很多不同的選擇,比如隱藏單元、激活函數,還有如何初始化權重。

為什么需要非線性激活函數

為什么神經網絡必須要用非線性的函數呢,我們這里來解釋一下:

如圖所示,如果我們舍去激活函數,或者干脆就讓激活函數就等于z本身,而不做一些非線性處理,在圖的右側我們可以看出,最后的結果是

a[2]=wx+ba[2]=w‘x+b‘
依舊是線性的。

如果你使用線性激活函數,那么神經網絡不過是把輸入經過線性組合之后再輸出。對于這種情況來說,有激活函數和沒有激活函數都沒有辦法改變線性性,無論是有多少的隱藏層也做不到。不引入非線性性,則永遠只能在線性性里面打轉。

神經網絡的梯度下降法

下面我們介紹一下如何用梯度下降法來處理單隱層神經網絡。

如圖所示,左側是正向傳播的計算流程,右側是反向傳播的計算流程。右側我們有一個語句:

np.sum(dz, axis=1, keepdims=True )

這個命令中axis=1表示的是要水平相加求和,keepdims=True表示的是防止python輸出古怪的秩為1的數組,保證輸出的是矩陣。
還有一個公式:

dz=wTdz?g(z)dz=wTdz?g‘(z)
其中 g(z)g‘(z)表示的是隱藏層激活函數的導數,注意這里我們所不同的是乘號兩邊兩個矩陣逐個元素相乘

輸出層的公式:

dz=A?Ydz=A?Y
假設的是用sigmod函數進行一個二元分類。

總結

以上是生活随笔為你收集整理的1.3.3 激活函数介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。