Escolar Documentos
Profissional Documentos
Cultura Documentos
2
Motivação Biológica
■ Idéia central:
– utilizar neurônios biológicos
como modelos para
neurônios artificiais.
■ Neurônio Biológico:
– Elemento fundamental do
sistema nervoso.
– Diversos tipos.
■ Cérebro humano:
relativamente lento, mas
com muito paralelismo
– 1011 processadores de 1 KHz
– cada neurônio se conecta
com outros 104
Aprendizagem automática!
3
Funcionamento simplificado de
um Neurônio Biológico
■ Neurônios podem estar em 2 estados:
– Ativo ou excitado: envia sinais para outros
neurônios por meio do axônio e sinapses.
– Inativo ou inibido: não envia sinais.
■ Sinapses podem ser de 2 tipos:
– Excitatórias (excitam o neurônio receptor).
– Inibitórias (inibem o neurônio receptor).
■ Quando o efeito cumulativo das várias sinapses
que chegam a um neurônio excede um valor
limite, o neurônio dispara (fica ativo por um
período) e envia um sinal para outros neurônios.
4
O que é uma RNA?
■ É um sistema de processamento de
informações desenvolvido a partir de
modelos matemáticos simplificados dos
neurônios biológicos.
■ Um estilo diferente de computação:
processamento distribuído e paralelo
■ Uma arquitetura computacional universal:
a mesma estrutura executa muitas funções
diferentes
■ Pode aprender novos conhecimentos,
portanto, é adaptativo
5
Um pouco de História
1950s & 1960s: Infância
1943 - Neurônio de McCulloch-Pitts
1958 - Perceptrons (Rosenblatt)
1960 - Adaline (Widrow & Hoff)
1970s: Os anos negros...
1969 - Minsky and Papert ( MIT ) publicam um livro que põe em dúvida
a capacidade de aprendizado dos perceptrons.
1972 - Redes auto-organizáveis (Kohonen)
1976 - Teoria de Ressonância Adaptativa (Grossberg & Carpenter)
1980s: Entusiasmo renovado
1986 - Surgimento do algoritmo backpropagation (Werbos)
1987 - Redes de Hopfield ( Hopfield & Tank )
1988 - Redes Neocognitron ( Fukushima ), RBF (Broomhead e Lowe)
1990s: Amadurecimento
- Aplicações no mundo real
- Teoria computacional da aprendizagem: support vector machines (Vapnik),
aprendizado PAC (Anthony e Biggs).
2010s: Deep Fever
- Deep Learning... Sucesso total 6
Aplicações
Identificação de alvos militares:
B-52, Boeing 747 e Space Shuttle
Autentificação de
usuário.
Exploração de petróleo:
Determinação e Litologia
Reconhecimento
de Faces
Predição no
Controle de Navegação Autônoma de Veículos: Mercado
ALVINN at CMU Financeiro
7
Referências Bibliográficas
■ A “Bíblia”:
– Simon Haykin. Neural Networks: A
Comprehensive Foundation.
■ Livro de IA com bom capítulo de RNAs:
– Russel e Norvig. Artificial Intelligence: A Modern
Approach.
■ Livro de Aprendizagem de Máquina com bom
capítulo de RNA:
– Tom Mitchell. Machine Learning. WCB/McGraw-
Hill, 1997.
■ Livro em Português:
– Braga, Ludermir e Carvalho. Redes Neurais
Artificiais. LTC.
8
Redes Neurais Artificiais:
Propriedades
■ Aprendizado:
– RNA pode modificar seu comportamento em
respostas a seu domínio, de forma a produzir
saídas consistentes.
■ Generalização:
– Uma vez treinada, a resposta de uma RNA pode
ser, num certo grau, insensível a pequenas
variações (ruídos, distorções) nas suas entradas.
■ Abstração:
– Algumas RNAs podem extrair “um ideal” a partir
de exemplos imperfeitos na sua entrada.
9
Projeto de uma RNA
■ O projeto de uma RNA envolve a
determinação dos seguintes parâmetros:
– Neurônios e função de ativação.
– Conexões e disposição dos neurônios: topologia
(arquitetura da rede).
– Pesos sinápticos: valores (no caso de pesos
aprendidos) ou o algoritmo de treinamento a ser
utilizado e seus parâmetros particulares.
Terminal Branches
Dendrites
of Axon
Axon
Perceptron
Terminal Branches
Dendrites
of Axon
x1
w1
x2
w2 f(net)
In x3 w3
S
net Out
Axonθ
wn
xn
#% 1: net > 0
OUT = f ( net ) = $ with net = ∑ wij In j
%& −1: net ≤ 0 j
Função de ativação
Perceptron
■ Introduzido por Frank Rosenblatt em 1958
■ Características do Perceptron:
– Pesos e limiares não são todos idênticos.
– Pesos podem ser positivos ou negativos.
– Neurônios são binários e a função de ativação
f(net) retorna [-1,1].
– Mais importante: existe uma regra de
aprendizagem.
Perceptron
A A
¬ OK B
B
Não OK ®
16
Exercício 1 Tabela 1
■ Projete um neurônio tipo x1 x2 y
Perceptron (Figura 1) que 0 0
calcula a função lógica
0 1
implicação y = x1 ® x2,
descrita na Tabela 1. 1 0
1 1
X y out
0 0
0 1
1 0
1 1
19
Aprendizado Supervisionado
no Perceptron:
■ A regra de atualização dos pesos é:
w i ç w i + a d xi
Onde d = (t – o)
– xi é a entrada,
– t é o valor desejado (ou a saída correta),
– o é a saída apresentada pelo perceptron,
– a é uma constante pequena (ex: 0.1), chamada
taxa (ou coeficiente) de aprendizagem.
Funciona para entradas/saídas discretas ou
contínuas.
20
Comentários sobre a regra de
aprendizagem do Perceptron:
■ Se o exemplo é corretamente classificado, o termo.
(t – o) é igual a zero e nenhuma atualização de
pesos é necessária.
■ Se a saída do perceptron é –1 e t = 1, os pesos
aumentam.
■ Se a saída do perceptron é 1 e t = –1, os pesos
diminuem.
■ Se os exemplos forem linearmente separáveis e um
pequeno valor for usado para a, a regra é provada
classificar corretamente todos os exemplos de
treinamento (isto é, é consistente com os dados de
treinamento).
21
Limitações do Perceptron com
uma camada
■ Infelizmente, várias funções de interesse não
são linearmente separáveis.
■ Por exemplo, o Perceptron não pode
representar o XOR (OU exclusivo).
X2
X1 X2 Out
b d
a 0 0 0 1 Out = 0
b 0 1 1 Out = 1
c 1 0 1 a c
d 1 1 0 0
X1
1
22
Separação em 4 classes: Exemplo
Neurônio 1: separa em classes C1 e C2
1
x w1 w0
S f x
y w2
23
Separação em 4 classes: Exemplo
Dois neurônios:
1 w0
w1 x
x S f
w1
w2 y
y S f
w2
+1 +1 w0
1
-1 +1
+1 -1 x’=+1, y’=+1 Þ classe
x’=+1, y’=-1 Þ classe
-1 -1 x’=-1, y’=+1 Þ classe
x’=-1, y’=-1 Þ classe 24
MLP: Multi-layer Perceptrons
X2
(111)
A B (1-11)
Classificação requer 3 linhas
C discriminantes que criam 7
compartimentos e 2 regiões
de decisão: uma para e outra
para .
(-1-1-1)
X1
compartimentos
Camada Escondida
Entradas A
Saída
x1 1 Classe 1
Solução: B out
x2 Classe 2
-1
C
(-1-1-1),(-1-11),…..,(111) 25
Exemplo de Rede MLP
■ x1 = x2 = entradas binárias.
■ w1 = w2 = w3 = w4 = w5 = 1 e w6 = -2
x1 x2 Out
■ f1 (x.w) = 1 se nível de ativação ³ 0,5,
0 caso contrário. 0 0
■ f2 (x.w) = 1 se nível de ativação ³ 1,5, 0 1
0 caso contrário. 1 0
1 1
x1 1
0,5
1 1
0,5
1 out
1
x2 1,5 -2
0 q net 0 net
0 q 1
net
-1 0 net
29
MLP Sigmóide
■ Neurônio com função de ativação limiar sigmóide:
1
s (net ) = ou s (net ) = tanh (net )
1 + e - net
1
s ( x) = -x
Þ s ¢( x) = s ( x)(1 - s ( x) )
1+ e Propriedade
s ( x) = tanh (x ) Þ s ¢( x) = (
1 - s 2
)
(x ) Interessante
…
2
derivada 30
Como treinar um MLP?
■ Descida do gradiente:
Aprende wi’s que
minimizam erro o
quadrático com o
conjunto de treinamento:
x1 x1
å
! 1
E[ w] = (t d -o d ) 2
2
d ÎD
D = dados de treinamento
31
Descida do Gradiente (1camada, 2 entradas)
! 1
E[ w] = å (t d -o d ) 2
2deD
h positivo
Gradiente: ! é ¶E ¶E ¶E ù
ÑE[ w] = ê , ,..., ú
¶
ë 0w ¶w1 ¶wnû
! ! ¶E
Regra: Dw = -h ÑE[w] Dwi = -h
¶wi
Pois deseja-se mover o vetor de peso na direção que o erro E diminui 32
Descida do Gradiente (uma camada)
¶E ¶ 1
= å d d
¶wi ¶wi 2 d
(t - o ) 2
1 ¶
= å (t d - od ) 2
2 d ¶wi
1 ¶
= å 2(t d - od ) (t d - od )
2 d ¶wi
¶ ! !
= å (t d - od ) (t d - s ( w × xd ))
d ¶wi
¶ ! !
= å (t d - od ) (- s ( w × xd ))
d ¶wi
! ! ! !
= -å (t d - od ) s ( w × xd ) (1 - s ( w × xd )) xi ,d
d
od od 33
Descida do gradiente: várias saídas
! 1
E[ w] = å å (t kd -o kd ) 2
2 d ÎD k Î saidas
34
Algoritmo Backpropagation (I)
■ Para rede com 1 camada escondida com nhid unidades
sigmoidais, nout saídas (unidades sigmoidais), nin
entradas, vários exemplos de treinamento < x, t >
w (pesos)
t (saídas do
treinamento)
x
o (saídas dadas
nout pela rede)
nin
nhid
Parâmetros de entrada do backpropagation:
{<x1, t1>, <x2, t2>....}, h, nhid, nin, nout 35
Algoritmo Backpropagation (II)
■ Iniciar w aleatoriamente (valores pequenos)
■ Repetir até estar na condição de parada:
– Para cada exemplo de treinamento <x, t>, fazer:
//propagar a entrada para frente até obter as saídas:
1. Colocar x como entrada e computar cada saída ok.
//propagar os erros para trás na rede:
2. Para cada unidade k de saída, calcular o erro dk:
dk ¬ ok (1 - ok) (tk - ok)
3. Para cada unidade escondida h, calcular o erro dh:
dh ¬ oh (1 - oh) SkÎsaidas whk .dk
4. Atualizar cada peso wij da rede: Mostra quanto cada h é
“responsável” pelo erro dk
wij ¬ wij + h dj xij
36
Entrada do nó i para o j
Algoritmo Backpropagation:
animação
http://www.trapexit.org/images/b/ba/Animate_ANN.gif
Exemplo
63
Exemplo:
pesos iniciais: (-0.1 a +0.1); h = 0.3
Entrada Saída
10000000 ® 10000000
01000000 ® 01000000
00100000 ® 00100000
00010000 ® 00010000
00001000 ® 00001000
00000100 ® 00000100
00000010 ® 00000010
00000001 ® 00000001
64
Aprendizado da representação (camada interna)
1 0 0
0 1 1
Entrada Saída hs Saída
10000000 ® .89 .04 .08 ® 10000000
01000000 ® .15 .99 .99 ® 01000000
00100000 ® .01 .97 .27 ® 00100000
00010000 ® .99 .97 .71 ® 00010000
00001000 ® .03 .05 .02 ® 00001000
00000100 ® .01 .11 .88 ® 00000100
00000010 ® .80 .01 .98 ® 00000010
00000001 ® .60 .94 .01 ® 00000001
66