グラデーションメソッド。 勾配の概念とその計算

💖 好きですか?リンクを友達と共有する

勾配の方向で最適な点を検索するのではなく、現在の点よりも優れた点を検索することもできます。

すべてのローカル最適化メソッドの中で最も簡単に実装できます。 収束条件はかなり弱いですが、収束率は非常に低い (線形) です。 勾配法のステップは、Fletcher-Reeves 法などの他の最適化法の一部としてよく使用されます。

説明 [ | ]

改善点[ | ]

勾配降下法は渓谷に沿って移動する場合に非常に遅くなることが判明し、目的関数の変数の数が増加するにつれて、この方法の動作は典型的になります。 この現象に対抗するためにそれが使用されますが、その本質は非常に単純です。 2 つの勾配降下ステップを実行して 3 つの点を取得したら、渓谷の底に沿って、最初の点と 3 番目の点を結ぶベクトルの方向に 3 番目のステップを実行する必要があります。

二次関数に近い関数の場合は共役勾配法が有効です。

人工ニューラルネットワークへの応用[ | ]

勾配降下法は、若干の修正を加えたもので、パーセプトロンのトレーニングに広く使用されており、人工ニューラル ネットワークの理論ではバックプロパゲーション法として知られています。 パーセプトロン型ニューラル ネットワークをトレーニングする場合、一連のトレーニング入力データが入力に供給されるときに、ニューラル ネットワークの出力における平均誤差を最小限に抑えるために、ネットワークの重み付け係数を変更する必要があります。 形式的には、勾配降下法を使用して 1 つのステップだけを実行する (ネットワーク パラメーターに 1 つだけ変更を加える) には、トレーニング データのセット全体をネットワーク入力に順番に送信し、オブジェクトごとに誤差を計算する必要があります。トレーニング データを使用してネットワーク係数の必要な修正を計算します (ただし、この修正は行いません)。すべてのデータを送信した後、各ネットワーク係数の修正量 (勾配の合計) を計算し、係数を「1 ステップ」修正します。 。 明らかに、大規模なトレーニング データのセットでは、アルゴリズムの動作が非常に遅くなります。そのため、実際には、各トレーニング要素の後にネットワーク係数が調整されることが多く、その場合、勾配値は 1 つのトレーニングのみで計算されたコスト関数の勾配によって近似されます。要素。 このメソッドはと呼ばれます 確率的勾配降下法 または 動作勾配降下法 。 確率的勾配降下法は、確率的近似の一種です。 確率的近似の理論は、確率的勾配降下法が収束するための条件を提供します。

リンク [ | ]

  • J.マシューズ。最急降下法または勾配法用のモジュール。 (リンクは使用できません)

文学 [ | ]

  • アクリッチ I.L.数学的プログラミングの例と問題。 - M.: 高等学校、1986 年。 - P. 298-310。
  • ギル F.、マレー W.、ライト M.実践的な最適化=実践的な最適化。 - M.: ミール、1985 年。
  • コルシュノフ ユウ M.、コルシュノフ ユウ M.サイバネティクスの数学的基礎。 - M.: エネルギーアトミズダット、1972 年。
  • マクシモフ・ユ・A.、フィリポフスカヤ・E.A.非線形計画問題を解決するためのアルゴリズム。 - M.: MEPHI、1982 年。
  • マクシモフ Yu. A.線形計画法および離散計画法のアルゴリズム。 - M.: MEPHI、1980 年。
  • コーン G.、コーン T.科学者とエンジニアのための数学のハンドブック。 - M.: ナウカ、1970年。 - P. 575-576。
  • S. Yu. Gorodetsky、V. A. Grishagin。非線形計画法と多極値最適化。 - ニジニ ノヴゴロド: ニジニ ノヴゴロド大学出版社、2007。- P. 357-363。

すでに述べたように、最適化問題はそのような因子の値を見つけるタスクです バツ 1 = バツ 1* , バツ 2 = バツ 2* , …, バツk = バツk * 、応答関数 ( ) が極値に達する = ext (最適)。

最適化問題を解くための様々な方法が知られている。 最も広く使用されている方法の 1 つは、ボックス-ウィルソン法および急上昇法とも呼ばれる勾配法です。

2 因子応答関数の例を使用して勾配法の本質を考えてみましょう y =f(バツ 1 、 バツ 2 ). 図では、 図 4.3 は、因子空間における応答関数の等しい値の曲線 (水準曲線) を示しています。 座標のある点 バツ 1 *, バツ 2 * は応答関数の極値に対応します 内線

因子空間内の任意の点を最初の点として選択すると ( バツ 1 0 , バツ 2 0) の場合、この点から応答関数の頂点への最短経路は曲線に沿った経路であり、各点の接線はレベル曲線の法線と一致します。 それは応答関数の勾配の方向のパスです。

連続単値関数の勾配 y =f(バツ 1 、 バツ 2) は、座標の勾配によって方向が決定されるベクトルです。

どこ 私、j– 座標軸方向の単位ベクトル バツ 1と バツ 2. 偏導関数はベクトルの方向を特徴付けます。

依存の種類が分からないので y =f(バツ 1 、 バツ 2) 偏導関数を見つけて、勾配の真の方向を決定することはできません。

勾配法によれば、因子空間の一部で初期点(初期レベル)が選択されます。 バツ 1 0 , バツ20. 対称的な 2 レベルの実験計画が、これらの初期レベルに関して構築されます。 さらに、変動間隔は非常に小さく選択されているため、線形モデルが適切です。 十分に小さい領域内の任意の曲線は線形モデルで近似できることが知られています。

対称的な 2 レベルの計画を構築した後、補間問題が解決されます。 線形モデルが構築されます。

そしてその妥当性がチェックされます。

選択した変動区間に対して線形モデルが適切であることが判明した場合、勾配の方向を決定できます。

したがって、応答関数の勾配の方向は回帰係数の値によって決まります。 これは、座標 ( ) 座標のある点に行きましょう:

どこ メートル –グラデーションの方向のステップ サイズを決定する正の数。

なぜなら バツ 1 0 = 0 および バツ 2 0 = 0 の場合 .

グラデーションの方向を定義し ()、ステップ サイズを選択します。 メートル、初期レベルで実験を実行します バツ 1 0 , バツ 2 0 .


次に、勾配の方向に一歩進みます。 座標 のある点で実験を実行します。 応答関数の値が初期レベルの値と比較して増加している場合、勾配の方向に別のステップを実行します。 座標のある点で実験を実行します。

応答関数が減少し始めるまで、勾配に沿って移動を続けます。 図では、 4.3 勾配に沿った動きは、点 ( バツ 1 0 , バツ 20)。 応答関数の非線形性により、破線で示す勾配の真の方向から徐々に逸脱します。

次の実験で応答関数の値が減少するとすぐに、勾配に沿った移動が停止され、応答関数の最大値を持つ実験が新しい初期レベルとして取られ、新しい対称的な 2 レベルの計画が描画されます。そうすると、補間問題が再び解決されます。

新しい線形モデルを構築することで 、回帰分析を実行します。 同時に、因子の有意性をチェックして、少なくとも 1 つの係数が

これは、応答関数の極値領域 (最適領域) にまだ到達していないことを意味します。 勾配の新しい方向が決定され、最適な領域に向かって移動が始まります。

勾配の方向と勾配に沿った移動の明確化は、次の内挿問題を解く過程で因子の重要性をチェックして、すべての因子が重要でないことが判明するまで続きます。 全て 。 これは、最適な領域に到達したことを意味します。 この時点で、最適化問題の解法は停止され、応答関数の最大値を使用した実験が最適値として採用されます。

一般に、勾配法を使用して最適化問題を解くために必要な一連のアクションは、ブロック図の形式で表すことができます (図 4.4)。

1) 因子の初期レベル ( バツj 0) 位置について先験的な情報がある場合は、最適点にできるだけ近いものを選択する必要があります。

2) 変化間隔 (Δ バツj) は、線形モデルが適切である可能性が高いように選択する必要があります。 Δ以下の境界 バツjこの場合、これは応答関数が有意なままである変動間隔の最小値です。

3) ステップ値 ( T) 勾配に沿って移動する場合、積の最大値が正規化形式の因子の上位レベルと下位レベルの差を超えないように選択されます。

.

したがって、 。 より低い値で T初期レベルと座標のある点での応答関数の差は、重要ではないことが判明する可能性があります。 ステップ値が大きくなると、応答関数の最適値をオーバーシュートする危険性があります。

講義番号8

非線形計画問題を解決するための勾配法。 ペナルティ関数のメソッド。 オペレーション リサーチ問題への非線形計画法の応用。

制限のないタスク。一般に、非線形問題は勾配法を使用して解決できます。 ただし、この場合は局所的な極値のみが見つかります。 したがって、局所極値もグローバルである凸計画法問題を解くときは、この方法を使用する方が適切です (定理 7.6 を参照)。

非線形微分可能関数の最大化問題を考えます f(バツ)。 極大点を求める勾配探索の本質 バツ* 非常に簡単: 任意の点を取る必要があります バツ 0 を設定し、この時点で計算された勾配を使用して、次の方向を決定します。 f(バツ) は最高速度で増加します (図 7.4)。

そして、見つけた方向に小さな一歩を踏み出し、新しい点に移動します x i。 次に、次のポイントに移動するための最適な方向を再度決定します。 バツ 2など。 7.4 探索軌跡が破線である バツ 0 , バツ 1 , バツ 2 ... したがって、点のシーケンスを構築する必要があります。 バツ 0 , バツ 1 , バツ 2 ,...,バツ k , ... 最大点に収束するように バツ*、つまり、シーケンスの点について条件が満たされました。

勾配法では、原則として、無限数のステップで正確な解を得ることができますが、場合によっては有限数でのみ正確な解を得ることができます。 この点において、勾配法は近似解法として分類されます。

点からの移動 Xのk新しい点へ × k+1点を通る直線に沿って実行される Xのkそして方程式を持つ

(7.29)

ここで、λ k はステップ サイズに依存する数値パラメータです。 式(7.29)のパラメータの値: λ k =λ k 0 が選択されるとすぐに、検索ポリライン上の次の点が決定されます。

勾配法は、ステップ サイズ (パラメーター λ k の値 λ k 0) を選択する方法が互いに異なります。 たとえば、一定のステップ λ k = λ で点から点へ移動することができます。 k

それが判明したら 、その後、ポイントに戻り、パラメータ値をたとえば次のように減らす必要があります。 λ /2.

場合によっては、ステップ サイズが勾配モジュールに比例するとみなされます。

近似解を求める場合、次の考慮事項に基づいて検索を停止できます。 一定数のステップの各シリーズの後、目的関数の達成値が比較されます f(バツ)。 次のシリーズ以降に変更があった場合 f(バツ) が所定の小さな数値を超えない場合、検索は停止され、その値に達すると、 f(バツ) は、望ましいおおよその最大値と見なされ、対応する バツと間違えられる バツ*.



目的関数の場合 f(バツ) 凹(凸)、点の最適性の必要十分条件 バツ* は、この時点での関数の勾配が 0 に等しいことを示します。

勾配検索の一般的な変形は、最急上昇法と呼ばれます。 その本質は次のとおりです。 点でのグラデーションを定義した後 Xのk直線に沿った動き ポイントまでに生産された × k+ 1、関数の最大値が達成されます。 f(バツ) 勾配の方向に。 次に、この時点で勾配が再度決定され、その点までの新しい勾配の方向に直線で移動します。 × k+ 2、この方向の最大値が達成されます。 f(バツ)。 移動はポイントに到達するまで継続します バツ*、目的関数の最大値に対応 f(バツ)。 図では、 7.5に最適点への移動図を示します バツ* 最速の上昇方法を使用します。 この場合、その点の勾配の方向は Xのk表面のレベルラインに接しています f(バツ) 時点で × k+ 1 したがって、その点での勾配 × k+ 1 は勾配に直交しています (図 7.4 と比較してください)。

点からの移動 Xのkある点までは機能の増加を伴う f(バツ)金額により

式 (7.30) から、増分が変数の関数であることは明らかです。 関数の最大値を求める場合 f(x) 勾配の方向)、関数、つまり関数の増分を最大に増加させる移動ステップ (係数) を選択する必要があります。 最大値が達成される値は、関数の極値の必要条件から決定できます。

(7.31)

等式 (7.30) を複素関数として微分して導関数の式を見つけてみましょう。

この結果を等式 (7.31) に代入すると、次のようになります。

この等式には、次の点の勾配という単純な幾何学的解釈があります。 × k+ 1、前の点のグラデーションに直交 Xのk.


この表面のレベルラインが構築されました。 この目的のために、方程式は次の形式に簡略化されます ( バツ 1 -1) 2 +(x 2 -2) 2 =5-0.5 f、放物面とその平面に平行な平面との交線は明らかです。 バツ 1O バツ 2 (水準線) は半径 の円です。 で f=-150、-100、-50 それらの半径はそれぞれ等しい 、共通の中心は点 (1; 2) にあります。 この関数の勾配を求めます。

ステップ I。 計算します:

図では、 7.6 点で開始 バツ 0 =(5; 10) ベクトル 1/16 が構築され、その点での関数の最速増加の方向を示します。 バツ 0 。 次の点はこの方向にあります。 この時点で。

条件 (7.32) を使用すると、次のようになります。

または 1-4=0、つまり =1/4。 したがって、求められた値が最大点になります。 我々は気づく バツ 1 =(5-16/4; 10-32/4)=(1; 2).

ステップ II。 2 番目のステップの開始点 バツ 1 =(1; 2)。 =(-4∙1 +4; -4∙2+8)=(0; 0) を計算します。 したがって、 バツ 1 =(1; 2) は静止点です。 しかし、この関数は凹型であるため、見つかった点 (1; 2) でグローバル最大値に達します。

線形制約に関する問題。 目的関数が f(バツ) 制限のある問題では、極値が 1 つあり、それが許容領域内にある場合、極点を見つけます。 バツ* 上記の方法論は変更せずに適用されます。

線形制約のある凸計画問題を考えてみましょう。

(7.34)

と仮定されます f(バツ) は凹関数であり、許容領域内のすべての点で連続偏導関数を持ちます。

問題を解決するプロセスの幾何学的図から始めましょう (図 7.7)。 出発点にしましょう バツ 0 は有効領域内にあります。 地点から バツ 0 までグラデーションの方向に移動できます。 f(バツ) は最大値に達しません。 私たちの場合には f(バツ) は常に増加するため、その時点で停止する必要があります バツ、境界線上にあります。 図からわかるように、許容領域を出るため、これ以上勾配の方向に進むことはできません。 したがって、一方では許容領域から出ず、他方では最大の増加をもたらす別の移動方向を見つける必要があります。 f(バツ)。 この方向は、その点から発せられる他のベクトルと比較して、そのベクトルと最も小さい鋭角をなすベクトルによって決定されます。 x iそして許容範囲内にあります。 解析的には、そのようなベクトルはスカラー積を最大化する条件から見つけることができます。 。 この場合、最も有利な方向を示すベクトルは境界線と一致する。


したがって、次のステップでは、境界線が増加するまで境界直線に沿って移動する必要があります。 f(バツ); 私たちの場合 - 要点まで バツ 2. この図は、スカラー積を最大化する条件から求められるベクトルの方向に移動する必要があることを示しています。 、つまり境界直線に沿って。 動きはある時点で終了します バツ 3、この時点で最適化検索が終了するため、この時点で関数は f(バツ) には極大値があります。 この時点で凹みがあるため、 f(バツ) も許容範囲内でグローバル最大値に達します。 最大点の勾配 バツ 3 =バツ* を通過する許容領域からの任意のベクトルと鈍角を作ります。 ×3、したがって、スカラー積は有効な値に対して負になります。 rk、 を除外する r3、境界直線に沿って方向付けられる。 この場合、 と は互いに垂直であるため、スカラー積 = 0 になります (境界直線は表面レベルの線に接触します)。 f(バツ)、最大点を通過 バツ*)。 この等価性は、この時点で次のことを示す分析記号として機能します。 バツ 3 機能 f(バツ) が最大値に達しました。

ここで、問題 (7.33) ~ (7.35) の解析的解決法を考えてみましょう。 最適化探索が許容領域内にある点から開始する場合 (問題のすべての制約が厳密な不等式として満たされる)、上記で確立したように勾配の方向に移動する必要があります。 しかし、今の選択は、 λk式 (7.29) は、次の点が実行可能領域内に残るという要件によって複雑になります。 これは、その座標が制限 (7.34)、(7.35) を満たさなければならないこと、つまり、次の不等式が満たされなければならないことを意味します。

(7.36)

線形不等式系 (7.36) を解くと、パラメータの許容値の間隔がわかります。 λk、点 x k +1 は許容領域に属します。

意味 λ k *、式 (7.32) を解くことによって決定されます。

これで f(バツ) には極大値があります。 λk方向では、セグメントに属している必要があります。 見つかった値の場合 λk指定されたセグメントを超えると、 λ k *受け付けます。 この場合、探索軌跡の次の点は、系の不等式 (7.36) に対応する境界超平面上にあることがわかり、系を解くときに右端の点が得られます。 許容されるパラメータ値の範囲 λk.

最適化検索が境界超平面上にある点から開始された場合、または検索軌跡の次の点が境界超平面上にあることが判明した場合、最大点まで移動を継続するには、まず、次の点を見つける必要があります。この目的のためには、関数を最大化するという数理計画法の補助問題を解決する必要があります。

制限下で

それらのための t、 これで

どこ .

問題(7.37)~(7.40)を解くと、勾配との鋭角が最小となるベクトルが求まります。

条件 (7.39) は、点が許容領域の境界に属することを示し、条件 (7.38) は、ベクトルに沿った移動が許容領域の内側またはその境界に沿って方向付けられることを意味します。 正規化条件 (7.40) は の値を制限するために必要です, そうしないと目的関数 (7.37) の値が任意に大きくなる可能性があるからです. さまざまな形式の正規化条件が知られており, これに応じて問題 (7.37) - (7.40) は線形または非線形にすることができます。

方向を決めたら値を求める λ k *次のポイントに向けて 探索軌跡。 この場合、必要な極値条件は式 (7.32) と同様の形式で使用されますが、ベクトルに置き換えられます。

(7.41)

最適化検索は、その点に到達すると停止します Xのk *ここで、 .

例7.5。制約の下で関数を最大化する

解決。最適化プロセスを視覚的に表現するために、グラフィックイラストを添付します。 図 7.8 は、この表面のいくつかのレベル ラインと、点が見つかるはずの ABC の許容領域を示しています。 バツ*、この関数の最大値を提供します (例 7 4 を参照)。

たとえば、次の点から最適化探索を始めてみましょう。 バツ 0 =(4, 2.5)、境界線 AB 上にあります バツ 1 +4バツ 2 = 14。 その中で f(バツ 0)=4,55.

勾配値を求めてみましょう

時点で バツ 0 。 さらに、図から明らかなように、マークがより高いレベルのラインは f(バツ 0)=4.55。 要するに、方向性を探す必要がある r 0 =(r 01 , r 02) 次のポイントに移動 バツ 1 が最適に近づきます。 この目的のために、制約の下で関数を最大化する問題 (7.37) ~ (7.40) を解決します。


その点から バツ 0 は 1 つの (最初の) 境界線 ( =1) バツ 1 +4バツ 2 =14 の場合、条件 (7.38) は等式の形式で記述されます。

この問題に対する拘束方程式系には、関数に直接代入することにより、解 (-0.9700; 0.2425) と (0.9700; -0.2425) の 2 つしかありません。 T 0 最大値を設定します T 0 は非ゼロであり、(-0.9700; 0.2425) を解くことで得られます。 バツベクトルの方向には 0 が必要です r0=(0.9700;0.2425)、すなわち境界直線BAに沿って。

次の点の座標を決定するには バツ 1 =(バツ 11 ; バツ 12)

(7.42)

関数が適用されるパラメータの値を見つける必要があります。 f(バツ) 時点で バツ

そこから =2.0618。 この場合 = -0.3999<0. Значит,=2,0618. По формуле (7.42) находим координаты новой точки х 1 (2; 3).

最適化の探索を続けると、次の補助問題 (7.37) ~ (7.40) を解くときに、 T 1 = が確立されます。 、これは、点 x 1 が実現可能領域内の目的関数の最大点 x* であることを示唆しています。 同じことが図の点 x 1 からもわかります。レベル ラインの 1 つが許容領域の境界に触れています。 したがって、点 x 1 は x* の最大点になります。 その中で f最大 = f(バツ*)=5,4.


非線形制約に関する問題。 線形制限の問題で境界線に沿った移動が可能であり、推奨される場合さえある場合、凸領域を定義する非線形制限では、境界点からの任意の小さな移動がすぐに許容解の領域外につながる可能性があり、許容領域に戻る必要がある場合があります (図 7.9)。 同様の状況は、関数の極値が次のような問題によく見られます。 f(バツ) が領域の境界に到達します。 これに関しては、さまざまな

境界付近および許容領域内に位置する一連の点を確実に構築する移動方法、または境界線の交点に沿って境界に沿ってジグザグに移動する方法。 図からわかるように、点 x 1 から許容領域への復帰は、違反が判明した境界関数の勾配に沿って実行される必要があります。 これにより、次の点 x 2 の極値点 x* への偏差が保証されます。 このような場合の極値の符号は、ベクトル と の共線性になります。

勾配ベクトルは、特定の点で関数が最も速く増加する方向に向けられます。 勾配 -grad(/(x)) の反対側のベクトルは反勾配と呼ばれ、関数の最も速い減少の方向に向けられます。 最小点では、関数の勾配はゼロになります。 一次法は勾配法とも呼ばれ、勾配の特性に基づいています。 追加情報がない場合は、最初の点 x (0 > から、関数の最速の減少である反勾配の方向にある点 x (1) に移動することをお勧めします。反勾配 -grad(/(点の x (^)) を降下方向として Xのk次の形式の反復プロセスを取得します。

座標形式では、このプロセスは次のように記述されます。

反復プロセスを停止する基準として、条件 (10.2) または小さな勾配の条件の成立のいずれかを使用できます。

指定された条件を同時に満たすという組み合わせの基準も可能です。

勾配法は、ステップ サイズの選択方法が互いに異なります。 一定ステップを使用する方法では、すべての反復に対して特定の一定ステップ値が選択されます。 かなり小さな一歩 あ^機能が確実に低下する、つまり 不平等の実現

ただし、これにより、最小点に到達するまでにかなり多くの反復を実行する必要が生じる可能性があります。 一方、ステップが大きすぎると、関数が増大したり、最小点付近で変動が生じたりする可能性があります。 ステップ サイズを選択するには追加情報が必要なため、一定のステップを持つ方法が実際に使用されることはほとんどありません。

取得した近似に応じてステップ サイズが何らかの方法で変化する場合、可変ステップを使用した勾配法は、(反復回数の点で) 信頼性が高く、経済的です。 このような方法の例として、最急降下法を考えてみましょう。 この方法では、各反復で、ステップ サイズ i* が下降方向の関数 f(x) の最小値の条件から選択されます。

この条件は、関数 /(x) の値が減少する限り、反勾配に沿った移動が発生することを意味します。 したがって、各反復で、関数 φ(τ) =/(x(/r) - - agrad^x^))) の φ に関する 1 次元の最小化の問題を解く必要があります。 最急降下法のアルゴリズムは以下のとおりです。

  • 1. 初期点の座標 x^° と近似解の精度 r を設定しましょう。 k = 0.
  • 2. 点 x (/r) で、勾配 grad(/(x (^)) の値を計算します。
  • 3. ステップサイズを決定する あ^ i に関する関数 cp(i) の一次元最小化によって。
  • 4. 式 (10.4) を使用して、最小点 x (* +1 > への新しい近似値を決定しましょう)。
  • 5. 反復処理の停止条件を確認してみましょう。 それらが満たされると、計算は停止します。 それ以外の場合は、 k k+1してステップ2に進みます。

最急降下法では、点 x (*) からの進行方向が点 x (* +1) で水平面に接触します。 降下路はジグザグであり、隣接するジグザグのリンクは互いに直交しています。 まさに、一歩 あ^を最小化することで選択されます 機能 ( )。 前提条件

関数の最小値 - = 0。導関数を計算しました。

複素関数を使用すると、隣接する点における降下方向のベクトルの直交性の条件が得られます。

関数 φ(π) を最小化する問題は、1 変数の関数の根を計算する問題に還元できます。 g(a) =

勾配法は、滑らかな凸関数の等比数列速度で最小値に収束します。 このような関数は、二次導関数の行列 (ヘッセ行列) の最大および最小の固有値を持ちます。

互いにほとんど違いがありません。つまり、 行列 H(x) はよく調整されています。 ただし、実際には、最小化される関数には、二次導関数の条件の悪い行列が含まれることがよくあります。 このような関数の値は、ある方向に沿って他の方向よりもはるかに速く変化します。 勾配法の収束率は、勾配計算の精度にも大きく依存します。 精度の低下は通常、最小点付近で発生し、勾配降下プロセスの収束を妨げる可能性があります。 したがって、勾配法は、問題を解決する初期段階で他のより効果的な方法と組み合わせて使用​​されることがよくあります。 この場合、点 x (0) は最小点から遠く離れており、反勾配の方向にステップがあると、関数が大幅に低下する可能性があります。

勾配法とそのバリエーションは、いくつかの変数の関数の極値を検索するための最も一般的な方法の 1 つです。 勾配法の考え方は、極値を探索する (最大値を決定する) 過程で、目的関数が最大に増加する方向に毎回移動することです。

勾配法では、目的関数の引数からその一次導関数を計算します。 これは、前のものと同様、近似方法を指し、原則として、最適点に到達することはできませんが、有限のステップ数でのみ最適点に近づくことができます。

米。 4.11。

米。 4.12.

(二次元の場合)

まず、開始点を選択します。1 次元の場合 (セクション 4.2.6 を参照)、

左または右にのみ移動する場合 (図 4.9 を参照)、多次元の場合、可能な移動方向の数は無限に多くなります。 図では、 4.11、2 つの変数の場合を示し、開始点から矢印が伸びています。 あ、さまざまな可能な方向が示されています。 さらに、それらの一部に沿って移動すると、その点に対する目的関数の値が増加します。 (たとえば、道順 1-3), そして他の方向ではその減少につながります(方向 5-8). 最適点の位置が不明であることを考慮すると、目的関数が最も早く増加する方向が最良であると考えられる。 この方向はと呼ばれます 勾配機能。 座標平面の各点で、勾配の方向は同じ点を通って引かれた水平線の接線に対して垂直であることに注意してください。

数学的解析では、関数の勾配ベクトルの成分が =/(*, ×2、 ..., × p)は引数に関する偏導関数です。つまり、

&ad/(x 1 ,x 2 ,.= (du/dhu、du/dh 2、...、du/dh p)。 (4.20)

したがって、勾配法を使用して最大値を検索する場合、最初の反復で勾配成分が開始点の式 (4.20) を使用して計算され、見つかった方向に作業ステップが実行されます。 新しいポイントへの移行 -0)

Y" の座標:

1§ガス1/(x (0)),

またはベクトル形式で

どこ バツ-作業ステップの長さを決定する定数または可変パラメータ、?i>0。 2 回目の反復で、再度計算されます

勾配ベクトルはすでに新しい point.U のものであり、その後、類推して、

式によれば、点 x^ に移動します。 > 等 (図4.12)。 無料で に-回目の反復

目的関数の最大値ではなく最小値が求められる場合、各反復で勾配の方向と反対の方向にステップが実行されます。 これを反勾配の方向と呼びます。 この場合、式 (4.22) の代わりに次のようになります。

勾配法には多くの種類があり、作業ステップの選択が異なります。 たとえば、一定の値で後続の各ポイントに進むことができます。 バツ、その後

作業ステップ長 - 隣接する点間の距離 x^

それらの 1 " - は勾配ベクトルの大きさに比例します。逆に、反復ごとに次の値を選択できます。 バツ作業ステップの長さが一定に保たれるように。

例。関数の最大値を見つける必要があります

y = 110-2(l, -4) 2 -3(* 2 -5) 2.

もちろん、極値に必要な条件を使用すると、目的の解がすぐに得られます。 バツ ] - 4; ×2= 5. ただし、この単純な例は、勾配法のアルゴリズムを説明するのに便利です。 目的関数の勾配を計算してみましょう。

卒業生 y = (du/dh-,du/dh 2) =(4(4 - *,); 6(5 - x 2)) と開始点を選択します

L*» = (x)°> = 0; 4°> = O)。

この点の目的関数の値は、簡単に計算できるように、次のようになります。 y[x^ j = 3 と仮定します。 バツ= 定数 = 0.1。 ある点の勾配値

Zc (0) は grad y|x^j = (16; 30) に等しい。 次に、最初の反復で、式 (4.21) に従って、点の座標を取得します。

×1)= 0 + 0.1 16 = 1.6; x^ = 0 + 0.1 30 = 3。

y(x (1)) = 110 - 2(1.6 - 4) 2 - 3(3 - 5) 2 = 86.48。

ご覧のとおり、以前の値よりも大幅に大きくなっています。 2 回目の反復では、式 (4.22) から次の結果が得られます。

  • 1,6 + 0,1 4(4 - 1,6) = 2,56;