AdaGrad
機械学習や深層学習における最適化のための最も一般的なアルゴリズムの 1 つに、勾配降下法があります。勾配降下法は機械学習モデルのトレーニングに使用されます。
勾配降下法の種類
現在、機械学 習や深層学習のアルゴリズムに使用されている勾配降下法は、主に3種類あります。
-
バッチ勾配降下法
3 種類の勾配降下法の中で、バッチ勾配降下法は一番容易な手法です。トレーニングデータセットの各データの誤差を計算しますが、トレーニングデータの計算が全て終了するまでモデルは更新されません。
-
確率的勾配降下法
確率的勾配降下法は、トレーニングデータセットの各データの誤差を計算し、モデルを随時更新します。
-
ミニバッチ勾配降下法
ミニバッチ勾配降下法は、全トレーニングデータを計算するのではなく、バッチサイズに基づいて少量のデータを集計し、各バッチの更新を行います。最適化手法として定着しているのは確率的勾配降下法です。確率的勾配降下法は、シンプルな概念で、高い割合で効率的に機械学習モデルのトレーニングを構築できますが、パラメータ(ステップサイズパラメータ)を手動で調整する必要があります。このチューニングを自動化するためのさまざまなオプションが提案されており、その実用的な手法の1つがAdaGradです。標準的な確率的劣勾配法は主に、観測データの特徴を無視する既定の手順方式に従っていますが、AdaGradのアルゴリズムは、より有益な勾配ベースの学習を実行するために、過去の反復計算による観測データの形式の情報を動的に取り入れます。AdaGradには、2つのバージョンがあります。実際に使用されているパージョンのDiagonal AdaGradは、学習率の維持を主要な特徴とし、次元ごとに1つの学習率を適用します。2つめのバージョンはFull AdaGradとして知られ、方向ごとに1つの学習率を適用します(PSDの全行列など)。Adaptive Gradient Algorithm (Adagrad)は勾配に基づいて最適化するアルゴリズムです。過去の観測データに関する情報を取り入れることで、学習率がベクトルの要素ごとにパラメータに適用されます。低頻度の特徴に関連するパラメータには更新量を増やし(高い学習率など)、高頻度の場合は更新量を減らします(低い学習率)。Adagradの更新量は小さいため、スパースデータ(NLPや画像認識)の処理に適しています。各パラメータには固有の学習率があり、スパースな勾配に伴う問題解決能力が向上します。
AdaGrad を使用するメリット
- 手動による学習率のチューニングが不要
- 重みのスケーリングが異なる場合、シンプルな確率的勾配降下法と比較して収束が高速で確実
- マスターステップのサイズの影響をあまり受けない