吳恩達《機器學習》課程筆記——第九章:神經網絡學習

上一篇  ※※※※※※※※  【回到目錄】  ※※※※※※※※  下一篇


9.1 非線性假設

在以前的內容中,咱們採起非線性的多項式是來創建更好的分類模型。html

但其實不管是線性迴歸仍是邏輯迴歸,都存在一個缺點:即當特徵很是多時,計算量過大。舉個例子,當咱們須要識別一張灰度圖片(單通道,非RGB)上是否存在汽車時,假設這張圖片爲50x50像素的小圖片,咱們若是把每個像素點都視爲特徵,那麼就有2500個特徵。咱們採用邏輯迴歸的方法來進行判斷:若是將兩兩特徵組合構成一個多項式模型,那麼也將會有25002/2(接近300萬)個特徵,這樣計算量就太大了,普通的邏輯迴歸模型沒法處理這麼多的特徵,這時候咱們須要神經網絡。算法

9.2 神經元與大腦

神經網絡是一個有悠久歷史的算法,它最初產生的目的是製造能模擬大腦的機器。 其興起於二十世紀八九十年代,但因爲各類緣由,在90年代的後期應用減小。微信

可是最近,神經網絡又東山再起了。其中的主要緣由在於:(1)CPU計算、GPU計算等計算力的提高;(2)與日俱增的數據量。網絡

 


9.3 模型展現 Ⅰ

爲了構建神經網絡模型,咱們須要首先思考大腦中的神經網絡是怎樣的?每個神經元均可以被認爲是一個處理單元/神經核(processing unit/Nucleus),它含有許多輸入/樹突(input/Dendrite),而且有一個輸出/軸突(output/Axon)。神經網絡是大量神經元相互鏈接並經過電脈衝來交流的一個網絡。機器學習

 

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

咱們設計出了相似於神經元的神經網絡,效果以下:spa

其中𝑥1, 𝑥2, 𝑥3是輸入單元(input units),咱們將原始數據輸入給它們。 𝑎1, 𝑎2, 𝑎3是中間單元,它們負責將數據進行處理,而後呈遞到下一層。 最後是輸出單元,它負責計算ℎ𝜃(𝑥)。設計

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

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

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

總結來講:上標表示與第幾層相關,下標與該層的第幾個激活單元相關。權重矩陣尺寸爲:(後一層激活單元數,前一層激活單元數+1)

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

以上僅僅是將特徵矩陣的一行(一個訓練實例)餵給了神經網絡,咱們須要將整個訓練集都餵給咱們的神經網絡算法來學習模型。 

以上從左到右的算法被稱爲前向傳播算法。咱們能夠向量化表示:𝜃·X = a。


9.4 模型展現 Ⅱ

在前向傳播的計算中,利用向量化的實現方法使得計算更加便捷、高效。

前向傳播的計算過程:

(1) z(2) =  𝜃(1) · X(即A(1)) 

(2) a(2) = g( z(2) )

(3) Add a0(2) = 1 

(4) z(3) =  𝜃(2) · a(2)

(5) h𝜃(x) =a(3) = g( z(3) )


9.5 例子和直觀理解 Ⅰ

從本質上講,神經網絡可以經過學習得出其自身的一系列特徵。在普通的邏輯迴歸中,咱們被限制爲使用數據中的原始特徵𝑥1, 𝑥2, . . . , 𝑥𝑛,咱們雖然可使用一些二項式項來組合這些特徵,可是咱們仍然受到這些原始特徵的限制。在神經網絡中,原始特徵只是輸入層,在咱們上面三層的神經網絡例子中,第三層也就是輸出層作出的預測利用的是第二層的特徵,而非輸入層中的原始特徵,咱們能夠認爲第二層中的特徵是神經網絡經過學習後本身得出的一系列用於預測輸出變量的新特徵。

無隱含層的單層神經元能夠進行邏輯運算,好比邏輯與、邏輯或、取反:

邏輯與:

邏輯或:

取反:


9.6 例子和直觀理解 Ⅱ

咱們能夠利用神經元來組合成更爲複雜的神經網絡以實現更復雜的運算,即加入隱含層後的神經網絡,能夠實現同或和異或。

異或:相同得0,相異得1

同或:相同得1,相異得0


9.7 多元分類

當咱們有不止兩種分類時(也就是𝑦 = 1,2,3 ….),好比如下這種狀況,該怎麼辦?若是咱們要訓練一個神經網絡算法來識別路人、汽車、摩托車和卡車,在輸出層咱們應該有 4 個值。例如,第一個值爲 1 或 0 用於預測是不是行人,第二個值用於判斷是否爲汽車。

在多元分類的狀況下,咱們的輸出層將不止有一個輸出,而是有多個輸出。

舉個例子,當要分辨一張圖片上是不是行人、卡車、汽車、摩托車,則輸出能夠爲:

有四種分類標籤,從而進行多元分類。


 

若是這篇文章幫助到了你,或者你有任何問題,歡迎掃碼關注微信公衆號:一刻AI  在後臺留言便可,讓咱們一塊兒學習一塊兒進步!

 

 

 

 以上,就是吳恩達機器學習課程第九章的主要內容。

 

 

 

【重要提示】:本人機器學習課程的主要學習資料包括:吳恩達教授的機器學習課程和黃廣海博士的中文學習筆記。感謝吳恩達教授和黃廣海博士的知識分享和無私奉獻。做爲機器學習小白,計劃每週末記錄一週以來的學習內容,總結回顧。但願你們多多挑錯,也願個人學習筆記能幫助到有須要的人。

相關文章
相關標籤/搜索