23
Rede Neural de Backpropagation 1 www.ic.uff.br/~ferraz/IA/NN/ Aprendizado BP.ppt

Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

Embed Size (px)

Citation preview

Page 1: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

Rede Neural de BackpropagationRede Neural de

Backpropagation

1

www.ic.uff.br/~ferraz/IA/NN/Aprendizado BP.ppt

Page 2: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

• Seja tk a k-th saída alvo (desejada) e zk a k-th saída computada para k = 1, …, c

• Sejam w os pesos da rede• Seja h a soma ponderada de entradas de um neurônio

• O erro da rede ou erro de treinamento é dado por:

• A minimização do erro só pode ser feita atuando sobre os pesos das conexões da rede

2

Aprendizagem - Notação para a dedução

d

i

d

i

tjjiijjiij xwwxwwxh

1 00 .

c)1,...,(k )( 1

0

k

d

ijijik hfwxwfz

c

1k

22kk zt

2

1)zt(

2

1)w(J

Page 3: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

• Para minimizar o erro é preciso igualar a zero sua derivada em relação aos pesos

• Erro é função de da soma ponderada h e da função de ativação f; h é função dos pesos

• Derivando parcialmente (camada de saída)

• k mostra a variação do erro com a unidade (neurônio)

3

kj

kk

kj

k

kkj w

h

w

h

h

J

w

J

.

kk h

J

Minimização do erro

Page 4: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

• A minimização do erro só pode ser feita atuando sobre os pesos das conexões da rede

• Depois de cada computação de saída de ordem m o erro de treinamento deve ser minimizando modificando esse pesos para a computação de ordem m+1

w(m +1) = w(m) + w(m)• Incremento de peso para redução do erro de treinamento,

que deve ser minimizado• é o coeficiente de aprendizagem

4

c

1k

22kk zt

2

1)zt(

2

1)w(J

kiki w

Jw

Atualização dos pesos das conexões

Page 5: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

• Erro é função da saída zk e zk é função de h

• como hk = wkt.y

• A regra de aprendizagem ou atualização de pesos entre a camada de saída e a camada oculta é

wkj = kyj = (tk – zk) f’ (hk)yj

5

jkj

k yw

h

Conexões com a camada de saída

jkkj

kk

kj

k

kkjkj y

w

h

w

h

h

J

w

Jw

.

)´()()(

)(

)()(2

1 2

kkkk

kkk

k

kkkkk

kkk

hfzth

hfzt

h

zztzt

hh

J

Page 6: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

A regra de aprendizagem ou atualização de pesos entre a camada oculta e a camada de entrada é semelhante

k mostra a variação do erro com o peso da conexão

6

ji

j

j

j

jji w

h

h

y

y

J

w

J

..

Conexões com a camada oculta

c

kkkjjj whf

1

)('

ijkkjjiji xhfwxw

j

)('

Page 7: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

Resumo da atualização de pesos

• Sabe-se que • Para os pesos entre a camada de saída e a camada

oculta o incremento é• wkj = kyj = (tk – zk) f’ (hk)yj = (tk – zk) f (hk) (1- f (hk)yj

• Para os pesos entre a camada oculta e a camada de entrada o incremento é

7

ijkkjjiji xhfwxw

j

)('

))(1(*)()(' kkk hfhfhf

ijjkkjjiji xhfhfwxw )(1)(

Page 8: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

Derivadas das funções de transferência

• Para a função logística

• Para a função tangente hiperbólicaf(y) = tanh(y)

8

xxx

x

x

x

x eee

e

e

e

edx

d

1

11

1

1*

1

11

11

12

xexf

1

1)(

))(1(*)()´()(

kkkk

k hfhfhfh

hf

yyhy

dy

yd2

22

cosh

1sectanh1

)(tanh(

Page 9: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

9

1 2

21

0

1

Camada de entrada 1

Camada oculta 2

Camada de saída 3

bias

w2(0,1)

w3(0,1)

w2(0,2)

w2(2,2)

w2(2,1)

w2(1,1)

w2(1,2)

w3(2,1)

w3(1,1)

0,0 0,0

Exemplo de backpropagation XOR

Page 10: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

• Seja h a soma ponderada de entradas de um neurônio• Sejam as camadas numeradas a partir de 1 (entrada)• xc-1(n) entrada no neurônio n da camada c

• wk(i,j) peso da conexão entre o neurônio i da camada k-1 e o neurônio j da camada k

• k(n) parcela a corrigir do nó n na camada k

• w2(0,1) = - *x1(0)*2(1) atualização de pesos

• Para conexão com a camada de saída• 3(1) = x3(1)*(1 - x3(1))*(d - x3(1))

• Para conexão com camada oculta• 2(1) = x2(1)*(1 - x2(1)*[(w3(1,1)*3(1)]

• 2(2) = x2(2)*(1 - x2(2)*[(w3(2,1)*3(1)]

10

Notação para o exemplo

Page 11: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

Camada oculta Neurônio 1: w2(0,1) = 0,341232 w2(1,1) = 0,129952 w2(2,1) =-0,923123 Camada oculta Neurônio 2: w2(0,2) =-0,115223 w2(1,2) = 0,570345 w2(2,2) =-0,328932 Camada de saída Neurônio 1: w3(0,1) =-0,993423 w3(1,1) = 0,164732 w3(2,1) = 0,752621

Entrada inicialx1(0) = 1 (bias)x1(1) = 0 x1(2) = 0

11

Exemplo – Inicialização

Page 12: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

• Para a camada oculta os resultados da função somadora sãoNeurônio 1: (1 * 0,341232) + (0 * 0,129952) + (0 * -0,923123) = 0,341232Neurônio 2: (1 *-0,115223) + (0 * 0,570345) + (0 * -0,328932) = -0,115223• Aplicando a função de ativação logística temosx2(1) = 1/(1+e^(-0,341232)) = 0,584490

x2(2) = 1/(1+e^( 0,115223)) = 0,471226

12

Exemplo – Treinamento Forward

Camada oculta Neurônio 1: w2(0,1) = 0,341232 w2(1,1) = 0,129952 w2(2,1) =-0,923123 Camada oculta Neurônio 2: w2(0,2) =-0,115223 w2(1,2) = 0,570345 w2(2,2) =-0,328932

Page 13: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

A entrada para camada de saída será x2(0) = 1 (bias)

x2(1) = 0,584490

x2(2) = 0,471226

Para a camada de saída o resultado da função somadora é Neurônio 1: (1 *-0,993423) + (0,584490 * 0,164732) + (0,471226 * 0,752621)

= -0,542484Aplicando a função de ativação logística temosx3(1) = 1/(1+e^(-0,542484)) = 0,367610

13

Exemplo – Treinamento Forward (2)

Camada de saía Neurônio 1: w3(0,1) =-0,993423 w3(1,1) = 0,164732 w3(2,1) = 0,752621

Page 14: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

O resultado esperado era 0 logo o erro é 0,367610. A diferença a corrigir é dada por No caso em tela 3(1) = x3(1)*(1 - x3(1))*(d - x3(1))

3(1) = x3(1)*(1 - x3(1))*(d - x3(1)) =

= 0,367610 * (1 - 0,367610)(0 - 0,367610) = =-0,085459

x3(1) = 0,367610

14

Exemplo – Treinamento Forward (3)

Page 15: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

Para os neurônios da camada oculta as diferenças a corrigir sãow3(1,1)3(1) é a diferença a corrigir neurônio 1w3(2,1)3(1) é a diferença a corrigir neurônio 2 2(1) = x2(1)*(1 - x2(1)*w3(1,1)*3(1)2(1) = 0,584490 * (1 - 0,584490)*(0,164732)*(-0,085459) = -0,0034192(2) = x2(2)*(1 - x2(2)*w3(2,1)*3(1)2(2) = 0,471226 * (1 - 0,471226)*(0,752621)*(-0,085459) = -0,016026

x2(0) = 1 (bias)

x2(1) = 0,584490

x2(2) = 0,471226

3(1) =-0,085459

w3(1,1) = 0,164732 w3(2,1) = 0,752621

15

Exemplo – Treinamento Backward (1)

Page 16: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

• A atualização dos pesos das conexões é dada por sendo o coeficiente de aprendizagem um amortecedor empírico, no caso com valor igual a 0,5.

16

Exemplo – Treinamento Backward (2)

Page 17: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

w2(0,1) = - *x1(0)*2(1) = - 0,5 * 1 * -0,0034190 = 0,001710

w2(1,1) = - *x1(1)*2(1) = - 0,5 * 0 * -0,0034190 = 0

w2(2,1) = - *x1(2)*2(1) = - 0,5 * 0 * -0,003419 = 0

w2(0,2) = - *x1(0)*2(2) = - 0,5 * 1 * -0,0160263 = 0,008013

w2(1,2) = - *x1(1)*2(2) = - 0,5 * 0 * -0,0160263 = 0

w2(2,2) = - *x1(2)*2(2) = - 0,5 * 0 * -0,0160263 = 0

w3(0,1) = - *x2(0)*3(1) = - 0,5 * 1 * -0,085459 = 0,042730

w3(1,1) = - *x2(0)*3(1) = - 0,5 * 0,584490 * -0,085459 = 0,024975

w3(2,1) = - *x2(0)*3(1) = - 0,5 * 0,471226 * -0,085459 = 0,020135

17

Exemplo – Treinamento Backward (3)

Page 18: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

• Valores atualizados dos pesos das conexões w2(0,1) = 0,341232 + 0,001710 = 0,342942w2(1,1) = 0,129952 + 0 = 0,129952w2(2,1) =-0,923123 + 0 = -0,923123w2(0,2) = -0,115223 + 0,008013 = -0,123236w2(1,2) = 0,570345 + 0 = 0,570345w2(2,2) =-0,328932 + 0 = -0,328932w3(0,1) =-0,993423 - 0,042730 = -1,036153w3(1,1) = 0,164732 - 0,024975 = 0,139757w3(2,1) = 0,752621 - 0,020135 = 0,732485

18

Exemplo – Atualização dos pesos

Page 19: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

Camada oculta Neurônio 1: w2(0,1) = 0,342942w2(1,1) = 0,129952 w2(2,1) =-0,923123Camada oculta Neurônio 2: w2(0,2) = - 0,123236w2(1,2) = 0,570345 w2(2,2) =-0,328932Camada de saída Neurônio 1: w3(0,1) = -1,036153w3(1,1) = 0,139757w3(2,1) = 0,732485

Entrada inicialx1(0) = 1 (bias)x1(1) = 0 x1(2) = 0

19

Segundo ciclo

Page 20: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

• Para a camada oculta os resultados da função somadora sãoNeurônio 1: (1 * 0,342942) + (0 * 0,129952) + (0 * -0,923123) = 0,342942Neurônio 2: (1 * - 0,123236) + (0 * 0,570345) + (0 * -0,328932) = -0,123236• Aplicando a função de ativação logística temosx2(1) = 1/(1+e^(-0,342942)) = 0,584905

x2(2) = 1/(1+e^(0,123236)) = 0,469230

20

Segundo ciclo – Treinamento Forward

Camada oculta Neurônio 1: w2(0,1) = 0,324137w2(1,1) = 0,129952 w2(2,1) =-0,923123Camada oculta Neurônio 2: w2(0,2) = - 0,035093w2(1,2) = 0,570345 w2(2,2) =-0,328932

Page 21: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

A entrada para camada de saída será x2(0) = 1 (bias)

x2(1) = 0,584905

x2(2) = 0,469230

Para a camada de saída o resultado da função somadora é Neurônio 1: (1 * -1,036153) + (0,584905* 0,139757) + (0,469230 * 0,732485)

= - 0,610740Aplicando a função de ativação logística temosx3(1) = 1/(1+e^(0,610740)) = 0,351899

21

Segundo ciclo – Treinamento Forward (2)

Camada de saída Neurônio 1: w3(0,1) = -1,036153w3(1,1) = 0,139757w3(2,1) = 0,732485

Page 22: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

O resultado esperado era 0 logo o erro é 0,351899.O erro obtido anteriormente era de 0,367610. A diferença a corrigir é dada por No caso em tela 3(1) = x3(1)*(1 - x3(1))*(d - x3(1))

3(1) = x3(1)*(1 - x3(1))*(d - x3(1)) =

= 0,351899 * (1 - 0,351899)(0 - 0,351899) = =-0,080256

x3(1) = 0,351899

22

Segundo ciclo – Treinamento Forward (3)

Page 23: Rede Neural de Backpropagation 1 ferraz/IA/NN/Aprendizado BP.ppt

Fim do treinamento

• A aprendizagem se repete até que• o erro seja menor do que um patamar especificado ou• seja atingido o número considerado razoável de ciclos

(10.000 é um número bastante razoável)

23