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



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

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

學習分類昆蟲資料

在本章節中,我們將呈現類神經網路如何「自動」調整權重

最後學習到如何分類毛毛蟲與瓢蟲的資料

當然,這是一個非常簡單的案例,實際的分類問題還是複雜許多,

但我們仍然可以透過簡單的案例,理解類神經網路的運作過程

首先,我們準備毛毛蟲與瓢蟲的資料:

如果將資料呈現在二維平面上,會像下圖:

(試著操作以下的頁面,並觀察其位置與長寬的變化)

還記得我們在第二章提到類神經網路如何學習嗎?

我們在第二章節,就希望你熟悉並且牢記這個概念,

因為我們接下來要介紹類神經網路如何「自動」調整權重,

也是同樣的概念,只不過我們更深入到數學的運算當中,

然而,為何要使用數學去建立類神經網路呢?

以電腦科學的角度來看,是因為這整個過程我們希望「自動化」、「程式化」,

用數學的表示方式,才方便我們透過電腦執行這件事情

編號
1
2
3
4
5
6
7
8
9
10
圖片
類別
讀取
讀取圖片
並計算輸出值
調整權重
重新
計算輸出值
w11:
0.2
w12:
0.4
w13:
0.6
...
...
wnn:
0.2
w11:
0.5
w12:
0.4
w13:
0.1
...
wnn:
0.1
此張圖片是狗的機率y1 : 0.31
此張圖片是貓的機率y1 : 0.31

我們先說明一下類神經網路的訓練過程,讓你更加理解下方呈現的訓練過程,

每次迭代中,類神經網路會讀取每一筆資料,計算出一個輸出值,再與期望輸出比較

最後再透過誤差來調整權重,而調整權重的方式就是依照我們本章介紹的方式。

另外,在此我們必須要多說明的還有四件事情:

第一、在這個問題情境中,我們設定𝜃值為0.2,是為了簡化討論,你在實際使用類神經網路時可以任意調整𝜃值。

第二、我們設定𝛼值為0.2,也是為了簡化討論,你在實際使用類神經網路時可以任意調整𝛼值。

第三、我們設定類神經網路的起始權重為(w1, w2) = (0.3, 0.1),這也是為了簡化討論,

實際上在應用類神經網路時,初始權重通常是亂數產生的

第四、在這個問題情境中,我們挑選的激勵函數是步階函數,並且設定毛毛蟲為+1,瓢蟲為0,

同樣地,這在你實際使用類神經網路時,也都是可以任意調整的

(按下進行迭代後,請仔細觀察訓練類神經網路的過程)

0

0

0.3

0.1

0.2

0.2

0

0

0

0

0

我們將訓練的過程,用表格的方式呈現在下方

希望你體會過類神經網路的訓練過程後,可以再自己動動腦筋演算看看這個訓練過程,

雖然我們通常是撰寫程式交給電腦執行這整個過程,但自己動腦筋演算,

對於熟悉這個概念是有幫助的,試試看吧。

(附上前個章節介紹的學習演算法:wnew = wi + 𝛼 * xi * Error)

最後,我們再次呈現這個大家已經熟悉的頁面,

這個類神經網路與先前章節不同的就是,它多了一個修正權重的部分,

你可以一邊操作看看,一邊動動腦筋再演算幾次這個章節介紹的概念。

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

(重點提醒:雖然可以任意輸入期望輸出,但在使用步階函數的情況下,合理的期望輸出只有+1或0)

0

0

0

0

思考一下,回答問題

問題一

假設X = (0.2)·x1 + (0.3)·x2 - 2,

並且Y = step(X),

設定學習率𝛼值為0.2。

(提示:誤差 = 期望輸出 - y值)

(提示:wnew = wi + 𝛼 * xi * Error)

試著算出表格中,A~P所代表的數字,

你可以試著自己計算看看,也可以試著使用上方的類神經網路計算。

回到最上方