<center> <img src = "https://i.imgur.com/dOOvnrN.jpg"> </center> ## Prerequisite Multilayer Perceptron(多層感知器)是一種前向結構的人工神經網絡,映射一組輸入向量到一組輸出向量。 ### Artificial Neural Networks  Artificial Neural Networks 是一種受到人類大腦運作方式啟發的計算模型。 Artificial Neural Networks 是機器學習和深度學習的基礎,旨在模擬生物神經元之間的信息傳遞和處理過程。 其中,神經元可以表示為一個數學函數,接受多個輸入 $x_1, x_2, \ldots, x_n$,這些輸入通過權重 $w_1, w_2, \ldots, w_n$ 進行加權總和,並經過 activation function $f$ 後產生輸出 $y$。 $$ y = f(w_1x_1 + w_2x_2 + \ldots + w_nx_n) $$ 而 activation function,它決定神經元的輸出,包括Sigmoid函數、ReLU(整流線性單元)函數和Tanh函數,其中 $x$ 表示總輸入。 例如,Sigmoid函數:$f(x) = \frac{1}{1 + e^{-x}}$ ### Backpropagation Backpropagation(反向傳播)是通過計算梯度来更新網路中的參數(weight / bias),以減小模型預測與實際值之間的誤差。 **演算法** 令 $L$ 表示損失函數,$W$ 表示權重,$b$ 表示偏差。對於具有 $N$ 層的神經網絡,第 $n$ 層的輸出可以表示為 $a^{(n)}$,第 $n$ 層的輸入表示為 $z^{(n)}$。 1. 輸入訓練數據和標籤:$(X, Y)$ 2. 初始化權重和偏差:對每個層 $n$,初始化 $W^{(n)}$ 和 $b^{(n)}$。 3. 重複以下步驟,直到達到停止條件: a. 前向傳播: $$ \begin{align*} z^{(n)} &= W^{(n)} a^{(n-1)} + b^{(n)} \\ a^{(n)} &= \sigma(z^{(n)}) \end{align*} $$ 其中 $\sigma$ 表示 activation function,通常是 Sigmoid、ReLU 或其他函數。 b. 計算損失: $$ L = \text{Loss function}(a^{(N)}, Y) $$ c. 反向傳播: $$ \begin{align*} \delta^{(N)} &= \nabla_a L \odot \sigma'(z^{(N)}) \quad \text{(輸出層誤差)} \\ \delta^{(n)} &= (W^{(n+1)})^T \delta^{(n+1)} \odot \sigma'(z^{(n)}) \quad \text{(隱藏層誤差)} \\ \end{align*} $$ 其中 $\nabla_a L$ 表示損失函數相對於輸出的梯度,$\odot$ 表示逐元素乘法。 d. 更新參數: $$ \begin{align*} \nabla_{W^{(n)}} L &= \delta^{(n)} (a^{(n-1)})^T \\ \nabla_{b^{(n)}} L &= \delta^{(n)} \end{align*} $$ 使用梯度下降或其他優化算法來更新權重和偏差: $$ \begin{align*} W^{(n)} &\leftarrow W^{(n)} - \alpha \nabla_{W^{(n)}} L \\ b^{(n)} &\leftarrow b^{(n)} - \alpha \nabla_{b^{(n)}} L \end{align*} $$ 其中 $\alpha$ 表示學習率。 4. 輸出訓練好的神經網絡模型。 ### Loss Functions Loss Functions(損失函數)是機器學習和深度學習中的重要概念,用於衡量模型的預測結果和實際觀測值之間的差異。 其目標是最小化這種差異,以使模型能夠做出更準確的預測。以下是損失函數的數學 latex 表達和解釋: 在機器學習中,我們通常使用一個訓練數據集(通常包含輸入特徵 $X$ 和對應的實際輸出或標籤 $Y$)來訓練模型,而模型的預測輸出(通常用 $y$ 表示)與實際標籤之間的差異可以通過損失函數 $L(y, Y)$ 來衡量。 損失函數的選擇取決於所解決的問題類型,例如分類或回歸。以下是兩個常見的損失函數示例: 1. 均方誤差(Mean Squared Error,簡稱 MSE): $$ (y, Y) = \frac{1}{n}\sum_{i=1}^{n}(y_i - Y_i)^2 $$ 均方誤差用於回歸問題,它衡量了預測值和實際值之間的平方差的平均值。目標是將這個平均差異最小化。 2. 交叉熵損失(Cross-Entropy Loss): $$ L(y, Y) = -\sum_{i}^{n}(Y_i \log(y_i) + (1 - Y_i) \log(1 - y_i)) $$ 交叉熵損失通常用於二元分類問題。它衡量了預測概率分佈和實際二元標籤的差異,目標是最小化這種差異,使預測更接近實際標籤。 ### Optimizers 優化器(Optimizers)是深度學習中的關鍵元件,用於調整神經網絡模型的權重,以最小化或最大化損失函數。優化器的目標是尋找模型參數的最佳值,使模型能夠更好地擬合訓練數據,並在測試數據上實現良好的泛化性能。 在深度學習中,我們通常使用一組參數(權重和偏差)來表示神經網絡模型。這些參數會在訓練過程中不斷更新,以最小化損失函數。優化器的主要工作是計算這些參數的梯度,然後根據梯度的方向和大小來更新參數值。 優化器的目標是尋找模型參數 $\theta$ 的最佳值,以最小化或最大化損失函數 $J(\theta)$。這可以表示為以下的最優化問題: $$ \min_{\theta} J(\theta) $$ 在每一個訓練迭代中,優化器計算損失函數對參數的梯度,即 $ \nabla J(\theta) $,梯度表示了損失函數在當前參數值附近的變化趨勢。優化器根據梯度的方向和大小來更新參數值,以便向損失函數的最小值移動。這個更新過程可以表示為: $$ \theta \leftarrow \theta - \alpha \nabla J(\theta) $$ 其中,$\alpha$ 是 Learning Rate,它決定了每次更新的步長。學習率越大,參數更新越快,但可能會導致不穩定的訓練過程;學習率越小,參數更新越穩定,但訓練速度較慢。 不同的優化器有不同的策略來計算梯度和調整參數,例如隨機梯度下降(SGD)、Adam、RMSprop等。每種優化器都有其優點和缺點,選擇適合特定任務的優化器是深度學習中的一個重要決策。 ## Background Multilayer Perceptron 是一種人工神經網絡(Artificial Neural Network)的架構。  MLP 主要用於解決各種機器學習問題,包括分類、回歸、圖像處理和自然語言處理等。 MLP 由多個神經元組成,這些神經元分布在不同的層中,通常包括輸入層、隱藏層和輸出層。以下是 MLP 的主要特點和結構: 1. **輸入層(Input Layer)**:接受輸入數據,例如圖像像素、特徵向量或文本數據。 2. **隱藏層(Hidden Layer)**:中間層,其內部神經元處理輸入數據,並通過權重和激活函數進行信息傳遞。MLP 可以包含多個隱藏層,具體的結構取決於任務和設計。 3. **輸出層(Output Layer)**:最後一層,它生成模型的預測結果。輸出層的數量通常取決於任務的性質,例如二元分類問題可能只有一個輸出神經元,而多類別分類問題可能有多個輸出神經元。 4. **權重(Weights)**:每個神經元之間都有權重,用於調整訊號的強度。 5. **激活函數(Activation Function)**:激活函數用於引入非線性性質,使 MLP 能夠擬合更複雜的數據。 6. **反向傳播(Backpropagation)**:MLP 使用反向傳播算法來訓練模型。 ## Reference 歡迎更仔細閱讀以下相關內容以了解本篇知識 - [機器學習- 神經網路(多層感知機 Multilayer perceptron, MLP)運作方式](https://chih-sheng-huang821.medium.com/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E7%A5%9E%E7%B6%93%E7%B6%B2%E8%B7%AF-%E5%A4%9A%E5%B1%A4%E6%84%9F%E7%9F%A5%E6%A9%9F-multilayer-perceptron-mlp-%E9%81%8B%E4%BD%9C%E6%96%B9%E5%BC%8F-f0e108e8b9af) - [Artificial Neural Networks (ANN)](https://ebrary.net/98123/economics/artificial_neural_networks) - [機器/深度學習: 基礎介紹-損失函數(loss function)](https://chih-sheng-huang821.medium.com/%E6%A9%9F%E5%99%A8-%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-%E5%9F%BA%E7%A4%8E%E4%BB%8B%E7%B4%B9-%E6%90%8D%E5%A4%B1%E5%87%BD%E6%95%B8-loss-function-2dcac5ebb6cb)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.