⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 backpropagation.m

📁 useful backpropagation
💻 M
字号:
% -------------------------
% Padr鮡s de Entrada
% -------------------------

u=[0 0;
   0 1;
   1 0;
   1 1]';

yd=[0 1 1 0];

ub=[ones(1,max(size(u))); u]; 				% Inclus鉶 do 'bias'

Np=max(size(u(1,:))); 							% N鷐ero de padr鮡s
if max(size(u(1,:)))~=max(size(yd(1,:))),
   error('Erro nos padr鮡s de entrada!');
end


% -------------------------
% Estrutura da Rede
% -------------------------

Ne=3;									% N鷐ero de neur鬾ios na camada escondida
Nh=Ne+1;								% Inclus鉶 do 'bias'

Nu=max(size(u(:,1)))+1;			% N鷐ero de neur鬾ios na camada de entrada + 'bias'
Ny=max(size(yd(:,1)));				% N鷐ero de neur鬾ios na camada de sa韉a


% -------------------------
% Inicializa玢o dos Pesos
% -------------------------

uh=rand(Nh,Nu);					% uh = Pesos Entrada -> Camada Escondida
hy=rand(Ny,Nh);					% hy = Pesos Camada Escondida -> Sa韉a


% -------------------------
% Algoritmo de Treinamento
% -------------------------

n=1; 									% Taxa de Aprendizado
Nep=200;								% N鷐ero de 蓀ocas

for k=1:Nep,
   for i=1:Np,
      
      auxh=uh*ub(:,i);
      auxh(1,:)=1; 			% Ativa o 'bias' da camada escondida
      h=1./(1+exp(-auxh));		% Fun玢o de ativa玢o da camada escondida --> Sigm骾de
      
      auxy=hy*h;
      y=auxy;					% Fun玢o de ativa玢o da camada de sa韉a --> Linear
      
      e=yd(:,i)-y;				% Erro
      E(:,i)=0.5*e.^2;  		% Erro M閐io Quadr醫ico
      
      deltahy=e*1;				% deltahy = (yd-y)*f'(net_hy)
      
      for p=1:Ny,				% C醠culo da varia玢o dos Pesos Camada Escondida -> Sa韉a
         for q=1:Nh,
            deltaWhy(p,q)=n*deltahy(p,:)*h(q,:);
         end
      end
      
      aux2=h.*(1-h);				% f'(net_uh)
      aux3=(deltahy'*hy)'; 	
      deltauh=aux2.*aux3;			% C醠culo de deltauh
      
   
      for p=1:Nh,					% C醠culo da varia玢o dos Pesos Entrada -> Camada Escondida
         for q=1:Nu,
            deltaWuh(p,q)=n*deltauh(p,:)*ub(q,i);
         end
      end
      
      hy=hy+deltaWhy;      		% Atualiza玢o dos Pesos Camada Escondida -> Sa韉a
      uh=uh+deltaWuh;				% Atualiza玢o dos Pesos Entrada -> Camada Escondida
      
   end
   
   err(k,:)=mean(E',1);			% M閐ia do erro quadr醫ico por 閜oca de treinamento
   
end


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -