神經網路,如何解決非線性問題

2021-08-16 05:37:28 字數 1582 閱讀 5791

**:

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

圖 1. 非線性分類問題。

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

b+w1x1+w2x2

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

特徵組合。

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

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

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

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

輸入輸出

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

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

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

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

輸出隱藏層輸入

圖 4. 兩層模型的圖表。

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

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

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

圖 5. 三層模型的圖表。

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

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

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

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

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

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

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

f(x)=11+e−x

曲線圖如下:

s 型圖 7. s 型啟用函式。

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

f(x)=max(0,x)

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

relu

圖 8. relu 啟用函式。

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

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

σ(w⋅x+b)

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

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

深度學習 用神經網路解決非線性問題

已知德智育三項成績,總分大於等於95即可當選三好學生。用1代表是,用0代表否。線性問題是可以傳遞的,非線性問題則是所謂的 一票否決制 如果在一串連續的關係中有乙個非線性關係出現,一般來說,整個問題都將成為非線性的問題。啟用函式sigmoid 將線性化的關係轉換成非線性化關係的函式,可以把任何數字變成...

神經網路演算法 解決非線性分類複雜問題

把神經元模擬成乙個邏輯單元,在神經網路的模型中,神經元收到來自n個其他神經元傳遞過來的輸入訊號,這些輸入訊號通過帶權重的連線進行傳遞,神經元收到的總輸入值將與神經元的閾值進行比較,然後通過啟用函式 activation funciton 處理以產生神經元的輸出。把許多個這樣的神經元按一定的層次結構連...

神經網路 非線性問題的處理 二分類

以前我們涉及的都是線性問題 現在我們涉及的是非線性問題 什麼是非線性問題?計算結果是一條直線的問題叫做線性問題,要麼遞增,要麼遞減 而非線性問題不會走這種極端,它是有乙個過程的變化 以三好學生的評選規則來引入非線性問題 1.學校還是要評選三好學生,學校已經頒布了三好學生的評選結果,所有家長已經知道了...