神经网络入门篇:详解神经网络概述和表示
神經網絡概述(Neural Network Overview)
先開始快速瀏覽一下如何實現神經網絡。上篇博客了解了邏輯回歸,了解了這個模型(見圖1.1.1)如何與下面公式1.1建立聯系。
圖1.1.1 :
公式1.1:
\[\left. \begin{array}{l} x\\ w\\ b \end{array} \right\} \implies{z={w}^Tx+b} \]如上所示,首先需要輸入特征\(x\),參數\(w\)和\(b\),通過這些就可以計算出\(z\),公式1.2:
\[\left. \begin{array}{l} x\\ w\\ b \end{array} \right\} \implies{z={w}^Tx+b} \implies{a = \sigma(z)}\\ \implies{{L}(a,y)} \]接下來使用\(z\)就可以計算出\(a\)。將的符號換為表示輸出\(\hat{y}\implies{a = \sigma(z)}\),然后可以計算出loss function \(L(a,y)\)
神經網絡看起來是如下這個樣子(圖1.1.2)。正如之前已經提到過,可以把許多sigmoid單元堆疊起來形成一個神經網絡。對于圖3.1.1中的節點,它包含了之前講的計算的兩個步驟:首先通過公式1.1計算出值\(z\),然后通過\(\sigma(z)\)計算值\(a\)。
圖1.1.2
在這個神經網絡(圖1.1.2)對應的3個節點,首先計算第一層網絡中的各個節點相關的數\(z^{[1]}\),接著計算\(\alpha^{[1]}\),在計算下一層網絡同理;
會使用符號\(^{[m]}\)表示第\(m\)層網絡中節點相關的數,這些節點的集合被稱為第\(m\)層網絡。這樣可以保證\(^{[m]}\)不會和之前用來表示單個的訓練樣本的\(^{(i)}\)(即使用表示第\(i\)個訓練樣本)混淆;
整個計算過程,公式如下:
公式1.3:
公式1.4:
\[\left. \begin{array}{r} \text{$a^{[1]} = \sigma(z^{[1]})$}\\ \text{$W^{[2]}$}\\ \text{$b^{[2]}$}\\ \end{array} \right\} \implies{z^{[2]}=W^{[2]}a^{[1]}+b^{[2]}} \implies{a^{[2]} = \sigma(z^{[2]})}\\ \implies{{L}\left(a^{[2]},y \right)} \]類似邏輯回歸,在計算后需要使用計算,接下來需要使用另外一個線性方程對應的參數計算\(z^{[2]}\),
計算\(a^{[2]}\),此時\(a^{[2]}\)就是整個神經網絡最終的輸出,用 \(\hat{y}\)表示網絡的輸出。
公式1.5:
\[\left. \begin{array}{r} {da^{[1]} = ze8trgl8bvbq\sigma(z^{[1]})}\\ {dW^{[2]}}\\ {db^{[2]}}\\ \end{array} \right\} \impliedby{{dz}^{[2]}=ze8trgl8bvbq(W^{[2]}\alpha^{[1]}+b^{[2]}}) \impliedby{{{da}^{[2]}} = ze8trgl8bvbq\sigma(z^{[2]})}\\ \impliedby{{dL}\left(a^{[2]},y \right)} \]知道這其中有很多細節,其中有一點非常難以理解,即在邏輯回歸中,通過直接計算\(z\)得到結果\(a\)。而這個神經網絡中,反復的計算\(z\)和\(a\),計算\(a\)和\(z\),最后得到了最終的輸出loss function。
應該記得邏輯回歸中,有一些從后向前的計算用來計算導數\(da\)、\(dz\)。同樣,在神經網絡中也有從后向前的計算,看起來就像這樣,最后會計算\(da^{[2]}\) 、\(dz^{[2]}\),計算出來之后,然后計算計算\(dW^{[2]}\)、\(db^{[2]}\) 等,按公式1.4、1.5箭頭表示的那樣,從右到左反向計算。
至此大概了解了一下什么是神經網絡。
神經網絡的表示
先回顧一下上一篇博客的圖片,在這里將討論這些圖片的具體含義,也就是畫的這些神經網絡到底代表什么。
首先關注一個例子,本例中的神經網絡只包含一個隱藏層(圖1.2.1)。這是一張神經網絡的圖片,讓給此圖的不同部分取一些名字。
圖1.2.1
有輸入特征\(x_1\)、\(x_2\)、\(x_3\),它們被豎直地堆疊起來,這叫做神經網絡的輸入層。它包含了神經網絡的輸入;然后這里有另外一層稱之為隱藏層(圖1.2.1的四個結點)。待會兒會回過頭來講解術語"隱藏"的意義;在本例中最后一層只由一個結點構成,而這個只有一個結點的層被稱為輸出層,它負責產生預測值。解釋隱藏層的含義:在一個神經網絡中,當使用監督學習訓練它的時候,訓練集包含了輸入\(x\)也包含了目標輸出\(y\),所以術語隱藏層的含義是在訓練集中,這些中間結點的準確值是不知道到的,也就是說看不見它們在訓練集中應具有的值。能看見輸入的值,也能看見輸出的值,但是隱藏層中的東西,在訓練集中是無法看到的。所以這也解釋了詞語隱藏層,只是表示無法在訓練集中看到他們。
現在再引入幾個符號,就像之前用向量\(x\)表示輸入特征。這里有個可代替的記號\(a^{[0]}\)可以用來表示輸入特征。\(a\)表示激活的意思,它意味著網絡中不同層的值會傳遞到它們后面的層中,輸入層將\(x\)傳遞給隱藏層,所以將輸入層的激活值稱為\(a^{[0]}\);下一層即隱藏層也同樣會產生一些激活值,那么將其記作\(a^{[1]}\),所以具體地,這里的第一個單元或結點將其表示為\(a^{[1]}_{1}\),第二個結點的值記為\(a^{[1]}_{2}\)以此類推。所以這里的是一個四維的向量如果寫成Python代碼,那么它是一個規模為4x1的矩陣或一個大小為4的列向量,如下公式,它是四維的,因為在本例中,有四個結點或者單元,或者稱為四個隱藏層單元;
公式1.7
最后輸出層將產生某個數值\(a\),它只是一個單獨的實數,所以的\(\hat{y}\)值將取為\(a^{[2]}\)。這與邏輯回歸很相似,在邏輯回歸中,有\(\hat{y}\)直接等于\(a\),在邏輯回歸中只有一個輸出層,所以沒有用帶方括號的上標。但是在神經網絡中,將使用這種帶上標的形式來明確地指出這些值來自于哪一層,有趣的是在約定俗成的符號傳統中,在這里所看到的這個例子,只能叫做一個兩層的神經網絡(圖1.2.2)。原因是當計算網絡的層數時,輸入層是不算入總層數內,所以隱藏層是第一層,輸出層是第二層。第二個慣例是將輸入層稱為第零層,所以在技術上,這仍然是一個三層的神經網絡,因為這里有輸入層、隱藏層,還有輸出層。但是在傳統的符號使用中,如果閱讀研究論文,會看到人們將這個神經網絡稱為一個兩層的神經網絡,因為不將輸入層看作一個標準的層。
圖1.2.2
最后,要看到的隱藏層以及最后的輸出層是帶有參數的,這里的隱藏層將擁有兩個參數\(W\)和\(b\),將給它們加上上標\(^{[1]}\)(\(W^{[1]}\),\(b^{[1]}\)),表示這些參數是和第一層這個隱藏層有關系的。之后在這個例子中會看到\(W\)是一個4x3的矩陣,而\(b\)是一個4x1的向量,第一個數字4源自于有四個結點或隱藏層單元,然后數字3源自于這里有三個輸入特征,之后會更加詳細地討論這些矩陣的維數,到那時可能就更加清楚了。相似的輸出層也有一些與之關聯的參數\(W^{[2]}\)以及\(b^{[2]}\)。從維數上來看,它們的規模分別是1x4以及1x1。1x4是因為隱藏層有四個隱藏層單元而輸出層只有一個單元,之后會對這些矩陣和向量的維度做出更加深入的解釋,所以現在已經知道一個兩層的神經網絡什么樣的了,即它是一個只有一個隱藏層的神經網絡。
總結
以上是生活随笔為你收集整理的神经网络入门篇:详解神经网络概述和表示的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 会影响佣金收入,苹果承认欧洲市场开放第三
- 下一篇: 把快乐的果报回向净土
