第八篇:《機器學習之神經網絡(三)》

(因後文學術性較強,部分內容參見吳恩達在斯坦福大學的講義)

與世無爭的吳恩達老師

本篇內容:神經網絡算法的模型表示

通過本篇的學習您將瞭解到神經網絡模型的數學結構

有一定數據結構基礎的同學可以嘗試用C/C++搭建模型

神經網絡的數學模型表示1

網絡模型的仿生原理

爲了構建神經網絡模型,我們需要首先思考大腦中的神經網絡是怎樣的?

每一個神經元都可以被認爲是一個處理單元/神經核(processing unit/Nucleus),它含有許多輸入/樹突(input/Dendrite),並且有一個輸出/軸突(output/Axon)。神經網絡是大量神經元相互鏈接並通過電脈衝來交流的一個網絡。

下面是一組神經元的示意圖,神經元利用微弱的電流進行溝通。這些弱電流也稱作動作電位,其實就是一些微弱的電流。所以如果神經元想要傳遞一個消息,它就會就通過它的軸突,發送一段微弱電流給其他神經元,這就是軸突。

這裏是一條連接到輸入神經,或者連接另一個神經元樹突的神經,接下來這個神經元接收這條消息,做一些計算,它有可能會反過來將在軸突上的自己的消息傳給其他神經元。這就是所有人類思考的模型:我們的神經元把自己的收到的消息進行計算,並向其他神經元傳遞消息。這也是我們的感覺和肌肉運轉的原理。如果你想活動一塊肌肉,就會觸發一個神經元給你的肌肉發送脈衝,並引起你的肌肉收縮。如果一些感官:比如說眼睛想要給大腦傳遞一個消息,那麼它就像這樣發送電脈衝給大腦的。

神經網絡的模型表示

神經網絡模型建立在很多神經元之上,每一個神經元又是一個個學習模型。這些神經元(也叫激活單元,activation unit)採納一些特徵作爲輸出,並且根據本身的模型提供一個輸出。下圖是一個以邏輯迴歸模型作爲自身學習模型的神經元示例,在神經網絡中,參數又可被成爲權重(weight)。

我們設計出了類似於神經元的神經網絡,效果如下:

左側的 x1,x2,x3 是輸入單元(input units),我們將原始數據輸入給它們。

中間單元a1(2),a2(2),a3(2),它們負責將數據進行處理,然後呈遞到下一層。

這裏的數據處理其實就是邏輯迴歸的方法,比如a1(2)代表第二層神經元的第一個,它的值由上一層神經元和對應參數構成,可以看到,a1(2)通過三條線連接了左側的神經元x1,x2,x3,每一條線其實就是一個參數值,它的深層含義是:該神經元對於下一層的對應神經元的影響力

從中間層開始每一個神經元都是上一層神經元們邏輯迴歸的結果,以及下一層邏輯迴歸的特徵值

最後是輸出單元,它負責計算。

神經網絡模型是許多邏輯單元按照不同層級組織起來的網絡,每一層的輸出變量都是下一層的輸入變量。下圖爲一個3層的神經網絡,第一層成爲輸入層(Input Layer),最後一層稱爲輸出層(Output Layer),中間一層成爲隱藏層(Hidden Layers)。我們爲每一層都增加一個偏差單位(bias unit):

下面引入一些標記法來幫助描述模型:

ai(j) 代表第 j 層的第 i 個激活單元。theta(j) 代表從第 j 層映射到第 j+1 層時的權重的矩陣,例如 theta(1) 代表從第一層映射到第二層的權重的矩陣。其尺寸爲:以第 j+1 層的激活單元數量爲行數,以第 j 層的激活單元數加一爲列數的矩陣。例如:上圖所示的神經網絡中 theta(1) 的尺寸爲 3*4。

對於上圖所示的模型,激活單元和輸出分別表達爲:

上面進行的討論中只是將特徵矩陣中的一行(一個訓練實例)餵給了神經網絡,我們需要將整個訓練集都餵給我們的神經網絡算法來學習模型。

我們可以知道:每一個 a 都是由上一層所有的 x 和每一個 x 所對應的權重 theta 決定的。

(我們把這樣從左到右的算法稱爲前向傳播算法( FORWARD PROPAGATION ))

神經網絡的數學模型表示2

前向傳播算法( FORWARD PROPAGATION ) 相對於使用循環來編碼,利用向量化的方法會使得計算更爲簡便。以上面的神經網絡爲例,試着計算第二層的值:

這只是針對訓練集中一個訓練實例所進行的計算。如果我們要對整個訓練集進行計算,我們需要將訓練集特徵矩陣進行轉置,使得同一個實例的特徵都在同一列裏。即:

爲了更好了瞭解Neuron Networks的工作原理,我們先把左半部分遮住:

右半部分其實就是以, 按照Logistic Regression的方式輸出:

logistic regression ——邏輯迴歸

我們可以 a0,a1,a2,a3 把看成更爲高級的特徵值,也就是 x0,x1,x2,x3 的進化體,並且它們是由 x 與 theta 決定的,因爲是梯度下降的,所以是變化的,並且變得越來越厲害,所以這些更高級的特徵值遠比僅僅將 次方厲害,也能更好的預測新數據。

這就是神經網絡相比於邏輯迴歸和線性迴歸的優勢。

~o給喜歡機器學習的同學們的福利o~

《斯坦福大學吳恩達機器學習講義》

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