極小値を見つけるために Python で勾配降下法アルゴリズムを実装するにはどうすればよいですか?

王林
リリース: 2023-09-06 22:37:05
転載
738 人が閲覧しました

勾配降下法は機械学習における重要な最適化手法であり、モデルの損失関数を最小限に抑えるために使用されます。平たく言えば、損失関数を最小化する理想的な値の範囲が見つかるまで、モデルのパラメーターを繰り返し変更する必要があります。この方法は、損失関数の負の勾配の方向に、より具体的には最急降下経路に沿って小さなステップを踏むことによって機能します。学習率は、アルゴリズムの速度と精度の間のトレードオフを調整するハイパーパラメーターであり、ステップ サイズのサイズに影響します。線形回帰、ロジスティック回帰、ニューラル ネットワークなどの多くの機械学習手法では、勾配降下法が採用されています。その主な用途はモデルのトレーニングで、目標はターゲット変数の期待値と実際の値の差を最小限に抑えることです。この記事では、極小値を見つけるために Python で勾配降下法を実装する方法を見ていきます。

いよいよ Python で勾配降下法を実装します。これを実装する方法の基本的な説明は次のとおりです -

  • まず、必要なライブラリをインポートします。

  • その関数とその派生関数を定義します。

  • 次に、勾配降下関数を適用します。

  • 関数を適用した後、極小値

  • を見つけるためにパラメーターを設定します。
  • 最後に、出力をプロットします。

Python での勾配降下の実装

ライブラリのインポート

リーリー

次に、関数 f(x) とその導関数 f'(x) を定義します -

リーリー

F(x) は削減する必要がある関数で、df はその導関数 (x) です。勾配降下法は導関数を使用して、途中で関数の傾きを明らかにすることで最小値に向かって導きます。

次に、勾配降下関数を定義します。

リーリー

x の開始値、学習率、および必要な反復回数が勾配降下関数に送信されます。各反復後に x の値を保存するために、x を元の値に初期化し、空のリストを生成します。次に、メソッドは指定された反復回数で勾配降下法を実行し、方程式 x = x - 学習率 * 勾配に従って各反復で x を変更します。この関数は、各反復の x 値のリストと x の最終値を生成します。

勾配降下関数を使用して f(x) の極小値を特定できるようになりました -

リーリー ###出力###

リーリー

この図では、x は最初に 0 に設定され、学習率は 0.1 で、50 回の反復が実行されます。最後に、x の値を公開します。これは、x=2 での極小値に近くなるはずです。

関数 f(x) と各反復の x 値をプロットすると、勾配降下プロセスの動作を確認できます -

Example

import numpy as np
import matplotlib.pyplot as plt
ログイン後にコピー
###出力############ ###結論は###

要約すると、関数の極小値を見つけるために、Python は勾配降下法と呼ばれる効率的な最適化プロセスを利用します。勾配降下法は、各ステップで関数の導関数を計算し、最低値に到達するまで最急降下方向に入力値を繰り返し更新することで機能します。 Python で勾配降下法を実装するには、最適化する関数とその導関数を指定し、入力値を初期化し、アルゴリズムの学習率と反復数を決定する必要があります。最適化が完了したら、そのステップを最小限までトレースし、その目標にどのように到達するかを確認することでメソッドを評価できます。 Python は大規模なデータ セットと複雑な関数を処理できるため、勾配降下法は機械学習および最適化アプリケーションで役立つ手法です。

以上が極小値を見つけるために Python で勾配降下法アルゴリズムを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!