INTELIGÊNCIA ARTIFICIAL Redes Neurais - Algumas ideias Redes Neurais e Reconhecimento de Padrões

Documentos relacionados
REDES NEURAIS ARTIFICIAIS

Aprendizado de Máquina (Machine Learning)

Redes Neurais Artificiais

Redes Neurais Artificial. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Classificação Linear. André Tavares da Silva.

INF 1771 Inteligência Artificial

TÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais

Redes Neurais Artificiais. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 9)

serotonina (humor) dopamina (Parkinson) serotonina (humor) dopamina (Parkinson) Prozac inibe a recaptação da serotonina

Algoritmos de Aprendizado. CONTEÚDO Introdução Motivação, Objetivo, Definição, Características Básicas e Histórico. Regra de HEBB.

Redes Neurais Artificiais - Introdução. Visão Computacional

Redes Neurais Artificial

Inteligência Artificial Redes Neurais

3 REDES CLÁSSICAS PERCEPTRON E ADALINE

Redes Neurais INTELIGÊNCIA ARTIFICIAL

Redes Neurais Artificiais

Rede Perceptron. Capítulo 3

Redes Neurais 1. Redes Neurais. cont.) Definição (cont( Definição. Histórico. Características básicas

Por que Redes Neurais?

3 Redes Neurais Artificiais

Redes Neurais Artificiais

Redes Neurais Artificiais

Redes Neurais: MLP. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Aprendizado de Máquinas. Multi-Layer Perceptron (MLP)

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Redes Neurais Noções Gerais

Redes Neurais Artificiais. Prof. João Alberto Fabro

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Introdução à Redes Neurais. Prof. Matheus Giovanni Pires EXA 868 Inteligência Artificial Não-Simbólica B Universidade Estadual de Feira de Santana

Redes Neurais Artificiais (RNA)

3 REDES NEURAIS ARTIFICIAIS

Primeiras Redes Neurais Artificiais: Perceptron e Adaline

Redes Neurais Artificiais Sistemas Inteligentes Especialização em Automação Industrial SISTEMAS INTELIGENTES PROFESSOR FLÁVIO MURILO

Redes Neurais. Prof. Aurora Pozo. Obs: slides baseados em Prof. Marcílio Souto e Prof. Marley Vellasco

Mineração de Dados em Biologia Molecular

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

Introdução a Redes Neurais Artificiais com a biblioteca Encog em Java

Redes Neurais e Sistemas Fuzzy

Tópicos Especiais: Inteligência Artificial REDES NEURAIS

Algoritmos de Aprendizado. Formas de Aprendizado. Aprendizado Batch x Incremental. Aprendizado Batch x Incremental

Inteligência Artificial

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Redes Neurais Pulsadas. João Fausto Lorenzato Robson David Montenegro Tarcísio Lucas

Multiple Layer Perceptron

2. Redes Neurais Artificiais

Profa. Josiane M. Pinheiro outubro/2008

Fundamentos das Redes Neurais: exemplos em Java

Autor: Edroaldo Lummertz da Rocha Home page: edroaldo.wordpress.com

A evolução natural deu ao cérebro humano muitas características desejáveis que não estão presentes na máquina de von Neumann:

3 INTELIGÊNCIA COMPUTACIONAL (IC)

PERCEPTRON. Características Básicas Modelo de Neurônio Estrutura da Rede Algoritmo de Aprendizado

Introdução às Redes Neurais Artificiais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

4 Redes Neurais Artificiais

Redes Neurais Artificiais

Multi-Layer. Perceptrons. Algoritmos de Aprendizado. Perceptrons. Perceptrons

REDES NEURAIS. Marley Maria B.R. Vellasco. ICA: Núcleo de Pesquisa em Inteligência Computacional Aplicada CONTEÚDO

Algoritmos de Aprendizado. Formas de Aprendizado. Aprendizado Batch x Incremental. Aprendizado Batch x Incremental

GT-JeDi - Curso de Desenv. de Jogos IA para Jogos

Regra de Hebb Perceptron Delta Rule (Least Mean Square) Multi-Layer Perceptrons (Back Propagation) Hopfield Competitive Learning Radial Basis Function

Multi-Layer. Perceptrons. Algoritmos de Aprendizado. Perceptrons. Perceptrons

Aprendizagem por Treinamento de Redes Neurais

Redes Neurais e Sistemas Fuzzy

O uso de uma Rede Neural Artificial Supervisionada para obtenção do fator de carga de um alimentador.

Classificadores Lineares

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Reconhecimento de Padrões/Objetos

COMPARAÇÃO ENTRE DIFERENTES ESTRUTURAS DE REDES NEURAIS NO PROBLEMA PRESA-PREDADOR 1

Fundamentos de Inteligência Artificial [5COP099]

Redes Neurais. Motivação. Componentes do neurônio. Cérebro humano. Criar máquinas capazes de operar independentemente do homem:

2. Redes Neurais Artificiais

Rede RBF (Radial Basis Function)

3 Redes Neurais Introdução

Inteligência Computacional

Redes Neurais Feedforward e Backpropagation. André Siqueira Ruela

Redes Neurais Artificiais

Introdução às Redes Neurais Artificiais

Redes Neurais Artificiais

Unidade 08 MATLAB Neural Network Toolkit

Regra de Hebb Perceptron Delta Rule (Least Mean Square) Multi-Layer Perceptrons (Back Propagation) Hopfield Competitive Learning Radial Basis Function

Aprendizado de Máquina Introdução às Redes Neurais Artificiais

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação

SEMINÁRIO DOS ARTIGOS:

Aprendizagem de Máquina

Mini-projeto: Reconhecimento de Digitos com MLPs. Germano C. Vasconcelos Centro de Informática - UFPE

Aprendizado de Máquina

Redes Neurais. Conexionismo. Redes Neurais, IA e IC. Abordagem Simbólica. Apresentação da disciplina Inteligência Computacional e conexionismo

Tópicos Especiais em Informática Fatec Indaiatuba

PRINCÍPIOS DE NEUROCOMPUTAÇÃO

Aprendizado de Máquinas. Classificadores Lineares

Introdução às Redes Neurais Artificiais

Inteligência Artificial

Inteligência Artificial. Redes Neurais Artificiais. Aula II Introdução

Sistemas Inteligentes - Redes Neurais -

Resolução da Prova 1 SCC Redes Neurais 2o. Semestre de Prof. João Luís

lnteligência Artificial Introdução a Redes Neurais Artificiais

Transcrição:

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

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

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

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

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

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

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 P - Universo do Padrão X = ( x1, x2, x3, x4,..., xn ) n características F - Universo de Características Y = ( y1, y2, y3, y4,..., yr ) r características C - Universo de classificação K classes distintas Pré-Processamento do padrão Seleção/Extração de r características (r < n) Base para sistema de tomada de decisão para classificação Redes neurais enquadram-se como técnicas discriminantes para classificação (reconhecimento) de padrões 7

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

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 (10 10 ) de unidades básicas denominadas neurônios. Cada neurônio se conecta com aproximadamente 10.000 (10 4 ) 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

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 10 4 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

A Estrutura e Funcionamento dos Neurônios 11

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 10 4 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

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

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

Modelando o Neurônio Básico (McCulloch & Pitts, 1943) 15

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 = w 1 x 1 + w 2 x 2 + w 3 x 3 +... + w n x n = 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

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

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

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

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

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

O Algoritmo Básico de Aprendizado dos Perceptrons 1. Inicializar os pesos ( sinapses ) e o valor threshold : Seja w k (t), (0 k n) os pesos do padrão k no tempo t, e θ o valor threshold do neurônio. Faça w 0 = -θ e x 0 = 1 sempre!! Inicialize w k (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 x 0, x 1, x 2, x 3,..., x n 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: w k (t+1) = w k (t) Se y(t) = 0 e d(t) = 1, então: w k (t+1) = w k (t) + x k (t) Se y(t) = 1 e d(t) = 0, então: w k (t+1) = w k (t) - x k (t) senão: 22

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: w k (t+1) = w k (t) Se y(t) = 0 e d(t) = 1, então: w k (t+1) = w k (t) + ηx k (t) Se y(t) = 1 e d(t) = 0, então: w k (t+1) = w k (t) - ηx k (t) senão: 23

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

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) w k (t+1) = w k (t) + η x k (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

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 = (x 0, x 1, x 2,..., x n ) Ao encarar o algoritmo de aprendizagem dos perceptrons forma vetorial, os pesos ( sinapses ) serão também representados de forma vetorial (obs: o peso w 0 sempre será igual a -θ, o valor threshold do neurônio): W = (w 0, w 1, w 2,..., w n ) 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

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: Saída ( output ): Classe A : pessoa apta Classe B : pessoa não apta 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

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

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 Classificação: dimensão do padrão: n = 1024 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

Sintetizando: INTELIGÊNCIA ARTIFICIAL Perceptrons uma perspectiva vetorial 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

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

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 ) Moeda A: Cara (1) ou Coroa(0) Moeda B: Cara (1) ou Coroa(0) Classificação Classe A : Ganha o Jogo 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

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

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

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

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

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

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

Matemática do Aprendizado do Perceptron Multicamada O output para cada nodo (neurônio) j é calculado por uma função sigmoidal f j que tem como variável independente a soma ponderada net j. Assim temos: Vamos escrever: (3) (4) O segundo termo de (4) vale: (5) 39

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 E p significa conduzir a mudança de pesos proporcional a δ pj o pi 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 E p. 40

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 E p em relação a O pj 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 t pj. 41

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

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 E p. (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

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

Algoritmo Aprendizado perceptron multicamada 1. Inicializar os pesos ( sinapses ) e o valor threshold : Seja w k (t), (0 k n) os pesos do padrão k no tempo t, e θ o valor threshold do neurônio. Faça w 0 = -θ e x 0 = 1 sempre!! Inicialize w k (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 = x 0, x 1, x 2, x 3,..., x n : n é o número de nodos (neurônios) da input layer. Apresente output desejado (valor dos neurônios da output layer): Tp = t 1, t 2, t 3,..., t m : 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 t k 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 o pj 45

Algoritmo Aprendizado perceptron multicamada 4. Adaptar os pesos: Partindo da output layer e efetuando backpropagation onde w ij 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

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

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

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

Comportamento de aprendizado do perceptron multicamda Conforme apresentado anteriormente, o aprendizado da rede perceptron multicamada baseia-se na minimização da função erro E p (ou função energia) da rede. Basicamente, E p 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 E p. 50

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 E p 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 E p irá variar em função do único peso w 1 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

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 E p 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 E p irá variar em função de dois pesos w 1 e w 2 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

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 E p em gráficos 3-D, imaginando que todos os n 2 pesos que influenciam E p estão devidamente representados no gráfico 3-D 53

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

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

Perceptron multicamada no papel de Classificador Considere um nodo I 1 (neurônio) que se encontre na input layer de uma rede neural, alimentado pelos n inputs do padrão (camada retina ). O nodo I 1 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

Perceptron multicamada no papel de Classificador Considere agora que a Input layer possui um segundo nodo I 2, 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

Perceptron multicamada no papel de Classificador Combinando as saídas dos nodos (neurônios) I 1 e I 2 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

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

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

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

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

Perceptron multicamada no papel de Classificador Topologia geral para uma rede neural 63

Perceptron multicamada no papel de Classificador Topologia geral para uma rede neural 64