一文搞定卷積神經網絡——從原理到應用

  本文着重講述經典BP神經網絡的數學推導過程,並輔助一個小例子。本文不會介紹機器學習庫(比如sklearn, TensorFlow等)的使用。 欲瞭解卷積神經網絡的內容,請參見我的另一篇博客一文搞定卷積神經網絡——從原理到應用

  本文難免會有敘述不合理的地方,希望讀者可以在評論區反饋。我會及時吸納大家的意見,並在之後的chat裏進行說明。

本文參考了一些資料,在此一併列出。

0. 什麼是人工神經網絡?

  首先給出一個經典的定義:“神經網絡是由具有適應性的簡單單元組成的廣泛並行互連網絡,它的組織能夠模擬生物神經系統對真實世界物體所作出的交互反應”[Kohonen, 1988]。

  這種說法雖然很經典,但是對於初學者並不是很友好。比如我在剛開始學習的時候就把人工神經網絡想象地很高端,以至於很長一段時間都不能理解爲什麼神經網絡能夠起作用。類比最小二乘法線性迴歸問題,在求解數據擬合直線的時候,我們是採用某種方法讓預測值和實際值的“偏差”儘可能小。同理,BP神經網絡也做了類似的事情——即通過讓“偏差”儘可能小,使得神經網絡模型儘可能好地擬合數據集。

1. 神經網絡初探

1.1 神經元模型

  神經元模型是模擬生物神經元結構而被設計出來的。典型的神經元結構如下圖1所示:
在這裏插入圖片描述

【圖1 典型神經元結構 (圖片來自維基百科)】

  神經元大致可以分爲樹突、突觸、細胞體和軸突。樹突爲神經元的輸入通道,其功能是將其它神經元的動作電位傳遞至細胞體。其它神經元的動作電位藉由位於樹突分支上的多個突觸傳遞至樹突上。神經細胞可以視爲有兩種狀態的機器,激活時爲“是”,不激活時爲“否”。神經細胞的狀態取決於從其他神經細胞接收到的信號量,以及突觸的性質(抑制或加強)。當信號量超過某個閾值時,細胞體就會被激活,產生電脈衝。電脈衝沿着軸突並通過突觸傳遞到其它神經元。(內容來自維基百科“感知機”)

  同理,我們的神經元模型就是爲了模擬上述過程,典型的神經元模型如下:

在這裏插入圖片描述

【圖2 典型神經元模型結構 (摘自周志華老師《機器學習》第97頁)】

  這個模型中,每個神經元都接受來自其它神經元的輸入信號,每個信號都通過一個帶有權重的連接傳遞,神經元把這些信號加起來得到一個總輸入值,然後將總輸入值與神經元的閾值進行對比(模擬閾值電位),然後通過一個“激活函數”處理得到最終的輸出(模擬細胞的激活),這個輸出又會作爲之後神經元的輸入一層一層傳遞下去。

1.2 神經元激活函數

  本文主要介紹2種激活函數,分別是sigmoidsigmoidsigmoidsigmoidsigmoid sigmoidl層的權重,用上圖舉個例子就是:

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