最急降下アルゴリズム:方法論、バリアント、およびベストプラクティス
公開: 2020-07-28最適化は機械学習の不可欠な部分です。 ほとんどすべての機械学習アルゴリズムには、重要なセグメントとして最適化機能があります。 言葉が示すように、機械学習の最適化は、問題ステートメントの最適な解決策を見つけることです。
この記事では、最も広く使用されている最適化アルゴリズムの1つである最急降下法について説明します。 最急降下法アルゴリズムは、任意の機械学習アルゴリズムで使用でき、理解と実装が簡単です。 では、最急降下法とは正確には何ですか? この記事の終わりまでに、最急降下法アルゴリズムと、それを使用してモデルのパラメーターを更新する方法をより明確に理解できるようになります。
目次
最急降下法
最急降下アルゴリズムを深く掘り下げる前に、コスト関数とは何かを知っておく必要があります。 コスト関数は、特定のデータセットのモデルのパフォーマンスを測定するために使用される関数です。 予測値と期待値の差を見つけて、許容誤差を定量化します。
目標は、モデルが正確になるようにコスト関数を減らすことです。 この目標を達成するには、モデルのトレーニング中に必要なパラメーターを見つける必要があります。 最急降下法は、コスト関数を減らすために関数の係数を見つけるために使用されるそのような最適化アルゴリズムの1つです。 コスト関数が最小になるポイントは、グローバル最小として知られています。
ソース
最急降下アルゴリズムの背後にある直感
果物を入れたものに似た大きなボウルがあるとします。このボウルは、コスト関数のプロットです。 ボウルの底は、コスト関数が最小になる最良の係数です。 コスト関数を計算するための係数として、さまざまな値が使用されます。 このステップは、最良の係数が見つかるまで繰り返されます。

最急降下法は、ボールが谷を転がり落ちるように想像できます。 谷は、ここでのコスト関数のプロットです。 ボールが谷の底に到達するようにします。谷の底は、最小のコスト関数を表します。 ボールの開始位置によっては、谷の多くの底に止まる場合があります。 ただし、これらの底は最低点ではない可能性があり、極小値として知られています。
ソース
読む:機械学習のブースティング:機能、タイプ、機能とは
最急降下アルゴリズム-方法論
最急降下法の計算は、関数の係数の初期値を0または小さなランダム値に設定することから始まります。
係数=0(または小さな値)
- コスト関数は、この係数の値を関数に入れることによって計算されます。
コスト関数=f(係数)
- 微積分の概念から、関数の導関数は関数の傾きであることがわかります。 傾きを計算すると、係数値を移動する方向を把握するのに役立ちます。 次の反復でより低いコスト(エラー)が得られるような方向にする必要があります。
del =導関数(コスト関数)
- 斜面から下り坂の方向を知った後、それに応じて係数値を更新します。 学習率(アルファ)を選択して、これらの係数が各反復でどの程度変化するかを制御できます。 この学習率が高すぎたり低すぎたりしないことを確認する必要があります。
係数=係数–(アルファ*デル)

- このプロセスは、コスト関数が0になるか、0に非常に近くなるまで繰り返されます。
f(係数)= 0(または0に近い)
学習率の選択は重要です。 非常に高い学習率を選択すると、グローバルな最小値を超える可能性があります。 逆に、学習率が非常に低いと、グローバルミニマムに到達するのに役立ちますが、収束は非常に遅く、多くの反復が必要になります。
ソース
最急降下アルゴリズムの変形
バッチ勾配降下
バッチ勾配降下法は、勾配降下法アルゴリズムの最もよく使用される変形の1つです。 コスト関数は、反復ごとにトレーニングデータセット全体に対して計算されます。 1つのバッチは、アルゴリズムの1つの反復と呼ばれ、この形式はバッチ勾配降下法と呼ばれます。

確率的勾配降下法
場合によっては、トレーニングセットが非常に大きくなることがあります。 このような場合、1回の反復でトレーニングセット内の各インスタンスの予測が必要になるため、バッチ勾配降下法の計算には長い時間がかかります。 データセットが巨大なこれらの条件では、確率的勾配降下法を使用できます。 確率的勾配降下法では、インスタンスのバッチの最後ではなく、トレーニングインスタンスごとに係数が更新されます。
ミニバッチ最急降下法
バッチ勾配降下法と確率的勾配降下法には、それぞれ長所と短所があります。 ただし、バッチ勾配降下法と確率的勾配降下法を組み合わせて使用すると便利な場合があります。 ミニバッチ最急降下法では、データセット全体が使用されることも、一度に1つのインスタンスを使用することもありません。 トレーニング例のグループを考慮に入れます。 このグループの例の数はデータセット全体よりも少なく、このグループはミニバッチと呼ばれます。
最急降下アルゴリズムのベストプラクティス
- 時間に対するコストのマッピング:時間に関してコストをプロットすると、各反復後にコストが減少しているかどうかを視覚化するのに役立ちます。 コストが変わらない場合は、学習率を更新してみてください。
- 学習率:学習率は非常に低く、0.01または0.001として選択されることがよくあります。 どの値が自分に最適かを試してみる必要があります。
- 入力の再スケーリング:すべての入力変数が[0、1]や[-1、1]などの同じ範囲に再スケーリングされる場合、勾配降下アルゴリズムはコスト関数をより速く最小化します。
- パスが少ない:通常、確率的勾配降下アルゴリズムでは、最適な係数を見つけるために10パスを超える必要はありません。
チェックアウト: 25の機械学習インタビューの質問と回答
まとめ
機械学習アルゴリズムの最適化における最急降下法の役割を理解できます。 覚えておくべき重要な要素の1つは、最適な予測のために最急降下アルゴリズムに適切な学習率を選択することです。
upGradは、機械学習とAIのPGディプロマと、機械学習とAIの科学のマスターを提供します。 これらのコースでは、機械学習の必要性と、勾配降下アルゴリズムからニューラルネットワークに至るまでのさまざまな概念をカバーするこのドメインの知識を収集するためのさらなるステップについて説明します。