iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
AI/ ML & Data

Web仔也來學ML系列 第 7

Web仔也來學ML [Day 7] - 常見名詞解釋(二)

  • 分享至 

  • xImage
  •  

優化演算法 (Optimization Algorithms)

機器學習的目標是為一個特定的問題找到一個最適合的function,這個function在大多數情況下的推理(或是稱作預測)是準確的,我們把這個function稱之爲模型。這些模型具有多個參數,優化算法的目標是對這些參數進行調整以最小化模型對未來未知數據的預測誤差(泛化能力),通常衡量為損失函數。模型訓練涉及通過對這些參數的優化來不斷減少模型的預測錯誤。

優化演算法在機器學習中扮演著關鍵角色,決定了模型訓練的效率與最終的性能表現。大多數的優化演算法採用迭代方式,由隨機選擇的初始參數開始,通過多次迭代逐步調整這些參數,以尋求接近全局最佳解決方案。在每次迭代中,依據損失函數的梯度資訊來指導參數的更新方向。

梯度下降 (Gradient Descent) 是最常見的優化方法。我們可以通過計算損失函數(像是MSE、MAE、Cross-Entropy等)相對於模型參數的梯度來獲得我們需要更新的參數。梯度可以簡單理解為損失函數的斜率,也就是當前參數設定下,損失會往哪個方向增長。也就是説,當我們沿梯度的反方向移動時,損失會減少,因此,它被稱為梯度下降。

其他常見的優化演算法

  1. 動量法 (Momentum):
    動量法是一種梯度下降的變種,它引入了物理學中的動量概念來加速參數更新。它累積了之前幾次梯度的方向,讓模型能夠在長期的平坦區域加速進入深谷,從而更快地收斂到局部最小值。在優化具有狹長谷底的損失函數時,動量法的效果是非常明顯的。

  2. Adam:
    Adam 是目前最流行的最佳化演算法之一,他結合了動量法RMSProp的優點。通過自動調整學習率,確保每個參數都有不同的學習率,尤其擅長處理稀疏梯度非穩態損失函數。由於 Adam 在不同的資料或模型結構中都有穩定的收斂特性,因此在深度學習領域被廣泛使用。


啟動函數 (Activation Functions)

在神經網絡裏面,啟動函數能夠讓整個網絡擁有非線性的能力。它決定了每一層的輸出如何傳遞到下一層,從而使網絡能夠學習複雜的模式。如果沒有啟動函數,神經網絡每一層的輸出只是對輸入進行線性變換。即使網絡的深度再深,沒有非線性,最終的輸出仍然是輸入的線性組合,這樣的網絡無法捕捉數據中的非線性結構。
啟動函數的引入解決了這個問題,讓神經網絡能夠逼近任意複雜的函數,從而解決更複雜的機器學習任務。

常見的啟動函數

  1. Sigmoid:
    我們透過Sigmoid將輸入壓縮到0~1之間,常用於二元分類問題的輸出層(就是得到的結果)來表示概率。但是Sigmoid有一個缺點就是會導致梯度消失,特別是在深層神經網絡中訓練時,這個問題會使得網絡的權重更新變得非常緩慢。像是當輸入數值較大或較小時,Sigmoid的導數接近於0,這會導致反向傳播中的梯度變得極小,從而使得網絡的參數幾乎不會更新,特別是在靠近輸出層的層中表現得尤為明顯。

  2. ReLU:
    ReLU 是目前使用最廣泛的啟動函數之一(通常還會跟著softmax一起搭配使用),它將所有負數都變成零,而正數保持不變,這使到ReLU的計算效率很高,同時也避免了Sigmoid的梯度消失問題。

  3. tanh:
    tanh 函數的輸出範圍是 [-1, 1],與 Sigmoid 類似,但它輸出是以 0 為中心對稱分佈,這使得 tanh 在某些情況下比 Sigmoid 更有效。在深度網絡的中間層,tanh 經常被用來減少梯度消失的問題。

  4. softmax:
    softmax 函數將一組實數轉換為概率分佈,適合用於多分類問題。它的特點是保證輸出層的所有數值加起來等於 1,使得每個輸出值可以被解釋為某一類的概率。softmax 通常在神經網絡的輸出層使用,特別是處理多分類問題時。


上一篇
Web仔也來學ML [Day 6] - 資料的格式在數學上的表達
下一篇
Web仔也來學ML [Day 8] - 邏輯回歸(Logistic Regression)(上)
系列文
Web仔也來學ML30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言