Redes Neurais Artificiais - USP · Redes Neurais Artificiais: Propriedades Aprendizado: – RNA...
Transcript of Redes Neurais Artificiais - USP · Redes Neurais Artificiais: Propriedades Aprendizado: – RNA...
Redes Neurais Artificiais
Profa. Anna Helena Reali Costa POLI – PCS/EPUSP
Material com contribuições de: Prof. Reinaldo A. C. Bianchi, FEI – Depto. Engenharia Elétrica
Profa. Leliane N. Barros, IME – USP Prof. Carlos H. C. Ribeiro, ITA – Divisão de Ciência da Computação
A estes professores, meus agradecimentos.
2
■ Descrever as características básicas das
Redes Neurais Artificiais (RNAs). ■ Descrever o funcionamento de uma RNA. ■ Descrever algumas das principais
arquiteturas existentes para RNAs. ■ Exemplificar o uso de RNAs em
Reconhecimento de Padrões e Controle.
Objetivos
3
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!
4
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.
5
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
6
Um pouco de História 1950s & 1960s: Infância 1943 - Neurônio de McCulloch-Pitts 1959 - 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
7
Aplicações Identificação de alvos militares: B-52, Boeing 747 e Space Shuttle
Controle de Navegação Autônoma de Veículos: ALVINN at CMU
Exploração de petróleo: Determinação e Litologia
Autentificação de usuário.
Reconhecimento de Faces
Predição no Mercado Financeiro
8
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.
9
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.
10
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.
– Recall: procedimento a ser utilizado – como a rede calcula a saída para uma dada entrada?
Infelizmente, não existe uma “receita” única...
Modelo Biológico
Axon
Terminal Branches of AxonDendrites
Perceptron
Axon
Terminal Branches of AxonDendrites
S
x1
x2w1
w2
wnxn
x3 w3
OUT = f net( ) =1:net > 0−1:net ≤ 0
#$%
&%with net = wij
j∑ Inj
Função de ativação
θ
f(net)
net
In
Out
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) é [-1,1]. – Mais importante: existe uma regra de
aprendizagem.
14
Perceptron
■ Formalmente, o perceptron com função limiar implementa um hiperplano de dimensão n – 1, definido pelas coordenadas x1, x2, ....xn (entradas) que passa por w.x=net=0 e particiona o espaço n dimensional das instâncias de treinamento em duas regiões (correspondentes às duas classes das instâncias) (a 1ª. Região em w.x>0 e a 2ª., em w.x<0).
15
Operação do Perceptron: Exemplo ■ Duas entradas: x, y ■ Dois pesos: w1, w2
■ Uma entrada de viés (bias): w0
[ ]ywxwwfout 210 ++=
x
y
0210 =++ ywxww0210 >++ ywxww
Σ
x
y
w1
w2 f
w0 1
out
+1
0210 <++ ywxww
-1
16
Poder de representação dos Perceptrons Conseguem representar qualquer função linearmente separável
Função linearmente separável: consigo separar as classes com retas (ou planos, ou hiperplanos). 1 neurônio: classes +1 e –1
← OK Não OK →
A
B
A B
17
Exercício 1 ■ Projete um neurônio tipo
Perceptron (Figura 1) que calcula a função lógica implicação y = x1 → x2, descrita na Tabela 1.
Figura 1 – Neurônio Perceptron.
x1 x2 y 0 0 0 1 1 0 1 1
Tabela 1
18
Aprender Hipóteses de Funções
■ Aprendizagem: consiste em escolher valores para os pesos w0, ..., wn.
■ É preciso agora definir algoritmos para encontrar essas hipóteses! – e selecionar apenas uma para adotarmos como o
sistema de classificação de dados futuros
O espaço de hipóteses candidatas H é
H = {w | w ∈ ℜ(n+1)}
Exemplo ■ Com w0= -0,8;
w1= 0,5; w2= 0,5 ■ Qual a função
implementada pelo perceptron?
19
Σ
x
y
w1
w2 f
w0 1
out
X y out 0 0 0 1 1 0 1 1
20
Aprendizado Supervisionado no Perceptron: ■ A regra de atualização dos pesos é:
wi ç wi + α δ xi Onde δ = (t – o) – xi é a entrada, – t é o valor desejado (ou a saída correta), – o é a saída apresentada pelo perceptron, – α é uma constante pequena (ex: 0.1), chamada
taxa (ou coeficiente) de aprendizagem. Funciona para entradas/saídas discretas ou
contínuas.
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 regra é provada classificar corretamente todos os exemplos de treinamento (isto é, é consistente com os dados de treinamento).
21
22
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).
X1 X2 Out a 0 0 0 b 0 1 1 c 1 0 1 d 1 1 0 X1
X2
Out = 0 Out = 1
0
1
1
d
c
b
a
23
Neurônio 1: separa em classes C1 e C2
Separação em 4 classes: Exemplo
Neurônio 2: separa em classes C1’ e C2’
Σ
x
y
w1’
w2’ f
w0’ 1
Σ
x
y
w1
w2 f
w0 1
x’
y’
24
Separação em 4 classes: Exemplo
x
y
w1
w1’ Σ f
w0 1
x’
Σ f y’
w2’
w2
1 w0’ +1 +1
+1 -1 -1 +1
-1 -1
Dois neurônios:
x’=+1, y’=+1 ⇒ classe x’=+1, y’=-1 ⇒ classe x’=-1, y’=+1 ⇒ classe x’=-1, y’=-1 ⇒ classe
25
MLP: Multilayer Perceptrons ■ Conjuntos de Perceptrons arranjados em
diversas camadas. ■ Pelo menos uma camada escondida.
– Uma camada intermediária é suficiente para aproximar qualquer função contínua.
– Duas camadas intermediárias são suficientes para aproximar qualquer função matemática.
26
MLP: Multi-layer Perceptrons Classificação requer 3 linhas discriminantes que criam 7 compartimentos e 2 regiões de decisão: uma para e outra para .
compartimentos
A B
C
(-1-1-1)
(111)
X1
X2 (1-11)
x1 x2
out
Camada Escondida
Entradas A
B
C
Classe 1
Classe 2
(-1-1-1),(-1-11),…..,(111)
1
-1 Solução:
Saída
27
Exemplo de Rede MLP ■ x1 = x2 = entradas binárias. ■ w1 = w2 = w3 = w4 = w5 = 1 e w6 = -2 ■ f1 (x.w) = 1 se nível de ativação ≥ 0,5,
0 caso contrário. ■ f2 (x.w) = 1 se nível de ativação ≥ 1,5,
0 caso contrário.
Efetue o recall desta rede, completando a tabela.
1
1
1 1 -2
1
0,5
0,5
1,5
x1
x2
out
x1 x2 Out 0 0 0 1 1 0 1 1
28
Exemplo de Rede MLP ■ x1 = x2 = entradas binárias. ■ w1 = w2 = w3 = w4 = w5 = 1 e w6 = -2 ■ f1 (x.w) = 1 se nível de ativação ≥ 0,5,
0 caso contrário. ■ f2 (x.w) = 1 se nível de ativação ≥ 1,5,
0 caso contrário.
1
1
1 1 -2
1
0,5
0,5
1,5
x1
x2
out
x1 x2 Out 0 0 0 0 1 1 1 0 1 1 1 0
Consegui uma rede para o XOR!!!
29
Tipos de Função de Ativação
Out
θ
1
0 net
Out Out = 1 if net > θ
= 0 if net < θ
0
1
net
-1
θ
Out = 1 if net > θ
= -1 if net < θ
Função Limiar
0
1
net
Out 1 Out = -------------------- 1 + exp (-λ.net) Função Logística
Função Sigmoide
Out = tanh(λ.net) Função Tangente Hiperbólica
0
1
net
Out
-1
30
MLP Sigmóide ■ Neurônio com função de ativação limiar sigmóide:
( )
( ) ( )( )2
1)( tanh)(
)(1)()( 1
1)(
2 xxxx
xxxe
x x
σσσ
σσσσ
−=ʹ′⇒=
−=ʹ′⇒+
=−
( ) tanh)(ou 1
1)( netnete
net net =+
=−
σσ
Propriedade Interessante
… derivada
31
Como treinar um MLP?
■ Descida do gradiente: Aprende wi’s que minimizam erro quadrático com o conjunto de treinamento:
2)(21][ ∑
∈
−=
Dddd otwE
!
D = dados de treinamento
x1
o
x1
32
Descida do Gradiente (1camada, 2 entradas)
Gradiente: ⎥⎦
⎤⎢⎣
⎡
∂
∂
∂
∂
∂
∂=∇
nwE
wE
wEwE ,...,,][
10
!
ii w
Ew∂
∂−=Δ ηRegra: ][wEw !!
∇−=Δ η
2)(21][ ∑ −=
Dddd otwE
ε
!
Pois deseja-se mover o vetor de peso na direção que o erro E diminui
η positivo
1 neurônio com 2 entradas (e dois pesos, w0 e w1)
33
Descida do Gradiente (uma camada)
diddd
dd
did
dd
ddd i
dd
ddd i
dd
ddd i
ddd
ii
xxwxwot
xww
ot
xwtw
ot
otw
ot
otw
otww
E
,
2
2
))(1()()(
))(()(
))(()(
)()(221
)(21
)(21
!!!!
!!
!!
⋅−⋅−−=
⋅∂
∂−−=
⋅−∂
∂−=
−∂
∂−=
−∂
∂=
−∂
∂=
∂
∂
∑
∑
∑
∑
∑
∑
σσ
σ
σ
od od
34
Descida do gradiente: várias saídas
2)(21][ ∑∑
∈∈
−=saidask
kdkdDd
otwE !
D = dados de treinamento
O erro agora deve ser redefinido para k saídas:
Saídas da rede
35
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 >
nin nhid
nout
x
t (saídas do treinamento) o (saídas dadas pela rede)
w (pesos)
Parâmetros de entrada do backpropagation: {<x1, t1>, <x2, t2>....}, η, nhid, nin, nout
36
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 δk:
δk ← ok (1 - ok) (tk - ok) 3. Para cada unidade escondida h, calcular o erro δh:
δh ← oh (1 - oh) Σk∈saidas whk .δk 4. Atualizar cada peso wij da rede:
wij ← wij + η δj xij Entrada do nó i para o j
Mostra quanto cada h é “responsável” pelo erro δk
37 http://www.trapexit.org/images/b/ba/Animate_ANN.gif
Algoritmo Backpropagation: animação
Exemplo
■ Considere a taxa de aprendizagem η = 0.9 e que o exemplo de treino seja X = (1,0,1), cujo rótulo de classe seja 1.
Table 1: Initial input and weight values x1 x2 x3 w14 w15 w24 w25 w34 w35 w46 w56 w04 w05 w06 ----------------------------------------------------------------------------------- 1 0 1 0.2 -0.3 0.4 0.1 -0.5 0.2 -0.3 -0.2 -0.4 0.2 0.1 Table 2: Cálculo da net de entrada e saída Unit j Net input Ij Output Oj ----------------------------------------------------------------------------------- 4 5 6 Table 3: Cálculo do erro em cada nó Unit j δj ----------------------------------------------------------------------------- 6 5 4
Table 1: Initial input and weight values x1 x2 x3 w14 w15 w24 w25 w34 w35 w46 w56 w04 w05 w06 ----------------------------------------------------------------------------------- 1 0 1 0.2 -0.3 0.4 0.1 -0.5 0.2 -0.3 -0.2 -0.4 0.2 0.1 Table 2: Cálculo da net de entrada e saída Unit j Net input Ij Output Oj ----------------------------------------------------------------------------------- 4 0.2 + 0 -0.5 -0.4 = -0.7 1/(1+e0.7)=0.332 5 -0.3 +0+0.2 +0.2 =0.1 1/(1+e0.1)=0.525 6 (-0.3)(0.332)-(0.2)(0.525)+0.1 = -0.105 1/(1+e0.105)=0.474 Table 3: Cálculo do erro em cada nó Unit j δj ----------------------------------------------------------------------------- 6 5 4
Table 1: Initial input and weight values x1 x2 x3 w14 w15 w24 w25 w34 w35 w46 w56 w04 w05 w06 ----------------------------------------------------------------------------------- 1 0 1 0.2 -0.3 0.4 0.1 -0.5 0.2 -0.3 -0.2 -0.4 0.2 0.1 Table 2: Cálculo da net de entrada e saída Unit j Net input Ij Output Oj ----------------------------------------------------------------------------------- 4 0.2 + 0 -0.5 -0.4 = -0.7 1/(1+e0.7)=0.332 5 -0.3 +0+0.2 +0.2 =0.1 1/(1+e0.1)=0.525 6 (-0.3)(0.332)-(0.2)(0.525)+0.1 = -0.105 1/(1+e0.105)=0.474 Table 3: Cálculo do erro em cada nó Unit j δj ----------------------------------------------------------------------------- 6 (0.474)(1-0.474)(1-0.474)=0.1311 5 (0.525)(1-0.525)(0.1311)(-0.2)=-0.0065 4 (0.332)(1-0.332)(0.1311)(-0.3)=-0.0087
Table 4: Cálculo da atualização dos pesos Peso Novo valor ------------------------------------------------------------- w46 w56 w14 w15 w24 w25 w34 w35 w06 w05 w04
Table 4: Cálculo da atualização dos pesos Peso Novo valor ------------------------------------------------------------- w46 -0.3+(0.9)(0.1311)(0.332)= -0.261 w56 -0.2+(0.9)(0.1311)(0.525)= -0.138 w14 0.2 +(0.9)(-0.0087)(1) = 0.192 w15 -0.3 +(0.9)(-0.0065)(1) = -0.306 w24 0.4+ (0.9)(-0.0087)(0) = 0.4 w25 0.1+ (0.9)(-0.0065)(0) = 0.1 w34 -0.5+ (0.9)(-0.0087)(1) = -0.508 w35 0.2 + (0.9)(-0.0065)(1) = 0.194 w06 0.1 + (0.9)(0.1311) = 0.218 w05 0.2 + (0.9)(-0.0065)=0.194 w04 -0.4 +(0.9)(-0.0087) = -0.408
44
Exemplo: pesos iniciais: (-0.1 a +0.1); η = 0.3
Entrada Saída 10000000 → 10000000 01000000 → 01000000 00100000 → 00100000 00010000 → 00010000 00001000 → 00001000 00000100 → 00000100 00000010 → 00000010 00000001 → 00000001
45
Aprendizado da representação (camada interna)
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
Representação intermediária: “descobre” código binário!!!!
1 0 0 0 1 1
46
Exemplo: ALVINN
Dirige um carro a 100 Km/h.
47
Exemplo: MLP Sigmóide ■ Reconhecimento de fala – reconhecer 1 de
10 vogais entre h_d (em inglês) – F1 e F2: parâmetros retirados da análise espectral
do som da palavra.
48
Referências ■ Russel, S.; Norvig, P. Artificial
Intelligence: a modern approach. 2nd.edition. Prentice Hall, 2003. Cap. 20.5.
■ Mitchell, T.M. Machine Learning. WCB/McGraw-Hill, 1997. Cap.4.