フィードフォワード ニューラル ネットワーク BPNN の簡単な実装

4つのステップに分かれています

初期化

ランダム関数を使用して重みとバイアスを割り当てます。入力層に加えて、バイアスを追加する必要があります。

出力の計算

各ニューロンの出力を計算する
ここに画像の説明を挿入しますここに画像の説明を挿入します

計算ミス

出力層の誤差計算
ここに画像の説明を挿入します
中間層の誤差計算
ここに画像の説明を挿入します

ウェイトとバイアスを調整する

ここに画像の説明を挿入します
このうち、L は学習率で、0.9 に設定できます。
ここに画像の説明を挿入します

成し遂げる

ここに画像の説明を挿入します
Matlabの実装コードは次のとおりです

%% 简单前馈神经网络

% 初始化权重和偏置
W12=rand([3,2]);
W23=rand([2,1]);

B12=rand([1,2]);
B23=rand([1,1]);
% 输出
input=[1,0,1];

for i=1:1000
    % 计算输出
    S2=input*W12+B12;
    O2=(1+exp(-S2)).^-1;
    S3=O2*W23+B23;
    O3=(1+exp(-S3)).^-1;

    % 计算误差
    E3=O3.*(1-O3).*(1-O3);
    E2=O2.*(1-O2).*(sum(W23*E3,2).'); 

    % 调整
    W23=W23+(0.9)*O3.*E3;
    W12=W12+(0.9)*O2.*E2;

    B12=B12+(0.9)*E2;
    B23=B23+(0.9)*E3;
end

おすすめ

転載: blog.csdn.net/qq_40092672/article/details/111617727