勾配降下がどのようにUltralytics YOLOのようなAIモデルを最適化し、ヘルスケアから自動運転車までのタスクで正確な予測を可能にしているかをご覧ください。
勾配降下は、ほとんどの機械学習(ML)やディープラーニングモデルの中核をなす基本的な最適化アルゴリズムである。その主な目的は、内部パラメーターを繰り返し調整することで、モデルの誤差を最小化することだ。霧のかかった山の上に立ち、最も低い地点を見つけようとするところを想像してみてほしい。足元を見回して、どの方向が最も急な下り傾斜になっているかを確認し、その方向に一歩を踏み出す。これを繰り返すと、やがて谷にたどり着く。機械学習では、「山」は損失関数、「方向」は損失関数の負の勾配、「ステップサイズ」は学習率である。
ニューラルネットワークの学習プロセスでは、可能な限り最小のエラー(損失)をもたらす最適なモデル重みのセットを見つける必要がある。勾配降下法はこの探索を自動化する。このプロセスは、勾配(各重みに対して損失がどれだけ変化するかを示す尺度)を計算することから始まります。この計算は通常、バックプロパゲーション・アルゴリズムを用いて行われる。その後、勾配の反対方向に小さなステップを踏みながら重みを更新していく。この反復プロセスは、モデルの性能が収束し、損失が最小化されるまで、多くのエポックにわたって続けられる。各ステップの大きさは、ハイパーパラメータのチューニングにおける重要な設定である学習率によって決定される重要な要素である。このプロセスの詳細な概要は、Stanford CS231nコースノートなどに記載されています。
勾配降下法には主に3つのバリエーションがあり、それぞれ各重み更新の勾配を計算するために使用するデータの量が異なる:
勾配降下法をいくつかの関連用語と区別することは重要である:
勾配降下法は、数え切れないほどのAIモデルの学習を後押しするエンジンだ。
強力ではあるが、勾配降下法にも課題がないわけではない。このアルゴリズムは、損失曲面上の絶対的な最下点ではないローカル・ミニマム-谷で立ち往生することがある。非常に深いネットワークでは、勾配が小さすぎたり大きすぎたりして効果的に重みを更新できない、消失勾配(vanishing gradient)や爆発勾配(exploding gradient)の問題に悩まされることもある。学習率の慎重な選択、ロバストなオプティマイザーの選択、バッチ正規化のようなテクニックは、モデル学習のヒントガイドで詳しく説明されているように、学習を成功させるために非常に重要です。