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
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.
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
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
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,
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
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?
Modelo Biológico
Axon
Terminal Branches of Axon
Perceptron
Axon Terminal Branches of Axon DendritesS
x1 x2 w1 w2 wn xn x3 w3OUT = f net
( )
=
1: net > 0
−1: net ≤ 0
#
$
%
&%
with net =
w
ij j∑
In
jFunçã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
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: w
1, w
2■
Uma entrada de viés (bias): w
0[
w
w
x
w
y
]
f
out
=
0+
1+
2 x y0
2 1 0+
w
x
+
w
y
=
w
0
2
1
0
+
w
x
+
w
y
>
w
Σ
x
y
w
1w
2f
w
01
out +10
2
1
0
+
w
x
+
w
y
<
w
-116
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
w
0, ..., w
n.
■
É 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 é
Exemplo
■
Com w
0= -0,8;
w
1= 0,5; w
2= 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 120
Aprendizado Supervisionado
no Perceptron:
■
A regra de atualização dos pesos é:
w
i çw
i+
α
δ
x
iOnde
δ
= (t – o)
– x
ié 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).
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 a23
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 ⇒ classe25
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)x
1x
2out
Camada Escondida Entradas A B C Classe 1 Classe 2 (-1-1-1),(-1-11),…..,(111)1
-1
Solução:
Saída27
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
x
1x
2out
x1 x2 Out 0 0 0 1 1 0 1 128
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,5x
1x
2out
x1 x2 Out 0 0 0 0 1 1 1 0 1 1 1 029
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 Out = --- 1 1 + exp (-λ.net) Função LogísticaFunção Sigmoide
Out = tanh(λ.net)Função Tangente Hiperbólica 0
1
net Out
30
MLP Sigmóide
■
Neurônio com função de ativação limiar sigmóide:
(
)
( )
(
)
(
1
( )
)
2
tanh
)
(
)
(
1
)
(
)
(
1
1
)
(
2x
x
x
x
x
x
x
e
x
xσ
σ
σ
σ
σ
σ
σ
−
=
ʹ′
⇒
=
−
=
ʹ′
⇒
+
=
−( )
tanh
)
(
ou
1
1
)
(
net
net
e
net
net=
+
=
−σ
σ
Propriedade
Interessante
…
derivada31
Como treinar um MLP?
■Descida do gradiente:
Aprende w
i’s que
minimizam erro
quadrático com o
conjunto de treinamento:
2)
(
2
1
]
[
∑
∈−
=
D d d do
t
w
E
!
D = dados de treinamentox
1o
x
132
Descida do Gradiente
(1camada, 2 entradas)
Gradiente:
⎥
⎦
⎤
⎢
⎣
⎡
∂
∂
∂
∂
∂
∂
=
∇
nw
E
w
E
w
E
w
E
[
]
,
,...,
1 0!
i iw
E
w
∂
∂
−
=
Δ
η
Regra:
Δ
w
!
=
−
η
∇
E
[w
!
]
2)
(
2
1
]
[
=
∑
−
D d d do
t
w
E
ε!
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)
d i d d d d d d i d d d d d d i d d d d d i d d d d d i d d d i i
x
x
w
x
w
o
t
x
w
w
o
t
x
w
t
w
o
t
o
t
w
o
t
o
t
w
o
t
w
w
E
, 2 2))
(
1
(
)
(
)
(
))
(
(
)
(
))
(
(
)
(
)
(
)
(
2
2
1
)
(
2
1
)
(
2
1
!
!
!
!
!
!
!
!
⋅
−
⋅
−
−
=
⋅
∂
∂
−
−
=
⋅
−
∂
∂
−
=
−
∂
∂
−
=
−
∂
∂
=
−
∂
∂
=
∂
∂
∑
∑
∑
∑
∑
∑
σ
σ
σ
σ
o
do
d34
Descida do gradiente: várias saídas
2
)
(
2
1
]
[
∑
∑
∈ ∈−
=
saidas k kd kd D do
t
w
E !
D = dados de treinamentoO erro agora deve ser redefinido para k saídas:
35
Algoritmo Backpropagation (I)
■
Para rede com 1 camada escondida com n
hidunidades
sigmoidais, n
outsaídas (unidades sigmoidais), n
inentradas, vários exemplos de treinamento < x, t >
n
inn
hidn
outx
t (saídas do
treinamento)
o (saídas dadas
pela rede)
w (pesos)
Parâmetros de entrada do backpropagation:
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← o
k(1 - o
k) (t
k- o
k)
3. Para cada unidade escondida h, calcular o erro δh:
δ
h← o
h(1 - o
h) Σ
k∈saidasw
hk.δ
k4. Atualizar cada peso wij da rede:
w
ij← w
ij+ η δ
jx
ijEntrada do nó i para o j
Mostra quanto cada h é
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
---
w
46w
56w
14w
15w
24w
25w
34w
35w
06w
05w
04Table 4:
Cálculo da atualização dos pesos
Peso
Novo valor
---
w
46-0.3+(0.9)(0.1311)(0.332)= -0.261
w
56-0.2+(0.9)(0.1311)(0.525)= -0.138
w
140.2 +(0.9)(-0.0087)(1) = 0.192
w
15-0.3 +(0.9)(-0.0065)(1) = -0.306
w
240.4+ (0.9)(-0.0087)(0) = 0.4
w
250.1+ (0.9)(-0.0065)(0) = 0.1
w
34-0.5+ (0.9)(-0.0087)(1) = -0.508
w
350.2 + (0.9)(-0.0065)(1) = 0.194
w
060.1 + (0.9)(0.1311) = 0.218
w
050.2 + (0.9)(-0.0065)=0.194
w
04-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 → 0000000145
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
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