1 aplicação de otimização irrestrita: treinamento de redes neurais artificiais das-6651 - mspo...

Post on 07-Apr-2016

220 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Aplicação de Otimização Irrestrita: Treinamento de Redes Neurais

Artificiais

DAS-6651 - MSPOEduardo Camponogara

2

0. Agenda

Introdução a Redes Neurais (RNs) Representação Treinamento de RNs Aplicações Dificuldades/Limitações Perceptron Referências

3

1. Introdução a Redes Neurais

Redes Neurais (RNs) constituem métodos “robustos” de aproximação de funções de valores vetoriais, reais ou discretos.

– No sentido de que tolera erros nos pares de treinamento

Uma rede neural é um aproximador universal (ou melhor, interpolador universal).

Entrada Saída

4

1. Introdução a Redes Neurais

Entrada Saída

O algoritmo de treinamento (de propagação reversa, back-propagation) nada mais é do que uma implementação especializada do algoritmo de descenso.

5

1. Motivação Biológica

Como o próprio nome sugere, redes neurais são inspiradas em sistemas biológicos de aprendizagem que tipicamente consistem de redes complexas de unidades elementares.

6

1. Motivação Biológica

Alguns números interessantes.

– O cérebro humano possui aproximadamente 1011 neurônios, cada um conectado a cerca de 104 neurônios. (100 bilhões de neurônios.)

– O tempo de resposta de um neurônio é aproximadamente 10-3 s, muito mais lento do que um computador (10-10 s, tempo de resposta de uma porta ló gica)

– O tempo de reconhecimento de uma figura é de cerca de 10-1s.

7

1. Especulações

Dado o tempo relativamente lento de resposta do neurônio, em comparação com a velocidade de processamento de informação, podemos concluir que:

– O sistema de aprendizagem biológico é extremamente paralelo e distribuído, todavia não possui um número muito grande de camadas.

8

1. Especulações

Existem incompatibilidades entre redes neurais artificiais e as unidades do sistema biológico de aprendizagem. (A saída de uma unidade artificial é um valor constante, enquanto que as unidades biológicas emitem uma série complexa de sinais.)

9

1. Rede Neural: Elementos Básicos

x1

x2

xn

y1

y2

ym

wn

w1

w1 nS=wixi i =1

f(S)

Pesos das sinapses

Entrada Saída

10

2. Representação de Redes Neurais

x1

x2

xn

y1

y2

ym

Camada de Entrada

Camada de Saída

Camadas Intermediárias

11

3. O Problema de Treinamento

Dados:– Uma rede neural (a sua topologia), ou seja,

um grafo G = (V, E).– Exemplos de treinamento, ou seja, uma lista de pares de

entradas e saídas desejadasD = {(x1,y1), ..., (xK,yK)}

Problema:– Encontrar os pesos das sinapses tal que o erro de estimação

das saídas seja o menor possível (Least Squares Problem).

12

3. O Problema de Treinamento

Representação:Seja f(w,x) a função representada pela rede neural com pesos dados pelo vetor w. Dado x, a rede responde com um valor

y = f(w,x).

Problema: K

Minimize ||f(w,xk) yk||2 w k = 1

13

4. Representação no ALVINN

Imagem de Entrada

Rede Neural

Esquerda DireitaReto Comandos

14

4. Detalhes do ALVINN

O ALVINN utilizou com sucesso o modelo de redes neurais para dirigir um veículo, a uma velocidade de até 100 Km/h, por cerca de 120 Km, em uma freeway.

Mais recentemente, este mesmo sistema dirigiu um veículo na maior parte do tempo, de Pittsburgh (Pennsylvania) até Berkeley (California).

15

5. Problemas Apropriados para RNs

RNs são recomendadas para problemas de aproximação complexos (tipicamente sistemas não-lineares)

– Dados com ruídos, tais como dados provenientes de câmeras e microfones.

16

5. Problemas Apropriados para RNs

As RNs em combinação com o algoritmo de propagação reversa (back-propagation) são adequadas para problemas com as seguintes características:

1) Instâncias que são representadas por pares contendo muitos atributos (múltiplas entradas e múltiplas saídas).

2) O atributo de saída tenha um valor discreto, real ou um vetor de valores. (No ALVINN a saída é um vetor com cerca de 30 saídas, cada uma representando a probabilidade de um comando).

17

5. Problemas Apropriados para RNs

As RNs em combinação com o algoritmo de propagação reversa (back-propagation) são adequadas para problemas com as seguintes características:

3) O treinamento pode ser feito off-line.

4) A avaliação da função deve ser muito rápida, para uso em aplicações de tempo-real.

5) A habilidade de se entender o significado da aproximação não é necessária.

6) Os exemplos de treinamento podem conter erros.

18

6. Perceptron

x0 = 1

x1

xn

y1 = o(x) = sign(wTx)

y2= sign(wTx)

ym = sign(wTx)

wn

w0

Threshold

o(x0,...,xn) =+1 if w0 + w1x1 + ... + wnxn > 0

1 caso contrário

19

6. Treinamento de um Perceptron

Dados um conjunto de exemplos,(x1,t1), ..., (xM,tM)

encontre w tal que o erro de predição seja minimizado. M

(P) Minimize ||sign(wTxm) - tm||2

w m = 1

Quais são os possíveis obstáculos na resolução de (P)?

20

6. Dificuldades de Treinamento

++

+

+

+

+

+

+

Conjunto linearmente separável

Conjunto que não podeser separado linearmente

(P) não é diferenciável

21

6. Capacidade Representacional

O perceptron define um subespaço multidimensional, classificando como positivo os exemplos que estão de um lado e como negativo os demais.

O perceptron pode ser usado para representar as funções lógicas “AND” , “OR”, “NOR” e “NAND”.

IMPORTANTE: Qualquer função booleana pode ser representada por uma rede de perceptrons, que executam as operações acima. (Representação de função booleana na forma normal disjuntiva, i.e., disjunção de cláusulas).

22

6. Treinamento de um Perceptron

O procedimento de treinamento de um perceptron é o elemento básico para desenvolver o procedimento de treinamento de uma rede.

x0 = 1

x1

xn

y = o(x)wn

w0

Threshold

o(x) = sign(wTx)

23

6. Algoritmo de Treinamento

w = [w0, ..., wn] é inicializado randomicamente (tipicamente -0.5 < wi < 0.5).

um número correspondendo à taxa de aprendizagem (normalmente, = 0.01).

m 1 // Temos M exemplos de treinamentoRepita

Para i = 0, ..., nwi = [ tm o(xm)]xm

i

wi = wi + wi

FimParam mod(m, M) +1

FimRepita

24

6. Algoritmo de Treinamento

w = [w0, ..., wn] é inicializado randomicamente (tipicamente -0.5 < wi < 0.5).

um número correspondendo à taxa de aprendizagem (normalmente, = 0.01).

m 1 // Temos M exemplos de treinamentoRepita

Para i = 0, ..., nwi = [ tm o(xm)]xm

i

wi = wi + wi

FimParam mod(m, M) +1

FimRepitaO algoritmo converge se o problema é linearmente separável

25

6. Regra Delta e o Algortimo de Descenso

Lembre-se que o algoritmo de treinamento de perceptrons encontra um vetor de pesos, w, quando os exemplos são linearmente separáveis, mas pode falhar em caso contrário.

A regra delta supera esta dificuldade; o algoritmo converge para a melhor aproximação linear da relação entre entrada e saída.

o(x) = sign(wTx)

o(x) = wTx

26

6. Treinamento de uma Unidade

x0 = 1

x1

xn

y = o(x)

wn

w0

o(x) = wTx

wTx

27

6. O Problema de Treinamento

Dado um conjunto fixo de exemplos (x1, t1), ..., (xM, tM)

Encontre w Rn tal que o erro de predição seja minimizado.

M

(P) Minimize E(w) = ½ [o(xm) - tm ]2

w m = 1

M

(P) Minimize E(w) = ½ [wTxm - tm ]2

w m = 1

E(w) é o erro de predição.

28

6. Derivando o Gradiente de E(w)

E

--- = --- { ½ [wTxm tm ]2 }

w1 w1 m=1

= [wTxm tm

] ---- [wTxm tm ]

m=1 w1

= [wTxm tm ][xm

1 ]

m=1

29

6. O Algoritmo de Descenso

Na iteração k, tem-se a solução candidata wk e deseja-se encontrar outra solução, wk+1, com menor erro de predição.

(P) Minimize f() = E[wk E(wk)] Sujeito à:

0

30

6. Redes com Múltiplas Camadas

Redes com múltiplas camadas podem representar funções não-lineares de elevada complexidade.

head

had

hud

heedhid

who’dhood

heard

hem

F1 (Hz)

F2 (Hz)

F2F1

head hid who’d hood

31

6. Redes com Múltiplas Camadas

A capacidade representacional de uma rede com múltiplas camadas de unidades lineares é superior ao de apenas uma unidade linear?

32

6. Redes com Múltiplas Camadas

Uma rede com múltiplas camadas contendo unidades lineares é, também, uma função linear.

33

6. Uma Unidade Diferenciável

(y)

½

1

y

(y) = 1 /(1 + ey)

34

6. Unidade Sigmoide

x0 = 1

x1

xn

y1

y2

ym

wn

w0

Sigmoide

y = o(x) =

= (net) =

= 1/(1+enet)

Propriedade daSigmoide

net

nnet =wixi i =0

d(z)--- = (z)[1 (z)] dz

35

6. Algoritmo de Propagação Reversa

Dados um grafo representando a rede de múltiplas camadas, e uma lista com exemplos de treinamento(x1, t1), ..., (xM, tM).

O algoritmo de propagação reversa utiliza o algoritmo de descenso com o objetivo de minimizar o erro entre as saídas da rede e os valores desejados. M

(P) Minimize E(w) = [ tmk o(xm)k ]2

w m = 1 k Saída

36

7. Referências

T. M. Mitchell, Machine Learning, McGraw-Hill, 1997.

top related