tcc ia leonardo-nobrega nicole-mineu gabriela-benedetti

Upload: leonardo-ramos-nobrega

Post on 08-Jul-2015

99 views

Category:

Documents


0 download

TRANSCRIPT

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

v

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

x

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

xiwii =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 porm

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, ouPonto 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 0Quadro 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,

l

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 d