遺伝的アルゴリズム GA 最適化 BP ニューラル ネットワーク (GA-BP) 回帰予測 - Matlab コードの実装

I.はじめに

    遺伝的アルゴリズム (GA) とバックプロパゲーション ニューラル ネットワーク (バックプロパゲーション ニューラル ネットワーク、BPNN) は、回帰予測問題を最適化するために組み合わせて使用​​できる、一般的に使用される最適化アルゴリズムとモデルです。

    遺伝的アルゴリズムを使用して BP ニューラル ネットワークの回帰予測問題を最適化する場合、遺伝的アルゴリズム最適化アルゴリズムの探索能力と BP ニューラル ネットワークの学習能力を組み合わせて、両方の利点を最大限に活用できます。より良い回帰予測結果を得るために。

    遺伝的アルゴリズムの主なアイデアは、生物進化の過程における自然選択と適応度の増加のプロセスをシミュレートし、選択、交差、突然変異などの操作を通じて集団の適応度を継続的に最適化し、最終的に最適解を取得することです。 . 遺伝的アルゴリズムを使用して BP ニューラル ネットワークの回帰予測問題を最適化する場合、BP ニューラル ネットワークのパラメーターは染色体にコード化され、各遺伝子はパラメーターの値を表します。より良い回帰予測結果を得るために、母集団の染色体を絶えず更新する、つまり BP ニューラル ネットワークのパラメーターを常に更新することによって。

    BP ニューラル ネットワークは、強力な学習能力と適応性を備えた一般的に使用される人工ニューラル ネットワーク モデルです。BP ニューラル ネットワークは、バック プロパゲーション アルゴリズムによって重みとバイアス項目を継続的に調整し、予測誤差を徐々に減らして、より正確な回帰予測結果を取得します。遺伝的アルゴリズムを使用して BP ニューラル ネットワークの回帰予測問題を最適化する場合、BP ニューラル ネットワークのパラメーターを遺伝的アルゴリズム最適化の目的関数として使用し、予測誤差を適合度関数として使用して継続的に更新します。より良い回帰予測結果を得るために、BP ニューラル ネットワークのパラメーターを変更します。

コード取得: ここをクリックして直接ジャンプ

2、コードの一部

net=newff(inputn,outputn,hiddennum_best,{'tansig','purelin'},'trainlm');% 建立模型

%网络参数配置
net.trainParam.epochs=1000;         % 训练次数
net.trainParam.lr=0.01;             % 学习速率
net.trainParam.goal=0.00001;        % 训练目标最小误差
net.trainParam.show=25;             % 显示频率
net.trainParam.mc=0.01;             % 动量因子
net.trainParam.min_grad=1e-6;       % 最小性能梯度
net.trainParam.max_fail=6;          % 最高失败次数

%初始化ga参数 
PopulationSize_Data=30;       %初始种群规模
MaxGenerations_Data=60;       %最大进化代数
CrossoverFraction_Data=0.8;   %交叉概率
MigrationFraction_Data=0.2;   %变异概率
nvars=inputnum*hiddennum_best+hiddennum_best+hiddennum_best*outputnum+outputnum; 
lb=repmat(-3,nvars,1);    %自变量下限
ub=repmat(3,nvars,1);     %自变量上限

%调用遗传算法函数
options = optimoptions('ga');
options = optimoptions(options,'PopulationSize', PopulationSize_Data);
options = optimoptions(options,'CrossoverFraction', CrossoverFraction_Data);
options = optimoptions(options,'MigrationFraction', MigrationFraction_Data);
options = optimoptions(options,'MaxGenerations', MaxGenerations_Data);
options = optimoptions(options,'SelectionFcn', @selectionroulette);   %轮盘赌选择
options = optimoptions(options,'CrossoverFcn', @crossovertwopoint);   %两点交叉
options = optimoptions(options,'MutationFcn', {  @mutationgaussian [] [] });   %高斯变异
options = optimoptions(options,'Display', 'iter');    %‘off’为不显示迭代过程,‘iter’为显示迭代过程
options = optimoptions(options,'PlotFcn', { @gaplotbestf });    %最佳适应度作图
%求解
[x,fval] = ga(@fitness,nvars,[],[],[],[],lb,ub,[],[],options);

3. シミュレーション結果

(1) 経験式によると、隠れ層ノードの最適な数は、入力ノードと出力ノードの数から得られます。

(2) 予測比較表と誤差表

 (3) BP、GA-BPの各種エラー表示

(4) 遺伝的アルゴリズム GA 適応度進化曲線

 (5) BP および GA-BP モデルの回帰図

(6) BP および GA-BP モデルのエラー ヒストグラム

4. まとめ

    遺伝的アルゴリズムと BP ニューラル ネットワークはどちらもランダム性に基づくアルゴリズムであるため、同じパラメーター セットの最適化結果が異なる場合があり、モデルの堅牢性と信頼性を検証するには、複数回の実験を繰り返す必要があることに注意してください。

おすすめ

転載: blog.csdn.net/baoliang12345/article/details/130331210