Implementación simple de la red neuronal feedforward BPNN

Dividido en 4 pasos

inicialización

Utilice funciones aleatorias para asignar pesos y sesgos. Además de la capa de entrada, es necesario agregar sesgos.

Calcular la salida

Calcular la salida de cada neurona.
Insertar descripción de la imagen aquíInsertar descripción de la imagen aquí

Error de cálculo

Error de cálculo de la capa de salida
Insertar descripción de la imagen aquí
Error de cálculo de la capa intermedia
Insertar descripción de la imagen aquí

Ajustar pesos y sesgos

Insertar descripción de la imagen aquí
Entre ellos, L es la tasa de aprendizaje, que se puede establecer en 0,9. A continuación, ajuste el peso.
Insertar descripción de la imagen aquí

lograr

Insertar descripción de la imagen aquí
El código de implementación de Matlab es el siguiente

%% 简单前馈神经网络

% 初始化权重和偏置
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

Supongo que te gusta

Origin blog.csdn.net/qq_40092672/article/details/111617727
Recomendado
Clasificación