AI-For-Beginners/translations/mo/lessons/3-NeuralNetworks/04-OwnFramework
leestott e7369eb9ad 🌐 Update translations via Co-op Translator 2025-08-28 12:35:46 +00:00
..
lab 🌐 Update translations via Co-op Translator 2025-08-28 12:35:46 +00:00
OwnFramework.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 12:35:46 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-08-26 12:09:18 +00:00

README.md

神經網路簡介:多層感知器

在上一節中,你學習了最簡單的神經網路模型——單層感知器,一種線性二分類模型。

在本節中,我們將擴展這個模型,構建一個更靈活的框架,使我們能夠:

  • 除了二分類之外,還能執行多分類
  • 除了分類問題之外,還能解決迴歸問題
  • 區分那些無法線性分離的類別

我們還將在 Python 中開發自己的模組化框架,讓我們能夠構建不同的神經網路架構。

課前測驗

機器學習的形式化

讓我們從形式化機器學習問題開始。假設我們有一個訓練數據集 X 和標籤 Y,我們需要構建一個模型 f,以便做出最準確的預測。預測的質量由損失函數 來衡量。以下是常用的損失函數:

  • 對於迴歸問題,當我們需要預測一個數值時,可以使用絕對誤差i|f(x(i))-y(i)|,或平方誤差i(f(x(i))-y(i))2
  • 對於分類問題,我們使用0-1損失(本質上與模型的準確率相同),或者邏輯損失

對於單層感知器,函數 f 被定義為線性函數 f(x)=wx+b(其中 w 是權重矩陣,x 是輸入特徵向量,b 是偏置向量)。對於不同的神經網路架構,這個函數可以採用更複雜的形式。

在分類問題中,通常希望將網路輸出轉換為對應類別的概率。為了將任意數字轉換為概率(例如對輸出進行正規化),我們通常使用softmax函數 σ,這樣函數 f 就變為 f(x)=σ(wx+b)

在上述 f 的定義中,wb 被稱為參數 θ=⟨w,b⟩。給定數據集 ⟨X,Y⟩,我們可以將整個數據集上的總誤差表示為參數 θ 的函數。

神經網路訓練的目標是通過調整參數 θ 來最小化誤差

梯度下降優化

梯度下降是一種著名的函數優化方法。其核心思想是,我們可以計算損失函數相對於參數的導數(在多維情況下稱為梯度),並調整參數以減少誤差。這可以形式化為以下步驟:

  • 用隨機值初始化參數 w(0), b(0)
  • 重複以下步驟多次:
    • w(i+1) = w(i)-η∂ℒ/∂w
    • b(i+1) = b(i)-η∂ℒ/∂b

在訓練過程中,優化步驟應基於整個數據集計算(記住損失是通過所有訓練樣本的總和計算的)。然而,在實際操作中,我們通常取數據集的小部分,稱為小批量minibatches,並基於數據子集計算梯度。由於每次隨機選取子集,這種方法被稱為隨機梯度下降SGD

多層感知器與反向傳播

如上所述,單層網路能夠分類線性可分的類別。為了構建更豐富的模型,我們可以將多層網路結合起來。數學上,這意味著函數 f 將具有更複雜的形式,並通過以下多個步驟計算:

  • z1=w1x+b1
  • z2=w2α(z1)+b2
  • f = σ(z2)

這裡,α 是非線性激活函數σ 是 softmax 函數,參數 θ=<w1,b1,w2,b2>。

梯度下降算法保持不變,但計算梯度會更加困難。根據鏈式法則,我們可以計算導數如下:

  • ∂ℒ/∂w2 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂w2)
  • ∂ℒ/∂w1 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂α)(∂α/∂z1)(∂z1/∂w1)

鏈式法則用於計算損失函數相對於參數的導數。

注意,所有這些表達式的最左部分是相同的,因此我們可以從損失函數開始,沿著計算圖“向後”計算導數。因此,多層感知器的訓練方法被稱為反向傳播backpropagation簡稱“backprop”。

計算圖

TODO: 圖片來源

我們將在筆記本範例中更詳細地介紹反向傳播。

結論

在本課中,我們構建了自己的神經網路庫,並將其用於一個簡單的二維分類任務。

🚀 挑戰

在隨附的筆記本中,你將實現自己的框架來構建和訓練多層感知器。你將能夠詳細了解現代神經網路的運作方式。

請前往 OwnFramework 筆記本並完成相關內容。

課後測驗

複習與自學

反向傳播是人工智慧和機器學習中常用的算法,值得深入研究

作業

在本次實驗中,你需要使用本課中構建的框架來解決 MNIST 手寫數字分類問題。

免責聲明
本文件使用 AI 翻譯服務 Co-op Translator 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。