rede neural de backpropagation

17
Rede Neural de Backpropagation 1

Upload: pepper

Post on 25-Feb-2016

38 views

Category:

Documents


0 download

DESCRIPTION

Rede Neural de Backpropagation. Aprendizagem. Seja t k a k-th saída alvo (desejada) e z k a k-th saída computada para k = 1, …, c Sejam w os pesos da rede Seja net a soma ponderada de entradas de um neurônio Erro de treinamento: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Rede Neural de  Backpropagation

1

Rede Neural de Backpropagation

Page 2: Rede Neural de  Backpropagation

2

• 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 net a soma ponderada de entradas de um neurônio• Erro de treinamento:

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

c

1k

22kk zt

21)zt(

21)w(J

Aprendizagem

Page 3: Rede Neural de  Backpropagation

3

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

• Erro é função de net e net é função dos pesos• Derivando parcialmente (camada de saída)

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

kk

kj

k

kkj wnet

wnet

netJ

wJ

.

kk net

J

Minimização do erro

Page 4: Rede Neural de  Backpropagation

4

• 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

c

1k

22kk zt

21)zt(

21)w(J

kiki w

Jw

Atualização dos pesos das conexões

Page 5: Rede Neural de  Backpropagation

5

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

• como netk = wkt.y t

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

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

jkj

k ywnet

Conexões com a camada de saída

jkkj

kk

kj

k

kkjkj y

wnet

wnet

netJ

wJw

.

)´()()()(

)()(21 2

kkkk

kkk

k

kkkkk

kkk

netfztnetnetfzt

netzztzt

netnetJ

Page 6: Rede Neural de  Backpropagation

6

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

ji

j

j

j

jji wnet

nety

yJ

wJ

..

Conexões com a camada oculta

c

kkkjjj wnetf

1

)('

ijkkjjiji xnetfwxwj

)('

Page 7: Rede Neural de  Backpropagation

7

Resumo da atualização de pesos

• Para os pesos entre a camada de saída e a camada oculta o incremento é

• wkj = kyj = (tk – zk) f’ (netk)yj

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

j

)('

Page 8: Rede Neural de  Backpropagation

8

Derivadas das funções de transferência

• Para a função logística

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

2111*

111

11

x

x

xxx ee

eeedxd

xexf

11)(

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

k

k netfnetfnetfnetnetf

yyhy

dyyd

222

cosh1sectanh1)(tanh(

Page 9: Rede Neural de  Backpropagation

9

1 2

21

0

1

Camada de entrada 1

Camada oculta 2

Camada de saída 3

biasw2(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

10

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ía 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

Exemplo – Inicialização

Page 11: Rede Neural de  Backpropagation

11

• 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.584490x2(2) = 1/(1+e^( 0.115223)) = 0.471226

Exemplo – Treinamento Forward

Page 12: Rede Neural de  Backpropagation

12

A entrada para camada de saída será x2(0) = 1 (bias)x2(1) = 0.584490x2(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

Exemplo – Treinamento Forward (2)

Page 13: Rede Neural de  Backpropagation

13

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

Exemplo – Treinamento Forward (3)

Page 14: Rede Neural de  Backpropagation

14

Para os neurônios da camada oculta as diferenças a corrigir sãow3(1,1)d3(1) é a diferença a corrigir neurônio 1w3(2,1)d3(1) é a diferença a corrigir neurônio 2 d2(1) = x2(1)*(1 - x2(1))*w3(1,1)*d3(1) = 0.584490 * (1 - 0.584490)*(0.164732)*(-0.085459) = -0.0034190d2(2) = 0.471226 * (1 - 0.471226)*(0.752621)*(-0.085459) = -0.0160263

Exemplo – Treinamento Backward (1)

Page 15: Rede Neural de  Backpropagation

15

• 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.

Exemplo – Treinamento Backward (2)

Page 16: Rede Neural de  Backpropagation

16

dw2(0,1) = h*x1(0)*d2(1) = 0.5 * 1 * -0.0034190 = -0.017095dw2(1,1) = h*x1(1)*d2(1) = 0.5 * 0 * -0.0034190 = 0dw2(2,1) = h*x1(2)*d2(1) = = 0.5 * 0 * -0.0034190 0 dw2(0,2) = h*x1(0)*d2(2) = 0.5 * 1 * -0.0160263 = -0.0080132dw2(1,2) = h*x1(1)*d2(2) = 0.5 * 0 * -0.0160263 = 0dw2(2,2) = h*x1(2)*d2(2) = 0.5 * 0 * -0.0160263 = 0 dw3(0,1) = h*x2(0)*d3(1) = 0.5 * 1 * -0.085459 = -0.042730dw3(1,1) = h*x2(0)*d3(1) = 0.5 * 0.584490 * -0.085459 = -0.024975dw3(2,1) = h*x2(0)*d3(1) = 0.5 * 0.471226 * -0.085459 = -0.020135

Exemplo – Treinamento Backward (3)

Page 17: Rede Neural de  Backpropagation

17

• Valores atualizados dos pesos das conexões w2(0,1) = 0.341232 + -0.017095 = 0,3395225w2(1,1) = 0.129952 + 0 = 0.129952w2(2,1) =-0.923123 + 0 =-0.923123w2(0,2) =-0.115223 + = 0,10720985w2(1,2) = 0.570345 + 0 = 0.570345w2(2,2) =-0.328932 + 0 =-0.328932w3(0,1) =-0.993423 + -0.042730 = 0,9506935w3(1,1) = 0.164732 + -0.024975 = 0,139757035w3(2,1) = 0.752621 + -0.020135 = 0,732485749

Exemplo – Atualização dos pesos