Inteligência Computacional
Aula 7 - Perceptron
2003/ 2
Universidade Federal do Rio de Janeiro Núcleo de Computação Eletrônica
Prof. A. C. G. Thomé, PhD – thome@nce.ufrj.br
Roteiro
• Modelo Perceptron
• Treinamento
Neurônio Artificial
O Neurônio artificial é função matemática que associa pesos às entradas.
.
.
.
Entradas
Pesos
W
W
W
f
f
Sinal
Neurônio Artificial
O neurônio geralmente é dividido em duas funções, função de ativação e propagação.
Função de A tivação
Função de Propagação
w1
w2
wn
x1
x2
xn
y
(
X
W
)
P
(
A
(
X
W
)
)
f
y
=
,
=
,
História
1943: trabalho pioneiro de McCulloch e Pitts
– McCulloch: psiquiatra e neuroanatomista – Pitts: matemático
– descrição do modelo formal de um neurônio, nodos MCP – acreditavam que um número suficiente de neurônios
atuando de forma adequada poderiam, a princípio, computar qualquer função computável.
1958: Rosemblat propõe o Perceptron
como um método inovador de aprendizagem supervisionada
Perceptron
O perceptron originalmente consiste em uma rede de três camadas, sendo que só a última camada possui pesos ajustáveis.
Camada de entrada ou retina
∑ θ
∑ θ
∑ θ
∑ θ
Camada de associação
y
Perceptron
Arquitetura básica do Perceptron
Ativação
∑
==
m i i ix w net 1Propagação
≤ > =θ
θ
net net se se y 0 1Onde:
θ
é o limiar
Σ
Σ
x1
xm w m w1
net
Treinamento
O treinamento de uma rede neural consiste em ajustar os seus parâmetros livres, que no caso do perceptron são os pesos w1, w2,..., wm e o limiar θ.
Porém a função de propagação pode ser reescrita da seguinte forma: net > θ → net - θ > 0.
E se além disso o termo -θ for incorporado ao net, chegaremos as seguintes funções de ativação e propagação:
Propagação
≤ > = 0 0 0 1 net se net se yAtivação
∑
==
m i i ix w net 0Treinamento
Pode-se imaginar que o peso w0 está associado a uma entrada x0 cujo valor é sempre 1.
Σ
Σ
x1
xm w m w1
net
y
w0
1
Treinamento
Durante o treinamento cada padrão de entrada é apresentado ao perceptron e seus pesos são ajustados seguindo a regra criada por Rosenblatt (1958).
Seja xi o i-ésimo padrão de treinamento, yi a resposta do perceptron para xi e di o valor desejado como resposta. Caso di = yi o algoritmo de treinamento não irá fazer nenhum
ajuste aos pesos do neurônio, caso contrário o algoritmo deve considerar duas possibilidades:
1) di = 1 e yi = 0 2) di = 0 e yi = 1
Treinamento
1) di = 1 e yi = 0
Onde:
xi – vetor de entrada
wt – vetor de pesos do perceptron no instante t.
α é o menor ângulo entre os vetores xi e wt.
O algoritmo de treinamento deve, neste caso, modificar o vetor w de forma que α < 900
( )
≤ ⇒ ⋅ ≤ ⇒ =0 i 0 i t 0i então net x x w
y
Como r r r
0 90 0 ) cos( 0 )
cos( ≤ ⇒ ≤ ⇒ ≥
⋅ ⋅
⇒ t
α
α
α
i w
Treinamento
1) di = 1 e yi = 0 (continuação)
Onde: ∆wi é um vetor proporcional a xi, ou seja, ∆w = η∗xi wt+1 é o vetor wt após o ajuste, ou seja, wt+1= wt + ∆w
η é um escalar positivo que indica o quanto o vetor de pesos será modificado na direção e sentido do vetor xi. Este escalar é conhecido como taxa de aprendizado.
Xi wt
α
⇒
Xi wt
∆w
Treinamento
2) di = 0 e yi = 1 ⇒ α < 900
∆w = -η∗xi w = w + ∆w
Xi wt
α
⇒
Xi wt+1
∆w
Treinamento
Resumo do treinamento: Se di = yi então ∆w = 0
Se di = 1e yi = 0 então ∆w = η∗xi Se di = 0 e yi = 1então ∆w = -η∗xi w = w + ∆w
Se chamarmos e = di – yi a atualização dos pesos pode ser escrita de forma mais compacta:
Treinamento
Algoritmo de treinamento
η ← taxa de aprendizado Inicialize w
Repita
Para cada padrão xi faça
yi ← valor de saída do perceptron para o padrão xi e ← di – xi
w ← w + e ∗ η ∗ xi fim
Treinamento
Exemplo de treinamento.
Considere um conjunto de pessoas (4 elementos) formado por homens e mulheres. Treinar um Perceptron, que seja capaz de reconhecer o sexo das pessoas.
1 1
X
Lúcia
1 0
X
Maria
0 1
X
Paulo
0 0
X
José
codificação
masculino
Treinamento
Exemplo (cont.)
• condições de disparo
– se net > 0 y = 1 (feminino)
– se net ≤ 0 y = 0 (masculino)
• início do treinamento
– b = 0 (termo independente ou w0)
– w1 = 0
– w2 = 0
Treinamento
Exemplo (cont.)
• apresentação do primeiro elemento à rede neural
– net = b ∗ 1 + w1 ∗ 0 + w2 ∗ 0
– net = 0 ∗ 1 + 0 ∗ 0 + 0 ∗ 0 = 0
– y = 0 e d = 0 (resposta correta)
w1
Treinamento
Exemplo (cont.)
• apresentação do segundo elemento à rede neural
– net = b ∗ 1 + w1 ∗ 0 + w2 ∗ 1
– net = 0 ∗ 1 + 0 ∗ 0 + 0 ∗ 1 = 0
– y = 0 e d = 0 (resposta correta)
w1
Treinamento
Exemplo (cont.)
– apresentação do terceiro elemento à rede neural
– net = b ∗ 1 + w1 ∗ 1 + w2 ∗ 0
– net = 0 ∗ 1 + 0 ∗ 1 + 0 ∗ 0 = 0
– y = 0 e d = 1 (resposta incorreta)
– b = b + 1 = 0 + 1 = 1 net = b ∗ 1 + w1 ∗ 1 + w2 ∗ 0
– w1 = w1 + 1 = 0 + 1 = 1 net = 1 ∗ 1 + 1 ∗ 1 + 0 ∗ 0 = 2
– w2 = w2 + 0 = 0 + 0 = 0 y = 1 e d = 1 (resposta
correta)
w1
Treinamento
Exemplo (cont.)
• apresentação do quarto elemento à rede neural
– net = b ∗ 1 + w1 ∗ 1 + w2 ∗ 1
– net = 1 ∗ 1 + 1 ∗ 1 + 0 ∗ 1 = 2
– y = 1 e d = 1 (resposta correta)
w1
Interpretação Geométrica
Como a função ativação (net) é linear, ela descreve um hiperplano em uma dimensão do Rn. O que a função de propagação faz é disparar se o net for maior que 0.
O que é equivalente a traçar a curva, ou superfície de nível net = 0, e verificar de que lado da curva se encontra o vetor de entrada.
Interpretação Geométrica
Exemplo: Seja x1 e x2 as duas dimensões do vetor de entrada. O gráfico abaixo mostra 3 curvas de nível do net para algum
vetor de pesos w.
net = -1 x1
x2
Interpretação Geométrica
Exemplo (continuação)
x1
x2
net = 0 Todos os pontos que ficam deste lado da
Limitações
O perceptron só é capaz de separar classes através de funções lineares. Mas para que ele consiga isso é necessário que as classes sejam linearmente separáveis, o que é uma condição não garantida para a maioria dos problemas de classificação.
Limitações
O perceptron é capaz de pode funcionar como uma porta ou, já que o ou é linearmente separável.
Função ou
x2 x1 1 1 1 1 1 1 0 1 1 1 0 0 0 0
x1 ou x2 x2
Limitações
O ou exclusivo não é linearmente separável, então o perceptron não
pode funcionar como esta porta lógica.
Função ou exclusivo
x2 x1 1 1 0 1 1 1 0 1 1 1 0 0 0 0
x1 xor x2 x2
História
1962: Rosenblatt demonstra que o algoritmo de treinamento do Perceptron sempre converge se as classes forem
linearmente separáveis (Teorema de Convergência do Perceptron).
1969: Minsky e Papert demonstram as limitações do
Perceptron – Como o perceptron trata apenas de problemas linearmente separáveis e não existe um algoritmo de