Você está na página 1de 66

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.
Objetivos

■ 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.

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.

– Recall: procedimento a ser utilizado – como a rede


calcula a saída para uma dada entrada?

Infelizmente, não existe uma “receita” única...


10
Modelo Biológico

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

■ 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).
14
Operação do Perceptron: Exemplo
■ Duas entradas: x, y
1
■ Dois pesos: w1, w2 w0
x w1
■ Uma entrada de viés (bias): w0
S f out
out = f [w0 + w1 x + w2 y ] w2
y
y
+1
w0 + w1x + w2 y = 0
w0 + w1x + w2 y > 0
-1
x
w0 + w1x + w2 y < 0
15
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

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

Figura 1 – Neurônio Perceptron. 17


Aprender Hipóteses de Funções
■ Aprendizagem: consiste em escolher valores
para os pesos w0, ..., wn.

O espaço de hipóteses candidatas H é


H = {w | w Î Â(n+1)}

■ É preciso agora definir algoritmos para


encontrar essas hipóteses!
– e selecionar apenas uma para adotarmos como o
sistema de classificação de dados futuros
18
Exemplo
■ Com w0= -0,8;
x
1
w1 w0
w1= 0,5; w2= 0,5
S f out ■ Qual a função
y w2 implementada
pelo perceptron?

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

Neurônio 2: separa em classes C1 e C2


1
x w1 w0
S f y
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

Efetue o recall desta rede, completando a tabela.


26
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 0
■ f2 (x.w) = 1 se nível de ativação ³ 1,5, 0 1 1
0 caso contrário. 1 0 1
1 1 0
x1 1
0,5
1 1
0,5
1 out
1
x2 1,5 -2

Consegui uma rede para o XOR!!!


27
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. 28
Tipos de Função de Ativação
Função Limiar Função Sigmoide
Out Out 1
Out = 1 if net > q Out = --------------------
1 1 + exp (-l.net)
1 = 0 if net < q

0 q net 0 net

Out Função Logística


Out = 1 if net > q
1 = -1 if net < q
Out
Out = tanh(l.net)

0 q 1
net

-1 0 net

-1 Função Tangente Hiperbólica

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

1 neurônio com 2 entradas


(e dois pesos, w0 e w1)

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

O erro agora deve ser redefinido para k saídas:

! 1
E[ w] = å å (t kd -o kd ) 2

2 d ÎD k Î saidas

D = dados Saídas da rede


de treinamento

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

■ Considere a taxa de aprendizagem h = 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 dj
-----------------------------------------------------------------------------
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 dj
-----------------------------------------------------------------------------
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 dj
-----------------------------------------------------------------------------
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
Exemplo: ALVINN

Dirige um carro a 100 Km/h.


62
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.

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

Representação intermediária: “descobre” código binário!!!!


65
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.

66

Você também pode gostar