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