You are on page 1of 80

FAC-FITO FACULDADE DE CINCIAS DA FUNDAO INSTITUTO TECNOLGICO DE OSASCO

LEONARDO RAMOS NBREGA MARIA GABRIELA BENEDETTI NICOLE LUANA MINEU

O USO DE REDES NEURAIS ARTIFICIAIS NO RECONHECIMENTO DE LETRAS

ii

Osasco 2007 LEONARDO RAMOS NBREGA MARIA GABRIELA BENEDETTI NICOLE LUANA MINEU

O USO DE REDES NEURAIS ARTIFICIAIS NO RECONHECIMENTO DE LETRAS

Trabalho de Concluso de Curso apresentado Faculdade de Cincias da Fundao Instituto Tecnolgico de Osasco, para a obteno do ttulo de Bacharel em Cincia da Computao.

Orientadora: Sandra Bianca Henriques

iii

Osasco 2007 AGRADECIMENTOS Agradecemos primeiramente a Deus por nos proporcionar a sabedoria necessria para a concluso desta graduao e desenvolvimento deste trabalho. A Prof. Mestre Sandra Bianca Henriques, nossa orientadora, pela pacincia, colaborao, sugestes e suporte durante o desenvolvimento deste trabalho. A Prof. Dr. Lourdes Mattos Brasil e ao bacharel em Cincias da Computao pela Universidade de So Paulo Andr Marcelo Schneider que colaboraram com este projeto cedendo arquivos, indicando livros e compartilhando seus conhecimentos para o bom funcionamento do aplicativo. A nossas famlias e amigos que nos apoiaram e intercederam por ns durante o perodo de elaborao deste trabalho.

iv

RESUMO As redes neurais artificiais (RNA) podem aprender acerca de seu ambiente, o que as torna interessantes para o reconhecimento de caracteres, e assim, permitindo que diferentes grafias sejam reconhecidas a partir de um padro aprendido. Em uma RNA possvel implementar diferentes algoritmos para esta finalidade, cada um com sua prpria forma de classificar padres. Este trabalho apresenta um estudo comparativo entre os algoritmos de retropropagao do erro e os mapas auto-organizveis (SOM) no reconhecimento dos 26 caracteres do alfabeto latino. Em redes neurais artificiais, a escolha do algoritmo adequado a um determinado problema, a arquitetura do algoritmo escolhido e a obteno dos melhores valores para os parmetros variveis so fatores crticos para o sucesso da rede. Este sucesso pode ser compreendido como o objetivo principal ao qual uma rede foi submetida, como por exemplo, generalizar padres. O aplicativo, produto deste trabalho, permitiu observar como duas redes neurais artificiais, com arquiteturas distintas uma da outra, se comportaram para o mesmo problema no mesmo ambiente: uma rede neural artificial, com um perceptron de mltiplas camadas e com algoritmo de retropropagao do erro, exige um ajuste refinado da estrutura para que ela memorize caractersticas de um padro sem se especializar nele; uma rede neural artificial com o algoritmo de mapas auto-organizveis exige menos ajustes refinados, mas uma maior normalizao dos dados apresentados para que o fluxo do sinal apresentado possa ser mapeado de forma correta e equilibrada. Palavras chave: redes.neurais.artificiais.reconhecimento.caracteres

ABSTRACT The artificial neural networks can learn about his environment, which makes them interesting for the recognition of characters, and allowing various spellings are recognized from a learned pattern. In an RNA is possible implement different algorithms for this purpose, each with his own way of classifying patterns. This work presents a comparative study between the algorithms of the error-backpropagation and Self-organization maps (SOM) in recognition of the 26 characters of latin alphabet. In artificial neural networks, the choice of algorithm appropriate to a particular problem, the architecture of the algorithm chosen and the achievement of the best values for the parameters Variables are factors critical to the success of the network. This success may be understood as the main objective of which was a network before, such as widespread standards. The application, this work product, has seen as two neural networks artificial with different architectures of one another, if behaved for the same problem in the same environment: an artificial neural network, a perceptron of multiple layers and with the algorithm error-backprogagation, requires an adjustment of the structure for refined she memorize characteristics of a standard not specialize therein; a network with artificial neural algorithm of self-organization maps settings requires less refined, but greater standardization of data submitted to the signal flow submitted can be mapped in a correct and balanced. Keywords: networks.neural.artificial.recognition.characters

vi

SUMRIO RESUMO...................................................................................................................................iv ABSTRACT................................................................................................................................v LISTA DE ILUSTRAES....................................................................................................viii LISTA DE GRFICOS...........................................................................................................viii LISTA DE QUADROS...........................................................................................................viii LISTA DE SIGLAS....................................................................................................................x Captulo 1 Introduo...............................................................................................................xi ..............................................................................................................................................xi 1.1 Metodologia....................................................................................................................xi 1.2 Algoritmos Utilizados....................................................................................................xiii 1.3 Programao Orientada a Objetos POO.....................................................................xiii Captulo 2 Redes Neurais........................................................................................................xiv 2.1 Redes Neurais Naturais.................................................................................................xiv 2.2 Redes Neurais Artificiais..............................................................................................xvi 2.3 Arquiteturas das Redes Neurais Artificiais...................................................................xix 2.3.1 Redes Diretas.........................................................................................................xix 2.3.2 Redes Recorrentes...................................................................................................xx 2.4 Processo de Aprendizagem............................................................................................xx 2.4.1 Aprendizagem Supervisionada..............................................................................xxi 2.4.2 Aprendizagem No-Supervisionada......................................................................xxi 2.4.3 Aprendizagem por Reforo....................................................................................xxi 2.4.4 Aprendizagem por Correo de Erro....................................................................xxii 2.4.5 Aprendizagem Competitiva.................................................................................xxiii 2.4.6 Aprendizagem Hebbiana......................................................................................xxiv 2.5 Perceptron de Camada nica......................................................................................xxiv 2.6 Perceptron de Mltiplas Camadas.............................................................................xxvii 2.7 Algoritmos de Treinamento......................................................................................xxviii 2.7.1 Algoritmo de Retropropagao do Erro (Backpropagation).............................xxviii 2.7.2 Redes SOM..........................................................................................................xxxi Captulo 3 Reconhecimento de Padres.............................................................................xxxiii 3.1 Introduo.................................................................................................................xxxiii 3.2 Formas de Reconhecimento de Padres...................................................................xxxiv 3.3 Aplicao de Padres em Redes Neurais..................................................................xxxiv 3.4 Reconhecimento de Imagens.....................................................................................xxxv 3.5 Reconhecimento de Caracteres................................................................................xxxvii 3.5.1 Sistemas de Reconhecimento de Caracteres ....................................................xxxvii 3.5.2 Etapas de Processamento para Sistemas do Tipo OCR.....................................xxxix 3.5.3 Avaliao do Processo de Reconhecimento...........................................................xli 3.5.4 Dificuldades na Tarefa de Reconhecimento...........................................................xli Captulo 4 Projeto de Reconhecimento de Letras...................................................................xlii 4.1 O Problema de Reconhecimento de Caracteres............................................................xlii 4.2 O Exemplo para o Treinamento....................................................................................xlii 4.3 Desenvolvimento do Aplicativo para Reconhecer Caracteres....................................xliii 4.4 Parametrizaes............................................................................................................xlv 4.5 Desenvolvimento do Aplicativo e as Fases do Projeto..............................................xlviii 4.5.1 Primeira Fase do Projeto Neurnio Simples......................................................xlix 4.5.2 Segunda Fase do Projeto Perceptron de Mltiplas Camadas..................................l 4.6 Modelagem....................................................................................................................liii

vii

4.6.1 Diagrama de Casos de Uso.....................................................................................liv 4.6.1.1 Documentao dos Atores...............................................................................liv 4.6.1.2 Documentao dos Casos de Uso.....................................................................lv 4.6.2 Diagrama de Classes................................................................................................lx Captulo 5 experimentos..........................................................................................................lxi 5.1 Materiais........................................................................................................................lxi 5.2 Mtodos.........................................................................................................................lxi 5.3 Documentao .............................................................................................................lxii 5.4 Estudo de Casos...........................................................................................................lxiv 5.4.1 Experimento 1 EXP01........................................................................................lxv 5.4.2 Experimento 2 EXP02......................................................................................lxvii 5.4.3 Experimento 3 EXP03.....................................................................................lxviii 5.4.4 Experimento 4 EXP04......................................................................................lxxii 5.4.5 Experimento 5 EXP05......................................................................................lxxii 5.4.6 Experimento 6 EXP06.....................................................................................lxxiii 5.4.7 Experimento 7 EXP07.....................................................................................lxxiv 5.4.8 Experimento 8 EXP08......................................................................................lxxv Captulo 6 Concluso.........................................................................................................lxxviii 6.1 Contribuies.......................................................................................................lxxviii 6.2 Sugesto para Trabalho Futuros............................................................................lxxix Referncias Bibliogrficas.....................................................................................................lxxx

viii

LISTA DE ILUSTRAES Figura 1.1 Modelo em Espiral...............................................................................................xii Figura 2.1 Neurnio...............................................................................................................xv Figura 2.2 Sinapse.................................................................................................................xvi Figura 2.3 Modelo de McCulloch e Pitts.............................................................................xvii Figura 2.4 Rede Direta com Trs Camadas..........................................................................xix Figura 2.5 Rede Recorrente sem Auto-Realimentao..........................................................xx Figura 2.6 Rede de Mltiplas Camadas...............................................................................xxii Figura 2.7 Estrutra de uma Rede de Aprendizagem Competitiva......................................xxiii 1) Hebb, D. O. The Organization of Behavior. New York: Wiley, 1949..............................xxiv Figura 2.8 Perceptron de Camada nica.............................................................................xxv Figura 2.9 Problema Linearmente Separvel.....................................................................xxvii Figura 2.10 Perceptron MLP............................................................................................xxviii Figura 2.11 Tipos de Sinais no Treinamento por Retropropagao de Erro......................xxix Figura 2.12 Grade Bidimensional de Neurnios (Viso Unidimensional).........................xxxi Figura 2.13 Grade Bidimensional de Neurnios (Viso Bidimensional)..........................xxxii Figura 3.1 Elementos de Anlise de Imagens..................................................................xxxvii Figura 3.2 Classificao dos Sistemas de Reconhecimento de Caracteres.....................xxxviii lxxx.............................................................................................................................................ii Figura 3.3 Esquema das Etapas de Processamento de um Sistema OCR...............................xl Figura 4.1 Tela Cadastro de Padres...................................................................................xliv Figura 4.2 Tela Principal do Sistema.................................................................................xlviii Figura 4.3 Diagrama de Casos de Uso...................................................................................liv Figura 5.1 Conjunto de caracteres utilizados no treinamento dos algoritmos .....................lxii Figura 5.2 Caractere A e R e suas caractersticas similares.........................................lxvi Figura 5.3 Caractere O e Q alterados e o padro D ao qual foram associados...................lxxii Figura 5.4 Conjunto de caracteres utilizados nos experimentos EXP07 e EXP08...........lxxvii LISTA DE GRFICOS Grfico 2.1 Representao Grfica da Funo Booleana AND.............................................15 Grfico 2.2 Representao Grfica da Funo Booleana XOR.............................................15 Grfico 4.1 Zigue-zague formado pela rede at ponto de convergncia...............................35 Grfico 5.1 Resultado do Experimento EXP03.....................................................................60 Grfico 5.2 Resultado do Experimento EXP08.....................................................................65 LISTA DE QUADROS Quadro 2.1 Funo Booleana AND.......................................................................................15 Quadro 2.2 Funo Booleana XOR.......................................................................................15 Quadro 4.1 Porta Lgica AND............................................................................................xlix Quadro 4.2 Documentao dos Atores..................................................................................liv Quadro 4.3 Treinar a Rede CSU01......................................................................................lv Quadro 4.4 Reconhecer Letra CSU02................................................................................lvi Quadro 4.5 Cadastrar Padres de Letras CSU03...............................................................lvii Quadro 4.6 Visualizar estatsticas de Treinamento CSU04.............................................lviii Quadro 4.7 Alterar padres de Treinamento CSU05..........................................................lix

ix

Quadro 5.1 Framework Aplicado aos Experimentos...........................................................lxiv Quadro 5.2 Parmetros do Experimento EXP01 com Retropropagao do Erro...............lxvii Quadro 5.3 Parmetros do Experimento EXP06 com SOM.............................................lxviii Quadro 5.4 Parmetros do Experimento EXP03 com Retropropagao do Erro.................lxx Quadro 5.5 Resultados do Experimento EXP03..................................................................lxxi Quadro 5.6 Parmetros do Experimento EXP05 com Retropropagao do Erro..............lxxiii Quadro 5.7 Parmetros do Experimento EXP06 com Retropropagao do Erro..............lxxiv Quadro 5.8 Resultados do Experimento EXP08................................................................lxxvi

LISTA DE SIGLAS MLP NIST OCR OO POO RNA RNN SOM UML Multilayer Perceptron National Institute of Science and Technology Optical Character Recognition Orientao a Objetos Programao Orientao a Objetos Rede Neural Artificial Rede Neural Natural Self-Organizing Map Unified Modeling Language

xi

CAPTULO 1 INTRODUO O reconhecimento de caracteres uma rea muito estudada atualmente e que possui um nmero muito grande de aplicaes. So diversas as que utilizam reconhecimento de caracteres como, por exemplo, a digitalizao de letras de um formulrio contnuo (ou manuscritas) havendo, logo aps, a aplicao de tcnicas para processamento da imagem e reconhecimento dos caracteres. possvel, e bem comum, a aplicao de reconhecimento de padres em redes neurais com a finalidade de comparar algoritmos de treinamento, podendo-se observar, analisar e medir estes algoritmos em, por exemplo, seu tempo de resposta e taxa de acerto. O objetivo deste trabalho ter uma aplicao desenvolvida em JAVA que apresente as principais funes de um OCR (Optical Character Recognition). Ser construda uma rede neural artificial e esta dever reconhecer letras de acordo com padres pr-estabelecidos. O sistema tambm permitir a alterao desses padres. A Rede passar primeiramente por um treinamento e os parmetros para este processo podero ser selecionados pelo usurio, inclusive a escolha da forma como a rede ser treinada (escolha entre dois algoritmos de treinamento). Aps esta etapa o sistema dever permitir o reconhecimento de uma letra desenhada pelo usurio, bem como a visualizao do que ocorreu durante o treinamento. A motivao para a escolha deste tema veio do grande interesse por Inteligncia Artificial, principalmente pela rea de Redes Neurais e tambm, por se tratar de um assunto novo ao considerar o conhecimento dos alunos envolvidos no desenvolvimento desse trabalho, o que permite auxiliar na aquisio de conhecimentos relacionados aprendizagem de uma rede neural e reconhecimento de padres de caracteres. Ao implantar um perceptron de mltiplas camadas com opes que tenham por finalidade o reconhecimento de letras, ser possvel avaliar as caractersticas existentes em um OCR, comparar o desempenho de algoritmos de treinamento e futuramente, considerando-se uma continuao dos estudos, desenvolver melhores tcnicas para reconhecimento de padres contribuindo com a neurocomputao em sua busca por melhores resultados e tcnicas em redes neurais.

1.1 Metodologia Como previsto, os requisitos do sistema foram aumentando durante o andamento do projeto, dessa forma foi utilizado o modelo de processo de desenvolvimento em Espiral cujas etapas so divididas em:

xii

1) Definio dos objetivos: o projeto dividido em partes e os objetivos para cada parte so definidos, assim como seus riscos; 2) Anlise de Riscos: para cada risco encontrado na etapa acima feita uma anlise para se chegar s devidas providncias para sua reduo; 3) Desenvolvimento e Validao: aps analisar os riscos deve-se realizar o desenvolvimento do sistema para a fase em questo do projeto selecionando um modelo para desenvolvimento de software especfico. Aps o desenvolvimento dever ocorrer a validao do mesmo para verificar se atende s necessidades; 4) Planejamento: feita uma anlise para verificar se necessrio um prximo loop da espiral. Em caso positivo as etapas so reiniciadas com novos objetivos da prxima fase.

Figura 1.1 Modelo em Espiral Fonte: SOMMERVILLE, 2003

xiii

1.2 Algoritmos Utilizados Para que uma rede neural artificial aprenda e possa fornecer resultados satisfatrios, necessrio que ela passe por um treinamento. Para treinar uma rede so utilizados os chamados algoritmos de treinamento. 1.3 Programao Orientada a Objetos POO A programao orientada a objetos mostra uma forma diferente de programao. Com alguns conceitos de objetos, mtodos, classes e atributos ela consegue aproximar o que est sendo desenvolvido com o mundo real. Considerando um carro como exemplo e os conceitos vinculados a orientao a objetos, pode-se dizer que um carro um objeto para as pessoas que o adquirem e composto por atributos, como motor, rodas, cmbio, volante, entre outros. Ao utilizar um carro no necessrio se preocupar com a forma como o carro funciona ou como o motor faz o carro se mover, mas apenas com a forma de utilizao dos mtodos possveis que o faam se locomover, tais como os pedais de acelerao, freio e embreagem. Analogamente, os pedais so os mtodos em programao orientada objetos que fazem a interface entre os objetos, cada um com seu mtodo e sua forma de funcionar e sem querer saber como o outro funciona. Dessa maneira, mesmo que o carro tivesse seu motor alterado internamente aps uma manuteno, seria possvel continuar dirigindo mesmo sem saber quais foram as mudanas dentro do objeto motor, desde que os pedais continuem como mtodos disponveis para a utilizao do carro. Os conceitos de orientao a objetos e programao orientada a objetos no so objetivos deste trabalho. Para uma melhor compreenso dos mesmos, sugere-se o estudo preliminar em literaturas apropriadas, tais como:

xiv

CAPTULO 2 REDES NEURAIS As redes neurais artificiais so um tipo de sistema de processamento paralelo e distribudo, relembrando assim, o funcionamento do crebro humano, tendo suas origens em muitas disciplinas, tais como, neurocincia, matemtica, estatstica, fsica, cincia da computao e engenharia. Por sua habilidade de aprender a partir de dados de entrada, assim como o crebro, as redes neurais artificiais encontram aplicaes em diversos campos, como modelagem, processamento de sinais e controle, anlise de sries temporais e reconhecimento de padres [BRAGA, 2007]; [HAYKIN, 2001].

2.1 Redes Neurais Naturais O crebro humano composto por aproximadamente 100 bilhes de neurnios, chamados tambm de clulas nervosas. As clulas nervosas so responsveis por receber impulsos eltricos, process-los e redistribu-los a outras clulas. Estas clulas esto associadas entre si formando uma extensa rede altamente conectada, proporcionando assim, um alto poder de processamento ao crebro [RUSSELL, 2003]. A execuo de funes cognitivas bsicas, sensoriais, motoras e autnomas e tambm o pensamento dos homens so de responsabilidade do crebro, mas no se sabe ao certo como o crebro habilita o pensamento atravs dessa rede de neurnios e nisso reside um dos grandes mistrios da neurocincia [BRAGA, 2007]; [RUSSELL. 2003]. Sabe-se, porm, atravs de estudos realizados por Paul Broca em 1861 com pacientes que tiveram seus crebros danificados, que determinadas regies do crebro so responsveis por atividades cognitivas especficas, dando a entender que existe um mapeamento de funes no crebro. uma incgnita como estas reas mapeiam certas funes do corpo j que, dependendo da funo, algumas reas podem assumir o controle de partes do corpo que tiveram suas reas cerebrais responsveis danificadas [RUSSELL, 2003]. Tentar simular ou construir um crebro digital ainda um feito que est muito longe de ser alcanado pelo homem, pois o crebro biolgico e um computador possui caractersticas bem distintas. Pela lei de Moore, em aproximadamente 2020 existiro processadores com a quantidade de portas lgicas igual ao nmero de neurnios. Sabe-se que cada porta lgica de um processador pode efetuar processamentos na ordem de nanossegundos, mil vezes mais rpido que um neurnio, porm o crebro compensa essa velocidade com um maior poder de processamento, proveniente da alta conectividade entre

xv

seus neurnios, resultando numa velocidade final 100 mil vezes superior a um processador [HAYKIN, 2001]; [RUSSELL, 2003]. Considerando um neurnio, seus principais componentes so: - dendritos: sua funo receber os estmulos, impulsos nervosos, recebidos dos outros neurnios e encaminha-los at o corpo celular; - corpo celular: responsvel por processar os impulsos nervosos recebidos e gerar novos impulsos. tambm chamado de soma; - axnio: responsvel por transmitir os estmulos gerados para os outros neurnios [BRAGA, 2007]. A estrutura de um neurnio pode ser observada atravs da figura 2.1.

Figura 2.1 Neurnio Fonte: http://www.icmc.usp.br/~andre/research/neural/index.htm

A regio de contato entre a terminao do axnio de um neurnio e o dendrito de outro neurnio forma uma sinapse. As sinapses so responsveis pelas interaes entre os neurnios e so capazes tambm de controlar a transmisso de seus impulsos [BRAGA, 2007]; [HAYKIN, 2001]. Os sinais de um neurnio se propagam para outro atravs de uma reao eletroqumica. Uma sinapse converte um sinal eltrico em um sinal qumico e depois retorna o sinal qumico em um sinal eltrico. Um neurnio possui entre 10 e 100.000 conexes com outros neurnios [HAYKIN, 2001]; [RUSSELL, 2003].

xvi

A maneira como um neurnio funciona consiste em combinar as atividades em suas conexes e, caso exceda um limite (limiar), gerar um sinal de sada que servir de estmulo para os neurnios conectados a ele. Esse estmulo compe as atividades do neurnio e combinadas podem fazer com que novos estmulos sejam transmitidos aos prximos neurnios [WHITBY, 2007]. Uma sinapse pode ser observada atravs da figura 2.2.

Figura 2.2 Sinapse Fonte: http://www.anatomiaonline.com/tecidonervoso.htm

Acredita-se que a complexa rede formada por neurnios e suas sinapses podem influenciar diretamente o poder de processamento de informaes e dados do crebro [RUSSELL, 2003].

2.2 Redes Neurais Artificiais As Redes Neurais Artificiais ou RNA so inspiradas no funcionamento de uma Rede Neural Natural ou RNN, ou seja, baseiam-se naquilo que se conhece do funcionamento do crebro de humanos e de animais semelhantes, simulando inclusive seu comportamento como aprender,

xvii

errar, fazer descobertas e adquirir conhecimento atravs de experincias. Entretanto, vale ressaltar que as RNA esto muito distantes das RNN [AZEVEDO, 2000]; [WHITBY, 2007]. Em 1943, Warren S. McCulloch e Walter H. Pitts propuseram o primeiro modelo de um neurnio artificial, sendo que a preocupao dos mesmos era a de imitar o neurnio biolgico e sua realidade, baseado naquilo que se conhecia na poca a seu respeito. O modelo de McCulloch e Pitts pode ser visualizado atravs da figura 2.3.

Figura 2.3 Modelo de McCulloch e Pitts Fonte: AZEVEDO, 2000

Este modelo era simples e representava o funcionamento de um neurnio de forma binria funcionando da seguinte forma: - x so os sinais apresentados entrada do neurnio que binria, representando os sinais de sada dos neurnios anteriores; - cada entrada possui um valor w associado, denominado peso, para representar o comportamento das sinapses. Este valor pode ser positivo ou negativo dependendo de a sinapse correspondente ser inibitria ou excitatria; - representa a soma ponderada realizada, que corresponde soma de cada sinal multiplicado pelo seu peso como apresenta a equao 2.1, formando a entrada efetiva do neurnio;
p

xiwi
i =1

(2.1)

- a entrada efetiva passa por uma funo de transio f(a) de sada binria para dar a resposta y do neurnio. Caso a entrada efetiva exceda o valor do limiar o resultado 1 fornecido, seno fornecido o resultado zero [AZEVEDO, 2000]; [BRAGA, 2007]; [WHITBY, 2007].

xviii

O trabalho de McCulloch e Pitts considerado pioneiro na era moderna das redes neurais, justamente por introduzirem a idia de redes neurais como mquinas computacionais [HAYKIN, 2001].

xix

2.3 Arquiteturas das Redes Neurais Artificiais Existem dois tipos principais de arquiteturas de RNA: redes acclicas ou redes diretas ou feedforward, e redes cclicas ou redes recorrentes ou feedback, sendo a maneira como os neurnios de uma RNA esto estruturados ligados ao tipo de algoritmo utilizado para o treinamento da rede [AZEVEDO, 2000]; [HAYKIN, 2001]; [RUSSELL, 2003]. 2.3.1 Redes Diretas Redes diretas so aquelas que no possuem ciclos em seu grafo. Freqentemente so representadas em camadas, de tal forma que cada neurnio artificial recebe sua entrada de neurnios da camada imediatamente anterior. Vale ressaltar que nesta topologia, neurnios de mesma camada no se comunicam. As redes diretas possuem a estrutura ilustrada pela figura 2.4: - camada de entrada: seus neurnios so responsveis por receberem os sinais de excitao; - camadas intermedirias ou ocultas: seus neurnios so internos rede; - camada de sada: seus neurnios tm sua sada como sada da rede [AZEVEDO, 2000]; [RUSSELL, 2003].

Figura 2.4 Rede Direta com Trs Camadas Fonte: HAYKIN, 2001

xx

2.3.2 Redes Recorrentes Redes recorrentes so aquelas que possuem ao menos um lao de realimentao, ou seja, o sinal de sada de um neurnio pode servir de sinal de entrada em outros neurnios ou at mesmo pode ser usado para alimentar suas prprias entradas. A figura 2.5 apresenta uma rede recorrente sem auto-realimentao e sem neurnios ocultos [AZEVEDO, 2000]; [HAYKIN, 2001]; [RUSSELL, 2003].

Figura 2.5 Rede Recorrente sem Auto-Realimentao Fonte: HAYKIN, 2001

2.4 Processo de Aprendizagem A principal caracterstica de uma RNA, e de importncia primordial, a sua habilidade de aprender por meio de exemplos e de melhorar seu desempenho atravs do processo de aprendizagem. Dentro do contexto de redes neurais, aprendizagem pode ser definida como o processo onde os parmetros de uma RNA so ajustados de acordo com os estmulos externos rede, ou seja, o ambiente onde a RNA est inserida. Uma rede neural aprende atravs de um processo interativo de ajustes aplicados a seus pesos sinpticos, e a cada iterao do processo de aprendizagem, fica mais instruda com

xxi

relao ao seu ambiente externo. Ao final do processo, o conhecimento adquirido pela rede est guardado em seus pesos [BRAGA, 2007]; [HAYKIN, 2001]. Existem diferentes processos de aprendizagem, cada um, adequado a diferentes tipos de redes [AZEVEDO, 2000]. 2.4.1 Aprendizagem Supervisionada Aprendizagem supervisionada o processo onde a RNA treinada com exemplos de pares de entradas e sadas. A rede toma cada entrada e responde com uma sada. Esta sada comparada com a sada desejada. Caso a rede no obtenha o resultado esperado, um sinal de erro gerado, o qual usado para calcular o ajuste a ser feito nos pesos sinpticos da rede, at que o resultado esperado seja obtido. Desta forma, o erro minimizado [AZEVEDO, 2000]. O processo de minimizao de erro requer um professor ou supervisor. Este professor possui conhecimento sobre o ambiente externo, enquanto a rede neural de interesse o desconhece. O professor responsvel por fornecer rede o conjunto de exemplos de pares de entradas e sadas. Quando o professor e a rede neural forem expostos a um vetor de treinamento, isto , um vetor que descreve o estado do ambiente, o professor, com seu conhecimento prvio acerca do ambiente, ser capaz de fornecer para a rede a resposta desejada para este vetor de treinamento. Atravs do treinamento o conhecimento acerca do ambiente do professor transferido para a rede neural [AZEVEDO, 2000]; [HAYKIN, 2001]. 2.4.2 Aprendizagem No-Supervisionada Aprendizagem no-supervisionada, ou auto-organizada, no possui sada desejada explcita nem supervisor ou professor para avaliar o desempenho da rede. Durante seu treinamento, a RNA recebe entradas bastante diferentes ou padres de entrada, e organiza os padres em categorias. Ao receber uma nova entrada, a rede fornece uma sada indicando a qual classe esta entrada pertence. Caso uma classe no seja encontrada para o padro de entrada, uma nova classe gerada [AZEVEDO, 2000]; [HAYKIN, 2001]. 2.4.3 Aprendizagem por Reforo Aprendizagem por reforo caracteriza-se pelo processo de tentativa e erro, onde as boas aes executadas pela rede so reforadas. Em termos gerais, se uma ao tomada pelo sistema for satisfatria ento a tendncia do sistema de produzir esta ao reforada. Se uma ao tomada pelo sistema for insatisfatria ento a tendncia do sistema de produzir esta ao

xxii

enfraquecida. Nesta aprendizagem a rede precisa aprender como funciona o ambiente [BRAGA, 2007]; [RUSSELL, 2003]. O termo reforo est associado a estudos experimentais de aprendizagem animal. Neste contexto cabe citar a clssica lei do efeito que diz que dentro de um conjunto de respostas para a mesma situao, as respostas que proporcionarem maior satisfao ao animal sero mais fortemente conectadas situao, portando a probabilidade de ocorrerem maior [HAYKIN, 2001]. 2.4.4 Aprendizagem por Correo de Erro A aprendizagem por correo de erro procura minimizar o erro em relao resposta atual da rede a partir de uma sada desejada. Nesta aprendizagem, como pode ser observado atravs da figura 2.6, um vetor de entrada aplicado camada de entrada acionando os neurnios da camada oculta, que por sua vez acionam os neurnios da camada de sada atravs de um vetor de sinal. O sinal de sada gerado ento comparado com a sada desejada gerando um sinal de erro, definido pela equao 2.2 e(t) = yd(t) y(t) (2.2) onde e(t) representa o sinal de erro, yd(t) a sada desejada e y(t) o sinal de sada, num instante de tempo discreto (t) [BRAGA, 2007]; [HAYKIN, 2001].

Figura 2.6 Rede de Mltiplas Camadas Fonte: HAYKIN, 2001

O sinal de erro aciona um mecanismo que tem por objetivo ajustar os pesos sinpticos dos neurnios, afim de, a cada passo, aproximar o sinal de sada da sada desejada. Os ajustes dos pesos sinpticos continuam at que a rede alcance um estado estvel. Neste ponto o processo encerrado [HAYKIN, 2001].

xxiii

2.4.5 Aprendizagem Competitiva Aprendizagem competitiva caracteriza-se pela competio dos neurnios da camada de sada para que um deles se torne ativo, ou seja, torne-se o vencedor. Isto implica que apenas um neurnio de sada esteja ativo em um determinado instante. Nesta aprendizagem, a rede neural possui apenas uma camada de ns de entrada conectados diretamente a cada neurnio de sada por conexes excitatrias. A rede ainda inclui conexes laterais inibitrias entre os neurnios de sada, como ilustrado pela figura 2.7 [HAYKIN, 2001].

Figura 2.7 Estrutra de uma Rede de Aprendizagem Competitiva Fonte: HAYKIN, 2001

Para que determinado neurnio seja o vencedor, necessrio que seu campo local induzido, ou seja, a ao combinada de todas as suas entradas diretas, seja o maior entre todos os outros neurnios da rede para um padro de entrada especfico. Para o neurnio vencedor, a sada colocada em um, enquanto que para os outros neurnios perdedores a sada colocada em zero. Na aprendizagem competitiva o neurnio vencedor o nico neurnio que tem seus pesos atualizados. Cada n de entrada do neurnio vencedor libera uma proporo de seu peso sinptico, e ento este peso ser distribudo uniformemente entre os ns de entrada [HAYKIN, 2001].

xxiv

2.4.6 Aprendizagem Hebbiana Donald Hebb, em 1949, foi o primeiro a postular a primeira regra de aprendizagem autoorganizada. Em seu livro The Organization of Behavior (A Organizao do Comportamento), Hebb explica do ponto de vista neurobiolgico, segundo Haykin (2001, p. 80) apud Hebb1, que:
Quando um axnio da clula A est perto o suficiente para excitar uma clula B e participa do seu disparo repetida ou persistentemente, ento algum processo de crescimento ou modificao metablica acontece em uma das clulas ou em ambas, de tal forma que a eficincia de A como uma das clulas que dispara B aumentada.

Em termos gerais, esta afirmao de Hebb quer dizer que quando dois neurnios em lados distintos de uma sinapse so ativados sincronamente, um sendo o neurnio pr-sinptico e o outro sendo o neurnio ps-sinptico, ento esta sinapse fortalecida, aumentando a influncia que um neurnio tem no outro. Entretanto, se dois neurnios em lados distintos de uma sinapse so ativados assincronamente, esta sinapse ser enfraquecida ou at mesmo eliminada [BRAGA, 2007]; [HAYKIN, 2001].

2.5 Perceptron de Camada nica O perceptron foi proposto por Frank Rosenblatt em 1958, e a forma mais simples de uma rede neural, utilizada na classificao de padres. Inicialmente, o perceptron de camada nica era utilizado para o reconhecimento de caracteres. O modelo do perceptron composto por uma estrutura tendo como unidades bsicas neurnios McCulloch e Pitts, bias que um parmetro opcional com entrada +1 e um peso adaptativo associado, e por uma regra de aprendizagem. O perceptron foi o primeiro modelo proposto que utiliza o processo de aprendizagem supervisionada [AZEVEDO, 2000]; [BRAGA, 2007]; [HAYKIN, 2001]. O perceptron de camada nica uma rede com todas as entradas conectadas diretamente s sadas. Cada sada independente das outras sadas. Alm disso, a estrutura do perceptron possui apenas uma camada adaptativa de pesos, ou seja, apenas uma camada de sua rede pode ter seus pesos modificados ao longo do treinamento atravs de um algoritmo de treinamento. A estrutura de um perceptron de camada nica pode ser visualizada pela figura 2.8 [AZEVEDO, 2000]; [RUSSELL, 2003].

1) Hebb, D. O. The Organization of Behavior. New York: Wiley, 1949.

xxv

Figura 2.8 Perceptron de Camada nica Fonte: RUSSELL, 2003

O perceptron de camada nica utiliza uma funo de ativao de limiar, sendo assim, possvel visualiz-lo como a representao de uma funo booleana que alm das funes simples como E, OU e NO, tambm pode representar funes bastante complexas. No entanto existem muitas funes booleanas que o perceptron de camada nica no consegue representar. Funes cujo resultado, 0 ou 1, pode ser separado por uma reta so chamadas lineramente separveis. Cabe ressaltar que estas funes podem ser representadas pelo perceptron de camada nica. J funes cujo resultado, 0 ou 1, no pode ser separado por uma reta no podem representadas pelo perceptron de camada nica, sendo estas funes chamadas de no linearmente separveis. Para ilustrar melhor o conceito de separao linear, abaixo so exibidos o quadro 2.1, Funo Booleana AND, e sua representao grfica atravs do grfico 2.1, e o quadro 2.2, Funo Boolena XOR, e sua representao grfica atravs do grfico 2.2. Os pontos pretos indicam um ponto no espao de entrada onde o valor da funo 0, enquanto que os pontos brancos indicam um ponto no espao de entrada onde o valor da funo 1. possvel notar atravs do grfico 2.1 que o conjunto de resposta cujo resultado 0 pode ser separado por uma reta do conjunto de resposta cujo resultado 1. Portanto, a funo AND considerada uma funo linearmente separvel. O mesmo no ocorre com o grfico 2.2. Seu conjunto de resposta de valor 0 no pode ser separado por uma reta de seu conjunto de resposta de valor 1, portanto a funo XOR considerada no linearmente separvel [RUSSELL, 2003].

xxvi

AND ENTRADAS SADAS 1 1 1 1 0 0 0 1 0 0 0 0

Quadro 2.1 Funo Booleana AND

(0,1)

(1,1)

(0,0)

(1,0)

Grfico 2.1 Representao Grfica da Funo Booleana AND

XOR ENTRADAS SADAS 1 1 0 1 0 1 0 1 1 0 0 0

Quadro 2.2 Funo Booleana XOR

(0,1)

(1,1)

(0,0)

(1,0)

Grfico 2.2 Representao Grfica da Funo Booleana XOR

xxvii

A figura 2.9 exemplifica um problema prtico de separao linear onde possvel observar que duas classes diferentes de dados puderam ser distinguidas por uma reta.

Figura 2.9 Problema Linearmente Separvel

2.6 Perceptron de Mltiplas Camadas O perceptron de mltiplas camadas ou MLP (multilayer perceptron) uma generalizao do perceptron de camada nica, sendo constitudo por um conjunto de unidades sensoriais que formam a camada de entrada, uma ou mais camadas ocultas constitudas de ns computacionais e uma camada de sada tambm constituda de ns computacionais. O sinal de entrada se propaga da camada de entrada at a camada de sada, passando assim por todas as camadas da rede [HAYKIN, 2001]. O perceptron MLP uma rede que possui mais de uma camada adaptativa de pesos. Este tipo de rede permite que funes no linearmente separveis sejam representadas. Minsky e Papert foram responsveis por essa descoberta, mas no acreditavam que fosse possvel desenvolver um algoritmo capaz de adaptar mais do que uma camada de pesos adaptativos. No entanto, atravs do desenvolvimento do algoritmo backpropagation foi possvel demonstrar que possvel que uma rede neural seja formada por mltiplas camadas e que possua mais de uma camada de pesos adaptativos, tal rede pode ser visualizada pela figura 2.9 [AZEVEDO, 2000].

xxviii

Figura 2.10 Perceptron MLP Fonte: HAYKIN, 2001

2.7 Algoritmos de Treinamento Um algoritmo de treinamento um conjunto pr-estabelecido de regras bem definidas para a soluo de um determinado problema de aprendizagem. A funo da maioria dos algoritmos de treinamento ajustar os pesos da rede a fim de minimizar a medida do erro do conjunto de treinamento [HAYKIN, 2001]; [RUSSELL, 2003]. 2.7.1 Algoritmo de Retropropagao do Erro (Backpropagation) O algoritmo backpropagation um dos algoritmos utilizados para treinar redes MLP de forma supervisionada. Este algoritmo baseado na aprendizagem por correo de erro. A aprendizagem por retropropagao de erro constituda de duas fases: a fase de propagao e a fase de retropropagao. A primeira fase consiste da propagao do sinal funcional, que um sinal de entrada aplicado sobre os ns sensoriais e que se propaga para frente passando por cada uma das camadas da rede, at que um sinal de sada seja gerado, representando a resposta real da rede. Durante a fase de propagao os pesos sinpticos no so alterados. A segunda fase consiste da retropropagao do erro. Nesta fase os pesos sinpticos so ajustados de acordo com uma regra de correo de erro. Um sinal de erro gerado atravs da subtrao da sada desejada e da sada real da rede, e o mesmo propagado para trs atravs da rede. Os pesos so ajustados a fim de que a resposta real da rede se aproxime da resposta desejada. A figura 2.10

xxix

representa uma poro de um perceptron MLP, e ilustra dois tipos de sinais e seus fluxos bsicos em um treinamento atravs do algoritmo backpropagation [HAYKIN, 2001].

Figura 2.11 Tipos de Sinais no Treinamento por Retropropagao de Erro Fonte: HAYKIN, 2001

Para que o treinamento seja iniciado necessrio que uma poca de exemplos de treinamento seja apresentada rede, sendo poca cada ciclo atravs dos exemplos. Os exemplos para o treinamento so apresentados rede, atravs de um par ordenado (entrada, sada desejada). Estes exemplos so executados um de cada vez atravs da rede, e a cada execuo os pesos so ajustados a fim de diminuir o erro [RUSSELL, 2003]. A seguir um resumo do funcionamento do algoritmo backpropagation. Os ndices i, j e k referem-se a neurnios da rede. Sendo o sinal propagado da direita para a esquerda, o neurnio j se encontra em uma camada direita do neurnio i, e o neurnio k se encontra em uma camada direita do neurnio j. Fase de propagao: 1- O vetor de entrada apresentado aos ns de fonte da rede, fornecendo as entradas da primeira camada oculta c1, definido por yi(t) = xi(t) (2.3) onde yi(t) o sinal funcional que aparece na sada do neurnio i ou sinal de entrada para o prximo neurnio j, e xi(t) o i-simo elemento do vetor de entrada num instante de tempo discreto (t). 2- As sadas da primeira camada oculta c1 so calculadas, definidas por yj(t) = (vj(t))

xxx

(2.4) onde yj(t) o sinal funcional que aparece na sada do neurnio oculto j, ( ) a funo de transferncia e vj(t) o campo local induzido, definido por
m

vj(t) = wji (t) yi(t)


i=0

(2.5)

onde m o nmero total de entradas (excluindo o bias) aplicadas ao neurnio j e wji(t) o peso sinptico que conecta o neurnio i ao neurnio j. 3- As sadas da camada oculta c1, fornecem as entradas da prxima camada oculta c2. As sadas da camada c2 so calculadas e passadas para a prxima camada, como na etapa 2. Este processo se repete at chegar camada de sada ck onde yj(t) = oj(t) e oj(t) o j-simo elemento do vetor de sada. 4- A sada obtida (oj(t)) comparada com a sada desejada (dj(t)), e o erro calculado onde ej(t) = dj(t) oj(t). (2.7) (2.6)

Fase de retropropagao: 5- A correo aplicada ao peso sinptico que conecta o neurnio i ao neurnio j descrita por wji(t) = j(t) yi(t) (2.8) onde wji(t) a correo do peso, a taxa de aprendizagem, j(t) o gradiente local e yi(t) o sinal de entrada do neurnio j. O gradiente local j(t) definido por ej(t) '(vj(t)) j (t) = '(vj(t))' k (t) wkj (t) para o neurnio j de camada de sada para o neurnio j de camada oculta (2.9)

onde '(vj(t)) a derivada da funo (vj(t)) do neurnio j, k o neurnio direita do neurnio j podendo ser um neurnio de camada oculta ou um neurnio de sada. 6- O novo peso dado por wji(t + 1) = wji(t) + [wji(t - 1)] + wji(t) (2.10)

onde a constante momento, t + 1 indica o prximo instante de tempo discreto e t 1 indica o instante de tempo discreto anterior. 7- Os pesos da camada de sada ck so ajustados 8- O erro ento propagado para a camada anterior ck-1. Para isso so utilizados os pesos sinpticos entre as camadas, que sero multiplicados pelos erros correspondentes. Desta

xxxi

forma, tem-se um valor de erro estimado para cada neurnio da camada oculta ck-1, representado uma medida de influncia de cada neurnio desta camada no erro calculado atravs da sada da rede. 9- O processo se repete at que os pesos da camada oculta c1 sejam ajustados. O processo computacional acima descrito executado at que seja satisfeito o critrio de parada [BRAGA, 2007]; [HAYKIN, 2001]. 2.7.2 Redes SOM As redes SOM (Self-Organizing Maps) ou mapas auto-organizveis so baseadas na aprendizagem competitiva onde os neurnios de sada competem entre si para serem ativados, ou seja, para serem o vencedor. Em um mapa auto-organizvel os neurnios so dispostos em ns de uma grade normalmente uni ou bidimensional, podendo ser de dimensionalidade maior, mas este no to comum. As figuras 2.11 e 2.12 ilustram uma grade bidimensional de neurnios, contendo 3 ns de fonte. Todos os ns de fonte esto diretamente conectados aos neurnios de sada [HAYKIN, 2001].

Figura 2.12 Grade Bidimensional de Neurnios (Viso Unidimensional) Fonte: HAYKIN, 2001

xxxii

Figura 2.13 Grade Bidimensional de Neurnios (Viso Bidimensional) Fonte: HAYKIN, 2001

As redes SOM possuem uma forte inspirao neurofisiolgica, sendo baseadas no mapa topolgico existente no crtex cerebral. No crebro humano existem reas responsveis por entradas sensoriais especficas, em particular a ttil, a visual e a acstica. Os neurnios esto espacialmente ordenados nessas reas, dessa forma, neurnios topologicamente prximos tendem a responder estmulos semelhantes [BRAGA, 2007]; [HAYKIN, 2001]. Basicamente, a rede SOM funciona da seguinte forma, segundo Braga (2007, p.99):
Quando um padro de entrada p apresentado, a rede procura a unidade mais parecida com p. Durante o seu treinamento, a rede aumenta a semelhana do neurnio escolhido e de seus vizinhos ao padro p. Dessa forma, a rede constri um mapa topolgico onde neurnios que esto topologicamente prximos respondem de forma semelhante a padres de entrada semelhantes.

xxxiii

CAPTULO 3 RECONHECIMENTO DE PADRES Segundo GONZALEZ (2000, p. 407) apud Norbert Wiener:
Um dos aspectos mais interessantes do mundo que se pode considerar que ele feito de padres. Um padro essencialmente um arranjo. Ele caracterizado pela ordem dos elementos que o compem, no lugar da natureza intrnseca desses elementos.

Assim sendo, pode-se dizer que um padro um sistema e que o mais importante nele no so suas caractersticas pessoais, que o fazem individualmente, e sim como esto dispostos. 3.1 Introduo O reconhecimento de padres a rea que tem por objetivo classificar objetos em nmero de categorias ou classes. Sua tarefa atribuir objetos desconhecidos padres dentro da classe correta. Esta atividade conhecida como classificao. Para os seres humanos o reconhecimento de padres uma tarefa simples e banal e no h nenhuma mquina que possua sua capacidade de reconhecimento. Nessa tarefa so selecionadas informaes e feito um comparativo de suas propriedades j conhecidas e identificadas. Dessa forma, chega-se ao reconhecimento do objeto alvo. Para o reconhecimento de padres tm-se duas categorias: - Itens concretos: engloba o reconhecimento de itens que existem de forma concreta, como por exemplo, reconhecimento de impresses digitais; - Itens abstratos: engloba o reconhecimento de itens que no possuem forma fsica, como por exemplo, a soluo para um determinado problema apresentada pelo sistema. H trs caractersticas para o processamento de reconhecimento de padres: - Filtragem da entrada: seleciona itens que realmente sejam relevantes para o reconhecimento do objeto em questo; - Extrao de caractersticas: seleciona informaes teis do objeto para o processo; - Classificao: classifica o objeto em uma determinada categoria. As principais reas onde se aplica o reconhecimento de padres so: - reconhecimento de caracteres; - reconhecimento de fala; - reconhecimento de faces; - data mining (minerao de dados); - bioinformtica;

xxxiv

- recuperao de imagens; - reconhecimento biomtrico; - diagnstico assistido por computador [CAMPOS, 2001].

3.2 Formas de Reconhecimento de Padres O reconhecimento de padres pode ser feito atravs dos seguintes modos: - Classificao supervisionada: nesse modo de classificao o padro de entrada j est pr-definido dentro de uma classe, de acordo com os padres de treinamento; - Classificao no supervisionada: nesse caso o padro de entrada associado a uma classe de acordo com similaridade com as outras classes. H diversas formas para a captura de padres, sendo algumas delas citadas abaixo: - Abordagem Estatstica: nesta abordagem ocorre a aquisio, extrao de caractersticas e classificao dos dados; - Abordagem Sinttica: os padres so compostos de sub-padres classificados como mais simples. Assim sendo, nessa abordagem h hierarquia de padres; - Casamento: utiliza um prottipo ou modelo do padro a ser reconhecido. Ocorre o casamento do prottipo com o objeto que se deseja reconhecer e o mesmo deve possuir caractersticas desse prottipo para ser classificado; - Redes Neurais: um modelo artificial do crebro humano que possui neurnios e conexes entre entradas e sadas dos mesmos. Com essa topologia e tcnicas de treinamento da rede obtm-se o aprendizado; - Lgica Nebulosa: considera informaes imprecisas ou incertas para buscar concluses concretas [CAMPOS, 2001].

3.3 Aplicao de Padres em Redes Neurais Em redes neurais so utilizados padres para a etapa de treinamento. O conjunto desses padres denomina-se conjunto de treinamento e estes geram um resultado chamado de aprendizado. O objetivo do treinamento fazer com que para cada conjunto de entradas seja obtido um conjunto de sadas desejadas e consistentes. Para esta obteno devem ser adotados padres pertencentes sua categoria e passa-los para a rede de forma repetida. Posteriormente a rede dever conhecer um novo conjunto de padres de entrada que tambm dever pertencer

xxxv

ao mesmo grupo e ela ser capaz de reconhecer o que lhe foi passado pois obteve informaes e adquiriu conhecimentos dos dados atribudos no treinamento. Os padres adotados para o treinamento sero utilizados diretamente nos clculos e, sendo assim, eles estaro altamente comprometidos com o sucesso do aprendizado de uma rede, pois a performance da mesma depender do conjunto de padres que so inseridos [GONZALEZ, 2000]; [HAYKIN, 2001].

3.4 Reconhecimento de Imagens As Redes Neurais Artificiais so ideais para o reconhecimento de formas, filtragem de sinais com rudo, percepo de objetos escondidos em cenas, entre outros. Podem ser capazes de captar informaes relevantes em um conjunto de dados incompletos, com imperfeies ou partes que no so relevantes para o processo, tambm chamadas de rudos. H vrios tipos de redes neurais para estas aplicaes, como Perceptron, Hopfield e Self-Organising Feature Map tambm conhecidas pela sigla SOM. Um sistema de anlise de imagens deve possuir caractersticas como selecionar detalhes pertinentes dentro de um conjunto de detalhes, bem como aprender partir de padres e ser capaz de aplicar este aprendizado outras circunstncias. H sistemas com alta capacidade e velocidade para leitura de documentos impressos, porm estes so altamente especficos e possuem formatao prpria. Os estudos sobre reconhecimento de imagens buscam cada vez mais construir e desenvolver novas tcnicas para que os sistemas de reconhecimento possuam performance semelhante capacidade dos humanos para anlise de imagens [GONZALEZ, 2000]. Considerando a anlise de imagens pode-se dizer que a mesma dividida em trs reas: - Processamento de baixo nvel: trata-se de processamentos que no requerem inteligncia do sistema, como por exemplo, aquisio da imagem e reduo de rudos que podem distorcer os resultados do processo de extrao de caractersticas; - Processamento de nvel intermedirio: seleciona as caractersticas da imagem que foi adquirida no processamento de baixo nvel. Seu principal objetivo reduzir os dados de entrada sem que informaes importantes para a anlise da mesma sejam perdidas; - Processamento de alto nvel: trata-se do reconhecimento e interpretao da imagem. Esta diviso citada acima no serve para categorizar vrios tipos de conhecimento para processamento de imagens. Para isto utilizam-se os conhecimentos procedural, visual e de mundo. O conhecimento procedural seleciona algoritmos e configura seus parmetros,

xxxvi

como por exemplo, a escolha do limiar, ou seja, momento em que uma rede neural ir passar para a prxima camada de neurnios. O conhecimento visual aquele onde tm-se uma idia pr-definida do objeto, e a partir dela forma imagens do mesmo. J o conhecimento de mundo utiliza a sabedoria sobre o problema abordado. Os conhecimentos procedural e visual so aplicados nos processamentos de nvel baixo e intermedirio e o conhecimento de mundo no processamento de alto nvel. Aps a parte de processamento de imagens utiliza-se toda a informao obtida para realizar a interpretao de seu contedo, o que tambm chamado de compreenso de imagens ou anlise de cenas [GONZALEZ, 2000]. A interpretao da imagem chama a ateno por sua complexidade geralmente atribuda quantidade massiva de dados que devem ser processados e a escassez de ferramentas para processamento para que sejam obtidos resultados detalhados. Levando-se em conta esta restrio de ferramentas para a obteno de melhores resultados, o problema no deve ser muito generalizado e o conhecimento humano no processo deve ser inserido. Nesse caso este conhecimento baseado em: - Lgica formal: uso de sistemas lgicos onde o conhecimento expressado em regras lgicas que validem as expresses tambm lgicas; - Redes semnticas: a representao atravs de grafos onde os objetos so representados por ns e as relaes por arcos rotulados que realizam as conexes dos ns; - Sistemas de produes: so sistemas especialistas baseados em regras. So criados para resolver um problema especfico e tomam como base o conhecimento de pessoas especialistas nele. A partir da figura 3.1 pode-se observar a representao da seqncia de processamento de imagens com seus respectivos elementos seguindo os conceitos de nveis de processamento citados anteriormente e seus componentes. Nessa sequncia feito um prprocessamento eliminando rudos e padronizando tamanhos, e posteriormente feita a extrao e seleo de caractersticas da imagem para que na fase final a imagem possa ser interpretada e reconhecida. Pode-se observar que a busca de informaes em uma base de conhecimento est presente durante todas as fases do processo [GONZALEZ, 2000].

xxxvii

Figura 3.1 Elementos de Anlise de Imagens Fonte: GONZALEZ, 2000

3.5 Reconhecimento de Caracteres O Reconhecimento de caracteres um dos pontos mais estudados dentro do reconhecimento de padres e a busca pelo desenvolvimento de melhores sistemas desse gnero muito antiga. O primeiro sistema de reconhecimento de caracteres surgiu no ano de 1900 e foi desenvolvido pelo cientista russo Tyurin. Por volta de 1951 comearam a surgir os sistemas mais modernos e os primeiros sistemas comerciais de reconhecimento de caracteres foram chamados de OCRs (Optical Character Recognition). Inicialmente esses sistemas eram limitados em quantidade e capacidade de processamento e s conseguiam reconhecer alguns tipos de fonte porm, posteriormente, isto foi sendo melhorado e por fim foram criados OCRs capazes de reconhecer qualquer fonte. A quantidade de aplicaes para sistemas do tipo OCR muito grande e pode-se citar sua utilizao, por exemplo, em leituras automticas de formulrios, identificao de endereamento postal, leitura de cheques bancrios e reconhecimento de partituras musicais [OSRIO, 1991]. 3.5.1 Sistemas de Reconhecimento de Caracteres Os sistemas para reconhecimento de caracteres so desenvolvidos para simular a capacidade de leitura de textos dos seres humanos. Em seu desenvolvimento podem ser utilizados diferentes processos para extrair dados e processar informaes e a escolha do melhor procedimento vai depender do tipo de aplicao a que se destina o sistema [OSRIO, 1991].

xxxviii

partir da figura 3.2 possvel observar a classificao dos sistemas de reconhecimento de caracteres.

Figura 3.2 Classificao dos Sistemas de Reconhecimento de Caracteres Fonte: OSRIO, 1991

A primeira parte a ser analisada o tipo de mecanismo que ser utilizado na extrao do texto, tais como magnticos, ticos e mecnicos. Nos sistemas ticos, o tipo de processamento pode ser de nvel analgico ou seqencial. A partir dos sistemas seqenciais pode-se dizer que h trs categorias principais para classificar sistemas de reconhecimento: on-line, caracteres isolados e escrita cursiva.

xxxix

Sistemas on-line esto crescendo no mercado e j podem ser vistos em equipamentos onde o teclado foi substitudo por uma tela onde utiliza-se normalmente uma light-pen perifrico de entrada utilizado para escrita manual na tela do computador - para a extrao do texto, um exemplo de equipamento com estas caractersticas o laptop que pode ser utilizado como uma prancheta, nomeado de Tablet PC. Devido entrada ser atravs de escrita manual de forma interativa, no deve ser feita a usual fase de treinamento antes do reconhecimento, portanto este tipo de sistema j deve ter seu conhecimento agregado. Apesar de possurem certa limitao, a taxa de acerto desse tipo de sistema em torno de 95%, o que aceitvel, e os usurios devem se adaptar s suas caractersticas [OSRIO, 1991]. Sistemas de reconhecimento de caracteres isolados tratam do reconhecimento de um texto caractere a caractere. o tipo mais encontrado atualmente, pois sua implementao mais simples em relao aos outros tipos de sistema. Os sistemas do tipo OCR tratam do reconhecimento de letras manuscritas (cursivas) e por isso o tipo mais complexo dos trs por ser de difcil implementao. Em sistemas como este pode-se levar em considerao as seguintes limitaes: - Abrangncia do conjunto de classificao: limitao da quantidade de caracteres elaborando-se sistemas para nmeros, letras de diversos alfabetos, etc. - Estilos de escrita: limitao da quantidade de fontes que o sistema reconhecer. - Forma de escrita: como cada pessoa possui caligrafia diferente, pode-se limitar a forma de escrita para reduzir o nmero de estilos diferentes. Um exemplo dessa limitao so os formulrios, que obrigam ao usurio escrever em campos que possuem tamanho fixo. Todas essas limitaes citadas acima tm como propsito aumentar o nmero de acertos [OSRIO, 1991]. 3.5.2 Etapas de Processamento para Sistemas do Tipo OCR partir da figura 3.3 possvel observar alguns processos a serem seguidos para o processamento de sistemas de reconhecimento de caracteres ticos:

xl

Figura 3.3 Esquema das Etapas de Processamento de um Sistema OCR Fonte: OSRIO, 1991

Primeiramente o texto manuscrito ou impresso passar por um scanner e as etapas tratadas pelo sistema sero: tratamento da imagem, localizao e separao dos caracteres, pr-processamento, extrao de atributos, reconhecimento e classificao e psprocessamento (etapas que esto dentro da linha pontilhada). Aps o tratamento da imagem, citado no item 3.4, os caracteres so separados de forma individual e o algoritmo escolhido deve tratar pontos como grade dos formulrios, espaamento entre caracteres, tipo de texto a ser reconhecido, etc. Aps a separao de caracteres deve-se aplicar um pr-processamento onde so feitos ajustes nos caracteres como, por exemplo, ajust-los para que fiquem com o mesmo tamanho dos padres que foram tomados como exemplo e corrigir inclinao e rotao dos mesmos. A correo de inclinao de palavras deve ser feita, pois cada pessoa possui uma caracterstica de escrita e a de rotao deve corrigir possveis falhas no posicionamento do texto ao ser digitalizado causando assim diferena de ngulo em relao ao eixo x. A etapa de extrao de atributos faz com que algumas caractersticas dos padres sejam ressaltadas para que o reconhecimento se torne mais fcil e aps esta etapa inicia-se o processo de reconhecimento e classificao. Este processo consiste em aplicar as tcnicas propriamente ditas de reconhecimento de padres e classific-los em sua classe

xli

correspondente. Por fim, realizado o ps-processamento corrigindo erros da fase anterior [OSRIO, 1991]. 3.5.3 Avaliao do Processo de Reconhecimento Para verificar se o sistema de reconhecimento de caracteres vivel deve-se fazer uma anlise do desempenho do mesmo. Esta anlise deve levar em conta os ndices de avaliao de desempenho que possuem trs indicadores: a taxa de caracteres reconhecidos de forma correta, a taxa de caracteres que foram classificados de forma incorreta e a taxa de rejeio, que engloba os caracteres que no foram classificados. Esta avaliao deve ocorrer para que possa ser verificado o desempenho em comparao com a capacidade dos seres humanos no reconhecimento de caracteres. O sistema deve possuir uma taxa de acerto parecida com a taxa de acerto de um ser humano e tambm deve estar apto para substituir a digitao, e se no estiver dentro dessas caractersticas de resultado ele se torna invivel [OSRIO, 1991]. 3.5.4 Dificuldades na Tarefa de Reconhecimento No processo de reconhecimento existem elementos que contribuem para que o desempenho do sistema fique comprometido, como por exemplo, deformaes nos caracteres, problema na separao e segmentao dos mesmos, e problema de abrangncia. extremamente difcil que o texto proveniente da digitalizao seja perfeito, podendo haver problemas de rotao e alterao de tamanho dos caracteres, devido ao posicionamento do objeto na mquina digitalizadora (a estas variaes d-se o nome de distoro) e tambm problemas de um mesmo caractere possuir diferentes representaes. Outro problema citado acima a segmentao e separao de caracteres. As principais causas so as separaes de texto e grfico na figura e problema de caracteres que se tocam. A abrangncia dificulta o reconhecimento, pois existem vrios tipos de caracteres e o conjunto deles, tambm chamado de classe, muito grande facilitando erros no sistema. Se estas classes forem divididas criando-se vrios sistemas de reconhecimento, cada um para uma determinada classe (por exemplo, um sistema de reconhecimento especfico de letras, outro de nmeros, etc.), estes erros seriam minimizados. Ainda que divididos em conjuntos menores, erros de letras maisculas ou minsculas ou at confuso entre letras e nmeros parecidos, como por exemplo, 2 e Z ou U e V, podem ocorrer e para corrigi-los deve-se levar em conta o contexto do sistema, ou seja, para que ele est sendo destinado e o que ele est reconhecendo [OSRIO, 1991].

xlii

CAPTULO 4 PROJETO DE RECONHECIMENTO DE LETRAS 4.1 O Problema de Reconhecimento de Caracteres O reconhecimento de caracteres um problema amplamente estudado e que possui muitas aplicaes importantes, tais como reconhecer um texto digitalizado a partir de um documento, ler e classificar correspondncias pelo cdigo postal, ler entradas de dados de computadores baseados em telas sensveis ao toque e at mesmo fazer a leitura automatizada de cheques validando a assinatura pessoal do emissor [RUSSELL, 2003]. Reconhecer caracteres um problema tpico usado em redes neurais para comparar algoritmos de treinamento, pois possvel, de uma forma bastante clara e objetiva, medir a eficincia de certos algoritmos observando a taxa de acerto, o tempo de resposta e a capacidade de generalizao que alcanada aps uma determinada estratgia de treinamento. A estratgia de treinamento pode compreender a implantao de redes neurais artificiais organizadas como perceptrons de mltiplas camadas e suas variaes, ou redes neurais autoorganizveis, como o caso da rede SOM. Estabelecer quais parmetros fixos e variveis sero utilizados tambm constitui parcialmente a estratgia para o treinamento. Alguns dos parmetros agregados rede neural artificial, como o termo momento e taxa de aprendizagem, tm impacto direto no resultado do algoritmo e as escolhas de suas constantes podem ser determinantes para o sucesso da rede ao tentar reconhecer algum padro de caractere ou qualquer outro tipo de padro que tenha sido apresentado rede. O NIST (National Institute of Science and Technology) arquivou em um banco de dados mais de 60.000 caracteres reconhecidos por diversos algoritmos, sendo que este arquivo se tornou um padro para testes de reconhecimento com algoritmos novos [RUSSELL, 2003]. 4.2 O Exemplo para o Treinamento Para uma rede neural artificial reconhecer caracteres necessrio trein-la de alguma maneira, apresentando rede exemplos de caracteres ntidos e limpos, ou seja, livre de rudos, sem pixels perdidos no mapa binrio que no constituam nenhuma parte na forma do caractere. Os rudos podem se apresentar de maneiras diferentes em um treinamento, em particular, surgem nas unidades sensoriais da rede, ou entradas, aplicando algum sinal que no corresponde ao padro que se est querendo treinar. Um bom exemplo disso seria apresentar durante a fase de treinamento um caractere levemente pulverizado por um excesso de pixels ou pontos em seu entorno. Este ato faria com que a rede neural artificial aprendesse um padro deformado, resultando em um reconhecimento equivocado dos caracteres apresentados. Uma forma de

xliii

rudo menos nociva, seria adicionar a soma ponderada dos neurnios artificiais, anterior camada de processamento, algum valor aleatrio como constante, ou seja, somar esta constante em toda operao de multiplicao do sinal de entrada com seu peso correspondente. Isto faria com que a soma ponderada do neurnio fosse deslocada na superfcie do erro para um ponto diferente da realidade, dificultando o aprendizado dos caracteres. Este tipo de rudo pode ter a finalidade de testar a robustez da rede em relao a dificuldades que surgem durante o processo de aprendizagem e reconhecimento. 4.3 Desenvolvimento do Aplicativo para Reconhecer Caracteres Por ser um problema tpico das redes neurais artificiais, o reconhecimento de caracteres servir para aplicar ao programa desenvolvido, um problema prtico que no linearmente separvel. A aprendizagem da rede neural artificial poder ser realizada atravs de dois algoritmos: retropropagao do erro, ou backpropagation, atravs da arquitetura de um perceptron de mltiplas camadas, e por uma rede neural com mapas auto-organizveis, ou rede SOM. Apesar do reconhecimento de caracteres ser o problema-fim aplicado ao programa, ele poder ser utilizado para o reconhecimento de qualquer outro tipo de padro que constitua um problema no linearmente-separvel do ponto de vista matemtico. Um conjunto de exemplos para o treinamento de um tipo no linearmente-separvel poder ser apresentado ao programa atravs de uma grade disponvel de 35 posies. Cada posio ser representada por um quadrculo disposto em um mapa binrio de 7 linhas e 5 colunas (matriz 7X5), como pode ser observado pela figura 4.1. Para o problema de reconhecer caracteres, dever-se- desenhar todos os caracteres desejveis para o treinamento. Este projeto utiliza para o treinamento todos os 26 caracteres existentes no alfabeto latino.

xliv

Figura 4.1 Tela Cadastro de Padres

O conjunto de caracteres a ser usado para o treinamento da rede deve ser previamente desenhado e cadastrado, um por vez, atravs da tela Cadastro de Padres, que pode ser observada pela figura 4.1. O cadastro consiste em apenas informar em um campo texto qual o caractere do alfabeto corresponde ao desenhado na grade. O aplicativo ir atribuir ao caractere desenhado uma sada de 5 posies. Estas sadas que o aplicativo ir criar, serviro para rotular o caractere cadastrado a fim de guiar o algoritmo de retropropagao em busca dos valores de pesos ideais. Com o ajuste dos pesos para o conjunto de entrada mais o seu conjunto de sada (rtulos), ser possvel para a rede generalizar caracteres desenhados de uma forma diferente dos que foram cadastrados, e encontrar o rtulo correto durante o processo de reconhecimento. Os rtulos sero criados e associados utilizando a seqncia de uma tabela lgica de 5 bits. A deciso de criar a camada de sada com 5 neurnios partiu da anlise de que os 5 neurnios na camada de sada permitiro criar 32 rtulos (25), suficientes para mapear todos os caracteres do alfabeto latino. Como nota, importante observar que qualquer outro conjunto de padres com at 32 possibilidades, que possam ser representados pelo mapa binrio, podero ser cadastrados, treinados e reconhecidos em suas formas genricas neste aplicativo.

xlv

4.4 Parametrizaes Ao finalizar o processo de cadastro de padres ser necessrio parametrizar o processo de treinamento. As parametrizaes permitiro um ajuste fino da rede neural e do algoritmo de treinamento utilizado. As parametrizaes possveis so: - nmero de camadas ocultas: partindo de um mnimo de uma camada oculta at o mximo de 1000 camadas ocultas. Cada camada oculta adicional, a partir da primeira, ir impactar diretamente no tempo de processamento, e a adio de um nmero alto de camadas ocultas poder estar limitada capacidade de memria do hardware envolvido no processo; - nmero de neurnios por camada oculta: ser possvel parametrizar quantos neurnios iro compor cada camada oculta da rede. O nmero mnimo estar fixo em dois neurnios e ser possvel inserir at 1000 neurnios ocultos por camada. Um nmero muito alto de neurnios em uma camada oculta poder fazer com que a rede se especialize e perca a capacidade de generalizar padres. O contrrio tambm problemtico, j que, um nmero muito baixo de neurnios em relao quantidade de unidades sensoriais (entradas) e possibilidades (sadas) no permite rede alcanar o ponto de convergncia. A idia por trs disso simples, com um valor muito alto a rede memoriza as caractersticas dos padres atravs dos pesos, que existiro em uma populao muito grande na rede. J com um nmero muito baixo de neurnios a rede no conseguir aprender, atravs dos poucos pesos, o caminho correto at o ponto de convergncia e se perder na superfcie do erro. Pode-se observar de forma clara que este um dos ajustes mais importantes da estrutura da rede, pois a camada oculta responsvel por grande parte do processamento, realizando a aproximao das funes matemticas envolvidas; - nmero de iteraes mximas: partindo de um mnimo de 10 iteraes at 106 iteraes. A idia por trs deste ajuste vem da heurstica de que aps uma certa quantidade de iteraes a rede no converge significativamente o que torna interessante e prtico limitar o nmero de iteraes realizadas, parando o treinamento antes de ser alcanado o erro mnimo com a prerrogativa de que a rede j tenha atingido uma regio aceitvel em torno do ponto de convergncia. Tambm interessante observar que, dependendo do conjunto de exemplo envolvidos no treinamento, a rede poder precisar de milhares de iteraes at aprender o caminho para o ponto de convergncia, enquanto para outros conjuntos de exemplos, a rede poder no precisar mais do que uma centena de iteraes; - valor da taxa de aprendizado: partindo de um valor mnimo de 0.1, poder-se- atribuir qualquer valor para o aprendizado da rede. Uma heurstica importante se fundamenta na observao de que valores muito baixos para a taxa do aprendizado ofuscam a real

xlvi

velocidade que a rede poderia atingir durante o processo de treinamento, impactando em um nmero maior de iteraes necessrias para se alcanar o ponto de convergncia. A vantagem em optar por uma taxa de aprendizado baixa, estaria em permitir a rede trilhar por um caminho menos tortuoso atravs da superfcie do erro que leva at o ponto de convergncia. O ideal observado atribuir valores na ordem de 0.3 a 0.5. Isto leva a rede a realizar ziguezagues pelo caminho atravs da superfcie do erro, mas em contrapartida melhora o tempo de aprendizagem resultando numa melhor relao entre soluo tima e desempenho de processamento. Para explicar melhor a idia de zigue-zague da rede, basta abstrair a idia de um caminho desconhecido em um local s escuras. Cada passo atravs do caminho baseado no passo anterior e o passo seguinte baseado na sensao de acerto ou de erro do passo dado. Passos errados ocorrero com freqncia neste caminho e cada passo dado fora da trilha corrigido nos passos posteriores. Olhando por um espectro macro, possvel visualizar que a trilha traada ir se assemelhar a um zigue-zague em torno do caminho. Na figura 4.2, possvel enxergar a trilha formada at o ponto de convergncia;

Grfico 4.1 Zigue-zague formado pela rede at ponto de convergncia

- valor do termo momento para a acelerao do treinamento: o intervalo para o valor do momento ser entre 0 e 1. Outra heurstica adquirida que para redes com 35 unidades sensoriais (entradas) e um nmero acima de 5 neurnios ocultos atravs de uma funo logstica sigmoidal, o valor ideal para iniciar o treinamento com o termo momento est na ordem de 0.2 0.5. De fato, pode-se observar que estes valores so baixos e que sua influncia seria menor que o valor padro utilizado no algoritmo de retropropagao do erro que fica na ordem de 0.9. A acelerao do aprendizado por estas constantes apenas suavizaria a trilha tortuosa e zigue-zagueada, mas sabe-se que Simon [HAYKIN, 2001] e Braga [BRAGA, 2007] em suas obras, discutem a idia de atribuir valores iniciais baixos ao momento, pois tambm observaram que constantes altas podem ocasionar um comportamento matemtico indesejado da rede. Um valor alto para o momento pode ocasionar saturao nos valores dos pesos, em particular, uma soma ponderada elevada fazendo com que a sada resulte em um valor fixo 1; - valor do erro alvo: o valor do erro alvo poder ser qualquer um que for julgado interessante para o treinamento em questo. Uma heurstica em relao a este parmetro que determinadas composies de redes no alcanam o erro alvo se estiverem mal ajustadas, ou
Ponto de Convergncia

xlvii

por demanda de neurnios na camada oculta, ou por um critrio de parada antecipada atravs do controle do limite de iteraes; - valor do beta da funo logstica sigmoidal: o valor do beta da funo logstica sigmoidal estar disponvel como parmetro no intervalo entre 0 e 1. Este parmetro ser responsvel, por determinar a inclinao que a curva sigmoidal ir ter e seu impacto na funo de transferncia. Este um parmetro, que raramente sofre interveno em seu valor padro, que na literatura acadmica sempre referenciado como sendo um parmetro fixo de valor 1; - funo logstica: ser possvel optar entre algumas opes de funo logstica. Todas sero no-lineares no sendo possvel optar por funes lineares, j que o tratado deste trabalho lidar com problemas no linearmente separveis; - taxa adaptativa: ser possvel optar por utilizar uma taxa de aprendizagem adaptativa. Esta taxa adaptativa funciona inserindo uma taxa de aprendizado maior no incio do treinamento, nas primeiras iteraes, sendo reduzida a medida que a rede chega prxima do ponto de convergncia; - log dos pesos: se escolhida esta opo o aplicativo ir gravar todos os dados relevantes referente aos pesos: pesos iniciais e finais. Optar por este parmetro impacta diretamente na desempenho do aplicativo tornando o processo 4 vezes mais demorado do o normal; - fotografia do erro: ser possvel optar entre trs tamanhos de fotografias para os erros, ou seja, a cada 10, 100 ou 1000 iteraes o erro quadrtico fotografado para depois gerar um grfico facilitando a observao do escalonamento da convergncia; - algoritmo de treinamento: ser possvel optar entre dois algoritmos de treinamento, retropropagao do erro e mapas auto-organizveis (SOM). Com a concluso dos ajustes finos da rede, ser possvel iniciar o treinamento da rede neural artificial. Esta ao ser executada de forma automatizada do incio do treinamento ao fim, de acordo com os parmetros ajustados e de forma transparente, atravs do evento de clicar com o mouse em um boto disponvel para esta tarefa. A figura 4.2 ilustra a tela principal do sistema, atravs da qual so realizados a parametrizao, o treinamento e o reconhecimento de caracteres.

xlviii

Figura 4.2 Tela Principal do Sistema

Aps a rede ter alcanado xito conquistando o erro alvo ou pela parada antecipada atravs dos controles do nmero de iteraes ser possvel solicitar a rede, o reconhecimento de caracteres ou de algum outro padro cadastrado. O processo de reconhecimento ser transparente e terminar com o aplicativo informando qual o rtulo resultante dos estmulos gerados pelas entradas aplicadas as unidades sensoriais. 4.5 Desenvolvimento do Aplicativo e as Fases do Projeto O produto deste trabalho foi um aplicativo de redes neurais artificiais com algoritmos de retropropagao do erro, muito conhecido na literatura acadmica como backpropagation, e um algoritmo de mapas auto-organizveis, conhecido como rede SOM. Durante a primeira fase do projeto, foi desenvolvido um modelo de um neurnio artificial para resolver um problema linearmente separvel. J na segunda fase do

xlix

desenvolvimento foi criado um prottipo de um aplicativo com redes neurais artificiais para reconhecer caracteres a partir do treinamento com retropropagao do erro. Na terceira fase foram desenvolvidos classes e mtodos para realizar o treinamento atravs de uma rede neural com mapas auto-organizveis. 4.5.1 Primeira Fase do Projeto Neurnio Simples A primeira fase do desenvolvimento do aplicativo de reconhecimento de caracteres funcionou apenas como um neurnio autnomo, capaz de adaptar seus prprios pesos das entradas em funo do erro conhecido no fator de ajuste, observando a diferena entre a sada obtida e a sada desejada para um determinado conjunto de treinamento. O conjunto de treinamento em questo para este neurnio foi a tabela binria de dados de uma porta lgica AND que pode ser visualizada pelo quadro 4.1.

Tabela Verdade - AND Entrada 1 Entrada 2 Sada 1 1 1 1 0 0 0 1 0 0 0 0


Quadro 4.1 Porta Lgica AND

Construir este primeiro neurnio foi relativamente uma tarefa simples. Criou-se vetores de memria para armazenar as entradas e os pesos, que por sua vez foram iniciados com o valor 0. Foram criados mtodos para calcular a soma ponderada navegando pelos vetores atravs de ndices que correlacionavam uma entrada ao peso e ento, sujeitavam a soma ponderada a um mtodo que fizesse o papel de uma funo de transferncia linear que realizava a pergunta: A sada maior ou igual a 0.5?. Dependendo da resposta, a sada seria arredondada para 0 ou para 1 e ento comparada com a sada desejada. Se a resposta da sada estiver diferente da sada desejada, o fluxo do processamento desviado para os mtodos que calculam os fatores de correo que sero aplicados aos pesos das entradas, e todo o processamento ser reiniciado at atingir um valor, que arredondado, seja igual sada desejada. O sucesso deste neurnio residiu no fato dele aprender com os erros e conseguir gerar a sada desejada com o padro de entradas aprendido. Ele possui apenas duas entradas,

dois pesos, e uma sada. Logo, toda combinao possvel era prevista pela tabela da porta lgica AND, ou seja, no era possvel inserir nenhum padro genrico diferente do que foi aprendido. De uma forma direta, possvel observar que um modelo de neurnio como este no tem a capacidade de generalizar padres, o que vital para uma rede neural artificial. Este modelo de neurnio funcionava perfeitamente para problemas linearmente separveis, mas no permitia a configurao de uma rede com objetos instanciados por esta classe. Os mtodos existentes na classe eram de certa forma, conexionistas, ou seja, realizavam o processamento para gerar o mesmo resultado que o modelo original de neurnio proposto por McCulloch e Pits, mas sem se preocupar com a forma que estava sendo executado o processamento. Este problema de adaptao desta classe para compor uma rede, surgiu com a idia de que seria mais interessante cada neurnio ser um objeto, compondo camadas e formando uma rede. Cada objeto do tipo neurnio seria visto realmente como um neurnio pela rede, com seus prprios pesos, sua prpria funo de soma e sua prpria funo de transferncia, que por sua vez tambm foi considerada um objeto, j que existem vrias, e o neurnio se utiliza de uma das opes existentes para efetuar a ativao do sinal, que a transferncia dos valores de sada para a prxima camada, ou se estiver no fim do processamento, a sada da camada ser a sada da rede. Com o objetivo de recriar o neurnio como um objeto adaptvel a uma rede, iniciouse o trabalho de redefinio de classes e objetos, instncias e relacionamentos. 4.5.2 Segunda Fase do Projeto Perceptron de Mltiplas Camadas Aqui o jargo popular recriar a roda se tornou claro ao comear a definio das caractersticas, objetos e mtodos do aplicativo. O trabalho seria apenas aproveitar o algoritmo j existente adaptando-o a forma de trabalhar com orientao a objetos. A retropropagao do erro e o conceito de perceptron de mltiplas camadas existem a dcadas nas literaturas que abordam o tema Redes Neurais Artificiais e serviram como um guia para a implantao deste algoritmo. Um perceptron mltiplas camadas deve possuir unidades de entrada que seriam as entradas para a rede propriamente dita. Deve possuir camadas de neurnio intermedirias, que podem ser traduzidas como camadas de processamento, ou ainda, como preferem muitos autores, camadas ocultas. E deve obrigatoriamente possuir uma camada de sada [BRAGA, 2007].

li

A segunda fase do projeto iniciou com o objetivo de conseguir construir um perceptron de mltiplas camadas, com o algoritmo de retropropagao do erro totalmente orientado a objetos, a fim de permitir um tratamento mais realista forma como um sinal propagado em uma rede. relevante dizer que existem muitas diferenas entre uma rede neural artificial e uma rede neural biolgica. Sabe-se que as redes neurais biolgicas, ou redes neurais naturais no so homogneas, no possuem as mesmas quantidades de neurnios nas camadas de processamento como a rede formada para criar um perceptron de mltiplas camadas. Portanto, mesmo com orientao a objetos, a rede ainda estaria longe de ser realista, mas j seria possvel visualizar a forma de uma rede neural natural e com a vantagem agregada de flexibilizar a rede para novas construes e topologias diferentes de redes neurais artificiais. Inicialmente, a idia por trs de uma rede neural artificial permitir que o algoritmo utilizado leve a rede a aprender determinados padres de entrada, e que a permita generalizar padres da mesma classe do que foi aprendido anteriormente reconhecendo-o corretamente. [RUSSEL, 2003] Uma estratgia errada de treinamento um problema que pode por em risco todo o sucesso que a rede pode alcanar em um aprendizado. A estratgia de treinamento o ponto mais importante de todo o conceito de inteligncia artificial envolvido em uma rede neural artificial. A estratgia de treinamento envolve construir a rede ideal com um nmero de camadas e neurnios adequados ao problema, envolve tambm o trabalho de analisar as funes matemticas e seus resultados tentando encontrar uma melhor relao com os parmetros que so definidos por quem constri a rede. A taxa de aprendizagem, a quantidade de iteraes, o termo momento e o termo bias so alguns dos parmetros que podem influenciar o sucesso de uma rede. O sucesso da rede uma questo arbitrria, pois depende do objetivo da rede neural, mas de uma forma geral pode-se entender como sucesso da rede o simples fato dela atingir um nvel mnimo aceitvel de erro ao ser submetida a testes de generalizao. O aplicativo desenvolvido ser submetido a um treinamento com todos os 26 caracteres do alfabeto latino e depois a testes de generalizao com variaes destes 26 caracteres. Inicialmente a rede receber o conjunto de treinamento que corresponde s entradas e sadas desejadas. A partir da iniciado a construo do objeto perceptron, cuja classe responsvel por sua criao a classe Perceptron. Esta classe ir receber o nmero de unidades na camada de entrada, o nmero de unidades de neurnio na camada oculta e o

lii

nmero de unidades de neurnio na camada de sada. Alm disso, em seu construtor, a classe Perceptron precisa passar os parmetros corretos para a classe CamadaRede, responsvel por criar camadas, em momentos corretos. No primeiro momento criada a camada de processamento com a quantidade de neurnios e o grau que eles possuiro, que nada mais so que o nmero de pesos conectados ao neurnio. Um fato importante consiste em atentar para o grau do neurnio que nunca corresponde ao nmero de neurnios aos quais ele se conecta, por isso, o grau sempre ser o total de pesos conectados. Para criar uma camada, a classe CamadaRede instancia objetos do tipo neurnio criados atravs da classe Neurnio. Esta ltima classe citada a classe que centraliza todas as operaes realizadas em um Neurnio. Estes neurnios comportam-se adaptativamente em qualquer camada no qual ele instanciado. Nenhum neurnio instanciado sem uma funo de transferncia que possa propagar o estmulo adiante. A principal funo de transferncia deste aplicativo, e a mais utilizada no mundo acadmico de Redes Neurais, a funo logstica ou funo sigmoidal. Aps a construo da camada oculta, a classe Perceptron realiza operao similar para construir a camada de sada. Neste ponto uma rede neural est completa e parte-se ento para a atribuio do algoritmo de treinamento supervisionado que ser responsvel por manipular o erro e contribuir para que a rede aprenda. Existem diversos algoritmos com esta finalidade, como o algoritmo de mapas auto-organizveis, onde o neurnio vencedor, ou seja, aquele que concluir os clculos com o menor erro eleito. Para este perceptron em questo, o algoritmo utilizado o de retropropagao do erro. A classe Retropropagacao a responsvel por receber o perceptron e o atribu-lo como uma rede neural ao algoritmo. Nesta classe esto implementados mtodos que, no conjunto, convergem para objetivo principal que reduzir o erro fazendo o gradiente descendente resultando no aprendizado da rede. H mtodos que avanam o treinamento para um prximo estgio, calculam o delta que o coeficiente melhorado do erro e propagam a atualizao dos pesos nas camadas. Neste algoritmo optou-se por empregar o termo momento para que ele acelerasse o aprendizado da rede se mostrando bastante eficaz em testes realizados com portas lgicas. O termo momento uma constante utilizada para acelerao do gradiente descendente do erro, contribuindo parcialmente no resultado do delta generalizado. O processo do gradiente descendente do erro feito atravs de centenas de iteraes, s vezes necessrio milhares de iteraes para o erro chegar a um patamar aceitvel. Em cada iterao realizada, a rede processa os valores de forma uniforme e homognea, ou seja, o clculo reinicia na camada de processamento da mesma forma que ocorre no incio do

liii

treinamento, com a nica diferena de processar valores atualizados e de resultar valores num ponto da curva mais prximo do ponto de convergncia. necessrio frisar que o erro obtido na camada de sada corresponde, de forma prtica, distncia entre a sada obtida pela rede e a sada desejada. Aps a rede ter convergido para um valor aceitvel ela est pronta para efetuar o processo de reconhecimento. O aplicativo desenvolvido para o processo de reconhecimento de caracteres se d atravs da leitura no grid dos trinta e cinco quadrculos sendo que os que estiverem ticados sero transferidos como uma entrada binria de valor 1, e os que no estiverem ticados sero transferidos como uma entrada binria de valor 0. Diferentemente do treinamento, durante o reconhecimento no haver correo de pesos nem avaliao do erro. A rede correr num sentido nico das unidades de entrada, passando pelas unidades dos neurnios da camada de processamento at as unidades dos neurnios na camada de sada. Este sentido nico tambm conhecido como feedfoward [AZEVEDO, 2000]. A rede ir obter um resultado na camada de sada que ser comparado aos padres de sadas existentes, com os quais a rede foi treinada e assim obter-se- a descrio do caractere submetido ao reconhecimento. 4.6 Modelagem Para a modelagem do sistema foi utilizada a UML (Unified Modeling Language) ou Linguagem de Modelagem Unificada. Esta linguagem de modelagem utilizada em sistemas orientados a objetos para sua visualizao e documentao, e possui diversos diagramas que permitem que sejam visualizadas as diversas partes de um sistema, tais como diagramas de caso de uso, diagramas de seqncia, diagramas de colaborao, etc.

liv

4.6.1 Diagrama de Casos de Uso partir da Figura 4.3 podem ser observadas as principais funcionalidades do sistema de reconhecimento de caracteres.

CSU01 Treinar a rede CSU05 Alterar parmetros de treinamento <<extend>>


<<extend>>

<<include>>
<<include>>

Usurio

CSU02 Reconhecer letra

CSU03 Cadastrar padres de letra

CSU04 Visualizar estatsticas de treinamento

Figura 4.3 Diagrama de Casos de Uso

4.6.1.1 Documentao dos Atores Nome do Ator: Usurio Tipo de Usurio: Pessoa Narrativa: Esse ator representa os usurios que utilizaro o aplicativo para desenharem letras no grid e solicitar ao aplicativo que reconhea a letra desenhada.
Quadro 4.2 Documentao dos Atores

lv

4.6.1.2 Documentao dos Casos de Uso Treinar a Rede CSU01 Ator Principal: Usurio Ator Secundrio: no h Resumo: Efetuar o treinamento da rede neural para padres de entradas e sadas prdefinidos. Pr-Condio: No existe uma pr-condio para uso deste Caso de Uso. Fluxo Principal Aes do Ator 1- Usurio desenha uma letra no grid. 3- Usurio informa qual a letra que desenhou no grid. 4- Usurio solicita incio do treinamento ao Sistema. 5- Sistema realiza o treino da rede iterativamente ajustando seus pesos de acordo com as entradas e padres de sadas. Ps-Condio: A rede est treinada para a poca de entradas fornecidas.
Quadro 4.3 Treinar a Rede CSU01

Aes do sistema 2- Sistema solicita uma identificao para a letra desenhada.

lvi

Reconhecer Letra CSU02 Ator Principal: Usurio Ator Secundrio: no h Resumo: Desenhar uma letra qualquer do alfabeto no grid atravs de cliques do mouse (tiques) e solicitar o reconhecimento desta letra. Pr-Condio: a rede deve estar treinada para todas as letras do alfabeto. Fluxo Principal Aes do Ator 1- O usurio desenha uma letra no grid. 3 - O usurio solicita o reconhecimento da letra. 4 Sistema processa o reconhecimento de letra. Ps-Condio: Exibio de mensagem contendo a letra reconhecida pelo sistema.
Quadro 4.4 Reconhecer Letra CSU02

Aes do sistema 2 Sistema responde aos cliques do mouse, preenchendo o grid.

lvii

Cadastrar Padres de Letras CSU03 Ator principal: Usurio Ator secundrio: no h Resumo: Desenhar uma letra qualquer do alfabeto no grid para gravao no arquivo texto. Pr-condio: Letra desenhada no grid. Fluxo Principal Aes do Ator 1- Usurio desenha letra no grid. 3- Usurio digita no campo Letra, o nome da letra correspondente desenhada. 4- Sistema responde seleo. 5- Usurio grava a letra no arquivo. 6- Sistema exibe mensagem de confirmao. Ps-Condio: Padres cadastrados e armazenados no arquivo texto.
Quadro 4.5 Cadastrar Padres de Letras CSU03

Aes do sistema 2- Sistema responde aos cliques do mouse preenchendo o grid.

lviii

Visualizar estatsticas de Treinamento CSU04 Ator principal: Usurio Ator secundrio: no h Resumo: Obter informaes estatsticas do processo de treinamento da Rede Neural. Pr-condio: Efetuar o treinamento da Rede Neural. Fluxo Principal Aes do Ator Aes do sistema 1- Usurio seleciona a opo para visualizar as estatsticas de treinamento. 2- Sistema responde exibindo os dados obtidos durante o treinamento.

Ps-Condio: Exibio dos dados em tela.

Quadro 4.6 Visualizar estatsticas de Treinamento CSU04

lix

Alterar padres de Treinamento CSU05 Ator principal: Usurio Ator secundrio: no h Resumo: Alterar padres para treinamento da Rede Neural. Pr-condio: Abrir a tela de execuo do sistema Fluxo Principal Aes do Ator Aes do sistema 1- Usurio altera padres disponveis para treinamento. 2- Sistema guarda os padres alterados para que possam ser utilizados no treinamento.

Ps-Condio: Utilizao dos parmetros no treinamento da Rede Neural

Quadro 4.7 Alterar padres de Treinamento CSU05

lx

4.6.2 Diagrama de Classes

lxi

CAPTULO 5 EXPERIMENTOS 5.1 Materiais As duas redes neurais artificiais desenvolvidas, conforme explicado no captulo 4, foram implementadas em linguagem JAVA utilizando o ambiente Netbeans 5.5, rodando com o Sistema Operacional Windows XP em um computador com processador Intel Duo Core e 1GB de memria RAM. As entradas apresentadas para o treinamento seguiram um padro de grafia semelhante a letras de forma em caixa alta. 5.2 Mtodos Para o treinamento de algoritmos implementados em redes neurais, muito comum utilizar problemas de benchmark, ou problemas padronizados. Em geral utilizado o problema da porta lgica XOR, pois por representar um problema no linearmente-separvel, foi um grande problema durante muitos anos para o desenvolvimento de redes neurais artificiais at o surgimento de um algoritmo que pudesse realizar a classificao de modelos no linearmenteseparveis, fato este que foi alcanado com o algoritmo de retropropagao do erro em uma rede neural artificial com um perceptron de mltiplas camadas [SIMES,2006]. Devido evoluo dos algoritmos e descobertas de novos parmetros e mtodos de treinamento com algoritmos de funo no linearmente-separvel, o problema da porta lgica XOR passou a no ser suficiente para testar efetivamente o potencial de uma rede neural artificial e os novos algoritmos que surgiram. Com isso novos problemas de benchmarck foram estudados e definidos com o intuito de testar as redes neurais desenvolvidas. Um dos problemas de benchmark que foi utilizado para os experimentos feitos neste trabalho foi o reconhecimento de caracteres. Entradas - Para os dois algoritmos de treinamento, retropropagao do erro e SOM, as entradas foram apresentadas a partir de um arquivo texto contendo todos os 26 caracteres do alfabeto latino mapeados binariamente a partir de um grid de 35 posies disponvel no aplicativo. Os exemplos utilizados podem ser visualizados na figura 5.1. Pesos iniciais Os pesos sinpticos iniciais foram definidos aleatoriamente atravs de mtodos randmicos. Para o algoritmo de retropropagao do erro procurou-se utilizar pesos entre -0,5 e + 0,5 para evitar o efeito de saturao da sada como descrito no captulo 4. J com o algoritmo SOM os pesos foram iniciados aleatoriamente com valores muito pequenos na ordem de 10-3 e tambm sofreram um processo de normalizao, que consistiu

lxii

em atribuir valores iguais de pesos a determinados conjuntos de pesos. Este processo de normalizao se mostrou bastante til para acelerar a convergncia do resultado e facilitar a anlise posterior de seus valores iniciais e a evoluo at os valores finais.

Figura 5.1 Conjunto de caracteres utilizados no treinamento dos algoritmos

5.3 Documentao Um grande problema conhecido dos pesquisadores da rea de Inteligncia Artificial a dificuldade de reproduzir suas prprias experincias anteriores e essa dificuldade aumenta ao tentar reproduzir experincias anteriormente realizadas por outros pesquisadores [SIMES, 2006].

lxiii

Essa dificuldade existente aumentada quando se trata de redes neurais artificiais, pois necessrio conhecer todos os aspectos envolvidos em uma RNA e entender as influncias dos termos utilizados em sua totalidade, pois o desconhecimento de alguns dos termos tende a levar o pesquisador ao fracasso durante certas situaes de testes. Outro agravante que dificulta a reproduo dos resultados de experincias anteriores o fato de, na quase totalidade dos testes, no haver uma documentao dos valores iniciais dos parmetros variveis, ou pesos utilizados. Este fato compreensvel ao imaginar que em determinadas arquiteturas de redes o nmeros destes parmetros variveis atingem facilmente a ordem de dezenas de milhares de unidades e no muito dificilmente podem chegar a alguns milhes de unidades, tornando trabalhoso o processo de documentao. Observando as dificuldades apontadas por alguns pesquisadores para reproduzir pesquisas cientficas, foi utilizada a metodologia de documentao PROBEN1 desenvolvida por Prechelt em seu relatrio tcnico intitulado A set of neural network benchmark problems and benchmarking rules publicado em 1994, pela University of Karlsruhe na Alemanha [SIMES, 2006]. O objetivo de utilizar esta metodologia de documentao de testes para redes neurais reside no fato de que, com a utilizao de uma metodologia em comum maioria dos pesquisadores, poder-se- reduzir o efeito negativo para o desenvolvimento das redes neurais que a falta de uma metodologia trs. Esta metodologia trata da definio de regras para aplicao de problemas para testar as redes neurais artificiais, incentivando o uso de problemas de benchmark para esta finalidade. As regras desta metodologia estabelecem diretrizes para garantir que os resultados sejam vlidos, que possam ser reproduzidos por outros pesquisadores e que possam ser comparados com testes anteriores [SIMES, 2006].

lxiv

Produto Ponto Conjuntos

Itens documentados Nome, tipo de dado, dimenses, descries, endereo para obteno. Escala de entrada, escala de sada, conjunto de treinamento, conjunto de validao, conjunto de testes.

Arquitetura da Rede Codificao Temporal Inicializao Parmetros do Algoritmo

Tipo de rede, constantes referentes arquitetura. Tipo de cdigo, tipo de codificao, constantes temporais. Descrio, matriz de pesos inicial, winicial Constantes como termo momento, taxa de aprendizagem, delta da funo de ativao logstica sigmoidal, etc...

Trmino

Critrio de parada, nmero de pocas.

Quadro 5.1 Framework Aplicado aos Experimentos

5.4 Estudo de Casos Os testes se concentraram em encontrar a melhor relao entre tempo de treinamento, erro mnimo e taxa de generalizao para o alfabeto latino. Foram observados alguns aspectos durante os testes realizados com os dois algoritmos, tais como: - Evoluo da Convergncia: foi observada a evoluo da convergncia desde a primeira iterao at a ltima iterao; - Tempo de treinamento: foi observado o tempo necessrio, em iteraes, para uma rede alcanar o erro mnimo. O tempo de treinamento somente foi observado para o algoritmo de retropropagao do erro; - Taxa de generalizao: foi observada a taxa de generalizao dos algoritmos quando este apresentar discrepncias altas entre ambos algoritmos; - Neurnio vencedor (somente para o algoritmo SOM): No caso do algoritmo SOM, por ser peculiarmente competitiva, foi observado qual foi posio do neurnio vencedor. Pelo fato do experimentos serem feitos com um conjunto grande, somente foi observado a posio dos neurnios que venceram para um padro que no era o seu.

lxv

Os conjuntos de exemplos e parmetros utilizados nos treinamentos foram dispostos em conjuntos de experimentos. Os conjuntos de experimentos foram numerados seqencialmente e seguem uma lgica de evoluo de dificuldade, ou seja, os primeiros experimentos possuem um nvel de dificuldade menor para as duas redes neurais. medida que os testes foram evoluindo, a dificuldade apresentada rede por meio dos diferentes padres de entrada foi aumentando. 5.4.1 Experimento 1 EXP01 Nesta primeira etapa de teste, ser apresentado o mesmo conjunto de caracteres utilizados no treinamento para ter a garantia de que a rede consegue reconhecer os caracteres com os quais foi treinada e assim minimizar o efeito negativo de um treinamento errado para alguma espcie de caracterstica. O treinamento com a rede neural artificial com algoritmo de retropropagao do erro ocorreu com o mesmo conjunto de caracteres apresentados rede neural artificial com algoritmo SOM, porm os resultados no foram 100% precisos. Para o teste baseado no framework mostrado a seguir, o algoritmo de retropropagao encontrou dificuldades para reconhecer alguns caracteres com os quais foi treinado, deixando ntida a sua dificuldade para generalizar conjuntos de padres no linearmente-separveis que possuam padres de caractersticas similares acima de 70%. Esta similaridade dada quando dois ou mais caracteres possuem grupos binrios de caractersticas parecidos horizontalmente e verticalmente. Estas similaridades verticais e horizontais tambm so determinadas pela forma como o mapa binrio sentido nas unidades sensoriais. Pare este experimento, alguns caracteres por possurem conjuntos de caractersticas predominantes similares, tiveram problemas para serem reconhecidos, pois durante a fase de reconhecimento a rede neural entendeu que determinados padres na verdade se tratavam de outros. Os caracteres mais crticos e seus correspondentes similares foram os caracteres A e R, D e E, B e S. A figura 5.2 ilustra dois caracteres com caractersticas predominantes similares que neste caso fez com que o algoritmo de retropropagao do erro se confundisse e reconhecesse erroneamente o caractere R como sendo o caractere A.

lxvi

Figura 5.2 Caractere A e R e suas caractersticas similares

Grande parte do insucesso da rede para estes caracteres com problemas se deve aos ajustes dos parmetros fixos e dos parmetros variveis, sendo que para este ltimo o problema decorre da inicializao de seus valores, ou inicialiao de seus pesos. importante frisar que no faz parte do escopo deste trabalho a anlise matemtica dos valores iniciais dos pesos, ficando este requisito aberto para uma futura continuao do trabalho. Como resultado, a preciso deste algoritmo atingiu 90%. Porm este um resultado insatisfatrio j que os padres submetidos ao reconhecimento foram os mesmos apresentados para o treinamento.

lxvii

Produto Ponto

Itens documentados Nome: Grupo de caracteres Originais Tipo de dado: artificial Dimenso: 1 Classes: 26 Nmero de exemplos: 26 Descrio: Cada caractere apresentado representa o problema enfrentado pela rede em sua etapa de treinamento. Escala de entrada: [0,1] Escala de Sada: Conjunto de treinamento: todos os caracteres Conjunto de Validao: todos os caracteres originais ao treinamento Conjunto de Teste: todos os caracteres originais ao

Conjuntos

Arquitetura da Rede

treinamento Tipo de rede: MLP com retropropagao do erro Constantes: neurnios na camada oculta: 25, camadas ocultas: 1, neurnios na camada de sada: 5, funo logsitca: Sigmoidal Tipo de cdigo: Metodologia de Codificao: Constantes: Descrio: nmeros do conjunto dos nmeros reais naturais, mas com variao pequena entre eles Constantes: pesos iniciais: reduo de 40% no valor inicial Constantes: termo momento: 0.3, taxa de aprendizagem: 0.3, inclinao da funo sigmoidal: 1 Critrio de parada: 30.000 iteraes ou erro de 6% Nmero de pocas: 1

Codificao Temporal

Inicializao

Parmetros do Algoritmo Trmino

Quadro 5.2 Parmetros do Experimento EXP01 com Retropropagao do Erro

5.4.2 Experimento 2 EXP02 O framework do segundo experimento pode ser acompanhado atravs do quadro 5.3. Este experimento realizado com o algoritmo SOM e com o mesmo conjunto de caracteres do EXP01. O treinamento com o algoritmo SOM possui a peculiaridade de no fornecer um padro de sada e sim um ndice, uma posio no vetor de neurnios, indicando o neurnio que mapeou as caractersticas do padro apresentado. Este mecanismo se mostrou mais eficiente ao ser submetido aos testes de reconhecimento, do que o mecanismo de retropropagao do erro pertecente ao perceptron de mltiplas camadas. O resultado deste experimento resultou em 100% de preciso.

lxviii

Produto Ponto

Itens documentados Nome: Grupo de caracteres Originais Tipo de dado: artificial Dimenso: 1 Classes: 26 Nmero de exemplos: 26 Descrio: Cada caractere apresentado

representa

problema enfrentado pela rede em sua etapa de treinamento. Conjuntos Escala de entrada: [0,1] Escala de Sada: Conjunto de treinamento: todos os caracteres Conjunto de Validao: todos os caracteres originais ao treinamento Conjunto de Teste: todos os caracteres originais ao Arquitetura da Rede Codificao Temporal treinamento Tipo de rede: SOM Constantes: neurnios na camada de sada: 26 Tipo de cdigo: Metodologia de Codificao: Constantes: Descrio: nmeros do conjunto dos nmeros reais naturais, mas com variao pequena entre eles Constantes: pesos iniciais: normalizao e magnitude Parmetros do Algoritmo Trmino pequena Constantes: taxa de aprendizagem: 0.3 Critrio de parada: 15.000 iteraes ou erro de 6% Nmero de pocas: 1

Inicializao

Quadro 5.3 Parmetros do Experimento EXP06 com SOM

5.4.3 Experimento 3 EXP03 A partir deste experimento os dois algoritmos sero testados com padres de caracteres diferentes daqueles com os quais foram treinados, para comparar a eficincia entre ambos. Os parmetros fixos tambm sero alterados para observar os efeitos causados no resultado final. Neste experimento o algoritmo de retropropagao do erro recebeu todos os 26 caracteres do alfabeto latino para tentar o reconhecimento. Todos os caracteres tm como base o layout dos caracteres apresentados para o treinamento, mas com pequenas alteraes. Para manter um linha de dificuldade e mudana coerente nos caracteres apresentados, todos eles receberam alteraes em 2 campos binrios do mapa binrio, em regies no consideradas no determinantes para a identificao do caractere. A alterao no contedo do campo do mapa binrio feito negando o contedo do campo, ou seja, onde o contedo for 1 passar a ser 0 e vice e versa. A escolha de dois campos foi feita considerando as regies menos determinantes e depois, preferencialmente, escolhendo as extremidades.

lxix

Este foi considerado um teste de dificuldade baixa para a rede. Devido o a dificuldade do algoritmo de retropropagao do erro em reconhecer os caracteres E, R e S, estes foram novamente caracteres crticos no reconhecimento. Apesar do nvel de dificuldade ser baixo, a configurao da rede para este experimento, que pode ser visualizada atravs do quadro 5.4, no foi eficiente e o algoritmo encontrou dificuldades para reconhecer diversos caracteres demonstrando que os ajustes podem no estar adequados ou o conjunto de pesos iniciais no foi o ideal para este problema. No quadro 5.5, onde so exibidos os resultados do experimento, possvel visualizar o resultado do experimento. Neste caso em particular o erro quadrtico alcanado foi de 1% em 100.000 iteraes. Apesar do erro quadrtico ter sido baixo e ter alcanado um nvel muito bom a taxa de generalizao que observada na prtica ficou em 40% dos padres apresentados, o que pode ser considerado como um resultado ruim.

lxx

Produto Ponto

Itens documentados Nome: Grupo de caracteres Originais Tipo de dado: artificial Dimenso: 1 Classes: 26 Nmero de exemplos: 26 Descrio: Cada caractere apresentado representa o problema enfrentado pela rede em sua etapa de treinamento. Escala de entrada: [0,1] Escala de Sada: Conjunto de treinamento: todos os caracteres Conjunto de Validao: todos os caracteres originais ao treinamento Conjunto de Teste: todos os caracteres originais ao

Conjuntos

Arquitetura da Rede

treinamento Tipo de rede: MLP com retropropagao do erro Constantes: neurnios na camada oculta: 22, camadas ocultas: 1, neurnios na camada de sada: 5, funo logsitca: Sigmoidal Tipo de cdigo: Metodologia de Codificao: Constantes: Descrio: nmeros do conjunto dos nmeros reais naturais, mas com variao pequena entre eles Constantes: pesos iniciais: reduo de 40% no valor inicial Constantes: termo momento: 0.4, taxa de aprendizagem: 0.3, inclinao da funo sigmoidal: 1 Critrio de parada: 100.000 iteraes ou erro de 1% Nmero de pocas: 1

Codificao Temporal

Inicializao

Parmetros do Algoritmo Trmino

Quadro 5.4 Parmetros do Experimento EXP03 com Retropropagao do Erro

lxxi

Apresentado A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Reconhecido H B C D D C G H I N H Q Q N U H Q A K F O F W X Y Z

Quadro 5.5 Resultados do Experimento EXP03

46% 54%

Acerto Erro

Grfico 5.1 Resultado do Experimento EXP03

lxxii

5.4.4 Experimento 4 EXP04 No quarto experimento, foi apresentado exatamente o mesmo problema do EXP03 para o algoritmo SOM. Devido ao sucesso da rede no experimento EXP02, a configurao do algoritmo se manteve igual e pode ser visualizada na tabela do experimento EXP02. O resultado obtido no alcanou a perfeio, mas foi definitivamente melhor que o resultado apresentado pelo experimento anterior. Houve problemas com o reconhecimento de alguns caracteres que possuam caractersticas muito semelhantes entre si. Foi o caso do caractere O e Q que foram reconhecidos como sendo o caractere D. A figura 5.3 demonstra os dois caracteres que foram reconhecidos erroneamente.

Figura 5.3 Caractere O e Q alterados e o padro D ao qual foram associados

5.4.5 Experimento 5 EXP05 Este experimento manteve o conjunto de caracteres alterados do experimento EXP03 para o algoritmo de retropropagao do erro. O objetivo foi observar algumas alteraes e seu efeito na generalizao dos caracteres. O quadro 5.6 exibe os parmetros utilizados. Neste experimento a rede recebeu mais uma camada oculta e a possibilidade de chegar a 1.000.000 de iteraes na tentativa de alcanar um erro quadrtico mnimo de 1%. O erro foi alcanado com 100.063 iteraes e a taxa de generalizao saltou de 40% no experimento EXP03 para 80% neste experimento. Foi observado que na descida gradiente do erro, a curva da convergncia encontrou morros no meio do caminho algumas vezes. O salto da curva chegou a alcanar 20% do valor do erro quadrtico da iterao anterior, e depois retornava para um patamar inferior a 20% do valor da iterao antecedente escalada da curva. O resultado teve os mesmo caracteres E, R e S como os mais crticos e com a maior divergncia para seu padro correto, porm desta vez eles foram acompanhados dos caracteres F, H e M que no foram reconhecidos corretamente.

lxxiii

Produto Ponto

Itens documentados Nome: Grupo de caracteres Originais Tipo de dado: artificial Dimenso: 1 Classes: 26 Nmero de exemplos: 26 Descrio: Cada caractere apresentado representa o problema enfrentado pela rede em sua etapa de treinamento. Escala de entrada: [0,1] Escala de Sada: Conjunto de treinamento: todos os caracteres Conjunto de Validao: todos os caracteres originais ao treinamento Conjunto de Teste: todos os caracteres originais ao

Conjuntos

Arquitetura da Rede

treinamento Tipo de rede: MLP com retropropagao do erro Constantes: neurnios na camada oculta: 22, camadas ocultas: 2, neurnios na camada de sada: 5, funo logsitca: Sigmoidal Tipo de cdigo: Metodologia de Codificao: Constantes: Descrio: nmeros do conjunto dos nmeros reais naturais, mas com variao pequena entre eles Constantes: pesos iniciais: reduo de 40% no valor inicial Constantes: termo momento: 0.4, taxa de aprendizagem: 0.2, inclinao da funo sigmoidal: 1 Critrio de parada: 1.000.000 iteraes ou erro de 1% Nmero de pocas: 1

Codificao Temporal

Inicializao

Parmetros do Algoritmo Trmino

Quadro 5.6 Parmetros do Experimento EXP05 com Retropropagao do Erro

5.4.6 Experimento 6 EXP06 Este experimento repete o conjunto de caracteres do experimento EXP03, assim como o experimento anterior. O objetivo foi fazer o algoritmo de retropropagao do erro alcanar uma taxa de generalizao superior a 95% com uma alterao brusca na estrutura da rede. A rede neural artificial foi configurada com 3 camadas ocultas de neurnios, a taxa de aprendizagem foi reduzida, assim como o termo momento que foi reduzido para evitar saturao das sadas. Todas as alteraes realizadas na estrutura da rede e do algoritmo foram documentadas no quadro 5.7. Os resultados deste experimento foram negativos, j que a taxa de generalizao caiu de 80% para 0%.

lxxiv

Produto Ponto

Itens documentados Nome: Grupo de caracteres Originais Tipo de dado: artificial Dimenso: 1 Classes: 26 Nmero de exemplos: 26 Descrio: Cada caractere apresentado representa o problema enfrentado pela rede em sua etapa de treinamento. Escala de entrada: [0,1] Escala de Sada: Conjunto de treinamento: todos os caracteres Conjunto de Validao: todos os caracteres originais ao treinamento Conjunto de Teste: todos os caracteres originais ao

Conjuntos

Arquitetura da Rede

treinamento Tipo de rede: MLP com retropropagao do erro Constantes: neurnios na camada oculta: 22, camadas ocultas: 2, neurnios na camada de sada: 5, funo logsitca: Sigmoidal Tipo de cdigo: Metodologia de Codificao: Constantes: Descrio: nmeros do conjunto dos nmeros reais naturais, mas com variao pequena entre eles Constantes: pesos iniciais: reduo de 40% no valor inicial Constantes: termo momento: 0.4, taxa de aprendizagem: 0.2, inclinao da funo sigmoidal: 1 Critrio de parada: 1.000.000 iteraes ou erro de 1% Nmero de pocas: 1

Codificao Temporal

Inicializao

Parmetros do Algoritmo Trmino

Quadro 5.7 Parmetros do Experimento EXP06 com Retropropagao do Erro

5.4.7 Experimento 7 EXP07 Este experimento iniciou os testes com conjuntos de caracteres consideravelmente diferentes daquele com o qual ambos os algoritmos foram treinados. Cada caractere teve 5 campos binrios do seu mapa binrio alterado aleatoriamente, apenas considerando que as alteraes deveriam manter os aspectos principais dos caracteres possibilitando identific-los corretamente visualmente. Como a melhor configurao para o algoritmo de retropropagao do erro foi obtida com o experimento EXP05, para este experimento foi usado o mesmo framework que pode ser visualizado na tabela do experimento EXP05. Com este experimento a rede neural artificial com um perceptron de mltiplas camadas utilizando o algoritmo de retropropagao do erro apenas conseguiu reconhecer exatamente 50% dos caracteres apresentados.

lxxv

Os resultados com este conjunto de caracteres demonstraram que o algoritmo de retropropagao do erro ainda no est configurado adequadamente, expondo a extrema dificuldade para ajust-lo quando se est trabalhando com um conjunto de padres e classes alto, diferentemente do teste efetuado com um problema de uma porta lgica XOR onde o algoritmo se comportou muito bem. 5.4.8 Experimento 8 EXP08 Como o algoritmo SOM obteve altas taxas de generalizao nos testes anteriores, sua estrutura e parmetros foram mantidos para este experimento que tem o objetivo apenas de observar o comportamento do algoritmo SOM ao receber os conjuntos de padres de caracteres com maiores dificuldades de reconhecimento. Para este experimento, foi mantido o mesmo conjunto de caracteres do experimento anterior mantendo assim, o mesmo nvel de dificuldade. possvel visualizar a dificuldade apresentada no conjunto de caracteres observando a figura 5.4. Os resultados para este experimento foram satisfatrios, se considerada a dificuldade apresentada pelo conjunto de caracteres. A taxa de generalizao atingiu mais de 90%. Os caracteres que foram reconhecidos erroneamente foram o caractere D que foi reconhecido como sendo um W, o caractere O sendo reconhecido como um D e o caractere Q sendo associado ao caractere D. O quadro 5.8 apresenta o resultado obtido pelo algoritmo SOM.

lxxvi

Apresentado A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Reconhecido P B C W E F G H I J K L M N D P D R S T U V W X Y Z

Quadro 5.8 Resultados do Experimento EXP08

15%

Acerto Erro

85%

Grfico 5.2 Resultado do Experimento EXP08

lxxvii

Figura 5.4 Conjunto de caracteres utilizados nos experimentos EXP07 e EXP08

lxxviii

CAPTULO 6 CONCLUSO 6.1 Contribuies As redes neurais artificiais so, sem dvida, um dos mtodos mais utilizados em processos de aprendizagem. So muito utilizadas em sistemas classificadores de padres e com muita freqncia, apresentam uma preciso acima de outros mtodos propostos pela comunidade de inteligncia artificial. As redes neurais artificiais so muito poderosas e seu poder de processamento indutivo, permite mapear praticamente qualquer padro encontrando relaes entre as unidades de entradas e a camada de sada. Entre os diversos algoritmos existentes que podem ser utilizados para a aprendizagem em uma rede neural artificial, a retropropagao do erro e os mapas autoorganizveis so os mais utilizados. Eles se destacam pela sua facilidade de implantao, por serem rpidos e produzirem resultados satisfatrios. Este trabalho contribuiu com a comparao efetiva entre estes dois algoritmos utilizando um problema de benchmark, o reconhecimento de caracteres. Foi possvel identificar os pontos fortes e fracos de cada um dos algoritmos estudados e aplicados. A retropropagao do erro se mostrou eficiente e com uma maior possibilidade de manipulao atravs de seus vrios parmetros, mas em conseqncia se demonstrou mais complicada para operar j que muitos parmetros interferem diretamente em outros parmetros, tornando o trabalho de ajuste ideal da rede uma tarefa realmente demorada e fruto de muitos testes e erros. Durantes os testes com o reconhecimento de caracteres, a retropropagao do erro no atingiu o resultado esperado para a taxa de generalizao, concluindo que sua configurao em nenhum momento havia chegado ao ajuste ideal. Pode-se observar que os valores iniciais dos pesos possuem uma grande influncia no sucesso da rede. Pesos altos saturaram as sadas dos neurnios e pesos muito baixos no permitiram a rede convergir adequadamente. Uma grande dificuldade para os ajustes que a rede neural artificial com retropropagao do erro no permite a extrao de informaes simblicas que forneam um feedback e que possa ser utilizados para identificar o problema que a rede est enfrentando durante o treinamento. J com o algoritmo de SOM, a rede obteve resultados melhores. Este algoritmo possui menos variveis, mais fcil de implementar e seus resultados foram mais precisos do que os resultados obtidos com a retropropagao do erro. A maior dificuldade encontrada com este algoritmo foi que por possuir poucos parmetros que possam influenciar o treinamento,

lxxix

sua flexibilidade fica um pouco limitada. Mas a caracterstica mais interessante fica por conta da analogia que se pode fazer com o crebro humano, pois os mapas auto-organizveis funcionam como os mapas neurobiolgicos. Estes mapas associam determinadas regies de neurnios conjuntos de caractersticas similares entre si e pode-se observar isto no crebro humano claramente j que determinadas regies so responsveis pela fala, pela audio ou at mesmo pelos sentimentos. O algoritmo SOM possui a robustez de conseguir reconhecer um padro com grande deformao, desde que esta deformao no seja similar a um outro padro aprendido. Durantes os testes o algoritmo SOM comportou-se melhor que a retropropagao do erro atingindo uma taxa de generalizao 48% superior. 6.2 Sugesto para Trabalho Futuros As contribuies deste trabalho podem ser continuadas, ampliadas e aperfeioadas em trabalhos futuros. Segue algumas sugestes: i. Podem-se implementar novas classes que utilizem Algoritmos Genticos para otimizar a rede neural artificial com perceptron de mltiplas camadas que utiliza retropropagao do erro. Esta classe pode efetuar a leitura da ativao dos neurnios, identificando a melhor populao atribuindo um maior desempenho e eficincia desativando neurnios que interfiram pouco ou no interfiram na generalizao da rede neural artificial; ii. Pode-se (RBF); iii. Pode-se aplicar uma funo avaliadora que efetue a leitura da memria inicial dos pesos encontrando a melhor funo geradora de valores para os pesos, observando o problema aplicado; iv. Pode-se implementar um mtodo na classe Main.java, para efetuar a apresentao de dados de treinamento por pocas otimizando o resultado da generalizao da rede neural; v. Pode-se efetuar a normalizao de entradas para o algoritmo de retropropagao do erro para aperfeioar o resultado da generalizao. implementar uma nova classe abstrata e filha da classe RedeNeuralArtificial.java para implementar o algoritmo de uma rede de base radial

lxxx

REFERNCIAS BIBLIOGRFICAS AZEVEDO, 2000 AZEVEDO, Mendes de; BRASIL, Lourdes M.; OLIVEIRA, Roberto Celio L. de. Redes Neurais: com Aplicaes em Controle e em Sistemas Especialistas. Florianpolis: Visual Books, 2000. BRAGA, Antnio de Pdua; CARVALHO, Andr Ponce de Leon F. de; LUDERMIR, Teresa Bernada. Redes Neurais Artificiais: teoria e aplicaes. 2 Edio. Rio de Janeiro: LTC, 2007. CAMPOS, Tefilo Emdio. Tcnicas de Seleo de Caractersiticas com Aplicao em Reconhecimento de Faces. 2001. Dissertao (Mestrado em Cincia da Computao) Universidade de So Paulo, So Paulo, 2001. GONZALEZ, Rafael; WOODS, Richard E.. Processamento de Imagens Digitais. So Paulo: Edgard Blcher LTDA, 2000. HAYKIN, Simon. Redes Neurais Prncipios e prticas. 2 Edio. Porto Alegre: Bookman, 2001. OSRIO, Fernando Santos. Um estudo sobre reconhecimento Visual de Caracteres atravs de Redes Neurais. 1991. Dissertao (Mestrado em Cincia da Computao) Universidade Federal do Rio Grande do Sul, Porto Alegre, 1991. RUSSEL, Stuart J.; NORVIG, Peter. Inteligncia Artificial. 2 Edio. Rio de Janeiro: Campus, 2003. SIMES, Alexandre da Silva. Aprendizado no-supervisionado em redes neurais pulsadas de base radial. So Paulo: Universidade de So Paulo USP, 2006. SOMMERVILLE, Ian. Engenharia de Software. 6 Edio. So Paulo: Prentice-Hall, 2003. WHITBY, Blay. I.A.: Inteligncia Artificial: Um Guia para Iniciantes. So Paulo: Madras, 2004.

BRAGA, 2007

CAMPOS, 2001

GONZALEZ, 2000 HAYKIN, 2001 OSRIO, 1991

RUSSELL, 2003 SIMES, 2006

SOMMERVILLE, 2003 WHITBY, 2007

You might also like