1. 程式人生 > 其它 >前饋神經網路BPNN簡單實現

前饋神經網路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