Redes Neurais Artificiais (RNA): Perceptron
Disciplina:
Sistemas Inteligentes II
Prof. Frederico Brito Fernandes
[email protected]
CONTEÚDO
(1) Perceptron
(2) Topologia
(3) Aprendizado
(4) Treinamento
(5) Exercício
(6) Adaline
(7) Diferença entre Perceptron e Adaline
(8) Projeto 1
Ao final da aula...
• Você deverá ser capaz de explicar:
–
–
–
–
–
O que é um problema lineamente separável
A diferença entre Perceptron e Adaline
O funcionamento do Perceptron
A grande deficiência do Perceptron
Diferença entre a função de ativação escada e a função
de ativação sigmóide
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
2/27
(1) Perceptron
• Frank Rosenblatt introduz o conceito de
aprendizado em 1958 e o modelo Perceptron.
• Composto por nodos MCP e regra de aprendizado.
• Sempre converge caso o problema seja
linearmente separável.
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
3/27
(1) Perceptron
• Não teve vida muito longa;
• Muitas críticas em relação a sua capacidade
computacional;
• Grande desinteresse na área nos anos 70 e início
dos anos 80;
• Ganhou novo impulso com as descrições da rede
de Hopfield em 1982 e do algoritmo Backpropagation em 1986.
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
4/27
(2) Perceptron - Topologia
• Unidades de Entrada (retina);
• Unidades de Associação (pesos fixos);
• Unidades de Resposta.
• Somente o nível de saída possui propriedades
adaptativas! Por isso chamado de 1 camada!
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
5/27
(2) Perceptron - Topologia
Retina
Associação
Resposta
∑Θ
∑Θ
∑Θ
∑Θ
r
∑Θ
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
6/27
(3) Perceptron - Aprendizado
• O desejo é encontrar a variação Δw onde será
utilizado na atualização do valor de w(t), chegando
próximo ao desejado.
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
7/27
(3) Perceptron - Aprendizado
• Ativação de um nodo é dado por:
– w’ . x’ ≥ θ, onde w’ é o vetor de pesos e x’ o vetor de
entrada.
– Caso crítico, quando w’ . x’ = θ, ou w’ . x’ – θ = 0
– Equivalente a adicionar um peso θ as entradas (como
um peso) do nodo e conectar a um xi = -1.
– Assim w={θ, w1, w2,...wn} e x={-1,x1, x2,...xn} tendo
w.x = 0
Olhar o site abaixo, para entender as explicações acima:
http://diwww.epfl.ch/mantra/tutorial/english/perceptron/html/
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
8/27
(3) Perceptron - Aprendizado
• Considere o par de treinamento {x,d}
–
–
–
–
–
Saída da rede será y
Erro: e = d – y
y є {0,1} e d є {0,1}
e ≠ 0: d =1 e y = 0 ou d = 0 e y =1
Conclui-se na equação de atualização dos pesos:
w(t +1) = w(t ) + ηex(t )
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
9/27
(4) Perceptron - Treinamento
• O algoritmo de treinamento sempre chega a uma
solução para problemas linearmente separáveis.
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
10/27
(4) Perceptron - Treinamento
• Passos:
– Inicializar η e o vetor de pesos w;
– Repetir {
Para cada par do conjunto de treinamento (x,y):
Atualizar os pesos por: w(t+1) = w(t)+ηex(t)
– Até e=0 para todos os elementos do conjunto de
treinamento em todos os nodos.
Voltar para o site do applet do perceptron, e executar passo-a-passo:
http://diwww.epfl.ch/mantra/tutorial/english/perceptron/html/
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
11/27
(5) Exercício
• Dado os vetores de treinamento:
–
= [-1 -0.1 0.4 -0.7 -1.8] com y = 1
– x2 = [-1 0.1 0.2 -0.3 -0.9] com y = 0
x1
• Vetor de pesos iniciais zerados:
– w(0) = [0 0 0 0 0]
//pode ser aleatório também
• E a taxa de aprendizagem:
OBS:
Saiba
que:
x[0] = 1
w[0] = θ
– η = 0.05
• Fórmula do erro:
– e(x) = d(x) - y(x)
• Fórmula de correção dos pesos:
– w(t+1) = w(t) + η * e(t) * x(t)
• Encontre os pesos finais, para 5 interações
Realize esse exercício no papel, passo-a-passo: (1) monte a topologia da RNA; depois (2)
monte uma tabela contendo todas as variáveis da sua rede, para fazer o acompanhamento
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
12/27
(6) Adaline
• Chamado de:
– ADAptive LINear Element e depois de
– ADAptive Linear NEuron
– Surgiu quase que simultaneamente com o perceptron
• Quase as mesmas características do perceptron,
mas surgiu em área diferente.
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
13/27
(6) Adaline
• Frank Rosenblatt era psicólogo e o perceptron
surgiu em uma revista de psicologia
• Adaline surgiu dentro de um conceito de
processamento de sinais.
• Adaline possui saídas bipolares: y є [-1, +1]
– Seus pesos são adaptados em função de uma saída
linear: y = ∑iwixi antes da aplicação da função de
ativação.
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
14/27
(6) Adaline
x1
w1
x2
w2
.
.
.
xn
Disciplina: Inteligência Artificial
∑
+1
-1
wn
℮
∑
Professor: Frederico Brito Fernandes
+
yd
15/27
(6) Adaline
• Trabalha semelhante ao perceptron:
– Tenta minimizar o erro das saídas em relação aos
valores desejados di do conjunto de treinamento
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
16/27
(6) Adaline
• Prova-se que, dada a fórmula do erro quadrático,
chega-se a fórmula de ajuste dos pesos:
w(t+1) = wk(t) + ηex(t)
• Exatamente igual a do perceptron, só que os
ajustes ocorrem de forma DIFERENTE!
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
17/27
(7) Diferença entre Perceptron e Adaline
• Adaline:
– A equação de ajuste foi obtida para a saída linear
• Perceptron:
– A equação foi obtida para a saída do nodo após a
aplicação da função de ativação
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
18/27
(8) Projeto 1
• Reconhecimento do T e H (Projeto em Delphi)
• Vetores:
–
–
–
–
–
T = [-1,1,1,1,0,1,0,0,1,0]
H = [-1,1,0,1,1,1,1,1,0,1]
w = [0,0,0,0,0,0,0,0,0,0]
n
w[0] = Θ , u = ∑xiwi - Θ
i=1
-u
y = 1/(1 + ε ) // função de ativação sigmóide (0,1)
– e = (y * (1 - y)) * (d - y)
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
19/27
(8) Projeto 1
• Passo 1:
– Calcular u
• Passo 2:
– Calcular y pela função sigmoidal
– Achar o erro
• Passo 3:
– Atualizar os pesos e o limiar pela fórmula conhecida:
w(t+1) = w(t) + ηex(t)
Até o passo 3, você tem um projeto em Delphi, que reconhece um T e um H...
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
20/27
(8) Projeto 1
• Passo 4:
– Abrir o arquivo Caractere.xls (www.fredbf.com), e
seguir as intruções para extensão desse projeto
• Data da entrega:
– 28/09/2006 ([email protected])
Seu trabalho é estender esse projeto... então, boa sorte!
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
21/27
Download

Aula 5 - Frederico Brito Fernandes