勾配降下法は、制約のない数理最適化のための手法です。これは、微分可能な多変数関数を最小化するための一次反復アルゴリズムです。
この手法の基本的な考え方は、現在の点における関数の勾配(または近似勾配)とは逆方向に繰り返しステップを踏むことです。これは、最も急な降下方向だからです。逆に、勾配の方向にステップを踏むと、その関数を最大化する軌跡が得られます。この手順は勾配上昇法と呼ばれます。勾配降下法は、どちらも最適化のための反復手法ではありますが、局所探索アルゴリズムと混同してはいけません。
勾配降下法は、機械学習や人工知能において、コスト関数や損失関数を最小化するのに特に有用である。[ 1 ]
勾配降下法は一般的に、1847 年に最初に提案したオーギュスタン=ルイ・コーシーに帰せられる。 [ 2 ]ジャック・アダマールは1907 年に同様の方法を独自に提案した。[ 3 ] [ 4 ]非線形最適化問題に対するその収束特性は、 1944 年にハスケル・カリーによって初めて研究され、[ 5 ]その後数十年にわたってこの方法はますます研究され、使用されるようになった。[ 6 ] [ 7 ]
勾配降下法の単純な拡張である確率的勾配降下法は、今日ほとんどの深層ネットワークの学習に用いられる最も基本的なアルゴリズムである。

勾配降下法は、多変数関数が点近傍で定義され微分可能である、 それからから始めると最も速く減少する負の勾配の方向にでならば、
十分小さなステップサイズまたは学習率の場合、 それから 言い換えれば、その用語はから差し引かれるなぜなら、我々は勾配に逆らって局所最小値に向かって進みたいからである。この観察を念頭に置いて、まず推測から始める。局所的な最小値の場合、そしてシーケンスを考慮するそのため
単調数列があります
つまり、シーケンスは目的の局所最小値に収束します。ステップサイズの値は各反復処理において変更が許容される。
関数に関する特定の仮定の下では、局所最小値への収束を保証することが可能です。(例えば、凸型でリプシッツ)と特定の選択それらには次のシーケンスが含まれます。
Barzilai-Borwein法[ 8 ] [ 9 ]やシーケンスのようにウルフ条件を満たす(これは線探索によって見つけることができる)。関数がが凸関数である場合、すべての局所最小値は同時に全体最小値でもあるため、この場合、勾配降下法は全体解に収束することができます。
このプロセスは隣の図に示されています。ここで、は平面上で定義され、そのグラフは椀型をしていると仮定する。青い曲線は等高線、つまり の値が である領域である。は一定です。ある点から始まる赤い矢印は、その点における負の勾配の方向を示しています。ある点における(負の)勾配は、その点を通る等高線に直交することに注意してください。勾配降下法は、ボウルの底、つまり関数の値が一定になる点に到達することがわかります。最小限です。

勾配降下の基本的な考え方は、架空のシナリオで説明できます。人々が山で立ち往生し、下山しようとしています(つまり、全体的な最小値を見つけようとしています)。濃い霧のため視界は極めて悪く、山を下る道が見えないため、最小値を見つけるには局所的な情報を使用する必要があります。彼らは勾配降下法を使用できます。これは、現在の位置での丘の傾斜を見て、最も急な下り坂の方向に進むというものです。もし彼らが山の頂上(つまり、最大値)を探そうとしているなら、最も急な上り坂の方向に進みます。この方法を使用すると、最終的には山を下る道を見つけるか、山の湖のような穴(局所的な最小値または鞍点)で立ち往生する可能性があります。ただし、丘の傾斜は単純な観察ではすぐには明らかにならず、測定するには高度な機器が必要であり、人々はたまたまその機器を持っていると仮定します。この計測器で丘の傾斜を測定するにはかなりの時間がかかる。そのため、日没前に山を下りたいのであれば、計測器の使用を最小限に抑える必要がある。そうなると、コースから外れないように、どのくらいの頻度で傾斜を測定すべきかという問題が生じる。
この例えでは、人々はアルゴリズムを表し、山を下る道はアルゴリズムが探索するパラメータ設定のシーケンスを表します。丘の傾斜は、その地点における関数の傾きを表します。傾斜を測定するために使用される手段は微分です。彼らが進む方向は、その地点における関数の勾配と一致します。次の測定を行うまでの移動時間は、ステップサイズです。
ステップサイズを使用する小さすぎると収束が遅くなり、大きすぎるとオーバーシュートや発散につながるので、適切な設定を見つけるこれは重要な実際的な問題です。フィリップ・ウルフも、実際には「(降下)方向の賢明な選択」を使うことを提唱しました。[ 10 ]最も急な降下方向から逸れる方向を使うことは直感に反するように思えるかもしれませんが、その考え方は、より小さな傾斜は、より長い距離にわたって維持されることで補償される可能性があるということです。
これを数学的に考察するには、方向を考えてみましょう。およびステップサイズさらに、より一般的なアップデートについても検討してみましょう。
良い設定を見つけるそして少し考える必要があります。まず、更新方向が下り坂を指すようにしたいです。数学的には、間の角度を表すそしてこれには以下が必要ですさらに詳しく説明するには、最適化する目的関数に関するより多くの情報が必要です。が連続的に微分可能であるならば、次のことを証明できる。[ 11 ]
この不等式は、関数が減少量は、角括弧内の2つの項のトレードオフによって決まります。角括弧内の最初の項は、降下方向と負の勾配との間の角度を表します。2番目の項は、降下方向に沿って勾配がどれだけ速く変化するかを表します。
原則として不等式(1)は最適化できるそして最適なステップサイズと方向を選択する。問題は、角括弧内の第2項を評価するには、また、追加の勾配評価は一般的にコストがかかり、望ましくありません。この問題を回避する方法としては、以下のようなものがあります。
通常、上記のレシピのいずれかに従うことで、局所最小値への収束が保証されます。関数がが凸関数である場合、すべての局所最小値は同時に全体最小値でもあるため、この場合、勾配降下法は全体解に収束することができます。

勾配降下法は連立一次方程式を解くために使用できる。
二次最小化問題として再定式化される。システム行列がは実対称かつ正定値であり、目的関数は、最小化される二次関数として定義される。
となることによって
一般的な実数行列の場合線形最小二乗法は、
実数に対する従来の線形最小二乗法ではそしてユークリッドノルムが使用される場合、
線探索最小化、局所的に最適なステップサイズを見つける各反復において、二次関数については解析的に実行でき、局所最適解の明示的な式が得られる。知られている。[ 6 ] [ 13 ]
例えば、実対称かつ正定値行列の場合、簡単なアルゴリズムは次のようになります。[ 6 ]
乗算を避けるため反復ごとに2回、 :=\mathbf {x} +\eta \mathbf {r} } が意味するもの :=\mathbf {r} -\eta \mathbf {Ar} } となり、従来のアルゴリズムが得られます。 [ 14 ]

この方法は線形方程式の解法にはほとんど用いられず、共役勾配法が最も一般的な代替法の一つである。勾配降下法の反復回数は、一般的にスペクトル条件数に比例する。システム行列の(最大固有値と最小固有値の比))一方、共役勾配法の収束は通常、条件数の平方根によって決定されるため、はるかに高速です。どちらの方法も前処理の恩恵を受けることができますが、勾配降下法では前処理器に関する仮定が少なくて済む場合があります。[ 14 ]
最急降下法を解く場合、 どこ対称正定値であり、残差ベクトルは反復処理全体にわたって直交する:
各ステップは最も急な方向に取られるため、最も急な下降ステップは、細長いレベルセットの極端な軸に沿った方向と交互に行われます。が大きいため、特徴的なジグザグの経路が生成されます。これが収束が遅い主な原因であり、連続する残差の直交性がこの交互作用をさらに強める。
右の画像に示すように、条件数が高いため、最も急な降下はゆっくりと収束します。、そして残差の直交性により、新しい方向は前のステップのオーバーシュートを打ち消すように強制されます。その結果、解に向かってジグザグに進む経路になります。この非効率性は、共役勾配法や前処理法が好まれる理由の1つです。[ 15 ]
勾配降下法は、非線形方程式系を解くためにも使用できます。以下に、勾配降下法を用いて3つの未知変数x 1、x 2、x 3を求める方法を示す例を示します。この例では、勾配降下法の1回の反復処理を示しています。
非線形方程式系を考えてみましょう

関連関数を導入しましょう
どこ
ここで目的関数を定義する
我々はそれを最小限に抑えるよう努める。最初の推測として、
私たちは知っている
ここでヤコビ行列はは
計算結果:
したがって
そして
さて、適切なは、
これは、さまざまな線探索アルゴリズムのいずれかを使用して行うことができます。あるいは、単純に推測することもできます。これにより
この値で目的関数を評価すると、次のようになります。
減少次のステップの値へ
これは目的関数の大幅な減少を意味します。さらに手順を踏むと、システムの近似解が見つかるまで、その値はさらに減少します。
勾配降下法は、無限次元空間を含む任意の次元の空間で機能します。後者の場合、探索空間は通常関数空間であり、降下方向を決定するために最小化される汎関数のフレシェ微分を計算します。[ 7 ]
勾配降下法が任意の次元数(少なくとも有限次元数)で機能することは、コーシー・シュワルツの不等式、すなわち、任意の次元の2つのベクトルの内積(ドット積)の大きさは、それらが共線である場合に最大になるという不等式の結果と見なすことができる。勾配降下法の場合、これは独立変数調整ベクトルが偏微分勾配ベクトルに比例する場合に該当する。
勾配降下法では、与えられた関数の曲率が方向によって大きく異なる場合、必要な精度で局所最小値を計算するのに多くの反復が必要になることがあります。このような関数に対しては、空間の形状を変更して関数レベルセットを同心円状にする前処理によって、収束の遅さを解消できます。ただし、前処理の構築と適用には計算コストがかかる場合があります。
勾配降下法は、モーメンタム[ 16 ] ( Nesterov、Polyak、[ 17 ]、Frank–Wolfe [ 18 ] ) およびヘビーボールパラメータ (指数移動平均[ 19 ]および正負のモーメンタム[ 20 ] ) によって変更できます。このような最適化ツールの主な例としては、Adam、DiffGrad、Yogi、AdaBelief などがあります。
ニュートン法と共役勾配法を用いたヘッセ行列の逆行列に基づく方法は、より良い代替手段となり得る。[ 21 ] [ 22 ]一般的に、このような方法はより少ない反復回数で収束するが、各反復のコストは高くなる。一例として、BFGS法がある。これは、各ステップで勾配ベクトルに掛ける行列を計算して「より良い」方向へ進むようにし、より洗練された線探索アルゴリズムと組み合わせて「最適」な値を見つけるものである。コンピュータのメモリ容量の問題が支配的な極めて大規模な問題の場合、 BFGS法や最急降下法の代わりに、 L-BFGS法のようなメモリ容量を制限した手法を用いるべきである。
勾配降下法を局所探索アルゴリズムの代わりとして使用できる場合もあるが、勾配降下法は同じ系統のものではない。局所最適化のための反復法ではあるが、解空間を明示的に探索するのではなく、目的関数の勾配に依存するからである。
勾配降下法は、常微分方程式を解くためのオイラー法を応用したものと考えることができる。勾配流へ。この式は、制御システムの最適コントローラ[ 23 ]として導出できる。とフィードバックフォームで提供。
勾配降下法は局所最小値に収束し、鞍点の近傍では収束速度が低下する可能性がある。制約のない二次最小化問題であっても、勾配降下法では反復が進むにつれて反復値がジグザグパターンを描き、収束が遅くなる。これらの欠点を克服するために、勾配降下法の様々な改良法が提案されている。
Yurii Nesterovは[ 24 ]、凸問題に対してより速い収束を可能にする単純な修正を提案し、その後さらに一般化された。制約のない滑らかな問題の場合、この方法は高速勾配法(FGM)または加速勾配法(AGM)と呼ばれる。具体的には、微分可能な関数が凸であり、はリプシッツであり、が強凸である場合、各ステップで生成される目的値の誤差は勾配降下法によって制限されるネステロフ加速法を用いると、誤差は減少する。[ 25 ] [ 26 ]速度はコスト関数の減少は、一次最適化手法にとって最適です。しかしながら、定数係数を減らすことでアルゴリズムを改善する機会があります。最適化勾配法(OGM)[ 27 ]は、その定数を2分の1に減らし、大規模問題に対する最適な一次手法です。[ 28 ]
制約付き問題や非平滑問題の場合、ネステロフのFGMは高速近接勾配法(FPGM)と呼ばれ、近接勾配法の高速化である。
勾配降下のジグザグパターンを打破しようとして、運動量法またはヘビーボール法は、最小化される関数の値の表面を滑る重いボールに類似した運動量項を使用する[ 6 ]、または保存力場内の粘性媒体を通るニュートン力学の質量運動に類似した運動量項を使用する[ 29 ]。運動量付き勾配降下法は、各反復で解の更新を記憶し、勾配と前回の更新の線形結合として次の更新を決定する。制約のない二次最小化の場合、ヘビーボール法の理論的な収束率の上限は、漸近的に最適共役勾配法のそれと同じである[ 6 ]。
この手法は、確率的勾配降下法や、人工ニューラルネットワークの学習に使用されるバックプロパゲーションアルゴリズムの拡張として使用されます。[ 30 ] [ 31 ]更新の方向では、確率的勾配降下法は確率的特性を追加します。重みは導関数を計算するために使用できます。
勾配降下法は、制約集合への射影を含めることで、制約を扱うように拡張できます。この方法は、射影がコンピュータ上で効率的に計算できる場合にのみ実行可能です。適切な仮定の下では、この方法は収束します。この方法は、単調包含関係に対する前方後方アルゴリズム(凸計画法と変分不等式を含む)の特殊なケースです。[ 32 ]
勾配降下法は、与えられたブレグマン発散として二乗ユークリッド距離を使用するミラー降下法の特殊なケースである。[ 33 ]
勾配降下法の特性は、目的関数の特性と使用する勾配降下法のバリアント(例えば、直線探索ステップを使用するかどうか)に依存します。仮定は収束率や勾配降下法で証明できるその他の特性に影響を与えます。[ 34 ]例えば、目的関数が強凸かつリプシッツ滑らかであると仮定すると、勾配降下法は固定ステップサイズで線形に収束します。[ 1 ]仮定が緩いと、収束保証が弱くなるか、より洗練されたステップサイズの選択が必要になります。[ 34 ]