機器學習入門(02)— 由感知機到神經網絡的進化、引入神經網絡

1. 神經網絡示例

用圖來表示神經網絡的話,如圖3-1 所示。我們把最左邊的一列稱爲輸入層,最右邊的一列稱爲輸出層,中間的一列稱爲中間層。中間層有時也稱爲隱藏層。“隱藏”一詞的意思是,隱藏層的神經元(和輸入層、輸出層不同)肉眼看不見。

神經網絡

注意:圖 3-1 中的網絡一共由 3 層神經元構成,但實質上只有 2 層神經元有權重,因此將其稱爲“2 層網絡”。請注意,有的書也會根據構成網絡的層數,把圖 3-1 的網絡稱爲“3 層網絡”。本書將根據實質上擁有權重的層數(輸入層、隱藏層、輸出層的總數減去 1 後的數量)來表示網絡的名稱。

2. 感知機進化感知機

圖 3-2 中的感知機接收 x1x2 兩個輸入信號,輸出 y 。如果用數學式來表示圖3-2 中的感知機,則如式(3.1)所示。
感知機公式

  • b 是被稱爲偏置的參數,用於控制神經元被激活的容易程度;
  • w1w2 是表示各個信號的權重的參數,用於控制各個信號的重要性。

順便提一下,在圖3-2 的網絡中,偏置 b 並沒有被畫出來。如果要明確地表示出 b ,可以像圖3-3 那樣做。圖3-3 中添加了權重爲 b 的輸入信號 1。這個感知機將 x1x21 三個信號作爲神經元的輸入,將其和各自的權重相乘後,傳送至下一個神經元。在下一個神經元中,計算這些加權信號的總和。如果這個總和超過 0,則輸出 1,否則輸出 0。另外,由於偏置的輸入信號一直是 1 ,所以爲了區別於其他神經元,我們在圖中把這個神經元整個塗成灰色。

偏置示意圖

現在將式(3.1)改寫成更加簡潔的形式。爲了簡化式(3.1),我們用一個函數來表示這種分情況的動作(超過 0 則輸出 1,否則輸出 0)。引入新函數 h(x) ,將式(3.1)改寫成下面的式(3.2)和式(3.3)。

新表達式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-3 更新表達式

首先,式(3.4)計算加權輸入信號和偏置的總和,記爲 a
然後,式(3.5)用 h() 函數將 a 轉換爲輸出 y

之前的神經元都是用一個 表示的,如果要在圖中明確表示出式(3.4)和式(3.5),則可以像圖3-4 這樣做。
明確表示激活函數

如圖3-4 所示,表示神經元的 中明確顯示了激活函數的計算過程,即信號的加權總和爲節點 a ,然後節點 a 被激活函數 h() 轉換成節點 y

本書中,“神經元”和“節點”兩個術語的含義相同。這裏,我們稱 ay 爲“節點”,其實它和之前所說的“神經元”含義相同。

通常如圖3-5 的左圖所示,神經元用一個 表示。本書中,在可以明確神經網絡的動作的情況下,將在圖中明確顯示激活函數的計算過程,如圖3-5的右圖所示。

一般神經元和帶激活函數的神經元
注意:一般而言:

  • “樸素感知機”是指單層網絡,指的是激活函數使用了階躍函數 A 的模型。
  • “多層感知機”是指神經網絡,即使用 sigmoid 函數等平滑的激活函數的多層網絡。

參考:《深度學習入門:基於Python的理論與實現》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章