深層学習用の BP ニューラル ネットワーク Matlab

経験、環境、遺伝があなたを形作ります、それが良くても悪くても、あなたは自分の庭を耕さなければなりません、それが良くても悪くても、あなたは自分の人生の弦を奏でなければなりません - カーネギー

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

BP ニューラル ネットワークは逆伝播アルゴリズムであり、誤差が入力層に逆伝播するニューラル ネットワークです。BP ニューラル ネットワークは、人間の脳の構造と機能をシミュレートする情報処理システムであり、数学的および物理的手法によって研究されています。神経回路網にはニューロンと呼ばれる多数のノードがあり、各ニューロンは独立した機能と構造を持ち、各ニューロンは複数のニューロンから構成され、これらのニューロンは互いに接続され、相互作用しています。データがニューラル ネットワークに入力されると、データはノード間で拡散され、各ノードがデータを処理します。したがって、BPニューラルネットワークは強い自己組織化能力を持ち、ネットワーク構造が単純で収束速度が速いです。

ニューラル ネットワークは複雑な数学モデルです。ニューラル ネットワークは多くのニューロンで構成され、ニューロンは重みによって接続されています。ニューロンのモデル構造を次の図に示します。

各ニューロンには N 個の入力 Xi があり、これらの入力は重み W 接続によって送信され、すべての入力はニューロンによって受信されます。

2. BP ニューラル ネットワーク トポロジ

BP ニューラル ネットワーク モデルは、教師あり自己学習トレーニング モデルとみなすことができます。トレーニング プロセスは主に 3 つの層で構成され、入力層と出力層は明らかに単層構造を示しますが、他の隠れ層は次のように構造を決定します。データの特性とシステム要件に応じて。入力層、隠れ層、出力層のニューロンはすべて相互に接続されています。まず、入力層がデータサンプルを取得した後、ニューロンの数が決定され、その情報が隠れ層に渡され、出力層に入力され、最終的に層の比較結果が出力されます。 , ニューロンの重みと閾値を調整するために戻り、それが正しければ結果を出力します。ニューラル ネットワーク トポロジは次のとおりです。

ニューラル ネットワークの学習には、順伝播と逆伝播という 2 つのプロセスがありますが、ここでは詳しく説明しません。

3. BPニューラルネットワークアルゴリズムの流れ

成熟した BP ニューラル ネットワーク アルゴリズムのモデルを正常に構築するには、まず入力層と出力層に含まれるニューロンの数を決定する必要があります。入力層の数は通常、データセット内のサンプルインジケーターの数であり、出力ニューロンの数は通常、出力カテゴリの数であり、隠れ層の数は経験関数などのいくつかの方法に従って決定されます。次のステップは誤差を計算することです. 予測された出力値と実際の値の間の計算された誤差に従って、計算された誤差が設定された要件を満たさない場合は、逆伝播のために隠れ層に戻る必要があります。損失関数の計算、その逆 誤差が要件を満たすまで重みとしきい値を再調整します。BP ニューラル ネットワークのアルゴリズム フローは次のとおりです。

注: 重みとしきい値が異なると、BP ニューラル ネットワーク アルゴリズムの精度に影響します。

4. Matlab コードの実装

%%  导入数据
data1= xlsread('data.xlsx');
  • まず独自のデータをインポートします

%确定隐含层节点个数
%采用经验公式hid=sqrt(m+n)+a,m为输入层节点个数,n为输出层节点个数,a一般取为1-10之间的整数
mse=1e+5; %初始化最小误差
for hid=fix(sqrt(M+N))+1:fix(sqrt(M+N))+10 
end
  • 隠れ層の定義は次のとおりです

%%  创建网络
net = newff(p_train, t_train,hiddennum
%%  设置训练参数
net.trainParam.epochs = 100;     % 迭代次数 
net.trainParam.goal = 1e-6;       % 误差阈值
net.trainParam.lr = 0.01;         % 学习率

%%  训练网络
net = train(net, p_train, t_train);
最後に、関連する評価指標を計算します 。リンクを参照してください: http://t.csdn.cn/spqNh

おすすめ

転載: blog.csdn.net/a__12345_/article/details/129157806