最適化アルゴリズムは、数学的最適化問題の最良の解を見つけるための体系的な手順であり、利用可能な代替案の集合から要素を選択して目的関数を最小化または最大化することを含む。機械学習において、これらのアルゴリズムは、予測出力と実際の出力の差を定量化する損失関数を削減するためにパラメータを反復的に調整し、モデルを訓練するために不可欠である。この分野は、勾配降下法のような古典的手法から、Adamのような高度な適応的最適化法まで多岐にわたり、それぞれが探索空間を移動するための異なる戦略を持つ。
最適化の核心は、機械学習では損失関数またはコスト関数とも呼ばれる目的関数と、実行可能解の探索空間を定義することにある。目標は関数の大域的最小値(または最大値)を見つけることだが、実際には多くの問題は非凸であり、複数の局所的最小値を含むことを意味する。したがって、最適化アルゴリズムは、準最適な領域に陥ることを避けるために、探索と活用のバランスを取る必要がある。これらのアルゴリズムの開発は、応用数学と計算機科学における中心的なテーマであり、深層ニューラルネットワークの訓練に重大な影響を与えている。
歴史的発展
最適化の形式的な研究は何世紀にも遡り、アイザック・ニュートンやジョゼフ=ルイ・ラグランジュなどの数学者が関数の極値を見つける方法を発展させた初期の貢献がある。20世紀には線形計画法が重要な手法として登場し、1947年のジョージ・ダンツィヒのシンプレックス法が線形最適化問題を解く実用的な方法を提供した。コンピュータの出現により、複雑な工学的および経済的問題への最適化の適用が可能となり、非線形および確率的方法の発展につながった。
機械学習の文脈では、フランク・ローゼンです1958年のパーセプトロンの導入が、反復的最適化の初期の使用を示したが、線形モデルに限定されていた。1980年代にデビッド・ルメルハート、ジェフリー・ヒント・ロナルド・ウィリアムズによって普及したバックプロパゲーション・アルゴリズムは、勾配関数を効率よく計算することで多層ニューラルネットワークの訓練を可能にし、勾配ベースの最適化の道を開いた。その後の2010年代の深層学習の台頭、予算力とデータの増加によって駆動され、高次元・非凸の損失景観に適した高度な最適化器の作成を促進した。
勾配降下法とその変種
勾配降下法は、機械学習の基本的な最適化アルゴリズムである。これは、損失関数の負の勾配方向にパラメータを反復的に更新し、ステップサイズは学習ラーン率によって制御される。基本形式であるバッチ勾配降下法は、データセット全体でパラメータを計算するため、大規模なデータセットでは計算コストが高くなる可能性がある。確率的等高線降下法(SGD)は、更新ごとにランダムな単一サンプリングルを使用することでこれを解決し、局所的最小値を脱出するのに役立つノイズを導入するが、高い分散も引き起こす。
ミニバッチ勾配降下法は、更新ごとに小さなランダムなデータ部分集合を使用することでバランスを取り、分散を減らしながら計算効率を維持する。SGDの変種には運動量が含まれ、速度ベクトルを蓄積して更新を平滑化し、峡谷を航行するのに役立つことで収束を加速する。ネステロフ加速勾配(NAG)は、先を見据え、予想される将来の位置で勾配を計算することで運動量を改善し、多くの場合でより速い収束をもたらす。
これらの方法はニューラルネットワークの訓練に広く使用され、深層学習のフレームワークの基盤である。しかし、学習率の注意深い調整が必要であり、このことが適応的方法の開発動機となっている。
適応的最適化:AdaGrad、RMSProp、Adam
適応的最適化アルゴリズムは、履歴的な勾配情報に基づいて、各パラメータに対して個別に学習率を調整する。2011年にジョン・ドゥーエルド、エラド・ハザン、ヨーアー・シンガーが導入したAdaGradは、学習率を勾配の二乗平方根に反比例させ、頻度の低いパラメータには大き、頻度の高いパラメータには小さい更新を可能にする。しかし、AdaGradの勾配二乗の蓄積は学習率が急激に減少し、訓練が途中で停止する可能性がある。
RMSProp、2012年のジェフリー・ヒントンの講義ノートで開発され、指数関数的に減衰するというは^2乗平均を使用し、学習率が消えることを防ぐ。これにより、非凸な設定で連続的な学習が可能になる。2015年にジーデリック・キングマとジミー・バーが導入したAdamオプティマイザは、運動量とRMSPropを組み合わせ、1次モーメント(平均)と2次モーメント(不均整な分散)の両方を維持し、早期の反復に対応するバイアス補正を備える。Adamは、そのロバストネスと速い収束により、多くの深層学習タスクのデフォルトのオプティマイザとなった。
Adamの人気は、大規模言語モデルやトランスフォーマーの訓練にも広がり、疎な勾配やノイズの損失景観を効果的に処理する。AdamWなどの変種は、重みの減衰を最適化ステップから分離し、OpenAIやAnthropicなどのモデルの一般化を改善した。
2次法
2次法の最適化は、通常ヘッセ行列を使用し、曲率情報を利用して更新を導く。ニュートン法は、逆ヘッセ行を計算し、1次法よりも少ない反復で収束できるが、パラメタ数が数百万または数十億の高次元モデルでは計算の禁止となる、O(n^2)のメモリとO(n^3)の時間複雑さを持る。BFGSやL-BFGSのような準ニュート法は、勾配の差を使用してヘッセ列を近似し、計算コストと収束速度の間にも妥協を提供する。
機械学習では、2次法は深層ネットワークの訓練にめったに使用されないが、これはパラメタのスケールが大きいためである。しかし、小規模な問題や特定モデルのfine調整には価値がある。フィッシャー情報行列を使用する自然勾配降下は、理論的な利点が探索されているが、計算的にも集は集中的である。最近の研究は、Kt-FAC(クローネッフト積近似曲率)などの近似法に焦点を当て、2次法をより実用的にするための取り組みを行なっている。
深層学習における最適化
深層学習は、特に高非凸な表面の損失景観や多くの局所的最小値・鞍点を含む、最適化に特有の課題を提示する。深いネットワークの損失景観は、プラトーや峡谷によって特徴づけられ、勾配ベースの方法は遅い収束や局所的な最適値に閉じ込められる傾向がある。バッチ正規化やレイヤ正規化などの技術は、活性化を正規化することで訓練を安定化し、最適化ダイナミクスを改善する。
学習率スケジュールは、ステップ減衰・指数関数的減衰・コサインアニなど、学習率を時間的に調整することで効果的な訓練に不可欠である。勾配クリッピングは、特に再帰的ネットワークやトランスフォーマでの勾配爆発を防ぐために使用される。また、重み初期化法(初期化や初期化など)は、初期パラメタが勾配流を促進するように設定する。
大規模訓練のための高機能
最適に大規模なl大規模言語モデのようなモデルの訓練は、分散システムに効率的にスケールする最適化アルゴリズムを要する。モデルの並列化やデータの並列化といった技術は、通信オーバーヘッドを最小化するオプティマイザと組み合わせられる。例えば、マイクロソフトによって開発されたZeROオプティマイザは、オプティマイザの状態をデバイス間で分割し、メモリ使用量を削減する。
ハードウェア特有の最適化も重要であり、google deepmindやnvidiaが開発したカスタム加速器がオプティマイザの設計に影響を与えこむ。そして、AWS Trainiumやgroqのチップは、特定の計算パターンに最適化されており、オプティマイザはこの能力に合わせて調整する必要がある。さらに、混合精度訓練(低精度で計算)では数値的安定性を維持するオプティマイザが必要である。
フレームワークとして、tensorflow(やpytorch)などのオプティマイザの組み込み実装を提供し、研究者が異なるアルゴリズムを簡単に実験できるようにしている。オプティマイザの選択は、収束速度だけでなく、最終的なモデルの品質にも影響するため、決定の重要なハイパーパラメータとなる。
理論的な視点と課題
最適化理論は、一部のアルゴリズムが機能する理由と、その限界について洞察を提供する。凸タイプの問題には、勾配ベースの方法が大域的最小値への収束が保証されるが、深層学習問題は通常凸アではありません。深ネットワークの損失景観は研究されており、示録的には多くの局所, minimaが同等の値であることが多く、鞍点問題がより困難であることが明らかになった。このことは、鞍点を抜け出す方法、ノイズの追加やモーメンタムの使用などの、開発を促している。
もう一の課題は、一般化のギャップであり、オプティマイザは、訓練損失が低いが、テスト性能が低い解を見つける可能性がある。ドロップアウトや、[[data-augmentation|データaugmentationなどの技術は、一般化を改善するために使用されが、最適化と一般化の相互関係は、まだ未解明な点が多い。研究者であるマイケル・ジョーダンや、アニーマ・アーカマ}}など、このダイナミズムの理解に貢献している。
2020年代初頭時点で、すべてのタスクで熟知オプティマイザは存在せず、多くの場合、特定のアーキテクチャとデータセットのどれを依存る。生物的な学習や量子陣からの着想など、新たなアルゴリズムの開発は、[[artificial-intelligence|人工知能の限界を押し広げ続けれていきている。
結論
最適化アルゴリズムは、機械学習の基盤であり、単純な線形廻から複雑な深いネットまでのモデルを訓練することができます。基本的な勾配降下法からAdamなどの勤続的に高度な適応方法方法まで、これらのアルゴリズムは、大規模で複雑な要求を満たすために進化してきた。その長所と短所を理解は実践者に不可欠であり、オプティマイザの選択は、モデルの性能に大いに影響する。分野が進むにつれて、エネルギ効率の高い最適化や、非微分目的の処理など、新たな課題がさらなる革新を駆動するだろう。