Prof. Frederico Brito [email protected]
Redes Neurais Artificiais (RNA): Perceptron
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
Disciplina: Inteligência Artificial
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 2/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
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
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 3/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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.
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 4/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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 Back-propagation em 1986.
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 5/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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!
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 6/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(2) Perceptron - Topologia
∑ Θ∑ Θ∑ Θ
∑ Θ
∑ Θ
r
Resposta
Associação
Retina
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 7/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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.
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 8/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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/Olhar o site abaixo, para entender as explicações acima:http://diwww.epfl.ch/mantra/tutorial/english/perceptron/html/
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 9/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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 )
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 10/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(4) Perceptron - Treinamento
• O algoritmo de treinamento sempre chega a uma solução para problemas linearmente separáveis.
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 11/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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/Voltar para o site do applet do perceptron, e executar passo-a-passo:http://diwww.epfl.ch/mantra/tutorial/english/perceptron/html/
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 12/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(5) Exercício
• Dado os vetores de treinamento:– x1 = [-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
• Vetor de pesos iniciais zerados:– w(0) = [0 0 0 0 0] //pode ser aleatório também
• E a taxa de aprendizagem:– η = 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
OBS:
Saiba que:
x[0] = -1
w[0] = θ
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 acompanhamentoRealize 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
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 13/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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.
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 14/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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.
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 15/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(6) Adaline
∑+1
-1
∑
.
.
.
w1
w2
wn
x1
x2
xn ℮yd
-+
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 16/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(6) Adaline
• Trabalha semelhante ao perceptron:
– Tenta minimizar o erro das saídas em relação aos valores desejados di do conjunto de treinamento
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 17/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(6) Adaline
• Prova-se que, dada a fórmula do erro quadrático, chega-se a fórmula de ajuste dos pesos:
• Exatamente igual a do perceptron, só que os ajustes ocorrem de forma DIFERENTE!
w(t+1) = wk(t) + ηex(t)
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 18/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 19/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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]
– w[0] = Θ , u = ∑xiwi - Θ
– y = 1/(1 + ε-u) // função de ativação sigmóide (0,1)
– e = (y * (1 - y)) * (d - y)
n
i=1
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 20/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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...Até o passo 3, você tem um projeto em Delphi, que reconhece um T e um H...
Professor: Frederico Brito FernandesProfessor: Frederico Brito Fernandes 21/21Disciplina: Inteligência ArtificialDisciplina: Inteligência Artificial
(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:– ??/??/2006 ([email protected])
Seu trabalho é estender esse projeto... então, boa sorte!Seu trabalho é estender esse projeto... então, boa sorte!