AdaGradとは
AdaGradとは、機械学習における最適化アルゴリズムの一種で、学習率を各パラメータごとに適応的に調整する手法です。2011年にDuchiらによって提案されたこのアルゴリズムは、過去の勾配情報を蓄積することで、頻繁に更新されるパラメータの学習率を小さくし、まれに更新されるパラメータの学習率を大きく保ちます。
このアルゴリズムは確率的勾配降下法における、学習率の手動調整の問題を解決するために開発されました。AdaGradでは、各パラメータの過去の勾配の二乗和を記録し、その平方根で学習率を除算することで、パラメータごとに異なる学習率を自動的に設定します。
学習率の適応的調整メカニズム
AdaGradの学習率調整は、各パラメータの勾配履歴を累積する行列を用いて実現されます。具体的に言うと、時刻tにおけるパラメータθの更新式は、θ = θ - η / √(G + ε) × gとなり、ここでGは過去の勾配gの二乗和、ηは初期学習率、εは数値安定性のための微小値です。
| 変数名 | 説明 |
|---|---|
| θ | 更新対象のパラメータ |
| η | 初期学習率(0.01程度) |
| G | 勾配の二乗和累積値 |
| g | 現在の勾配ベクトル |
| ε | ゼロ除算防止値(10^-8) |
この仕組みにより、大きな勾配を持つパラメータは学習率が急速に減少し、小さな勾配を持つパラメータは比較的大きな学習率を維持します。テキスト分類や自然言語処理のような「まばらなデータ」を扱うタスクでは、出現頻度の低い特徴量に対しても適切な学習が可能になるため、特に有効性を発揮します。
Pythonによる実装例
AdaGradをPythonで実装する場合、NumPyライブラリを使用して勾配の二乗和を管理します。以下は基本的な実装例で、パラメータ更新の一連の流れを示しています。
import numpy as np
class AdaGrad:
def __init__(self, learning_rate=0.01, epsilon=1e-8):
self.lr = learning_rate
self.epsilon = epsilon
self.h = None
def update(self, params, grads):
if self.h is None:
self.h = np.zeros_like(params)
self.h += grads * grads
params -= self.lr * grads / (np.sqrt(self.h) + self.epsilon)
return params
上記のコードでは、h変数が勾配の二乗和を累積する役割を果たし、初回の更新時にパラメータと同じ形状のゼロ配列として初期化されます。updateメソッドでは、現在の勾配gradsの二乗をhに加算し、学習率をhの平方根で除算した値を用いてパラメータを更新することで、適応的な学習率調整を実現しています。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
PythonをWebで実行する方法
共通テスト「情報Ⅰ」2年目で変わる、日本の教育と学び方
gitでブランチ(branch)を切り替える方法
git cloneでブランチを指定する方法
64GBのメモリが必要な人・不要な人の特徴
PCを再起動するコマンド一覧
CapsLock以外で大文字になる原因【Windows編】
パソコンで大文字になるのを解除する方法
面白いAIの活用事例を業界別に紹介
Gitでcommit(コミット)を取り消す方法
ITやプログラミングに関するニュース
サイボウズがkintone AIを正式提供、β版から約1年を経てクレジット制を導入
ロゼッタのラクヤクAIがCSRドラフト作成期間を90%以上短縮、従来4週間を約2日に
AI CROSSが不動産業界向け生成AI伴走支援を開始、アスコットの業務AI実装を実践サポート
日本情報クリエイトが「オーナー提案AIロボⅡ」売買査定を刷新、月1万円からW査定が回数無制限に
Wur株式会社がAI新規事業診断サービス「MVP事業診断レポート」をリリース、12の質問で事業構想を約10分で分析
バトンズがM&A専門家向け「AI概要書」β版を提供開始、企業概要書のドラフトを最速3分で自動生成
SCSKが観光DXサービス「Connexia」を開発、首里城公園でNFT活用の周遊促進が始動
Verdent AI発表、エンジニア不要でソフトウェアを構築する「AIエンジニアリングチーム」が登場
ゼネラルBREXAテクノロジーが外食・小売向けAIサービス「aimana」を開発、店長の意思決定をデータで支援
田中組がKencopa工程AIエージェント製品版を先行利用開始、建設現場の工程管理属人化を解消へ
