Matlabのニューラルネットワーク(1) BPネットワーク

最近ニューラルネットワークを学び始めたばかりですが、最初は浅い理解に触れるのは問題ないのですが、深い理解にはまだまだ継続的な練習が必要だと感じています。BP はフィードフォワード操作ですが、誤差はフィードバック可能です。勾配降下法に従って、最終データが要求を満たすまで重みを継続的に調整します (局所最小値に落ちやすい)。 newff 関数の使用法matlab が newff (フィードフォワードおよびバックプロパゲーション ネットワーク) を説明する_xiaotao_1 のブログ-CSDN blog_matlab newffz

この説明はとても良いと思いますが、内部のパラメータを理解する必要があります。

Matlab による BP ニューラル ネットワークの記述方法:

1. データのインポート(.matデータのインポート、load関数付きインポート)

2. トレーニング セットとテスト セットをランダムに生成します (randperm 関数を使用してデータの順序をスクランブルし、全体のデータをトレーニング セットとテスト セットに分割します)。

3. データ正規化 (データ正規化には、mapminmax 関数、mapminmax('apply',n,x) を使用します。n はテスト データ、x はトレーニング セットのデータ特徴です)

4. BP ニューラル ネットワークを作成します (newff 関数、newff(p_train,t_train,9)、9 は隠れ層の数です)

5. トレーニングパラメータを設定する

6. ネットワークをトレーニングします (トレーニングにはトレーニング機能を使用します)

7. シミュレーションテスト(sim機能によるシミュレーションテスト)

8. データの非正規化 (非正規化用のmapminmax('reverse', t_sim, ps_output))

その後、パフォーマンス評価を実行します

9. 相対誤差

10. 決定係数

11. 結果の比較

その後、操作を実行できます

% 1. 导入数据
load spectra_data.mat%用load函数

% 2. 随机产生训练集和测试集
temp = randperm(size(NIR,1));%randperm函数为打乱总体数据的顺序
% 训练集——50个样本
P_train = NIR(temp(1:50),:)';%根据newff函数里面的参数要求,所以要让训练集和测试集的输入数据和输出数据的列相同,所以用’
T_train = octane(temp(1:50),:)';%因为要让训练集和测试集的输入数据和输出数据的列相同,所以用’
% 测试集——10个样本
P_test = NIR(temp(51:end),:)';
T_test = octane(temp(51:end),:)';
N = size(P_test,2);

%% III. 数据归一化
[p_train, ps_input] = mapminmax(P_train,0,1);%用mapminmax函数进行归一化
p_test = mapminmax('apply',P_test,ps_input);%用P_train归一化得到的数据特征将P_test的数据进行相同性质的归一化;

[t_train, ps_output] = mapminmax(T_train,0,1);%对训练集的输出数据进行归一化

%% IV. BP神经网络创建、训练及仿真测试
% 1. 创建网络
net = newff(p_train,t_train,9);%创建BP网络

% 2. 设置训练参数
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.trainParam.lr = 0.01;

% 3. 训练网络
net = train(net,p_train,t_train);

% 4. 仿真测试
t_sim = sim(net,p_test);%用sim函数进行仿真测试

% 5. 数据反归一化
T_sim = mapminmax('reverse',t_sim,ps_output);%ps_output是T_train的归一化数据特征

BP ニューラル ネットワークの長所と短所:

アドバンテージ:

1. 自己学習と適応能力

2. 非線形マッピング機能

3. 一定の耐障害性を備えている

4. 学習結果を新しい知識に適用する

欠点:

1. ローカルミニマムに陥りやすい

2. アルゴリズムの収束速度が遅い

3. ネットワーク構造の選択。大きすぎると過剰適合しやすく、小さすぎると収束に失敗しやすくなります。

4. 典型的なサンプルに依存しすぎ、多数の典型的なサンプルが必要になる

おすすめ

転載: blog.csdn.net/new_EAGLE/article/details/125927128