1. 概要

このチュートリアルでは、コスト関数の最小値を見つけるための2つの有名な方法の違いを調べます。

これらの方法は、機械学習でよく使用される最急降下法と、数値解析でより一般的なニュートン法です。

このチュートリアルの最後に、最適化問題を解くためにどちらか一方を使用できる条件がわかります。

2. 最急降下法

2.1. 徐々に減少する

最急降下法のJava実装に関する記事では、このアルゴリズムが機械学習モデルで最適なパラメーターを見つけるのにどのように役立つかを研究しました。 また、最急降下法またはその従兄弟最急降下法が、関数の極小値を任意の精度で反復的に近似する方法についても説明しました。

最小化したい連続関数から始めます。これは、関心のある区間で微分可能です。 次に、関数の極小値に十分に近い開始点を特定します。この場合は、次のようになります。

次に、の周りの関数の勾配を利用して、最も近い極小値に向かって繰り返し移動します。

2.2. 申請条件

最急降下法を適用するには、比較的アクセスしやすい適用条件を満たす必要があります。

主な条件は、関数が連続的で、微分可能で、凸型でなければならないということです。 関数の勾配は、リプシッツ連続性の要件も満たす必要があります。 これは、絶対値の導関数が常により低くなるような値が存在する必要があることを意味します。

これらの条件を満たす場合、関数の勾配を計算できます。 次に、その符号に従って、コスト関数を減少させる方向にパラメーターを更新します。 たとえば、ニューラルネットワークバックプロパゲーションとその重みの場合、次の式を適用します。

ロジスティック回帰の場合も同様に、が対数式を含むコスト関数を使用し、それに勾配降下法を適用します。

学習率を適切に選択するために、反復はの最小値のより良い近似を返します。 したがって、このプロセスを繰り返し繰り返すと、関数の最小値に任意に近いポイントに到達できます。

3. ニュートン法

3.1. ニュートン法の説明

ニュートン法は別の方法で機能します。 これは、関数の最大値または最小値ではなく、関数のルートを見つけるための方法であるためです

これは、問題がニュートン法の制約を満たしている場合、どのを見つけることができるかを意味します。 最急降下法の場合のように、そうではありません。

したがって、コスト関数自体ではなく、コスト関数の導関数にニュートン法を適用します。 ニュートン法では、後で説明するように、使用する入力関数の導関数の分析形式が必要になるため、これは重要です。 したがって、これは、最急降下法の場合のように、使用するコスト関数が1回だけでなく2回微分可能でなければならないことを意味します。

3.2. 意味

ニュートン法を適用するモデルのコスト関数として定義しましょう。 したがって、これらの用語は、それぞれ、の1次および2次導関数を示します。 の最小値に十分に近い点から開始する場合、次の式を計算することにより、より適切な近似を得ることができます。

ここでの用語は、関数を線形モデルで近似していることを示しています。

4. 主な違い

2つの方法は同等ではなく、原則として、一方を他方に置き換えることはできません。

最初の違いは、学習率に応じて最急降下法がパラメトリックであるという事実にあります。 ニュートン法はパラメトリックではありません。つまり、ハイパーパラメータの最適化を気にせずに適用できます。 ニュートン法のパラメトリックバージョンも実際に存在しますが、複数の根を持つ多項式関数で操作する場合にのみ適用されます。

2番目の違いは、アルゴリズムを適用するコスト関数に関係しています。 ニュートン法は、最急降下法よりも関数の微分可能性に関してより強い制約があります。 関数の2階導関数が関数の根で定義されていない場合、勾配降下法を適用できますが、ニュートン法は適用できません。

3番目の違いは、停留点周辺の動作です。 反復中に最急降下法が停留点に遭遇した場合、パラメーターは更新されませんが、プログラムは実行を継続します。 ただし、ニュートン法では、を計算する必要があります。 したがって、それを実行するプログラムは、ゼロ除算エラーで終了します。

5. 結論

この記事では、最急降下法とニュートン法を比較して、コスト関数の最小値を見つけました。