机器学习入门(02)— 由感知机到神经网络的过渡进化,激活函数在神经网络中的作用
1. 神經網絡示例
用圖來表示神經網絡的話,如圖3-1 所示。我們把最左邊的一列稱為輸入層,最右邊的一列稱為輸出層,中間的一列稱為中間層。中間層有時也稱為隱藏層。“隱藏”一詞的意思是,隱藏層的神經元(和輸入層、輸出層不同)肉眼看不見。
注意:圖 3-1 中的網絡一共由 3 層神經元構成,但實質上只有 2 層神經元有權重,因此將其稱為“2 層網絡”。請注意,有的書也會根據構成網絡的層數,把圖 3-1 的網絡稱為“3 層網絡”。本書將根據實質上擁有權重的層數(輸入層、隱藏層、輸出層的總數減去 1 后的數量)來表示網絡的名稱。
2. 感知機進化
圖 3-2 中的感知機接收 x1 和 x2 兩個輸入信號,輸出 y 。如果用數學式來表示圖3-2 中的感知機,則如式(3.1)所示。
b是被稱為偏置的參數,用于控制神經元被激活的容易程度;w1和w2是表示各個信號的權重的參數,用于控制各個信號的重要性。
順便提一下,在圖3-2 的網絡中,偏置 b 并沒有被畫出來。如果要明確地表示出 b ,可以像圖3-3 那樣做。圖3-3 中添加了權重為 b 的輸入信號 1。這個感知機將 x1 、 x2 、 1 三個信號作為神經元的輸入,將其和各自的權重相乘后,傳送至下一個神經元。在下一個神經元中,計算這些加權信號的總和。如果這個總和超過 0,則輸出 1,否則輸出 0。另外,由于偏置的輸入信號一直是 1 ,所以為了區別于其他神經元,我們在圖中把這個神經元整個涂成灰色。
現在將式(3.1)改寫成更加簡潔的形式。為了簡化式(3.1),我們用一個函數來表示這種分情況的動作(超過 0 則輸出 1,否則輸出 0)。引入新函數 h(x) ,將式(3.1)改寫成下面的式(3.2)和式(3.3)。
式(3.2)中,輸入信號的總和會被函數 h(x) 轉換,轉換后的值就是輸出 y 。然后,式(3.3)所表示的函數 h(x) ,在輸入超過 0 時返回 1,否則返回 0。因此,式(3.1)和式(3.2)、式(3.3)做的是相同的事情。
3. 引入激活函數
剛才登場的 h(x) 函數會將輸入信號的總和轉換為輸出信號,這種函數一般稱為激活函數( activation function )。如“激活”一詞所示,激活函數的作用在于決定如何來激活輸入信號的總和。
現在來進一步改寫式(3.2)。式(3.2)分兩個階段進行處理,先計算輸入信號的加權總和,然后用激活函數轉換這一總和。因此,如果將式(3.2)寫得詳細一點,則可以分成下面兩個式子。
首先,式(3.4)計算加權輸入信號和偏置的總和,記為 a 。
然后,式(3.5)用 h() 函數將 a 轉換為輸出 y 。
之前的神經元都是用一個 ○ 表示的,如果要在圖中明確表示出式(3.4)和式(3.5),則可以像圖3-4 這樣做。
如圖3-4 所示,表示神經元的 ○ 中明確顯示了激活函數的計算過程,即信號的加權總和為節點 a ,然后節點 a 被激活函數 h() 轉換成節點 y 。
本書中,“神經元”和“節點”兩個術語的含義相同。這里,我們稱 a 和 y 為“節點”,其實它和之前所說的“神經元”含義相同。
通常如圖3-5 的左圖所示,神經元用一個 ○ 表示。本書中,在可以明確神經網絡的動作的情況下,將在圖中明確顯示激活函數的計算過程,如圖3-5的右圖所示。
注意:一般而言:
- “樸素感知機”是指單層網絡,指的是激活函數使用了階躍函數
A的模型。 - “多層感知機”是指神經網絡,即使用
sigmoid函數等平滑的激活函數的多層網絡。
參考:《深度學習入門:基于Python的理論與實現》
總結
以上是生活随笔為你收集整理的机器学习入门(02)— 由感知机到神经网络的过渡进化,激活函数在神经网络中的作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 找电影(中国电影)!!!
- 下一篇: 机器学习入门(04)— 神经网络多维数组