<center> <img src = "https://i.imgur.com/PiXrWYP.jpg"> </center> ## Prerequisite ### MLP & DNN 多層感知器(MLP)和深度神經網路(DNN)都是神經網路的類型,但它們有一些重要的區別。 **多層感知器(MLP)**: - MLP是最簡單和最常見的神經網路類型。 - 它由輸入層、一個或多個隱藏層和輸出層組成。 - MLP能夠處理線性可分和非線性可分的數據。 - MLP通常用於處理非線性可分的數據,如回歸分析。 - 由於其簡單性,它們最適合用於複雜的分類任務和預測建模。 **深度神經網路(DNN)**: - DNN是具有深層的人工神經網路。 - MLP是DNN的一個子集,而DNN可以有迴圈,MLP則始終是前饋的。 換句話說,MLP是一種特定類型的神經網路,具有至少三層(輸入層、輸出層和至少一個隱藏層),而DNN則是具有更多或更深層的神經網路。 ### Regularization 正則化(Regularization)是一種用於機器學習和神經網絡中的技術,旨在減少模型的過度擬合(overfitting)問題。 過度擬合發生在模型在訓練數據上表現很好,但在新的、未見過的數據上表現很差的情況下,這是因為模型在訓練數據上學到了噪聲或不必要的細節,而忽略了通用的特徵。 正則化的目標是使模型更加泛化,即在新數據上表現更好。 在神經網絡中,最常見的正則化方法包括 L1 正則化和 L2 正則化。 這些方法通常通過修改損失函數或成本函數,引入額外的懲罰項(penalty term)來實現。 1. **L1 正則化(Lasso 正則化)**: L1 正則化通常用於權重的稀疏化,可以幫助模型選擇最重要的特徵,並將不重要的特徵的權重變為零。它的數學表示如下: $$ J(\theta) = \text{損失函數} + \lambda \sum_{i=1}^{n} |w_i| $$ 其中: - $J(\theta)$ 是經過正則化的成本函數。 - $\lambda$ 是正則化參數,控制正則化的程度。 - $w_i$ 是權重參數。 2. **L2 正則化(Ridge 正則化)**: L2 正則化通常用於防止權重參數變得過大,它的數學表示如下: $$ J(\theta) = \text{損失函數} + \lambda \sum_{i=1}^{n} w_i^2 $$ 其中: - $J(\theta)$ 是經過正則化的成本函數。 - $\lambda$ 是正則化參數,控制正則化的程度。 - $w_i$ 是權重參數。 這些正則化項被添加到原始的損失函數中,通常以 $J(\theta)$ 的形式,然後通過梯度下降等優化算法來最小化整體成本函數。 正則化有助於避免過度擬合,提高模型的泛化能力,使其在新數據上更好地表現。 選擇正則化參數 $\lambda$ 是一個重要的超參數調整過程,它可以影響正則化的程度。 ## Goal 神經網絡是一種機器學習模型,模擬了人類神經元之間的信息傳遞,用於學習從數據中提取特徵和解決各種任務。 ## Background 一個典型的神經網絡可以表示為多個層次的神經元,其中包括輸入層(input layer)、隱藏層(hidden layers)和輸出層(output layer)。 我們用下標表示不同的層,並使用上標表示每個層中的神經元。 輸入層包含特徵或輸入變數,我們用 $x^{(i)}$ 表示第 $i$ 個輸入特徵。通常,這些特徵將組成一個向量 $x$,其中 $x = [x^{(1)}, x^{(2)}, \ldots, x^{(n)}]$,其中 $n$ 是特徵的數量。 隱藏層可以有多個層次,我們用 $a^{[l]}_j$ 表示第 $l$ 層的第 $j$ 個神經元的激活值。這些激活值是根據前一層的輸出計算得出的,通常使用 activation function 進行非線性轉換。具體來說,每個隱藏層的激活值可以通過以下方式計算: $$ a^{[l]}_j = f^{[l]}\left(\sum_{i} w^{[l]}_{ij}a^{[l-1]}_i + b^{[l]}_j\right) $$ 其中: - $l$ 表示層的索引(輸入層為 0,隱藏層和輸出層依次遞增)。 - $j$ 表示神經元的索引。 - $w^{[l]}_{ij}$ 表示第 $l$ 層的第 $j$ 個神經元與第 $l-1$ 層的第 $i$ 個神經元之間的權重。 - $b^{[l]}_j$ 表示第 $l$ 層的第 $j$ 個神經元的偏差項(bias term)。 - $f^{[l]}$ 是 activation function,用於引入非線性性質。 輸出層的激活值 $a^{[L]}_j$ 用於表示神經網絡的輸出。在分類任務中,通常使用 softmax 函數來獲得每個類別的概率分佈。 神經網絡的訓練過程涉及到調整權重和偏差項,以最小化損失函數,以實現所需的任務,例如分類或回歸。 以下是有關 Neural Network 不同類型的架構  ## Implementation ## From Scratch [Feedforward Neural Network](https://github.com/jacksonchen1998/2023-NYCU-DL/blob/main/Homework%201/hw1-1/hw1_1_311511052.ipynb) ## More example [Natural Language Processing with Disaster Tweets](https://www.kaggle.com/competitions/nlp-getting-started/overview) ## Reference 歡迎更仔細閱讀以下相關內容以了解本篇知識 - [一文了解神经网络MLP(ANN), CNN, RNN](https://zhuanlan.zhihu.com/p/261056748) - [The mostly complete chart of Neural Networks, explained](https://kim.hfg-karlsruhe.de/neural-network-chart/)
×
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
.