<center> <img src = "https://i.imgur.com/dOOvnrN.jpg"> </center> ## Prerequisite Multilayer Perceptron(多層感知器)是一種前向結構的人工神經網絡,映射一組輸入向量到一組輸出向量。 ### Artificial Neural Networks ![](https://hackmd.io/_uploads/SJOsgilkT.png) 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)的架構。 ![](https://hackmd.io/_uploads/ry_zQJzka.png) 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)