機器學習速成課程MLCC(9) 神經網路簡介

2021-08-16 08:43:49 字數 2003 閱讀 5313

神經網路簡介

預計用時:7 分鐘

您會發現以下分類問題屬於非線性問題:

圖 1. 非線性分類問題。

「非線性」意味著您無法使用形式為

b+w1x1+w2x2

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

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

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

圖 2 所示的資料集問題無法用線性模型解決。

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

輸入輸出

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

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

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

在下圖所示的模型中,我們新增了乙個表示中間值的「隱藏層」。隱藏層中的每個黃色節點均是藍色輸入節點值的加權和。輸出是黃色節點的加權和。

輸出隱藏層輸入

圖 4. 兩層模型的圖表。

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

在下圖所示的模型中,我們又新增了乙個表示加權和的「隱藏層」。

輸出隱藏層 2隱藏層 1輸入

圖 5. 三層模型的圖表。

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

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

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

輸出隱藏層 2非線性轉換層(又稱為啟用函式)隱藏層 1輸入我們通常不繪製非線性轉換.

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

現在,我們已經新增了啟用函式,如果新增層,將會產生更多影響。通過在非線性上堆疊非線性,我們能夠對輸入和**輸出之間極其複雜的關係進行建模。簡而言之,每一層均可通過原始輸入有效學習更複雜、更高階別的函式。

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

f(x)=11+e−x

曲線圖如下:

圖 7. s 型啟用函式。

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

f(x)=max(0,x)

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

圖 8. relu 啟用函式。

實際上,所有數學函式均可作為啟用函式。假設 

σ 表示我們的啟用函式(relu、s 型函式等等)。因此,網路中節點的值由以下公式指定:

σ(w⋅x+b)

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

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

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

機器學習速成課程MLCC(3) 如何降低損失

迭代方法 預計用時 10 分鐘 在本單元中,您將了解機器學習模型如何以迭代方式降低損失。迭代學習可能會讓您想到 hot and cold 這種尋找隱藏物品 如頂針 的兒童遊戲。在我們的遊戲中,隱藏的物品 就是最佳模型。剛開始,您會胡亂猜測 w1 的值為 0。等待系統告訴您損失是多少。然後,您再嘗試另...

機器學習速成課程學習講義3

上一單元 介紹了損失的概念。在本單元中,您將了解機器學習模型如何以迭代方式降低損失。迭代學習可能會讓您想到 hot and cold 這種尋找隱藏物品 如頂針 的兒童遊戲。在我們的遊戲中,隱藏的物品 就是最佳模型。剛開始,您會胡亂猜測 w1 的值為 0。等待系統告訴您損失是多少。然後,您再嘗試另一種...

Andrew Ng機器學習課程9 補充

首先要說的還是這個bias variance trade off,乙個hypothesis的generalization error是指的它在樣本上的期望誤差,這個樣本不一定是在training set中的。所以出現了兩部分的誤差,bias是指的是偏差,未能捕獲由資料展示出的結構,underfit,...