AULA 03 PERCEPTRON SIMPLES Perceptron Clássico – Rosenblatt (1958) área de projeção área de associação retina conexões locais conexões aleatórias respostas Embora essa topologia possua 3 níveis, é conhecida como perceptron de uma camada, pois somente as unidades de saída possuem propriedades adaptativas. As unidades intermediárias, possuem pesos fixos, definidos antes do período de treinamento. associação retina resposta Perceptron • Basicamente o perceptron consiste de uma única camada de neurônios com com pesos sinápticos e bias ajustáveis. • Se os padrões de entrada forem linearmente separáveis, o algoritmo de treinamento possui convergência garantida, i.é, tem capacidade para encontrar um conjunto de pesos que classifica corretamente os dados. • Os neurônios do perceptron são similares ao de McCulloch-Pitts, por terem a função de ativação do tipo degrau, mas possuem pesos associados e bias. wk0=bk (bias) entrada fixa x0=+1 wk0 x1 wk1 x2 wk2 sinais de entrada função de ativação uk yk f(uk) saída junção aditiva xm wkm pesos sinápticos Função degrau Treinamento de um único neurônio O algoritmo do perceptron: para cada padrão de treinamento xi, a saída da rede yi é calculada. determina-se o erro ei entre a saída desejada para esse padrão di e a saída da rede yi, (ei = di – yi). O vetor de pesos e o bias são atualizados de acordo com as regras: w i (t 1) w i (t ) ei x i b(t 1) b(t ) ei onde w 1 x m , x 1 x m , e b 1 x1 . entrada fixa x0=+1 sinais de entrada w0=b (bias) w0 x1 w1 x2 w2 função de ativação degrau u y f(u) saída junção somadora xm wm pesos sinápticos Algoritmo de treinamento de um único neurônio Para classificação padrões de entrada como pertencentes ou não a uma dada classe, seja o conjunto de treinamento formado por N amostras {x1,d1}, {x2,d2}, ..., {xN,dN}, onde xj é o vetor de entradas e dj a saída desejada, que em notação vetorial tem-se X mxN e d 1xN {X,d}, onde: Procedure [w] = perceptron (max_it, E, , X,d) inicializar w // para simplicidade, com zeros inicializar b // para simplicidade, com zero t 1 while t < max_it & E > 0 do for i from 1 to N do // para cada padrão de entrada yi f(w xi + b) // determinar a saída ei di – yi // determinar o erro w w + ei xi // atualizar o vetor peso b b + ei // atualizar o bias end for E sum (ei) //quantidade de erros t t+1 end while end procedure Exemplo: função AND w0=b x0=+1 w0 u x1 w1 y x2 x2 w2 3 Temos como vetores de entrada e saída desejada: 2 0 X 0 1 0 1 1 1 0 1 d [0 0 0 1] Entrada (1,1) 0 Iniciando os pesos e o limiar em zero w = [0 0], b = 0 e = 1, tem-se w1 = 2, w2 = 1, b = -3 e a equação da reta 2x1 + 1x2 – 3 = 0. 0 1 2 3 x1 Algoritmo de treinamento para perceptron de múltiplos neurônios Nesse caso, para cada vetor de entradas tem-se um vetor de saída: y i f (Wxi b); W oxm ; xi mx1 , i 1,...,N; y i ox1 , b ox1 e D oxN Procedure [W] = perceptron (max_it, , X,D) inicializar W // para simplicidade, com zeros inicializar b // para simplicidade, com zero t 1 while t < max_it do for i from 1 to N do // para cada padrão de entrada yi f(W xi + b) // determinar a saída ei di – yi // determinar o erro W W + ei xiT // atualizar a matriz peso b b + ei // atualizar o vetor bias end for t t+1 end while end procedure Adaline • Na mesma époce em que Rosenblatt propôs o perceptron, Widrow e Hoff propuseram o algoritmo dos mínimos quadrados (regra delta) para a rede Adaline (Adaptive Linear Element), similar ao perceptron, porém com função de ativação linear ao invés de função degrau. • O objetivo do algoritmo de treinamento é minimizar o erro quadrático médio (MSE) entre a saída de rede e a saída desejada. • A soma dos erros quadráticos para um determinado padrão é dada por: o o e (d i y i ) 2 i 1 2 i i 1 • O gradiente de , também denominado de índice de desempenho ou função custo, fornece a direção de crescimento mais rápido de . • Portanto, a direção oposta ao gradiente de é a direção de maior decrescimento Adaline (cont.) O erro pode ser reduzido ajustando-se os pesos da rede de acordo com wIJ wIJ wIJ onde wIJ é o peso específico para o neurônio pós-sináptico I, da entrada J, e é a taxa de aprendizagem . Como wIJ influencia apenas o neurônio I, wIJ wIJ Como o 2 ( d y ) i i i 1 (d I y I ) 2 wIJ y I f (w I .x) f ( wIj x j ) wIj x j j j y 2(d I y I ) I 2(d I y I ) x J wIJ wIJ regra delta Portanto a regra delta para o adaline resume-se em: wIJ wIJ (d I y I ) x J bI bI (d I y I ) Em notação vetorial tem-se: W W e i x i T b b e i onde W oxm , x i mx 1 , i 1,..., N , e i ox1 , e b ox1