iPAS 備考專區 登入

iPAS AI 應用規劃師 中級 科目三 機器學習技術與應用・114 年第二次・L23・第 17 題

哪種優化演算法內建動量機制?

原題

下列哪一種優化演算法內建動量(Momentum)的設計機制?

白話

深度學習訓練時需要一個「優化演算法」來決定每次更新模型參數的方式。動量(Momentum)是一種讓更新方向考慮「過去累積趨勢」的機制,有些優化演算法在設計上就把動量機制內建進去了。

題目列了四種不同的優化演算法:SGD+Momentum、Adam、RMSProp、Adagrad。

問你:其中哪一個在演算法設計上「內建」了動量機制?

一句話總結

四個選項中,Adam(Adaptive Moment Estimation)在演算法設計上內建了動量機制:Adam 同時維護梯度的一階矩(動量,m)和二階矩(速度,v),其中一階矩就是動量機制的核心,而不只是像 SGD+Momentum 那樣把動量「附加」在標準 SGD 之外。

情境

先感受問題:訓練時為什麼需要「慣性」?

「宇捷 AI 研究室」的工程師阿雯在訓練一個語言模型。她注意到用純粹的隨機梯度下降(SGD),每次更新方向都在抖動:某個方向連續下降,但偶爾一個噪音樣本讓梯度反方向走,訓練損失的曲線像心電圖一樣鋸齒狀。

她想要的效果是:「如果連續幾步都往同一個方向走,就要加速前進;如果忽然要轉方向,就要慢下來確認。」這就是動量機制的直覺。

動量讓優化器有「慣性」:過去的梯度方向會影響當前的更新,不容易被單一異常樣本帶偏方向。

舊方法

純 SGD 沒有動量的問題

  1. 更新方向受單一樣本的噪音影響大:每個 Mini-batch 梯度估計都有隨機誤差,純 SGD 的更新路徑因此鋸齒狀搖擺,無法沿最佳方向穩定前進。
  2. 在鞍點(Saddle Point)容易卡住:某個方向梯度為零,純 SGD 不知道往哪走,動量可以「靠慣性」衝過鞍點繼續前進。
  3. 收斂速度慢:如果最佳方向是某個對角線方向,純 SGD 會在垂直方向震盪,只有對角方向的少量分量真的在推進,浪費計算。
  4. 對學習率設定敏感:學習率稍大就震盪,稍小就太慢,難以找到最佳平衡點。有動量的演算法通常對學習率的選擇更寬容。
  5. 難以跳出局部最小值:局部最小值附近梯度接近零,純 SGD 容易停在那裡,動量的慣性有時能幫助跳脫。

新方法

Adam 怎麼內建動量機制

阿雯最後選擇了 Adam 優化器。Adam 的設計結合了兩個機制:

第一個機制(動量):維護梯度的指數移動平均(m),這就是動量機制。m 記錄的是「過去梯度的加權累積」,讓更新方向有慣性,不容易被單一噪音樣本帶偏。

第二個機制(自適應學習率):維護梯度平方的指數移動平均(v),用來自適應地調整每個參數的有效學習率,梯度變化大的參數自動降低學習率,梯度稀疏的參數自動提高學習率。

Adam = Momentum(動量) + RMSProp(自適應學習率),兩個機制都在演算法的核心設計中,不是外加的附件。

區分重點:SGD+Momentum 是把動量「附加」給 SGD;Adam 是在演算法設計上從一開始就以動量(一階矩)為核心構件之一,動量是 Adam 的 A(Adaptive Moment)中「Moment」的直接體現。

這就是選項 B 講的:Adam。

錯選項

為什麼其他選項是錯的

ASGD+Momentum

字面在說什麼

SGD+Momentum 顧名思義就是「SGD 加上動量」,名字裡直接寫了 Momentum。

為什麼不對

題目問的是「內建動量的設計機制」。SGD+Momentum 是把動量「附加」在 SGD 之外,動量是外掛給 SGD 的額外組件。而 Adam 的完整名稱是「Adaptive Moment Estimation(自適應動量估計)」,動量(一階矩,m)是 Adam 演算法核心設計的一部分,不是外加的。官方答案是 B(Adam),因為動量是 Adam 的固有設計,不是附加功能。

誰會選錯

看到「Momentum」這個詞直接在選項 A 的名字裡,就直覺選 A 的人。這是考驗應試者是否真正理解「內建(inherent design)」vs「外加(add-on)」的差異。SGD+Momentum 的動量是後加的,Adam 的動量是本來就有的。

CRMSProp

字面在說什麼

RMSProp(Root Mean Square Propagation)是一種自適應學習率優化器。

為什麼不對

RMSProp 只維護梯度平方的指數移動平均(v),用來自適應地調整學習率。它沒有動量機制(不維護梯度本身的指數移動平均)。事實上,Adam 可以看作 RMSProp + 動量的組合:Adam 在 RMSProp 的基礎上加入了一階矩(動量)。

誰會選錯

把「自適應學習率」和「動量」混為一談的人。自適應學習率(RMSProp)和動量是兩個獨立的概念,Adam 剛好兩個都有,但 RMSProp 只有前者。

DAdagrad

字面在說什麼

Adagrad(Adaptive Gradient)是最早的自適應學習率優化器之一,讓每個參數有不同的學習率。

為什麼不對

Adagrad 累加所有歷史梯度的平方和,讓頻繁更新的參數自動降低學習率。它沒有任何動量機制。而且 Adagrad 的主要缺點是學習率只降不升,長期訓練後學習率可能趨近於零,讓訓練完全停止,這正是 RMSProp 設計來修正的問題。

誰會選錯

對各優化器名稱記憶混亂,把 Adagrad 和 Adam 混淆的人。Adagrad 和 Adam 都含有「Ada」字首,都屬於自適應系列,但 Adagrad 沒有動量,Adam 才有。

變形題

同個考點下次怎麼變形

延伸

想再往下看,這 5 個

答案、題目或解析有問題?回報這題

出處:iPAS 經濟部產業人才能力鑑定 ・ 114 年第二梯次 iPAS AI 應用規劃師 中級 科目三 機器學習技術與應用 第 17 題

看官方原文 PDF

原題 © 經濟部產業發展署,AITerms.tw 僅作教學解析使用,本站解析以 CC BY-NC-SA 4.0 授權。