遺伝的アルゴリズム (GA) に最適化された BP ニューラル ネットワークが回帰予測を実現—コード付き

目次

まとめ:

1. BP ニューラル ネットワークの概要:

2. 遺伝的アルゴリズムの原理の紹介:

3. 遺伝的アルゴリズムによって最適化されたBPニューラルネットワーク:

4. 事例分析:

5. この記事の Matlab コード:


まとめ:

Matalb プラットフォームに基づいて、遺伝的アルゴリズム (GA) が BP ニューラル ネットワークと結合され、BP ニューラル ネットワークの主要パラメーターは GA を使用して最適化されます。次に、出力応答値に影響を与える複数の特性因子を GA-BP ニューラル ネットワーク モデルの入力ニューロンとして使用し、出力応答値を予測テストの出力ニューロンとして使用します。プログラムが標準化されているため、ユーザーが必要な機能を実現するために独自のデータを置き換えるのに便利です。

1. BP ニューラル ネットワークの概要:

BP ニューラル ネットワークは多層の順方向ニューラル ネットワークであり、通常 3 層のニューロンで構成され、各層には複数のニューロンがあり、各ニューロンは互いに独立しています。3 層ネットワーク モデルの構築に成功すると、ネットワークに入力サンプルが与えられ、サンプル ベクトルが入力層ニューロンから隠れ層ユニットに送信され始め、変換された後、出力層ユニットに順次出力されます。中間層で層ごとに処理され、出力層ユニットに渡されます。実際のサンプル出力を取得するために、このプロセスは、変更された状態を層ごとに前方に伝播することであり、これが順伝播プロセスです。出力サンプル ベクトルが期待される出力と一致しない場合、エラーが発生し、そのエラーを逆伝播する必要があります。逆伝播のプロセスは、層ごとに受け渡し、各層の接続重みを変更するプロセスでもあります。このような転送プロセスは、一連のトレーニング パターンが終了するか、誤差が最小値に達し、出力が期待される出力を満たすまで継続的に実行する必要があります。実験を通じて、ニューロン間の重みとバイアスを継続的に変更することで、ネットワークの出力を誤差の許容範囲内ですべてのトレーニング入力に適合させることができることが知られています。このフィッティングプロセスはニューラルネットワークトレーニングのプロセスであり、BPネットワークの勾配降下アルゴリズムは比較的高速な重み調整アルゴリズムであり、エラーリバース送信を継続的に実行してネットワーク構造の重みとしきい値を調整して、期待される目標を達成できます。BP ニューラル ネットワークの機能的特徴により、BP ニューラル ネットワークは最も広く使用されているネットワーク モデルの 1 つとなっています。

図1 BPニューラルネットワークの基本構造

2.遺伝的アルゴリズムの原理の紹介:

遺伝的アルゴリズム(GA)理論とは、ダーウィンの進化論に基づいて設計されたアルゴリズムで、一般的に生物は良い方向に進化し、その進化の過程で自動的に優れた遺伝子が選択され、劣った遺伝子が排除されることを意味します。良い方向への進化とは最適解の方向であり、良い遺伝子とは現状に適合し、十分に選択できるサンプル遺伝子のことである。遺伝機構における生物学的進化の過程における一連の生物学的プロセスには、選択、交叉、変異という 3 つの主要な行動機構が含まれます。したがって、遺伝的アルゴリズムは主に選択、交叉、突然変異の 3 種類の操作に分けられ、消去メカニズムを完成させます。これにより、トレーニング後の自己進化は条件に応じて強力な方向に実行され、最終的に最適なアルゴリズムが得られます。個別の調整セットが取得されます。アルゴリズムの形成には、エンコード、遺伝的変異計算の適合性、およびデコードも必要です。

遺伝的アルゴリズムの実装プロセスと動作プロセスを図2に示します。まず、遺伝的アルゴリズムの基礎となるコーディングによって初期集団を形成する必要があり、その後、交叉や突然変異を選択して選抜するというプロセスになります。集団内の個々の遺伝的演算子の操作はすべて、一定の確率の下で発生します。初期の遺伝的アルゴリズム クラスター内の個人から最適解への移行もランダムです。ただし、このランダム化演算選択演算方式は従来のランダム探索方式とは異なり、一般的なランダム探索が演算ごとの無向ランダム探索であるのに対し、GAは効率的な有向探索を行います。

図2 遺伝的アルゴリズムの基本的な動作プロセス

3.遺伝的アルゴリズムによって最適化されたBPニューラルネットワーク:

以下は、BP ニューラル ネットワークを最適化するために遺伝的アルゴリズムを改善する具体的な手順です。

(1) BP ニューラル ネットワークを初期化し、ネットワーク構造と学習ルール、遺伝的アルゴリズムの染色体長を決定します。

(2) 遺伝的アルゴリズムのパラメーター (反復回数、集団サイズ、交叉確率、突然変異確率などを含む)、および集団選択に必要な遺伝的アルゴリズムの適応度関数を初期化します。

(3) ルーレット法を使用して、新しい集団の父系としての適応度関数の要件を満たすいくつかの染色体を選択します。

(4) 交雑プロセスを変更し、遺伝的アルゴリズムを変更することにより、男性の親が処理され、新しい集団世代が生成されます。

(5) 誤差が精度に達したかどうかを判定し、達していない場合は(3)(4)の手順を再実行することで、染色体が常に更新されるように個体が更新され続け、目標に達すると最適な染色体が得られます。が見つかり、BP ニューラル ネットワークの初期重みとしきい値に割り当てられます。

上記のステップのうち、重要なステップは、遺伝的アルゴリズムのコーディング問題を解決し、適切な適応度関数を選択することです。遺伝的アルゴリズムでは実数を使用しており、GA アルゴリズムを最適化する主な目的は、BP ニューラル ネットワークの誤差二乗和が最小値に達するように、最適な青色を見つけることです。したがって、BP ネットワークの誤差の二乗和を遺伝的アルゴリズムの適応度関数として選択できます。適応度関数の式は次のとおりです。

4.事例分析:

まずトレーニング データをインポートします。トレーニング入力データには 15 個のサンプルが含まれており、各サンプルには 9 つの固有値があり、各トレーニング サンプルには 3 つの出力固有データがあります。

遺伝的アルゴリズムと BP ニューラル ネットワークの初期パラメーターを設定します。

GA-BP 構造を構築し、BP ネットワーク内のパラメーターを最適化し、最大サイクル数に達した後に最終的な最適化変数の結果を出力します。また、最適化された BP ニューラル ネットワークを使用してテスト セットのデータを予測し、その予測を評価します。正確さ。進化の過程は以下の通りです。

具体的な予測結果は以下の通りです。

5.この記事の Matlab コード:

おすすめ

転載: blog.csdn.net/widhdbjf/article/details/129121014