電腦學會如何學習了嗎?——類神經網路學習分類



類神經網路如何自動調整權重?

誤差與學習演算法 學習分類昆蟲資料 激勵函數與學習演算法

誤差與學習演算法

學習演算法是透過誤差進行權重的調整,

我們在理解學習演算法之前,先回顧一下誤差的概念吧。

(試著在方格中輸入數字,並按下計算)

0

0

在1958年時,Frank Rosenblatt提出的學習演算法

wit+1 = wit + 𝛼 * xi * Errort

(演算法中的「error」即為「誤差」)

雖然我們說明了這個演算法為何這樣設計,

但為了更容易理解這個演算法設計的用意,

讓我們用先前健康照護的例子來理解這個演算法吧。

(試著在方格中輸入數字,並按下計算)

0

收縮壓為_______mmHg

舒張壓為_______mmHg

(試著打開聲音並點擊心臟)

我們以小恩的健康資料來看,

起初類神經網路的權重皆為0的時候,

誤差即為97分,此時調整權重的算法會如下圖:

此時,我們可以看到𝛼值,也就是「學習率」是沒有設定好的

不過這樣也更能看出「學習率」的用意,

如果𝛼值設定為1,則權重就會被調整太多,

依照資料當中的數值,我們應該將𝛼值設定小一些。

假如我們將𝛼值設定為0.0001則權重的調整就會如下:

此時,類神經網路計算第二次迭代的健康分數(y值)

以及第二次迭代的誤差

接著再計算第三次迭代的權重

而第三次迭代的健康分數(y值)

而在上述的運算過程當中,

值得注意的是「誤差」的大小以及正負對於權重調整的影響

起初類神經網路的誤差較大(97分),在第二次迭代誤差較小(-29.1分),

所以在計算第二次迭代的權重時,調整幅度較大

而因為正負的不同,也讓計算第二次迭代的權重時,是往正方向調整

計算第三次迭代的權重時,則是往負方向調整

我們以動畫回顧上述的過程

不過,在此例需要注意一個小細節,

權重調整的方向,是同時受到輸入值(xi)以及誤差(errort)影響,

若將上述算式的輸入值改為負值,權重的調整方向則會相反。

(試著勾選選單,並觀察權重調整的情況)

errort





wit+1 = wit + 𝛼 * xi * errort

(考慮xi為正的情況)

權重調整後,也會改變類神經網路的輸出值,

每次的調整都可能讓誤差降低

誤差越小,權重調整的幅度就越小

這也影響著類神經網路每次逼近期望輸出的幅度,

隨著類神經網路的輸出值越靠近期望輸出,類神經網路下一次逼近的幅度就會越小

我們以動畫回顧上述的過程

思考一下,回答問題

問題一

你認為除了像學習演算法調整類神經網路的權重,

有沒有其他策略也能夠調整好權重,讓類神經網路有正確的輸出?

問題二

在學習率與輸入值不變的情況下,

依照學習演算法,越小的誤差會如何影響權重調整的幅度?

回到最上方