1 aplicação de otimização irrestrita: treinamento de redes neurais artificiais das-6651 - mspo...
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.