1. 程式人生 > >Google---機器學習速成課程(十二)- 神經網路簡介 (Introduction to Neural Networks)

Google---機器學習速成課程(十二)- 神經網路簡介 (Introduction to Neural Networks)

神經網路簡介 (Introduction to Neural Networks)

神經網路是更復雜版本的特徵組合。實質上,神經網路會學習適合您的相應特徵組合。

學習目標

對神經網路有一定的瞭解,尤其是瞭解以下方面:
  • 隱藏層
  • 啟用函式

-------------------------------------------------------

特徵組合這一單元的話,就會發現以下分類問題屬於非線性問題:

直角座標曲線圖。傳統的 x 軸用“x1”標記。傳統的 y 軸用“x2”標記。藍點佔據西北和東南象限;黃點佔據西南和東北象限。

圖 1. 非線性分類問題。

“非線性”意味著您無法使用形式為


的模型準確預測標籤。也就是說,“決策面”不是直線。之前,我們瞭解了對非線性問題進行建模的一種可行方法 - 特徵組合

現在,請考慮以下資料集:

資料集包含許多橙點和藍點。很難確定一個連貫的圖案,但橙點依稀呈螺旋狀,而藍點可能會呈不同的螺旋狀。

圖 2. 更難的非線性分類問題。

圖 2 所示的資料集問題無法用線性模型解決。為了瞭解神經網路可以如何幫助解決非線性問題,我們首先用圖表呈現一個線性模型:


為了瞭解神經網路可以如何幫助解決非線性問題,我們首先用圖表呈現一個線性模型:

輸入輸出

圖 3. 用圖表呈現的線性模型。

每個藍色圓圈均表示一個輸入特徵,綠色圓圈表示各個輸入的加權和。

要提高此模型處理非線性問題的能力,我們可以如何更改它

隱藏層

在下圖所示的模型中,我們添加了一個表示中間值的“隱藏層”。隱藏層中的每個黃色節點均是藍色輸入節點值的加權和。輸出是黃色節點的加權和。


圖 4. 兩層模型的圖表。

此模型是線性的嗎?是的,其輸出仍是其輸入的線性組合。

在下圖所示的模型中,我們又添加了一個表示加權和的“隱藏層”。

圖 5. 三層模型的圖表。

此模型仍是線性的嗎?是的,沒錯。當將輸出表示為輸入的函式並進行簡化時,只是獲得輸入的另一個加權和而已。該加權和無法對圖 2 中的非線性問題進行有效建模。

啟用函式

要對非線性問題進行建模,我們可以直接引入非線性函式。我們可以用非線性函式將每個隱藏層節點像管道一樣連線起來。

在下圖所示的模型中,在隱藏層 1 中的各個節點的值傳遞到下一層進行加權求和之前,我們採用一個非線性函式對其進行了轉換。這種非線性函式稱為啟用函式。

圖 6. 包含啟用函式的三層模型的圖表。

現在,我們已經添加了啟用函式,如果新增層,將會產生更多影響。通過在非線性上堆疊非線性,我們能夠對輸入和預測輸出之間極其複雜的關係進行建模。簡而言之,每一層均可通過原始輸入有效學習更復雜、更高級別的函式。如果您想更直觀地瞭解這一過程的工作原理,請參閱 

Chris Olah 的精彩博文

常見啟用函式

以下 S 型啟用函式將加權和轉換為介於 0 和 1 之間的值。


曲線圖如下:


圖 7. S 型啟用函式。

相較於 S 型函式等平滑函式,以下修正線性單元啟用函式(簡稱為 ReLU)的效果通常要好一點,同時還非常易於計算。

ReLU 的優勢在於它基於實證發現(可能由 ReLU 驅動),擁有更實用的響應範圍。S 型函式的響應性在兩端相對較快地減少。


圖 8. ReLU 啟用函式。

實際上,所有數學函式均可作為啟用函式。假設 σ 表示我們的啟用函式(ReLU、S 型函式等等)。因此,網路中節點的值由以下公式指定:

TensorFlow 為各種啟用函式提供開箱即用型支援。但是,我們仍建議從 ReLU 著手。

總結

現在,我們的模型擁有了人們通常所說的“神經網路”的所有標準組件:

  • 一組節點,類似於神經元,位於層中。
  • 一組權重,表示每個神經網路層與其下方的層之間的關係。下方的層可能是另一個神經網路層,也可能是其他型別的層。
  • 一組偏差,每個節點一個偏差。
  • 一個啟用函式,對層中每個節點的輸出進行轉換。不同的層可能擁有不同的啟用函式。

警告:神經網路不一定始終比特徵組合好,但它確實可以提供適用於很多情形的靈活替代方案。

-------------------------------------------------------

以上整理轉載在谷歌出品的機器學習速成課程點選開啟連結 侵刪!