StatQuest 筆記分享: 人工神經網路4 — Multiple Inputs and Outputs

Informula
IMU Framework Design
Feb 9, 2023

接續著上一篇人工神經網路3 — ReLU, Josh在這篇以經典資料學習的資料集 - Iris 鳶尾花資料集來介紹人工神經網路也能應用在更複雜的模型。不同於之前的一個輸入節點(Input Node)、一個輸出節點(Output Node)以及包含兩個節點的隱藏層(Hidden Layers),這次的模型以花瓣(Petal)和萼片(Sepal)的寬度來預測三種鳶尾花的品種,Setosa/ Versicolor/ Virginica,因此模型會如下圖,兩個輸入節點和三個輸出節點。

Josh把問題拆解成三個部分,分別預測三個輸出節點來簡化解題流程。

Setosa

簡化後的模型變成模型會如下圖,兩個輸入節點和一個輸出節點。

因此,我們會需要一個三維的空間圖形來繪製函數擬合的狀況。Josh同時有標準化調整花瓣和萼片的寬度落在0到1以方便計算和呈現。

上方藍色活化函數

  1. 第一個資料點(花瓣, 萼片) = (P,S) = (0,0)
  • (0 * -2.5) + (0 * 0.6) + 1.6 = 1.6 => 上方藍色活化函數的X數值
  • 藍色活化函數f(x) = max(0,x) = max(0,1.6)=1.6
  • 將1.6繪製在3維圖上

2.第二個資料點(花瓣, 萼片) = (P,S) = (0.2,0)

  • (0.2 * -2.5) + (0 * 0.6) + 1.6 = 1.1 => 上方藍色活化函數的X數值
  • 藍色活化函數f(x) = max(0,x) = max(0,1.1)=1.1
  • 將1.1繪製在3維圖上

3. 持續增加P數值(維持S=0)並重複上方算式將得到的點繪製在3維圖上會得到下方動圖的藍色點列。

4. 開始增加S數值並重複上方算式將得到的點繪製在3維圖上得到下方動圖的藍色折面。

5. 仔細看深藍色的部分維因為ReLU活化函數設定max(0,x)所產生的,意謂超過某一個組合,活化函數數值只會是0。

6. 乘上-0.1,比如第一個資料點的到的1.6會變-0.16。

7. 將整個平面乘上-0.1,會得到以下動圖平面。

下方橘色活化函數

  1. 遵循以上步驟,將各資料點計算後輸入下方橘色活化函數,持續增加P數值(維持S=0)並重複上方算式將得到的點繪製在3維圖上會得到下方動圖的橘色點列。

2. 開始增加S數值並重複上方算式將得到的點繪製在3維圖上得到下方動圖的橘色折面。

3. 將整個平面乘上1.5,會得到以下動圖平面。

整合兩平面

1.將兩個面做相加,比如第一個資料點: -0.15 + 1.05 = 0.89。

2. 結合兩平面得到一綠色皺褶面

結果解析

  1. 觀察這綠色皺褶平面,會發現當花瓣寬度(標準化值)接近0時,Setosa的值會最大。

2. 以(P,S) = (0.5,0.37)這個資料點來看,得到數值維0.09,這朵有高機率不是Setosa。

Versicolor

1.上圖為Versicolor的人工神經網路模型,我們可以依循Setosa的步驟,代入新的數值,產生一個紅色的皺褶面。

2.深入解析此紅色皺褶面,我們會發現當花瓣寬度(標準化值)接近0.4時,Versicolor的值會最大。

Virginica

1.上圖為Virginica的人工神經網路模型,我們可以依循Setosa的步驟,代入新的數值,產生一個紫色的皺褶面。

2.深入解析此紫色皺褶面,我們會發現當花瓣寬度(標準化值)接近1時,Virginica的值會最大。

ArgMax & SoftMax

1.回到上面的(P,S) = (0.5,0.37)這個資料點,帶入三個品種的皺褶面,Vesicolor會得到最高的值,

2.在後續章節會討論到Argmax和Softmax來深度解析這些數值。

Thank you and enjoy it :)

--

--