Escolar Documentos
Profissional Documentos
Cultura Documentos
Marco Bezerra
marcobz@gmail.com
Onde:
PR: R x 2 matrix of min and max values for R input elements
Si: Size of ith layer, for Nl layers
Tfi: Transfer function of ith layer, default = 'tansig'
BTF: Backpropagation network training function, default = 'traingdx'
BLF: Backpropagation weight/bias learning function, default = 'learngdm'
PF: Performance function, default = 'mse'
Exemplo XOR:
D=
[ ]
Xd
Yd
(2)
Em nosso caso, utilizaremos como função a tanh (tangente hiperbólica) com saídas
variando no intervalo [1, 1] , para tal faremos uma transformação linear nos dados da
tabela verdade da função XOR, subtraindo 0,5 da entrada e da saída:
X d= [ 0,5 0,5 0,5 0,5
0,5 0,5 0,5 0,5 ] (3)
A tangente hiperbólica, por ser uma função anti-simétrica possui um treinamento mais
rápido. Os valores posicionados no intervalo [0,5 ,0,5] evitam a saturação dos pesos
sinápticos.
Embora seja possível o aprendizado com uma rede contendo apenas dois neurônios na
camada oculta, para efeito de exemplificação, serão utilizados cinco e um único na
camada de saída:
>> net =newff [0.5,0.5 ;0.5,0.5] ,[5,1] , ' tansig ' , ' tansig ' ,' traingdx ' (5)
3. Treinar a rede:
Resultado:
y=
ans =
-4.1700
-5.2568
Pesos da entrada x 1 ligados aos
5.0907
-3.1050 neurônios da camada L1 w11 a w 15
0.7185
-4.6902
3.3991
Pesos da entrada x 2 ligados aos
-3.5927
5.3932 neurônios da camada L1: w 21 a w25 Camada L 1
6.2007
3.1088
1.5715 Polarização (bias) dos neurônios
-0.0456 da camada L1: b1 a b5
-1.7559
3.1650
0.6421
0.0474 Pesos dos neurônios da camada
0.7220 L1 w 1 a w 5 ligados ao neurônio de
0.6810 L2 Camada L2
-0.0014
-0.0845 Polarização (bias) do neurônio da
camada L2: b1
>> pesos=[1;1;1;1;-1.5;-0.5;-2;1;-0.5]
>> pesos
pesos =
1.0000
1.0000
1.0000
1.0000
-1.5000
-0.5000
-2.0000
1.0000
-0.5000
>> net=newff([0,1;0,1],[2,1],{'hardlim','hardlim'})
>> net=setx(net,pesos)
>> x=[1,1,0,0;1,0,1,0]
>> y=sim(net,x)
y =
0 1 1 0