INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Redes Neurais e Reconhecimento de Padrões Reconhecimento de Padrões - Conceituação O que é padrão ? O que é representação ? Beale e Jackson ([BEA91]) voltam a atenção para o termo padrão e procuram realçar seu entrelaçamento com o termo informação: a maior parte de conteúdo informativo que nossas 'redes neurais' biológicas absorvem se apresentam na forma de padrões. Assim, este texto escrito por exemplo, é apresentado em uma forma complexa de cadeias de caracteres. Uhr ([UHR73]) procura caracterizar reconhecimento de padrões, analisando inicialmente os aspectos sobre a captação de informação que os organismos vivos de modo geral apresentam. Para Uhr, é de fundamental importância as atividades de sensação e percepção, pois é através delas que ocorre qualquer interação entre indivíduo e meio ambiente. É através da sensaçãopercepção que um organismo é capaz de se defrontar com um determinado objeto (padrão) é associá-lo ao seu significado dentro de um determinado contexto. O propósito da sensaçãopercepção é o re-conhecimento. 1 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Redes Neurais e Reconhecimento de Padrões Reconhecimento de padrões pode ser encarado como a atividade de mapeamento de um conjunto de instâncias de objetos/entidades para um conjunto de nomes-caracterizadores dos referidos objetos/entidades. Tipos de padrões de interesse não se limitam apenas a objetos concretos tais como figuras, letras, dígitos, mas também entidades abstratas como por exemplo, a beleza de uma mulher, uma partitura de uma música, a profundidade de um teorema matemático ou mesmo a aceptividade a um determinado aroma para uma determinada pessoa. FU ([FU76]) relata o fato de que reconhecimento de padrões está intimamente relacionado com a descrição e classificação de medidas obtidas de processos físicos ou mentais. Beale e Jackson ([BEA91]) também colocam que o objetivo da tarefa de reconhecimento de padrões é a classificação. Jain e Mao ([JAI94]), Andrews ([AND72]), Bezdek ([BEZ81]) entre outros também destacam a classificação como objetivo primordial da tarefa de reconhecimento de padrões. 2 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Redes Neurais e Reconhecimento de Padrões Reconhecimento de Padrões – Uma definição ([BEZ81]) "Quite simply, pattern recognition is a search for structure in data." Na definição acima, Bezdek ressalta três aspectos: a tarefa de procura ou busca (search), a estrutura (structure) e os dados (data). Os dados podem ser de natureza qualitativa, quantitativa ou ambas; podem ser numéricos, pictoriais, texturais, linguísticos ou qualquer dessas combinações. Exemplos de dados: registros médicos, fotos aéreas, posições das galáxias, impressões digitais, perfil psicológico, componentes químicos, aspectos demográficos, etc. A procura ou busca refere-se às técnicas que se utilizam para processar os dados componentes do padrão. Uma exemplo de técnica de busca, que é baseada em heurística, é a do "olhômetro" (eyeball techinique, [BEZ81]). Outro exemplo de técnica, porém mais rigorosa em termos algorítmicos baseia-se no uso da análise estatística. A estrutura representa a maneira em que os dados estarão organizados, ou seja, como eles estão dispostos. Está, portanto, ligada à caracterização das relações que envolvem os dados componentes do padrão. 3 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Redes Neurais e Reconhecimento de Padrões Padrão: um exemplo - Uma figura de borboleta ([BEZ81]) Os dados são de natureza pictorial. Os dados são os pontos. Mas os dados por si só não dizem nada, não veiculam informação alguma A estrutura do padrão indica a disposição geográfica dos pontos (dados), caracterizando as intra e inter-relações; através da estrutura poderiam também ser representadas as diferentes texturas (caso houvessem) dos dados, etc. É então o binômio dados-estrutura que apresentará teor informativo, isto é, permitirá que se faça um mapeamento do padrão em questão para algum universo representativo de objetos/entidades. A busca ou procura de estruturas em dados seria a ponte, o processo de mapeamento do padrão até o teor informativo intrínseco a ele. Existem diversas técnicas de procura, cada uma apresentando suas vantagens e desvantagens. 4 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Redes Neurais e Reconhecimento de Padrões O processo de reconhecimento de padrões (pattern recognition) Padrão Dados (explícitos) Estrutura (implícito) Descritor do padrão Técnicas para explicitação das estruturas do padrão Caracterização do padrão através de suas estruturas Técnicas para reconhecimento de padrões [FU82] Técnicas sintáticas (estrutural) Técnicas discriminantes (decisão-teórica) 5 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Redes Neurais e Reconhecimento de Padrões Técnicas sintáticas para reconhecimento de padrões A idéia nesta abordagem é representar o padrão através de uma estrutura que se caracterize por ser uma sentença de alguma linguagem Formalismos: Gramáticas e Reconhecedores para representação/descrição do padrão Exemplo: Gramática para Cromossomos Medianos Cromossomo mediano X = cbbbabbbbdbbbbabbbcbbbabbbbdbbbbabbb Gramática Gm = (VNm, VTm, Pm, S) onde VNm = {S, A, B, D, H, J, E, F } VTm = { a, b, c, d } = {∩, |, ∪, ∧} Pm = { S → AA, A → cB, B → FBE, B → HDJ, D → FDE, D → d, F → b, E → b, H → a, J → a } 6 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Redes Neurais e Reconhecimento de Padrões Técnicas discriminantes para reconhecimento de padrões Andrew ([AND72]) descreve o problema de reconhecimento de padrões como uma transformação a partir do universo P do padrão em questão, para o universo de características F e daí para o universo de classificação C P → F → C Pré-Processamento do padrão P - Universo do Padrão X = ( x1, x2, x3, x4, ... , xn ) n características Seleção/Extração de r características (r < n) F - Universo de Características Y = ( y1, y2, y3, y4, ... , yr ) r características Base para sistema de tomada de decisão para classificação C - Universo de classificação K classes distintas Redes neurais enquadram-se como técnicas discriminantes para classificação (reconhecimento) de padrões 7 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Homem e Máquina (computador) O homem é mais inteligente que a máquina Mas, por exemplo, um computador calcula a multiplicação de dois inteiros com 9 dígitos mais rápido que o homem Já o homem, por exemplo, visualiza e “processa” um cenário melhor que o computador Onde está a diferença ? Provavelmente na natureza do “design” do homem e no “design” do computador Numa primeira investigação, o cérebro humano é uma massa cinzenta homogênea No interior do computador encontram-se inúmeros “chips” de silício computador é uma máquina de processamento serial de altíssima velocidade se comparada com o cérebro humano que apresenta uma natureza de operação (“processamento”) em paralelo Tarefas mais complexas (reconhecimento visual e sonoro p. ex.) requerem, para melhor performance, processamento paralelo 8 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Redes neurais artificiais - Propósito ⇒ Tentar implementar em computador as diretrizes que norteiam o processamento (paralelo) de soluções que o cérebro humano executa para resolver “problemas complexos”. Redes neurais artificiais - Aprendizado ⇒ Uma das características mais marcantes do cérebro humano é o fato de o mesmo ter aptidão para aprender coisas e fatos por si só. E o aprendizado é um aspecto desejável na implementação de Redes Neurais Artificiais. A Estrutura do Cérebro Humano O cérebro humano é uma das coisas mais complicadas, bastante estudada em detalhes, porém muito pouco compreendida. O cérebro humano: contém aproximadamente dez mil milhões (1010) de unidades básicas denominadas neurônios. Cada neurônio se conecta com aproximadamente 10.000 (104) outros neurônios. Neurônio ⇒ Unidade básica do cérebro e possui 3 partes: (1) Corpo da célula (soma) (2) Dendritos (3) Axônio 9 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias A Estrutura e Funcionamento dos Neurônios Os dendritos se conectam ao corpo da célula (soma). Os dendritos têm por função receber as informações ou impulsos nervosos oriundos de outros neurônios e conduzi-los até o soma. A informação que chega ao soma é “processada” e novos impulsos nervosos são transmitidos pelo axônio para os dendritos dos outros neurônios seguintes (aqueles aproximadamente 104 conectados !!). Sinapse é o nome do ponto de contato entre o terminal axônico de um neurônio e o dendrito de outro neurônio. É pelas sinapses que os neurônios se unem funcionalmente formando as redes neurais. As sinapses controlam a transmissão dos impulsos nervosos entre os nodos (neurônios) da rede neural. O efeito das sinapses é variável e é esta variação que dá ao neurônio a capacidade de adaptação e, consequentemente, dá à rede neural a capacidade de aprender 10 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias A Estrutura e Funcionamento dos Neurônios 11 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias O Processo de Comunicação no Cérebro A comunicação no cérebro ocorre de duas maneiras: Sinais químicos através das sinapses Sinais elétricos dentro do corpo do neurônio (soma) A membrana que envolve o exterior do soma pode gerar impulsos nervosos (elétricos). O corpo do neurônio (soma) ao receber os sinais dos outros neurônios (os aproximadamente 104 que estão conectados), combina-os e, se o valor resultante for acima do limiar (threshold) de excitação do neurônio, um impulso elétrico é produzido e propagado para os neurônios seguintes. Há uma diferença de potencial (em Volts) entre o interior e o exterior do neurônio, ocasionada pela diferença de concentração de potássio (interno) e de sódio (externo). No interior do soma, a concentração de íons de potássio cria um potencial elétrico de –70mV (potencial de repouso) em relação ao exterior. 12 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias O Processo de Comunicação no Cérebro Se os impulsos da sinapse reduzirem o potencial de repouso de – 70 mV para –50 mV no soma, o neurônio propaga, através do axônio, os impulsos nervosos para a região das conexões sinápticas, que liberarão moléculas neurotransmissoras que inibirão ou excitarão pulsos elétricos no próximo neurônio. Assim, o potencial de disparo de um neurônio é determinado pelo acúmulo de um grande número de entradas inibitórias e excitatórias, medido pelo soma (corpo da célula) num pequeno intervalo de tempo. Depois de gerar um impulso, o neurônio entra num período de refração, durante o qual retorna ao seu potencial de repouso enquanto se prepara para a geração de um novo impulso. 13 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Modelando o Neurônio Básico (McCulloch & Pitts, 1943) A função básica de um neurônio biológico é “somar” as suas “entradas” (inputs) e produzir uma “saída” (output) se a “soma das entradas” for maior que um determinado “valor” limiar (threshold) previamente conhecido do neurônio. Dendritos = canais de recepção das “entradas” Axônio = canal de transmissão da “saída” Sinapses = Junções dos axônios de vários neurônios com os dendritos de um determinado neurônio Na rede neuronal, algumas sinapses são “bons conctores”, enquanto que outras sinapses são “maus conectores” Conclusão: O modelo básico de neurônio artificial deve registrar estas importantes características do neurônio biológico. O Modelo de McCulloch & Pitts (1943) A saída (output) do neurônio será ou “on” ou “off”. A saída (output) depende apenas das entradas (inputs). As sinapses serão representadas por pesos: assim, uma sinapse que é “bom conector” terá um peso maior, enquanto que uma sinapse que é um “mau conector” terá um peso menor 14 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Modelando o Neurônio Básico (McCulloch & Pitts, 1943) 15 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Modelando o Neurônio Básico (McCulloch & Pitts, 1943) Formulação matemática Supondo que haja n “inputs”, então existem n pesos associados às n entradas. O neurônio calcula a soma ponderada das n entradas: Soma = Peso do “input” 1 * “input 1” + Peso do “input” 2 * “input 2” + Peso do “input” 3 * “input 3” + .... + Peso do “input” n * “input n” = w1 x1 + w2 x2 + w3 x3 + .... + wn xn = A soma é comparada com um certo valor do neurônio, o “valor limiar” (threshold value). Se a soma é maior que o valor “threshold”, então a saída do neurônio é 1. Se a soma do neurônio é menor que o valor “threshold”, então a saída do neurônio é 0. 16 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Modelando o Neurônio Básico (McCulloch & Pitts, 1943) Formulação matemática – Adaptação do valor “threshold” Uma alternativa para a formulação matemática do neurônio é representar o “valor limiar” (threshold value) do neurônio como a entrada 0 (“input” 0) sempre com valor fixo e igual a 1, e o peso do “input” 0 assumir sempre o valor -θ θ, onde θ é o valor “threshold” do neurônio Desta forma, uma entrada com n inputs será representada por n+1 “inputs”, onde a “input” 0 representará o valor “threshold” do neurônio 17 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Modelando o Neurônio Básico (McCulloch & Pitts, 1943) Deve-se ressaltar que o modelo de neurônio de McCulloch & Pitts é de fato um modelo, e não uma cópia de um neurônio biológico real. Frank Rosemblatt denominou este modelo de neurônio de “perceptron”, em 1962. Em seu livro “Principles of Neurodynamics”, ele descreve os perceptrons como redes simplificadas nas quais certas propriedades do sistema nervoso real (biológico) são exageradas, enquanto outras são ignoradas. Cita ainda que os perceptrons não são cópias detalhadas de qualquer sistema nervoso real. Aprendizado dos Perceptrons Conectar perceptrons permite produzir “redes” que podem reconhecer/aprender coisas. Precisamos contudo treinar a “rede” para que ela possa reconhecer alguma coisa. Devemos procurar aplicar a mais simples regra possível de aprendizagem de modo a manter o controle da “rede de perceptrons” no sentido de entender seu esquema de reconhecimento de padrões. Com relação ao processo de aprendizagem, em geral, “bom comportamento” é incentivado, enquanto que “mau comportamento” é desestimulado 18 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Aprendizado dos Perceptrons A estratégia de aprendizado de um perccptron ocorre pelo seu “auto-aprendizado” a partir de seus próprios erros: Se o perceptron produz uma saída (output) incorreto, desejamos reduzir as chances desta situação ocorrer novamente. Se o perceptron produz uma saída correta, nada é necessário fazer. Exemplo de Aprendizado Suponha que desejemos ter um perceptron capaz de distinguir entre duas classes de objetos: classe A e classe B. A e B poderiam ser, por exemplo, objetos pesados X leves, altos X baixos, de cor clara X de cor escura, etc... Para exemplificar, vamos supor que os objetos da classe A sejam letras “A” escritas à mão livre num espaço de 32 X 32 pixels (de cor ou preta ou branca), e os objetos da classe B sejam letras “B” escritas à mão livre num espaço de 32 X 32 pixels (de cor ou preta ou branca). 19 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Aprendizado dos Perceptrons Exemplo de Aprendizado No exemplo, o perceptron terá 32 x 32 = 1024 “inputs”, um para cada um dos pixels que compõe as imagens de letras A e B. Vamos definir previamente que o perceptron deve dar como resposta o valor 1 se o padrão de entrada for um “A” e deve dar como resposta o valor 0 se o padrão de entrada for um “B”. Inicialmente, os 1024 pesos (“sinapses”) de cada uma das 1024 “inputs” são gerados aleatoreamente, assim como o “threshold” do perceptron. Neste momento, o perceptron não sabe distinguir objetos entre classe A e classe B. Apresenta-se um padrão ao perceptron: se for apresentado um “A”, o perceptron fará a soma ponderada Σ X.W que será comparada ao valor “threshold” θ. Se a soma exceder θ, o perceptron apresenta “output” 1, que é o valor de fato esperado para um padrão de “A”. Porém, se o “output” é 0, isto é um erro, e o perceptron deve então se “auto-ajustar” para produzir um “output” 1. Como fazer isto ? Neste exemplo, deve-se tentar aumentar os pesos a fim de forçar a soma ponderada ultrapassar o valor “threshold” θ. 20 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Aprendizado dos Perceptrons Exemplo de Aprendizado Temos então a diretriz geral da regra para treinar o perceptron fazendo com que o mesmo aprenda: Ao apresentar um padrão de “A” para o perceptron e o mesmo responder 0 (indicando “B”) devemos aumentar os pesos para forçar o perceptron a responder 1. Ao apresentar um padrão de “B” para o perceptron e o mesmo responder 1 (indicando “A”) devemos diminuir os pesos para forçar o perceptron a responder 0. Esta “regra de aprendizagem” (ou “regra de treinamento”) é uma variante da regra proposta em 1949 por Donald Hebb e, por isso, é conhecida como Aprendizagem Hebbiana Uma vez que o aprendizado é “guiado” para aquilo que queremos que o perceptron responda, dizemos então que temos um processo de aprendizado supervisionado (supervised learning) 21 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias O Algoritmo Básico de Aprendizado dos Perceptrons 1. Inicializar os pesos (“sinapses”) e o valor “threshold”: • Seja wk(t), (0 ≤ k ≤ n) os pesos do padrão k no tempo t, e θ o valor “threshold” do neurônio. • Faça w0 = -θ e x0 = 1 sempre !! • Inicialize wk(0) para pequenos valores randômicos, inicializando assim todos os pesos e valor “threshold” 2. Apresente um padrão de entrada e a saída desejada d(t): • Apresente “input” x0 , x1 , x2 , x3 , .... , xn e “output” d(t), que terá valor 0 ou 1 3. Calcular “output” produzido pelo perceptron y(t) : y(t) = 1 se S > 0 y(t) = 0 se S < 0 4. Adaptar os pesos do perceptron: Se y(t) = d(t), está correto então: wk(t+1) = wk(t) senão: Se y(t) = 0 e d(t) = 1, então: wk(t+1) = wk(t) + xk(t) Se y(t) = 1 e d(t) = 0, então: wk(t+1) = wk(t) - xk(t) 22 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Algoritmo: Aprendizado dos Perceptrons - Modificações Proposta de alteração 1: introduzir um fator multiplicativo η tal que 0 < η ≤ 1 a fim de desacelerar o processo de adaptação de pesos: 4. Adaptar os pesos do perceptron – com fator η Se y(t) = d(t), está correto então: wk(t+1) = wk(t) senão: Se y(t) = 0 e d(t) = 1, então: wk(t+1) = wk(t) + ηxk(t) Se y(t) = 1 e d(t) = 0, então: wk(t+1) = wk(t) - ηxk(t) 23 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Algoritmo: Aprendizado dos Perceptrons - Modificações Proposta de alteração 2 (Widrow & Hoff): Efetuar um mudança “intensa” nos pesos quando a soma ponderada Σ X.W está “muito longe” do valor “output” desejado Efetuar um mudança “suave” nos pesos quando a soma ponderada Σ X.W está “muito perto” do valor “output” desejado Regra-Delta Widrow-Hoff A diferença entre o valor desejado e o valor obtido é chamada de erro O ajuste de pesos ocorre de forma proporcional ao “tamanho” do erro ∆ = d(t) - y(t) ∆ = 0 se d(t) = y(t) ∆ = +1 se d(t) = 1 e y(t) = 0 ∆ = -1 se d(t) = 0 e y(t) = 1 24 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Algoritmo: Aprendizado dos Perceptrons - Modificações Proposta de alteração 2 (Widrow & Hoff): Regra-Delta Widrow-Hoff 4. Adaptar os pesos do perceptron – Regra Delta Widrow-Hoff ∆ = d(t) - y(t) wk(t+1) = wk(t) + η ∆ xk(t) onde 0 < η ≤ 1 Quando o algoritmo de treinamento de perceptron utilizar a Regra-Delta Widrow-Hoff, o perceptron é chamado ADALINE (adaptative linear neurons) Quando os muitos perceptrons ADALINE são interconectados chamamos a “rede de perceptrons” de MADALINE (multiple adaptative linear neurons) 25 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptrons – uma perspectiva vetorial Se representarmos as n entradas (“inputs”) do padrão e a “input” 0 (que sempre vale 1) do “threshold” num vetor X, podemos encarar o algoritmo de aprendizagem dos perceptrons de uma forma vetorial: X = (x0, x1, x2, ..., xn) Ao encarar o algoritmo de aprendizagem dos perceptrons forma vetorial, os pesos (“sinapses”) serão também representados de forma vetorial (obs: o peso w0 sempre será igual a -θ, o valor “threshold” do neurônio): W = (w0, w1, w2, ..., wn) A saída (“output”) do perceptron será sempre ou 0 ou 1 de modo a classificar duas classes distintas de padrões, digamos classe A e classe B. Sob o ponto de vista vetorial, isto significa que o perceptron irá tentar “descobrir”, através do algoritmo de aprendizagem, uma “linha divisória” que separa os padrões da classe A dos padrões da classe B. Se a dimensão dos padrões de entrada é n = 1 ou n = 2, então a “linha divisória” será uma reta. Se a dimensão dos padrões de entrada é n = 3, então a “linha divisória” será um plano. Se a dimensão dos padrões de entrada é n > 3, então a “linha divisória” será um hiperplano. 26 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptrons – uma perspectiva vetorial Exemplo 1 - Suponha a classificação de pessoas como aptas ou não aptas para jogar basquete. Suponha que a classificação se baseia apenas no peso e na altura das pessoas. Temos então: Entradas (“input”): (1) peso (2) altura ⇒ dimensão do padrão: n = 2 Classificação: “Classe A” : pessoa apta “Classe B” : pessoa não apta Saída (“output”): 1 para pessoa apta e 0 para pessoa não apta Neste caso de n = 2, o perceptron tentará “construir” a reta que é a “linha divisória” dos padrões Classe A e Classe B. 27 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptrons – uma perspectiva vetorial Exemplo 2 - Suponha um jogo de dados onde o jogador lança três distintos dados, A, B e C, e ganha o jogo se e somente se os três dados lançados apresentarem número menor que 4. Caso contrário o jogador perde o jogo. Então: Entradas (“input”): (1) Número do Dado A (2) Número do Dado B (3) Número do Dado C ⇒ dimensão do padrão: n=3 Classificação: “Classe A” : Jogador Ganha o Jogo “Classe B” : Jogador Perde o Jogo Saída (“output”): 1 para Ganha o Jogo e 0 para Perde o Jogo Neste caso de n = 3, o perceptron tentará “construir” o plano que é a “linha divisória” dos padrões Classe A e Classe B. 28 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptrons – uma perspectiva vetorial Exemplo 3 - Vamos supor que os padrões a serem reconhecidos pelo perceptron sejam letras “A” escritas à mão livre num espaço de 32 X 32 pixels (de cor ou preta ou branca), e letras “B” escritas à mão livre num espaço de 32 X 32 pixels (de cor ou preta ou branca). Temos então: Entradas (“input”): (1) Cor do pixel 1 da matriz de 32 X 32 pixels (2) Cor do pixel 2 da matriz de 32 X 32 pixels (3) Cor do pixel 3 da matriz de 32 X 32 pixels ... .... (1024) Cor do pixel 1024 da matriz de 32 X 32 pixels ⇒ dimensão do padrão: n = 1024 Classificação: “Classe A” : letras A “Classe B” : letras B Saída (“output”): 1 para letras A e 0 para letras B Neste caso de n = 1024, onde n > 3, o perceptron tentará “construir” um hiperplano que é a “linha divisória” dos padrões Classe A e Classe B. Obs.: Obviamente, é impossível “desenhar” o espaço das “inputs” com dimensão n > 3 !! 29 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptrons – uma perspectiva vetorial Sintetizando: O perceptron tenta, através do ajuste dos valores do vetor de pesos W via algoritmo de aprendizagem, gerar a “linha divisória” que classifica padrões em duas classes distintas (denominadas aqui genéricamente de Classe A e Classe B) No exemplo acima, o perceptron parte de uma “linha divisória” inicial gerada aleatoriamente (linha 0) e, progressivamente ao ser “treinado” tem seu vetor de pesos ajustado até conseguir gerar a verdadeira “linha divisória” que separa os padrões do tipo Classe A e do tipo Classe B. No exemplo, a “linha divisória” 30 já classifica os padrões, porém a continuação do algoritmo de treinamento permite a obtenção da “linha divisória” 35. 30 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptrons – Limitação É possível provar matematicamente que o perceptron é capaz de “descobrir” via algoritmo de aprendizagem (Regra Delta – Widrow-Hoff) a “linha divisória” entre dois padrões distintos caso essa “linha divisória” exista ! Existem porém situações em que as classes de padrões não são “linearmente separáveis”. Neste caso o perceptron falha ao tentar distinguir os padrões das (genéricas) Classe A e Classe B. Em 1969 Minsky & Pappert em seu livro Perceptrons apresentaram um exemplo de incapacidade de reconhecimento dos perceptrons: O problema do OU-Exclusivo (XOR problem) Problema do OU-Exclusivo (XOR problem) Existe “linha divisória” para o problema do OU-Exclusivo ? 31 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptrons – Limitação Problema do OU-Exclusivo (XOR problem) Vamos exemplificar o problema do OU-exclusivo (XOR problem) através da seguinte situação: Suponha um jogo de moedas onde o jogador lança duas moedas distintas, moeda A e moeda B e ganha o jogo se e somente se uma única moeda (ou a moeda A ou a moeda B) apresentar cara. Caso contrário o jogador perde o jogo. Então: Entradas (“input”) Classificação Moeda A: Cara (1) ou Coroa(0) “Classe A” : Ganha o Jogo Moeda B: Cara (1) ou Coroa(0) “Classe B” : Perde o Jogo Não existe “linha divisória” para o Jogo. O perceptron é incapaz de reconhecer o padrão de ganhador e o padrão de perdedor deste jogo ! 32 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron Multicamada (Multilayer perceptron) Minsky & Papert (1969) em seu livro Perceptrons apresentaram a limitação do perceptron com o problema do OU-exclusivo (XOR problem) A “área” de redes neurais sofreu um grande impacto então e somente em 1986 com a publicação do livro Parallel Distributed Processing dos autores McClelland & Rumelhart o tema das redes neurais voltou a despertar interesse. McClelland & Rumelhart (1986) apresentaram o modelo de perceptrons multicamadas (multilayer perceptrons) visando superar a limitação do perceptron (com relação ao XOR problem) Werbos (1974) e Parker (1982) mostraram ter apresentado trabalhos semelhantes ao de McClelland & Rumelhart (1986), porém é atribuído a estes últimos o mérito do “renascimento” das redes neurais. 33 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Alterando o modelo de perceptron – Tentativa 1 Para o problema do OU-exclusivo (XOR problem) pode-se tentar utilizar mais de um perceptron, cada um com o objetivo específico de identificar pequenos “pedaços” “linearmente separáveis” dos padrões e combinar as saídas destes perceptrons: À primeira vista parece que a proposta funciona, porém, ao se analisar mais detalhadamente ver-se-á que não funciona: O problema deve-se ao fato de cada neurônio receber “inputs” ou 0 ou 1 e assim, o neurônio receptor não “conhece” os valores processados pelos neurônios anteriores que o “alimentaram”. Aprendizagem consiste em “calcular” os pesos (“intensidades”) das conexões sinápticas dos neurônios e a intensidade 0 ou 1 recebida pelo neurônio impossibilita sua adaptação sináptica. 34 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias O problema do “output” ou 0 ou 1 dos neurônios O “output” do neurônio é função da soma ponderada de seus “inputs”: Quando esta soma é maior que o “threshold” do neurônio, o “output” é 1. Caso contrário, o “output” é 0. Para que o “output” represente melhor a “intensidade” da soma ponderada em relação ao “threshold” pode-se utilizar não a “função degrau”, mas alguma função com alguma “declividade suave” 35 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron Multicamada (Multilayer perceptron) O modelo perceptron multicamada apresenta no mínimo 2 camadas: camada de entrada (input layer) e camada de saída (output layer). Se a topologia da rede utilizar mais camadas, cada uma delas é denominada camada escondida (hidden layer) Além disso, o “output” de cada neurônio, não é mais necessariamente o valor 0 ou o valor 1, mas sim um valor neste intervalo [0,1] calculado por uma função “sigmoidal” (com “declividade suave”) E pelo fato de se ter mudado a “função de threshold” de cálculo do “output” do neurônio, é necessário alterar a regra de aprendizagem do perceptron multicamada. 36 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Aprendizado do Perceptron Multicamada A regra de aprendizagem para o perceptron multicamada é a chamada regra delta generalizada (generalized delta rule) ou regra da retropropagação (backpropagation rule) proposta em 1986 por Rumelhart, McClelland e Willians Lembre-se que aprendizagem é ajuste de pesos (“sinapses”) da rede neural através do seu treinamento via apresentação dos padrões de interesse. Estratégia de aprendizagem 1) Definir uma função erro que represente a diferença entre o “output” efetivamente calculado pelo neurônio e o “output” que é esperado que o neurônio forneça. Ao longo do treinamento, a meta é diminuir continuamente o valor desta função erro. 2) Ao se apresentar algum padrão para a rede, os neurônios da output layer fornecem seus “outputs” que são ajustados pela função erro. 3) Como o erro nos neurônios na output layer foi causado “diretamente” pelos neurônios da hidden layer, a “taxa de ajuste” efetuada na output layer é retropropagada para a hidden layer. 4) E finalmente, como o erro nos neurônios na hidden layer foi causado “diretamente” pelos neurônios da input layer, a “taxa de ajuste” efetuada na hidden layer é retropropagada para a input layer. 37 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Matemática do Aprendizado do Perceptron Multicamada Definições de símbolos: Função erro para o padrão p “output” desejada (alvo – target) para o padrão p no nodo (neurônio) j “output” efetivamente fornecido para o padrão p pelo nodo (neurônio) j Peso “sináptico” entre o nodo (neurônio) i e o nodo (neurônio) j Vamos definir a seguinte função erro: (1) O “output” de cada nodo (neurônio) j para o padrão p pode ser assim representado: (2) 38 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Matemática do Aprendizado do Perceptron Multicamada O “output” para cada nodo (neurônio) j é calculado por uma “função sigmoidal” fj que tem como variável independente a soma ponderada netj. Assim temos: (3) Vamos escrever: (4) O segundo termo de (4) vale: (5) 39 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Matemática do Aprendizado do Perceptron Multicamada Podemos caracterizar a taxa de variação do erro em função da taxa de mudança dos pesos do nodo (neurônio) j da seguinte forma: (6) Assim a igualdade (4) fica: (7) Minimizar o valor do erro Ep significa “ conduzir” a mudança de pesos proporcional a δpj opi ou seja: (8) Precisamos agora saber o valor de δpj para cada um dos nodos (neurônios) da rede. Sabendo este valor, podemos então minimizar o erro Ep. 40 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Matemática do Aprendizado do Perceptron Multicamada Tomando-se a equação (6) obtemos: (9) Considerando o segundo termo de (9) e a partir de (3) temos: (10) Considerando o primeiro termo de (9). A partir de (1) podemos diferenciar Ep em relação a Opj e obtemos: (11) Assim, para nodos j (neurônios) da output layer temos: (12) O valor acima vale para nodos da output layer, porquê nesta camada é conhecido o valor “alvo” desejado tpj. 41 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Matemática do Aprendizado do Perceptron Multicamada Para nodos (neurônios) da hidden layer, cujo valor “alvo” não é conhecido podemos escrever o primeiro termo de (9) assim: (13) (14) Assim, para nodos j (neurônios) da hidden layer temos: (15) 42 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Matemática do Aprendizado do Perceptron Multicamada As equações (12) e (15) representam a taxa de variação da função erro em relação aos pesos na rede, fornecendo um método de redução do erro Ep. (12) (15) A função erro Ep é proporcional aos erros nos nodos (neurônios) subsequentes de modo que o erro tem que ser calculado inicialmente para os nodos(neurônios) da output layer (usando (12)) e então ser retropropagado (backpropagation) este “ajuste” para os nodos da camada anterior. É a retropropagação do “ajuste” do erro de onde deriva o nome da rede perceptron multicamada como rede backpropagation. 43 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Matemática do Aprendizado do Perceptron Multicamada Resta apenas definir a função f usada nas equações (12) e (15). Esta deve ser uma função sigmoidal continuamente derivável. Uma função sigmoidal comumente escolhida é a seguinte: onde 0 < f(net) < 1 e k é uma constante positiva que controla a “expansão” da função. A principal razão de uso desta função deve-se ao fato de sua derivada ser simples sob o ponto de vista matemático. Dado que Temos então: 44 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Algoritmo – Aprendizado perceptron multicamada 1. Inicializar os pesos (“sinapses”) e o valor “threshold”: • Seja wk(t), (0 ≤ k ≤ n) os pesos do padrão k no tempo t, e θ o valor “threshold” do neurônio. • Faça w0 = -θ e x0 = 1 sempre !! • Inicialize wk(0) para pequenos valores randômicos, inicializando assim todos os pesos e valor “threshold” 2. Apresente um padrão de entrada e a saída desejada : • Apresente “input” Xp = x0 , x1 , x2 , x3 , .... , xn : n é o número de nodos (neurônios) da input layer. • Apresente “output” desejado (valor dos neurônios da output layer): Tp = t1 , t2 , t3 , .... , tm : m é o número de nodos da output layer. • Para propósitos de classificação todo elemento de Tp vale 0, exceto um único elemento tk que valerá 1, indicando a classe a que pertence o padrão de entrada Xp. 3. Calcular valor atual de “output”: cada camada calcula e passa este valor para a próxima camada. A camada final (output layer) calcula opj 45 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Algoritmo – Aprendizado perceptron multicamada 4. Adaptar os pesos: Partindo da output layer e efetuando backpropagation onde wij representa o peso do nodo (neurônio) i para o nodo (neurônio) j, η é um termo de ganho e δpj o termo do erro para o padrão p sobre o nodo (neurônio) j. Para os nodos (neurônios) da output layer: Para os nodos (neurônios) da hidden layer: onde o somatório envolve os K nodos (neurônios) da camada anterior ao nodo (neurônio) j. 46 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada e o problema do OU-exclusivo Desde que o problema do OU-exclusivo (XOR problem) foi mostrado como sendo um “barreira” aos perceptrons, tornou-se o paradigma de referência de julgamento de performance de diversos sistemas neurais. Relembrando o problema do OU-exclusivo (XOR problem): 47 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada e o problema do OU-exclusivo Uma solução para o problema do OU-exclusivo (XOR problem) Como o padrão de entrada neste caso envolve apenas as “inputs” 00, 01, 10 ou 11, é possível utilizar a função degrau f ao invés de uma função sigmoidal. Deve-se observar que esta topologia de rede utiliza apenas duas camadas (input layer e output layer) 48 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada e o problema do OU-exclusivo Outra solução para o problema do OU-exclusivo (XOR problem) Como o padrão de entrada neste caso envolve apenas as “inputs” 00, 01, 10 ou 11, é possível utilizar a função degrau f ao invés de uma função sigmoidal. Deve-se observar que esta topologia de rede utiliza apenas duas camadas (input layer e output layer) 49 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Comportamento de aprendizado do perceptron multicamda Conforme apresentado anteriormente, o aprendizado da rede perceptron multicamada baseia-se na minimização da função erro Ep (ou função energia) da rede. Basicamente, Ep representa o quanto a resposta de saída da rede se difere da resposta desejada de saída da rede. Observa-se que a função erro é função dos pesos e “inputs” da rede À medida em que a rede for sendo treinada, é possível traçar o gráfico mostrando a variação da função erro Ep. 50 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Comportamento de aprendizado do perceptron multicamda Suponha inicialmente um padrão de entrada de dimensão n = 1 (por exemplo, a nota final do aluno em química): Desta forma a função erro Ep está em função de apenas um peso (e um “input”) advindo do nodo (neurônio) de entrada Assim, ao longo do treinamento da rede multicamada Ep irá variar em função do único peso w1 que ela ajusta via algoritmo backpropagation (à medida em que se apresentam padrões para o treinamento). Podemos visualizar esta variação num gráfico bidimensional: 51 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Comportamento de aprendizado do perceptron multicamda Suponha agora um padrão de entrada de dimensão n = 2 (por exemplo, os “inputs” binários do OU-exclusivo): Desta forma a função erro Ep está em função de dois pesos (e dois “inputs”) advindo dos nodos (neurônios) de entrada Assim, ao longo do treinamento da rede multicamada Ep irá variar em função de dois pesos w1 e w2 que ela ajusta via algoritmo backpropagation (à medida em que se apresentam padrões para o treinamento). Podemos visualizar esta variação num gráfico tridimensional: 52 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Comportamento de aprendizado do perceptron multicamda Não podemos visualizar gráficos da função erro para padrões para padrões de dimensão n ≥ 2 pois precisaríamos de no mínimo 4 ou mais eixos de apresentação Devemos então tentar visualizar o comportamento da minimização da função erro Ep em gráficos 3-D, imaginando que todos os n ≥ 2 pesos que influenciam Ep estão devidamente representados no gráfico 3-D 53 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Comportamento de aprendizado do perceptron multicamda Outra forma de visualizar a superfície da função erro Ep é imaginá-la uma cama elástica larga inicialmente em repouso num primeiro momento, e em seguida soltar diversas bolas pesadas (de chumbo por exemplo) em diversos pontos da cama elástica. Queremos descobrir o ponto “mais fundo” da cama elástica após soltar todas as bolas sobre a mesma. Devemos considerar um espaço vetorial de dimensão n ≥ 1 onde cada um dos n eixos representa um determinado peso w. O problema é descobrir o vetor de pesos W que melhor classifique os padrões desejados. 54 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada no papel de Classificador Conforme apresentado anteriormente, o perceptron “simples” pode não conseguir encontrar a “linha divisória” que separa dois padrões distintos (Classe A e Classe B), conforme visto no exemplo do problema do OU-exclusivo. Com o perceptron multicamada (multilayer perceptron) foi mostrado que é possível resolver o problema do OU-exclusivo, ou seja encontrar uma “linha divisória” para os padrões Classe A (00, 11) e Classe B (01, 10) em questão. Para isso, foi preciso (A) Organizar os nodos (neurônios) da rede em camadas (B) Utilizar uma função “threshold” que não a função degrau (“output” ou 0 ou 1) (C) Propor novo algoritmo de treinamento para a rede. 55 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada no papel de Classificador Considere um nodo I1 (neurônio) que se encontre na input layer de uma rede neural, “alimentado” pelos n “inputs” do padrão (camada “retina”). O nodo I1 “alimentado” pelos n “inputs” é capaz de gerar uma “linha divisória” classificando, digamos, Classe A e Classe B. Suponha, por exemplo, um padrão de dimensão n = 2. Assim a “linha divisória” será uma reta. 56 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada no papel de Classificador Considere agora que a Input layer possui um segundo nodo I2, capaz de gerar uma “linha divisória” classificando, digamos, Classe C e Classe D. Supondo ainda um padrão de dimensão n = 2 temos: 57 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada no papel de Classificador Combinando as saídas dos nodos (neurônios) I1 e I2 obtemos a combinação de duas “linhas divisórias” que geram regiões convexas ou “envelopes convexos” (convex hulls) abertos ou fechados. Observação: Uma região é convexa se for possível traçar uma linha reta entre dois pontos quaisquer pertencentes à região sem “sair” da mesma. 58 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada no papel de Classificador Se aumentarmos a dimensão n do padrão de entrada, ou seja, se inserirmos mais nodos (neurônios) na input layer obteremos mais e mais cantos de uma figura (região de classificação !!) sempre convexa. • 2 neurônios → 2 “linhas divisórias” → 4 regiões convexas • 3 neurônios → 3 “linhas divisórias” → 7 regiões convexas • 4 neurônios → 4 “linhas divisórias” → 11 regiões convexas Resumindo: Quando a topologia da rede neural tem a camada da “retina”, a input layer e a output layer, consegue-se apenas classificar padrões que se enquadrem em regiões convexas. Na maioria dos casos, porém, as regiões de classificação são não convexas. Como a rede neural irá então efetuar a a classificação ? 59 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada no papel de Classificador Na maioria dos casos as regiões de classificação são não convexas. Como a rede neural irá então efetuar a a classificação ? Ao acrescentarmos mais uma camada de neurônios (hidden layer) à rede neural, esta passa a ter as seguintes camadas: “retina” → input layer → hidden layer → output layer Aí sim, a rede neural será capaz de classificar padrões que se situam em regiões não convexas. Isto porquê cada neurônio da hidden layer é capaz de identificar, como “linha divisória”, uma região convexa, e a combinação de diversas regiões convexas (provenientes dos diversos neurônios da hidden layer) produz regiões não convexas. 60 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada no papel de Classificador Três camadas de unidades de perceptrons (input layer, hidden layer e output layer) permitem formar regiões não convexas das mais variadas e diversas formas, permitindo então a tarefa de classificação de padrões. A complexidade dos “formatos” das regiões não convexas é limitada apenas pela quantidade de neurônios presentes na topologia da rede e sua distribuição pelas camadas. E como é possível construir qualquer “formato” de região não convexa com 3 camadas na topologia da rede, podemos dizer que qualquer problema de classificação (reconhecimento de padrão) pode ser realizado usando-se rede neural com 3 camadas. Este fato é matematicamente provado e conhecido como Teorema de Kolmogorov. 61 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada no papel de Classificador A literatura sobre redes neurais apresenta alguma inconsistência quando tenta descrever a topologia das redes neurais com respeito ao número de camadas da rede e seu potencial de reconhecimento. Para a situação anteriormente apresentada, alguns autores considerariam uma rede neural com 4 camadas e não uma rede neural de 3 camadas. Vamos então aqui definir um critério de contagem do número de camadas da rede neural. • Critério: Considere como camada de uma rede neural, aquela que é “alimentada” por conexões que apresentam pesos. Temos então 3 camadas: 1) da camada “retina” para input layer 2) da camada input layer para hidden layer 3) da camada hidden layer para output layer. E assim é possível implementar um classficador, qualquer que seja a complexidade dos padrões a serem classificados. 62 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada no papel de Classificador Topologia geral para uma rede neural 63 INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Perceptron multicamada no papel de Classificador Topologia geral para uma rede neural 64