神經網路的啟用函式之sigmoid

2021-10-03 00:15:09 字數 857 閱讀 3782

根據每一層前面的啟用、權重和偏置,我們要為下一層的每個啟用計算乙個值,但在將該值傳送給下一層之前,要是用啟用函式對這個輸出進行縮放。

sigmoid函式

sigmoid函式是乙個logistic函式,意思是說不管輸入什麼,輸出都在0到1之間,也就是輸入的每個神經元、節點或啟用都會被鎖放在乙個介於0到1之間的值。

sigmoid 這樣的函式常被稱為非線性函式,因為我們不能用線性的項來描述它。很多啟用函式都是非線性或者線性和非線性的組合

這個問題與反向傳播有關,在反向傳播中,我們要計算每個權重的梯度,即針對每個權重的小更新,這樣做的目的是優化整個網路中啟用值的輸出,使其能在輸出層得到更好的結果,進而實現對成本函式的優化。

在反向傳播中,必須計算每個權重影響損失函式的額比例,具體做法是計算成本函式相對於每個權重的偏導數,假設我們不定義單個的權重,而是將最後一層l中的所有權重w定義為w^l,則它們的導數為:

注意,當求偏導數時,我們要找到 ∂a^l 的方程,然後僅微分 ∂z^l,其餘部分保持不變。我們用撇號「'」來表示任意函式的導數。當計算中間項 ∂a^l/∂z^l 的偏導數時,我們有:

則sigmoid函式的導數為:

當向這個函式輸入乙個很大的x值,得到幾乎為0的y值,也就是說當輸入wa+b時,可能得到乙個接近於0的值。

當x時乙個很大的值(正或負)時,本質上就是用乙個幾乎為0的值來乘這個偏導數的其餘部分。

如果有太多的權重都有這樣很大的值,那麼根本就沒法得到可以調整權重的網路。如果不調整這些權重,那麼網路就只有細微的更新,這樣演算法就不能隨時間給網路帶來多少改善,對於針對乙個權重的偏導數的每個計算,我們都將其放入乙個梯度向量中,而且將使用這個梯度向量來更新神經網路。想象一下,如果梯度向量的所有值都接近0,那麼我們根本就無法真正更新任何東西。

神經網路之啟用函式

定義 所謂啟用函式 activation function 就是在人工神經網路的神經元上執行的函式,負責將神經元的輸入對映到輸出端。判定每個神經元的輸出 通俗來說,啟用函式一般是非線性函式,其作用是能夠給神經網路加入一些非線性因素,使得神經網路可以更好地解決較為複雜的問題。常見的啟用函式 1.sig...

神經網路之啟用函式

前面的部落格啟用函式簡要的了解了一下什麼是啟用函式,現在在正則化和神經網路模組化中突然遇到了啟用函式,所以下面主要講解一下我對啟用函式的理解 def forward x,regularizer 前向傳播 w1 get weight 2,11 regularizer 設定權重 b1 get bias ...

神經網路啟用函式

2018,jul 23 學了深度學習也快近一年了,在學deep learning的時候什麼教程都去看,起初學起來也特別的雜亂,前面的基礎沒弄懂還一直往下學,自然導致我學到後面的時候有點崩潰什麼都看不懂,並且因為自己還是一名在校生,平常課程也非常多,沒有乙個連續的學習時間也導致我的學習是斷斷續續,在學...