DLノート:勾配降下法
改善結果 『DLノート:勾配降下法について』
ニューラルネットワークの「学習」方法
人工ニューラルネットワーク(ANN)は「万能関数近似器」です。十分なデータが提供され、適切なアーキテクチャがあり、十分な時間で訓練されている場合、複雑な関数を近似することができます。
しかし、ネットワークを「訓練」するとは具体的にどういう意味なのでしょうか?
以前のフィードフォワードプロセスに関する記事では、ネットワークを訓練するとは、近似しようとする関数により適したフィットを得るために重みの値を調整することを指していました。
この記事では、ANNの重みを調整するために使用される勾配降下法のアルゴリズムについて説明します。
基本的な概念から始めましょう。
山から下りる
山の頂上にいて、隣の谷の最低点に行く必要があると想像してください。
私たちには地図がありません。霧が立ち込め、暗くなってしまいました。私たちは道を失い、急いで谷底に向かわなければなりません。素敵なシナリオではありませんが、この問題の「境界」を示しています。
安全のために、山には急な尾根がないと仮定しましょう。つまり、微分可能な関数に似ています。
暗くなると、進んでいる方向がわかりません。下降する唯一の方法は、小さなステップを踏みながら、高度が下がったかどうかを確認することです。
もし上に進んだと気づいたら、逆の方向に進みます。下に進んだ場合はそのまま進みます。このプロセスを繰り返し、やがて谷底に辿り着きます。
ご覧の通り、これは必ずしも最善の方法ではありません。小さな谷にたどり着いたり、高原で長時間を費やす可能性があります。
これは勾配降下法の基本的な作業原理を示しており、同時にその主な課題も示しています。この例に戻ることにしましょうが、まずはより形式的な説明を見てみましょう。
勾配とは何か
勾配とは、関数の変化率を表すものです。最大の増加または減少の方向を示します。直感的には、勾配は局所的な最大値または局所的な最小値でゼロになります。
変数(または座標軸)に依存する関数の場合、勾配は、与えられた点で評価される関数の偏微分を成分とするベクトルです。これはベクトル微分演算子を表す記号∇(ナブラ)で示されます。
ここで数式で説明します。n次元の関数fがあるとしましょう。
この関数の点p(n個の座標によって決まる)での勾配は次のようになります:
山の例に戻ると、山の斜面のように地形が険しい場所や谷や高原のようにほとんど平坦な場所があります。谷や高原は通常、局所的な最小値を表し、通常は臨界点です。
勾配降下法
多くの最適化問題では、最も正確な結果を得るために損失関数を最小化することを目指しています。
ディープラーニングと人工ニューラルネットワークでは、使用する損失関数は微分可能です。つまり、領域全体を滑らかに通過し、不連続点がありません。
これにより、損失関数の独立変数に関する導関数を使用して、解(グローバルミニマム)に向かって移動しているかどうかの指標とすることができます。
導関数に対するステップの大きさは、導関数に比例してどれだけ大きくするかを示すステップサイズパラメータη(ディープラーニングの場合は「学習率」)によって決まります。ステップサイズを決定するために、勾配に乗じることでスケーリングします。
この方法では、より急な勾配はより大きなステップを生成します。局所的な最小値に近づくにつれて、傾き(勾配)はゼロに近づきます。
次に、1D関数を最適化する際にこれがどのように機能するかを示すために、以下の図を見てみましょう。
ご覧の通り、私たちは最小値を「探索」を任意の点で初期化します(AとBの2つの例を示しました)。スロープに比例して、最寄りの最小値に向けて徐々にステップを踏みます。
このイラストは、次の擬似コードのアルゴリズムを表しています[1]:
θ(0) = θ_init # 最適化変数の初期化η = 0.02 # 任意のステップサイズパラメータЄ = 0.01 # 最適化の精度k = 0 # イテレーションカウンタwhile |f(θ(k+1) - f(θ(k))| > Є: θ(k+1) = θ(k) - η ∇f(θ(k)) k = k + 1
ここでの損失関数は、山の例で暗くて地図がないようなものです。どのような形状をしているかはわかりません。最小化されるJの値が、すべての可能な入力θに対してどのようになるか、最適化アルゴリズムはわかりません。
これが、最適化アルゴリズムを任意の値θで初期化する理由です。たとえば、図の点Aと点Bは、2つの異なる初期化値を表しています。
勾配降下法の潜在的な問題
勾配降下法は、どの凸関数に対しても近似的な解を得るのに有効です。
関数が凸であるならば、任意のϵの値に対して真の最適なθからϵ以内にθ*に収束するようなステップサイズηが存在します。[1]
しかし、おわかりの通り、これは完璧ではありません。アルゴリズムが収束するかもしれませんが、必ずしもグローバルミニマムを見つけるわけではありません。
勾配降下法の主な課題は、以下の通りです:
任意の初期化は結果に影響を与える
異なる初期化値を使用すると、グローバルミニマムではなく、局所的な最小値に到達する可能性があります。
たとえば、前述の図で点Aではなく点Bから始めた場合です。
または、青い線が示すように、台地(勾配消失問題)へ収束する場合など、一見は分かりにくい場合もあります。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful