[深度學習-原理]BP神經網絡

前言

BP(back propagation)神經網絡

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

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

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

2. 神經網絡初探

2.1 神經元模型

神經元模型是模擬生物神經元結構而被設計出來的。典型的神經元結構如下圖1所示:
在這裏插入圖片描述
【圖1 典型神經元結構 (圖片來自維基百科)】
神經元大致可以分爲樹突、突觸、細胞體和軸突。樹突爲神經元的輸入通道,其功能是將其它神經元的動作電位傳遞至細胞體。其它神經元的動作電位藉由位於樹突分支上的多個突觸傳遞至樹突上。神經細胞可以視爲有兩種狀態的機器,激活時爲“是”,不激活時爲“否”。神經細胞的狀態取決於從其他神經細胞接收到的信號量,以及突觸的性質(抑制或加強)。當信號量超過某個閾值時,細胞體就會被激活,產生電脈衝。電脈衝沿着軸突並通過突觸傳遞到其它神經元。(內容來自維基百科“感知機”)

同理,我們的神經元模型就是爲了模擬上述過程,典型的神經元模型如下:
在這裏插入圖片描述
【圖2 典型神經元模型結構 (摘自周志華老師《機器學習》第97頁)】

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

2.2 神經元激活函數

  1. 激活函數總結(Sigmoid, Tanh, Relu, leaky Relu, PReLU, Maxout, ELU, Softmax,交叉熵函數)
  2. 爲什麼用激勵函數

2.3 神經網絡結構

我們使用如下神經網絡結構來進行介紹,第0層是輸入層(3個神經元), 第1層是隱含層(2個神經元),第2層是輸出層:
在這裏插入圖片描述

在這裏插入圖片描述
激活函數使用符號σ\sigma表示,因此,第lthl^{th} 層中第jthj^{th} 神經元的激活爲:
在這裏插入圖片描述

現在,我們使用矩陣形式重寫這個公式:定義w[l]w^{[l]} 表示權重矩陣,它的每一個元素表示一個權重,即每一行都是連接第lll層的權重,用上圖舉個例子就是:
在這裏插入圖片描述
同理,

在這裏插入圖片描述
在這裏插入圖片描述

輸入層

在這裏插入圖片描述

輸出層

在這裏插入圖片描述

識別手寫字體的一個整體BP神經網絡結構圖

在這裏插入圖片描述

3. 損失函數和代價函數

說實話,**損失函數(Loss Function)和代價函數(Cost Function)**並沒有一個公認的區分標準,很多論文和教材似乎把二者當成了差不多的東西。

爲了後面描述的方便,我們把二者稍微做一下區分(這裏的區分僅僅對本文適用,對於其它的文章或教程需要根據上下文自行判斷含義):
損失函數主要指的是對於單個樣本的損失或誤差;代價函數表示多樣本同時輸入模型的時候總體的誤差——每個樣本誤差的和然後取平均值。
舉個例子,如果我們把單個樣本的損失函數定義爲:
在這裏插入圖片描述
那麼對於m個樣本,代價函數則是:
在這裏插入圖片描述
在這裏插入圖片描述

4. 反向傳播

4.1 求梯度矩陣

在這裏插入圖片描述

4.2 學習率

在這裏插入圖片描述

4.3 梯度下降

在這裏插入圖片描述

4.4 梯度方向

在這裏插入圖片描述

不能保證是是最小值

在這裏插入圖片描述

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