Modelos Pioneiros de Aprendizado Conteúdo 1. Hebb... 2 2. Perceptron... 5 2.1. Perceptron Simples para Classificaçãod e Padrões... 6 2.2. Exemplo de Aplicação e Motivação Geométrica... 9 2.3. Perceptron com Múltiplos Neurônios... 11 2.4. Exemplo de Aplicação: Reconhecimento de Caracteres... 13 2.5. Aspectos Práticos do Treinamento do Perceptron... 14 3. Adaline... 16 3.1. A Regra Delta... 17 3.2. Superfícies de Erro... 20 Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 1 1. Hebb Após a publicação do trabalho de McCulloch & Pitts em 1943, Norbert Wiener publicou um livro famoso, em 1948, denominado Cybernetics, seguido pela publicação do livro The Organization of Behavior por Hebb. No livro de Hebb, foi proposta pela primeira vez uma regra de aprendizagem através da modulação (ou modificação) de pesos sinápticos. Basicamente, Hebb propôs que a efetividade de uma sinapse aumenta devido a ativação repetida de um neurônio (por outro neurônio). Com suas próprias palavras: Quando o axônio de uma célula A está próximo o suficiente de excitar uma célula B ou persistentemente contribui para sua ativação, algum processo de crescimento ou variação metabólica ocorre em uma ou ambas as células, tal que a efetividade da célula A em ativar a célula B é aumentada. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 2
Este postulado requer uma mudança no peso sináptico entre células quando as células pré- e pós-sinápticas estão ativas simultaneamente. Hebb sugeriu que esta mudança era a base para a aprendizagem associativa, resultando em uma modificação duradoura no padrão de atividade de uma rede neural. Esta regra é generalizada dentro da literatura de RNAs, resultando na denominada regra de Hebb generalizada. Esta regra propõe que mudanças nos pesos das conexões são dadas pelo produto da atividade pré-sináptica e pós-sináptica: w ij (t) = α y i (t) x j (t), onde w ij (t) é a mudança a ser aplicada no neurônio i, α é um fator multiplicativo denominado de taxa de aprendizagem, y i é a saída do neurônio i, x j é a entrada do neurônio j, e t é o índice de tempo. Note que esta equação deixa clara a natureza correlacional ou associativa da regra de atualização de Hebb. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 3 o Sabe-se que boa parte da memória humana é associativa. Neste tipo de memória, um evento está ligado a outro evento, de forma que a ocorrência do primeiro evento resulta na ocorrência do evento ligado. o Em sua versão mais simples, um estímulo está ligado a uma resposta. A diferença principal entre a proposta original e a regra generalizada é o fato de que no caso generalizado tanto os estímulos excitatórios quanto os inibitórios influenciam na atividade do neurônio. A equação acima pode ser expressa de forma genérica como sendo: w ij (t) = g(y i (t), x j (t)), onde g(, ) é uma função de ambos os sinais, pré- e pós-sináptico. Portanto, o peso de um neurônio i é atualizado de acordo com a seguinte regra: w ij (t+1) = w ij (t) + w ij (t). Resolver os Exercícios Computacionais 2 e 3 do Relatório Técnico. Entregar o relatório com os resultados para um dos professores. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 4
2. Perceptron Rosenblatt introduziu o perceptron como a arquitetura mais simples de rede neural capaz de classificar padrões linearmente separáveis. O algoritmo de treinamento do perceptron foi o primeiro modelo de treinamento supervisionado, embora alguns perceptrons fossem auto-organizados. Basicamente, o perceptron consiste em uma única camada de neurônios com pesos sinápticos e bias ajustáveis. Se os padrões de entrada forem linearmente separáveis, o algoritmo de treinamento do perceptron possui convergência garantida, ou seja, é capaz de encontrar um conjunto de pesos que classifica corretamente os dados. Os pesos dos neurônios que compõem o perceptron serão tais que as superfícies de decisão produzidas pela rede neural estarão apropriadamente posicionadas no espaço. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 5 Os neurônios do perceptron são similares ao neurônio de McCulloch & Pitts (função de ativação tipo degrau), mas possuem pesos associados, incluindo o bias. 2.1. Perceptron Simples para Classificação de Padrões O algoritmo do perceptron funciona como a seguir. o Para cada padrão de treinamento (dado de entrada) x i, a saída da rede y i é calculada. o Em seguida, é determinado o erro e i entre a saída desejada para este padrão d i e a saída da rede y i, e i = d i y i. o O vetor de pesos conectando as entradas (neurônios pré-sinápticos) a cada saída (neurônios pós-sinápticos) e o bias do neurônio são atualizados de acordo com as seguintes regras: w i (t+1) = w i (t) + α e i x i, b(t+1) = b(t) + α e i, onde w R 1 m, x R 1 m, e b R 1 1. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 6
Considere agora o caso mais simples do perceptron com um único neurônio. Entradas +1 x 1 x 2 x m w 0 = b w 1 w 2 w m Σ Junção somadora u Função de ativação f(u) y Saída O objetivo desta rede, mais especificamente deste neurônio, é classificar alguns padrões de entrada como pertencentes ou não pertencentes a uma dada classe. Considere o conjunto de dados de entrada como sendo formado por N amostras {x 1,d 1 }, {x 2,d 2 },, {x N,d N }, onde x j é o vetor j de entradas, e d j sua saída desejada (classe) correspondente. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 7 Seja X R m N, a matriz de dados de entradas com N padrões de dimensão m cada (colunas de X), e d R 1 N o vetor de saídas desejadas. O algoritmo abaixo pode ser utilizado para treinar o perceptron de um único neurônio: procedure [w] = perceptron(max_it,e,α,x,d) initialize w // por simplicidade, inicialize com 0 initialize b //por simplicidade, inicialize com 0 t 1 while t < max_it & E > 0 do, for i from 1 to N do, //para cada padrão de entrada y i f(wx i + b) //determine a saída para x i e i d i y i //determine o erro para x i w w + α e i x i //atualize o vetor de pesos b b + α e i //atualize o bias end for E sum(e i ) t t + 1 end while end procedure Algo 1: Simple perceptron learning algorithm. (The function f( ) is the threshold function) Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 8
2.2. Exemplo de Aplicação e Motivação Geométrica Considere o problema de utilizar o perceptron com um único neurônio para representar a função lógica AND. Entradas Saídas x 1 x 2 x 1 AND x 2 0 0 0 0 1 0 1 0 0 1 1 1 (0,1) (1,1) (0,0) (1,0) 0 0 1 1 X = = 0 1 0 1 d [ 0 0 0 1] A saída y i do neurônio para o vetor de dados x i pode ser representada na forma: y i = f(wx i + b) Para quaisquer valores de w e b, a função f(u) separa o espaço de entradas em duas regiões, sendo que a curva de separação (superfície de decisão) é uma linha reta. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 9 A equação desta reta é dada por: w 1 x 1 + w 2 x 2 + b = 0 Se a função de ativação do tipo sinal (degrau) possui θ = 0, então w 1 x 1 + w 2 x 2 + b 0 resultará em uma saída positiva da rede. Inicializando todos os pesos e o limiar em zero w = [0 0] e b = 0, e definindo α = 1, o algoritmo de treinamento do perceptron fornece o seguinte: w 1 = 2; w 2 = 1; b = 3, portanto 2x 1 + 1x 2 3 = 0. Obs.: note que os pesos do perceptron também poderiam ter sido inicializados com valores aleatórios pequenos. o Neste caso, a superfície de decisão obtida seria diferente. o Considere para efeitos ilustrativos: w 1 = 0.015; w 2 = 0.768; b = 0.971. o A figura a seguir mostra as duas superfícies de decisão e os pesos e bias determinados pelo algoritmo de treinamento do perceptron. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 10
w 1 = 2; w 2 = 1; b = 3 (0,1) (1,1) (0,0) (1,0) w 1 = 2.015; w 2 = 0.768; b = 2.029 Resolver os Exercícios Computacionais 4 e 5 do Relatório Técnico. Entregar o relatório com os resultados para um dos professores. 2.3. Perceptron com Múltiplos Neurônios Note que a regra de aprendizagem do perceptron é do tipo supervisionada, empregando a aprendizagem por correção de erro. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 11 Esta regra pode ser facilmente estendida para atualizar os pesos de uma rede de neurônios em uma única camada. Neste caso, para cada vetor de entrada x i haverá um vetor de saídas da rede: y i = f(wx i + b); W R o m, x i R m 1, i = 1,,N, y i R o 1, e b R o 1, D R o N. Existe agora um vetor de erros para cada padrão de entrada: e i = d i y i. procedure [W] = perceptron(max_it,α,x,d) initialize W //for simplicity set it to zero initialize b //for simplicity set it to zero t 1 while t < max_it do, for i from 1 to N do, //para cada padrão de entrada y i f(wx i + b) //determine a saída da rede para x i e i d i y i //determine a saída da rede para x i T W W + α e i x i //atualize a matriz de pesos b b + α e i //atualize o vetor de bias end for t t + 1 end while end procedure Algo 2: Learning algorithm for the perceptron with multiple outputs. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 12
2.4. Exemplo de Aplicação: Reconhecimento de Caracteres Considere o problema de aplicar o perceptron com múltiplas saídas ao problema de classificação (reconhecimento) dos seguintes caracteres binários: Cada um destes oito padrões de entrada possui uma resolução de 12 10 pixels e as classes a que eles pertencem (0,1,2,3,4,6,,9) estão pré-definidas. Vamos projetar um perceptron com oito neurônios de saída, onde cada neurônio irá corresponder a uma classe. Temos então X R 120 8 e D R 8 8 (matriz diagonal). O algoritmo de treinamento do perceptron será responsável então por definir uma hipersuperfície de decisão em um espaço de dimensão 120 capaz de classificar os dados corretamente. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 13 Resolver o Exercício Computacional 6 do Relatório Técnico. Entregar o relatório com os resultados para um dos professores. 2.5. Aspectos Práticos do Treinamento do Perceptron Condição inicial: verificou-se que diferentes conjuntos iniciais de pesos para o perceptron podem levar a diferentes superfícies de decisão. o Na verdade, o problema de ajuste supervisionado de pesos pode ser visto como um processo de busca por um conjunto de pesos que otimizam uma determinada superfície de erro. o Sendo assim, uma escolha inadequada da condição inicial da rede pode levar o algoritmo a uma convergência para ótimos locais desta superfície de erro. Critério de convergência: no caso do perceptron, é possível garantir que, dado um conjunto de padrões linearmente separáveis, o algoritmo é capaz de encontrar uma superfície de decisão capaz de classificar corretamente os dados. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 14
o Sendo assim, é possível utilizar como critério de convergência para o perceptron simples (classificação binária) a determinação de erro igual a zero para todos os padrões de entrada. o Outro critério que pode ser utilizado é a adaptação por uma quantidade finita de iterações, denominadas de épocas de treinamento. Parâmetros de treinamento: o algoritmo de treinamento do perceptron possui basicamente o parâmetro de treinamento α que deve ser definido pelo usuário. Treinamento versus aplicação da rede: é importante diferenciar entre o processo de treinamento e aplicação da rede. o O treinamento da rede corresponde ao processo de ajuste de pesos. o Após treinada, a rede poderá ser aplicada ao mesmo problema, de forma a verificar a qualidade do aprendizado, ou a outro problema, de forma a verificar sua capacidade de generalização. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 15 procedure [y] = perceptron(w,b,z) for i from 1 to N do, //para cada padrão de entrada x i y i f(wx i + b) //determine as saídas da rede end for end procedure Algo 3: Algorithm used to run the trained single-layer perceptron network. 3. Adaline Praticamente ao mesmo tempo em que Rosenblatt propôs o perceptron, Widrow & Hoff desenvolveram o algoritmo dos quadrados mínimos (least square) ou regra delta. Eles introduziram a rede Adaline (Adaptive Linear Element), muito similar ao perceptron, porém com função de ativação linear ao invés de função sinal. O objetivo do algoritmo de treinamento é minimizar o erro quadrático médio (MSE ou EQM) entre a saída da rede e a saída desejada. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 16
3.1. A Regra Delta Seja {x 1,d 1 },{x 2,d 2 },,{x N,d N }, um conjunto de pares de entrada-saída, onde x j é o vetor de entradas j, e d j seu correspondente vetor de saídas (desejadas). A regra delta ajusta os pesos e o limiar da rede neural de forma a minimizar o erro (diferença) entre a saída da rede e a saída desejada para todos os padrões de treinamento. A soma dos erros quadráticos (SEQ) para um determinado padrão é dada por: I = o i= 1 e 2 i = o i= 1 ( d i y ) i 2 O gradiente de I, também denominado de índice de desempenho ou função custo, é o vetor que consiste das derivadas parciais de I em relação a cada um dos pesos. Este vetor fornece a direção de crescimento mais rápido do erro (I). o Portanto, a direção oposta ao gradiente de I é a direção de maior decrescimento da função custo. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 17 Sendo assim, o erro pode ser reduzido ajustando-se os pesos da rede da seguinte forma: w IJ I = wij w IJ onde w IJ é um peso arbitrário conectando o neurônio pré-sináptico J ao neurônio pós-sináptico I, e α é a taxa de aprendizagem. Torna-se necessário portanto, determinar de forma explícita o gradiente do erro em relação ao peso arbitrário. Como o peso w IJ influencia apenas a unidade I, o gradiente do erro é dado por: I w IJ = w IJ o i= 1 2 ( di yi ) = ( di yi wij Mas, y I = f(w I.x) = f(σ j w Ij.x j ) = Σ j w Ij.x j I = w IJ y I 2( d I yi ) = 2( d I wij I ) y ) x J 2 (ativação linear) Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 18
Portanto a regra delta para atualizar o peso do neurônio w IJ é dada por: w IJ = w IJ + α (d I y I ) x J. b I = b I + α (d I y I ). (Note que o parâmetro α incorpora a constante 2 do gradiente.) Em notação matricial tem-se: W = W + α e i x i T b = b + α e i onde W R o m, x i R m 1, i = 1,,N, e i R o 1, e b R o 1. A beleza deste algoritmo é que, a cada iteração, ele calcula uma aproximação do vetor gradiente do erro multiplicando o erro pelo vetor de entradas, e esta aproximação pode ser utilizada em um algoritmo do tipo gradiente descendente com taxa de aprendizagem fixa. Resolver os Exercícios Computacionais 7 e 8 do Relatório Técnico. Entregar o relatório com os resultados para um dos professores. Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 19 3.2. Superfícies de Erro Seja uma rede neural com n pesos a serem ajustados. Este conjunto de pesos pode ser visto como um ponto em um espaço n-dimensional, denominado de espaço de pesos (weight space). Se a rede neural é utilizada para classificar um conjunto de padrões, para cada um destes padrões a rede irá gerar um determinado sinal de erro. Isso significa que cada conjunto de pesos e bias possui um valor associado de erro. Os valores de erro para todos os conjuntos possíveis de pesos e bias definem uma superfície no espaço de pesos denominada de superfície de erro. A questão que resulta então é qual o papel do algoritmo de treinamento. A forma que boa parte dos algoritmos supervisionados operam é através da minimização de uma função de custo baseada no erro entre as saídas da rede e as saídas desejadas. Três conclusões importantes devem ser salientadas: Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 20
o A visualização do treinamento de RNAs via minimização do erro permite a interpretação do problema como um problema de otimização, que é geralmente não-linear e irrestrito. Isso permite a aplicação de diversas técnicas de otimização não-linear irrestrita para o treinamento de RNAs feedforward. o A superfície de erro possui, potencialmente, uma grande quantidade de mínimos locais, sugerindo que os algoritmos de treinamento estão sujeitos a ficarem presos em mínimos locais da superfície de erro. o Outros métodos de busca como algoritmos evolutivos também podem ser empregados no treinamento de RNAs. Local minimum Global minimum Tópico 5: Modelos Pioneiros de Aprendizado em RNAs: Hebb, Perceptron e Adaline 21