curso introdução às redes neuronais parte 2 prof. dr. rer.nat. aldo von wangenheim

26
Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

CursoIntrodução às Redes Neuronais

Parte 2

Prof. Dr. rer.nat. Aldo von Wangenheim

Page 2: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Recapitulação: Aspectos Importantes

• Modelagem dos Objetos

• Implementação dos Algoritmos de Treinamento

• Escolha e Gerência dos exemplos para Treinamento

• Estes aspectos são independentes do modelo de rede que se deseja implementar.

Page 3: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Recapitulação: Modelagem dos Objetos

Objetos a serem modelados:

• Rede

• Camada (Layer)

• Neurônio

• Conexão

• Neuroreceptor (Site)

Page 4: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim
Page 5: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

1.

0

0.

5

0.

0

Page 6: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

1.

0

0.

5

0.

0

Page 7: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

1.

0

0.

5

0.

0

Page 8: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

1.

0

0.

5

0.

0

1

0

0

Page 9: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Backpropagation

• Modelo mais utilizado atualmente• Baseia-se em uma extensão dos Perceptrons• Utilizado quando queremos “aprender” uma

função y = ?(x) desconhecida entre um conjunto de dados de entrada x e um conjunto de classificações possíveis y para esses. BP é um algoritmo para a implementação de

classificadores de dados. Representa teoricamente qualquer função, desde

que exista.

Page 10: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Perceptrons (1957)

• Redes Feed-Forward Treinamento baseado no Erro entre saída e padrão.

• 2 Camadas Limitado pque não existiam algoritmos de treinamento.

• Dois modelos de Neurônios: Neurônios de Barreira

• Representam dados linearmente separáveis

Neurônios Lineares• Representam dados linearmente independentes.

Page 11: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Aprendizado nos Perceptrons• Através da adaptação dos pesos wik

• Mesmo para os dois tipos de neurônios.

Entrada:

Saida:

Valor de entrada:

Desejado:

Quando a entrada for aplicada na entrada, teremos como saida:

u

O =

O = g( h ) = g w

iu

ku

iu

iu

u

iu

iu

kik k

u

k

Page 12: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Perceptron: Regra de Aprendizado

iknovo

ikvelho

ik

ikimy

kmy

iu

imy

ik iu

imy

ku

w = w + w

w = 2 O ;

0

w = - O

onde

caso

senao

ou:

e a taxa de aprendizado

:

.

Page 13: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Perceptron: Regra de Aprendizado

• A regra de aprendizado do Perceptron é chamada de Regra-Delta. A cada passo é calculado um novo delta.

• Com a Regra-Delta como foi definida por Rosenblatt havia vários problemas: Só servia para treinar redes onde você pudesse determinar o

erro em todas as camadas. Redes com só duas camadas eram limitadas. Nos neurônios lineares, onde era fácil determinar o erro

numa camada interna, não fazia sentido incluí-la por causa da dependência linear.

Page 14: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Regra de Aprendizado:Minimizar o Erro

• Inicializamos a rede com valores aleatórios para os pesos.

• A Regra Delta aplicada repetidamente produz como resultado e minimização do erro apresentado pela rede:

Page 15: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Erro:

E = 1

2 - O - w

iu

2

iu

iu

iu

2

iu

kik k

u = 12

[w]

Page 16: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Pesos Convergem

para um Ponto de

Erro Mínimo chamado Atrator

Page 17: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Problemas:• As vezes o espaço vetorial definido por um

conjunto de vetores de pesos não basta, não há um atrator (dados linearmente inseparáveis)

• Solução: Rede de mais camadas

• Problema: Como definir o erro já que não podemos usar

neurônios lineares, onde o erro pode ser definido pela derivada parcial de E em relação a w ?

Page 18: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Erro em Camadas Internas

• Com neurônios de McCulloch & Pitts podemos representar qualquer coisa.

• Como perém treiná-los ? Para a camada de saída é fácil determinar o erro, Para outras impossível.

E = 1

2 - O - w

iu

2

iu

iu

iu

2

iu

kik k

u = 12

[w]

Page 19: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Solução (McLelland 1984)

• Usamos uma função não-linear derivável como função de ativação. Uma função assim mantém a característica

provada por McCulloch e Pitts de representação.

• Usamos como medida de erro em uma camada interna, a derivada parcial do erro na camada posterior.

• Propagamos esse erro para trás e repetimos o processo: Error Backpropagation.

Page 20: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Bacpropagation

• Redes de mais de duas camadas.Treinamento:

• 2 Passos: Apresentação de um padrão para

treinamento e propagação da atividade.

Calculo do erro e retropropagação do erro.

Page 21: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Treinamento em BP:

• Padrão de treinamento é apresentado.

• Atividade é propagada pelas camadas.

• Erro é calculado na saída e vetores de pesos entrando na última camada são adaptados.

• Derivada do erro em relação aos vetores de pesos (antes da adaptação) é calculada e usada para adaptação dos pesos da camada anterior.

• Processo é repetido até a camada de entrada.

Page 22: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Funções de AtivaçãoQuaselineares:

g(h) = (h)

g (h) = (1 - g )

g(h) = f (h) = [1 + (-2 h) ]

g (h) = 2 g(1 - g)

2

-1

tanh

exp

com

e:

com

Page 23: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

i

j

k

w >

w

i

j

w

k u

k

i

h j

V j

h i

g( )

ij

rec giv

ku

iu

ju

ju

iu

output layer neuron index

hidden layer neuron index

input neuron index

weight

receiving neuron

giving neuron

input at input- neuron for pattern ;

the same as activation of neuron

expected output at neuron for given input pattern my

total input of HIDDEN neuron

OUTPUT of neuron

total input of OUTPUT neuron

ACTIVATION FUNCTION of neuron

_

Page 24: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Na apresentaçao de uma padrao a entrada de um neuronio escondido j

e a saida V

a unidade de saida i recebe:

e produz a saida O

u

juh =

kjkw k

u

juV = g( j

uh ) = g k

jkw ku

iuh =

jijW j

uV = j

ijW gk

jkw ku

iuO = g( i

uh ) = gj

ijW juV = g

jijW g

k

jmy

imy

jkw ku

E[ ]

E[ ] = 1

2 ui

2iu - i

uO

E[ ] = 1

2 u

2

iu - g

jw g

kjkw k

u

i

ij

O erro w

w

transforma se em:

w .

Page 25: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Dos neuronios de saida para os escondidos a regra e a de sempre:

ijij my

iu

iu

iu

ju

my

iu

ju

iu

iu

iu

iu

W = -E

W = - O g ( h )V

= V

= g ( h ) - O

Page 26: Curso Introdução às Redes Neuronais Parte 2 Prof. Dr. rer.nat. Aldo von Wangenheim

Para os escondidos para outros escondidos ou para os de entrada:

com

e assim aforma geral da regra

w = -E

w = -

E

V

V

w

= - O g ( h )W g ( h )

= W g ( h )

=

= g ( h ) W

jkjk my j

u

ju

jk

myiiu

iu

iu

ij ju

ku

uiiu

ij ju

ku

ju

ku

juy

ju

iij i

u

pq

:

w = * Vpatterns

output input