自適應梯度(AdaGrad)是什麼?

根據過去梯度的平方和自動調整各參數學習率的最佳化演算法,使高頻參數學習率較小,低頻參數學習率較大。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

英文
AdaGrad
主題標籤
模型訓練、最佳化、神經網路
考點定位
非 iPAS 核心術語
最後更新
2026/06/22
自適應梯度(AdaGrad)是什麼? 模型訓練最佳化
術語快查

搜尋意圖: 如果你在找「自適應梯度 是什麼」或「自適應梯度 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。

TL;DR: 根據過去梯度的平方和自動調整各參數學習率的最佳化演算法,使高頻參數學習率較小,低頻參數學習率較大。

實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。

下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。

根據過去梯度的平方和自動調整各參數學習率的最佳化演算法,使高頻參數學習率較小,低頻參數學習率較大。

核心概念

AdaGrad 的核心理念是參數應該有不同的學習率。在神經網路訓練中,不同參數的梯度分佈並不均勻:某些參數對應的特徵可能出現頻繁,產生大的梯度更新;其他參數對應的特徵可能出現罕見,梯度更新較小。AdaGrad 通過監控每個參數的累積梯度平方和來實現自適應學習率調整。

演算法維護一個累積器向量,逐步累積每個參數的梯度平方。學習率與累積器的平方根成反比。這意味著參數被更新的次數越多,其對應的累積梯度平方和越大,分配給該參數的學習率就越小。

運作原理

AdaGrad 的更新規則如下:

  1. 初始化累積器向量 v = 0(與參數維度相同)
  2. 每個訓練步驟中,計算梯度 g = ∇f(θ)
  3. 累積梯度平方:v = v + g ⊙ g(⊙ 表示元素積)
  4. 更新參數:θ = θ - (η / √(v + ε)) ⊙ g,其中 η 是基礎學習率,ε 是小常數防止除零

核心特性是適應性調整:早期訓練時,累積器 v 較小,學習率較大,參數更新迅速;隨著訓練進行,v 逐漸增大,學習率逐漸減小。這種自動衰減機制無需人工設定學習率衰減計劃。

實際應用

AdaGrad 在稀疏數據和自然語言處理領域特別有效。在詞嵌入訓練中,稀有詞彙對應的參數更新次數少,會保持較大學習率,而常見詞彙參數會逐漸減速。這正好符合自然語言的稀疏性特點。

AdaGrad 在推薦系統中也廣泛應用,因為特徵頻率不均(某些用戶或物品出現頻繁,其他罕見出現)。在廣告點擊率預測中,AdaGrad 能自動平衡高頻和低頻特徵的學習。

Google 的論文原始應用包括線上學習和訓練大規模分布式系統。AdaGrad 的自適應特性使其特別適合非均勻數據分佈的場景。

常見誤區

誤區一:認為 AdaGrad 可以完全不設定學習率。實際上 AdaGrad 仍需設定基礎學習率 η,自適應只調整相對比例,不是完全自動化。

誤區二:認為 AdaGrad 在所有場景都優於固定學習率。實際上 AdaGrad 在學習率單調遞減的情況下可能過早停止學習,特別是在長期訓練中,累積器會變得非常大,學習率趨近於零。

誤區三:忽視累積梯度平方的非負特性。由於平方運算,累積器單調遞增,永遠無法恢復。這在某些應用中可能導致收斂問題。

與相關技術的比較

  • AdaGrad vs SGD:SGD 使用固定學習率,容易在陡峭區域震蕩,在平坦區域進度緩慢。AdaGrad 通過自適應學習率改善了這個問題。

  • AdaGrad vs RMSProp:RMSProp 改進了 AdaGrad 的累積器單調遞增問題,使用指數加權移動平均而非簡單累積,使學習率衰減更溫和。

  • AdaGrad vs Adam:Adam 結合了動量法和自適應學習率,同時使用梯度的一階和二階矩估計。Adam 通常在深度學習中表現更好,但 AdaGrad 在特定稀疏數據場景下仍有優勢。

常見問題

為什麼 AdaGrad 特別適合稀疏數據?

在稀疏數據中,不同特徵的出現頻率差異很大。低頻特徵的參數更新次數少,累積梯度平方也小,所以能保持較大的學習率。這使得罕見特徵能有足夠的學習信號。而高頻特徵會自動降速,避免過度擾動。這種自動平衡正好匹配稀疏數據的特點,無需手工調整不同特徵的超參數。

AdaGrad 的主要缺點是什麼?

最主要的缺點是學習率單調遞減。累積梯度平方是持續增長的,永遠無法減小,導致學習率不斷衰減,在訓練後期可能完全停止更新。這在長期訓練中成為瓶頸。此外,超參數 ε(防止除零的常數)需要仔細調整,否則會影響學習率的實際大小和訓練穩定性。

AdaGrad 如何在分布式訓練中應用?

在分布式設定中,每個工作節點維護自己的累積器副本,計算本地梯度並更新本地累積器。在同步更新步驟中,各節點交換梯度,聚合累積梯度平方。這要求節點間的通信包括梯度和累積器狀態,增加了通信開銷。但 AdaGrad 的自適應特性能幫助平衡不同節點接收數據不均的問題。