Вы находитесь на странице: 1из 218

Projeto e Implementao de Circuitos Classicadores Digitais com Controle da Generalizao Baseado na Regra do Vizinho-mais-prximo Modicada

Wilian Soares Lacerda

Universidade Federal de Minas Gerais Escola de Engenharia Programa de Ps-Graduao em Engenharia Eltrica

Projeto e Implementao de Circuitos Classicadores Digitais com Controle da Generalizao Baseado na Regra do Vizinho-mais-prximo Modicada
Wilian Soares Lacerda

Orientador: Prof. Dr. Antnio de Pdua Braga

Tese de doutorado submetida Banca Examinadora designada pelo Programa de Ps-Graduao em Engenharia Eltrica da Universidade Federal de Minas Gerais - PPGEE/UFMG, como requisito parcial obteno do ttulo de Doutor em Engenharia da Computao.

Belo Horizonte fevereiro/2006

minha lha Yasmim e minha esposa Adriana

vi

Agradecimentos

Deus, por tudo. minha esposa Adriana e minha lha Yasmim pela pacincia e compreenso. Ao orientador Prof. Antnio de Pdua Braga, pelas horas de dedicao e disponibilidade. Aos amigos do LITC e CPDEE, pela ajuda nos momentos mais necessrios. Aos funcionrios do CPDEE, pelo prossionalismo. CAPES, pela ajuda nanceira. Universidade Federal de Lavras por minha liberao. banca examinadora pelo trabalho.

vii

viii

Resumo

ste trabalho de tese visa implementao de classicadores de padres binrios em circuitos digitais de forma a se obter um sistema embutido com caractersticas de portabilidade, treinamento on-line, funcionamento em tempo real e com capacidade de generalizao. O mtodo proposto para projeto utiliza o processo de ltragem (ou seleo)

dos dados de treinamento do classicador antes da sntese do circuito digital. Assim, proposto um algoritmo de seleo mnima de amostras baseada na Regra do k Vizinho-mais-prximo (kNN), para que a fase de projeto do classicador necessite de menos recursos de armazenamento e processamento, incrementando a capacidade de generalizao do circuito resultante. So apresentados alguns exemplos de projetos do classicador digital gerados a partir de dados sintticos e dados reais. Os resultados so comparados com outras tcnicas de gerao do circuito classicador (Rede Neural Articial, Mquina de Vetores de Suporte) mostrando a eccia do mtodo proposto. Com o mtodo de projeto proposto, obtm-se o circuito classicador com menos portas lgicas e algumas vezes com maior capacidade de generalizao do que outros mtodos. apresentada uma implementao em hardware do mtodo de gerao do circuito classicador proposto. Foi adotada uma soluo baseada em hardware recongurvel em FPGA (Field Programmable Gate Array) com sistema de multiprocessamento baseado no processador NIOS II. Algumas medidas de desempenho do sistema implementado em hardware so apresentadas, evidenciando a viabilidade da implementao. Enm, este trabalho tem como principais contribuies: um novo mtodo de seleo de amostras baseado no kNN; duas novas mtricas de distncia entre padres; um esquema de projeto de circuito digital combinatorial para operar como classicador de padres binrios com capacidade de generalizao; e uma proposta de implementao em hardware/software de um sistema classicador digital. ix

Abstract

his work aims at the implementation of classifying binary patterns with digital circuits in order to get a embedded system with the following features: portability, on-line training, operating in real time and with capacity of generalization. The proposed method makes use of training data ltering (or selection) before digital circuit synthesis. It is proposed an algorithm for minimum selection of samples that is based on the k Nearest Neighbor Rule (kNN). This results on a reduced complexity design phase, less resources of storage and processing, and yields also a degree of generalization capacity of the resulting circuit. Some examples of designs of digital classier circuits generated from synthetic data and real data are presented. The results are compared with others techniques such as Articial Neural Networks and Support Vector Machines, showing the effectiveness of the proposed method. With the proposed design method, the generated circuit classier works with less logic gates and with higher generalization capacity than some of the other methods. An implementation in hardware of the method of generation of the proposed circuit classier is also presented. A solution based on the recongurable hardware in FPGA Field Programmable Gate Array with multiprocessing based on the NIOS II processor was adopted. Some measures of performance of the system implemented in hardware are presented, showing the viability of the implementation. Finally, this work has the main contributions: has proposed a new method for sample selection based on kNN; has pressented two new metrics of distance between patterns; has presented a scheme for a digital combinational circuit design working as a binary pattern classier with generalization capacity; and has presented a proposal for the implementation of a digital classier system in hardware/software.

xi

xii

Sumrio

Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ix xi

Sumrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Lista de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Lista de Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii 1 Introduo 1.1 Classicadores de Padres Binrios . . . . . . . . . . . . . . . . . . 1.2 Controle da Generalizao . . . . . . . . . . . . . . . . . . . . . . . 1.3 Seleo de Padres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Objetivo da Tese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 5 6 8

1.5 Principais Contribuies . . . . . . . . . . . . . . . . . . . . . . . . 10 1.6 Organizao do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2 Aprendizagem de Mquina 13

2.1 Sistemas de Aprendizado . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 Caracterizao das variveis . . . . . . . . . . . . . . . . . . . . . . 15 2.3 Maldio da Dimensionalidade . . . . . . . . . . . . . . . . . . . . . 16 2.4 O Problema de Aprendizado . . . . . . . . . . . . . . . . . . . . . . 16 2.5 Aprendizado Adaptativo . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.5.1 Princpio da Minimizao do Risco Emprico . . . . . . . . . 20 2.5.2 Princpio da Minimizao do Risco Estrutural . . . . . . . . 22 2.6 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3 Padres Binrios e Sntese de Circuitos Digitais 3.1.1 Classicao Binria 25

3.1 Padres Binrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 . . . . . . . . . . . . . . . . . . . . . . 26 3.1.2 Generalizao Binria . . . . . . . . . . . . . . . . . . . . . . 27 3.1.3 Hipercubos binrios . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.4 Espao Booleano . . . . . . . . . . . . . . . . . . . . . . . . . 28 xiii

Sumrio
3.2 Sntese de Circuitos Digitais . . . . . . . . . . . . . . . . . . . . . . 32 3.2.1 Denies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2.2 Mtodos de minimizao . . . . . . . . . . . . . . . . . . . . 35 3.3 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4 Reconhecimento de Padres 43

4.1 Projeto de um Classicador . . . . . . . . . . . . . . . . . . . . . . . 45 4.2 Tcnicas de Classicao Paramtricas . . . . . . . . . . . . . . . . 45 4.2.1 Regra de Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.2 Funo de Discriminao . . . . . . . . . . . . . . . . . . . . 47 4.2.3 Regra Naive de Bayes . . . . . . . . . . . . . . . . . . . . . . 47 4.2.4 Exemplo da Regra Naive de Bayes . . . . . . . . . . . . . . . 49 4.3 Tcnicas de Classicao No Paramtricas . . . . . . . . . . . . . 52 4.3.1 Mtricas de Distncia . . . . . . . . . . . . . . . . . . . . . . 52 4.3.2 Regra do Vizinho-mais-prximo . . . . . . . . . . . . . . . . 63 4.3.3 Experimentos com dados binrios . . . . . . . . . . . . . . . 69 4.3.4 Sntese dos Resultados . . . . . . . . . . . . . . . . . . . . . 78 4.4 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5 Seleo das Amostras 5.1 Mtodos de Seleo de Amostras 81 . . . . . . . . . . . . . . . . . . . 81

5.1.1 Abstrao de Instncias . . . . . . . . . . . . . . . . . . . . . 84 5.1.2 Filtragem de Instncias . . . . . . . . . . . . . . . . . . . . . 84 5.1.3 Tipicidade de instncias . . . . . . . . . . . . . . . . . . . . . 91 5.2 Mtodo Proposto de Seleo de Amostras . . . . . . . . . . . . . . 91 5.2.1 Etapas do Mtodo Proposto . . . . . . . . . . . . . . . . . . . 92 5.2.2 Subconjunto Consistente . . . . . . . . . . . . . . . . . . . . 93 5.2.3 Reduo do Subconjunto Consistente . . . . . . . . . . . . . 94 5.2.4 Reduo do Subconjunto Restante . . . . . . . . . . . . . . 95 5.3 Resultados do Mtodo Proposto de Seleo das Amostras . . . . . 96 5.3.1 Tabuleiro de Xadrez . . . . . . . . . . . . . . . . . . . . . . . 97 5.3.2 Dados binrios . . . . . . . . . . . . . . . . . . . . . . . . . . 100 5.4 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6 Projeto do Circuito Classicador Digital 107

6.1 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.1.1 Dados Sintticos . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.1.2 Reconhecimento de Caracter Manuscrito . . . . . . . . . . . 115 6.1.3 Problema do Gene . . . . . . . . . . . . . . . . . . . . . . . . 120 6.1.4 Problema do Corao . . . . . . . . . . . . . . . . . . . . . . 124 6.1.5 Classicao de Cogumelos . . . . . . . . . . . . . . . . . . . 128 xiv

Sumrio
6.2 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 7 Implementao do Circuito Classicador 135 7.1 Projeto de Sistemas embutidos . . . . . . . . . . . . . . . . . . . . . 136 7.1.1 Particionamento hardware/software . . . . . . . . . . . . . 136 7.1.2 Sistema recongurvel . . 7.1.3 System on a chip (SoC) . . 7.2 Processador NIOS II . . . . . . . . 7.2.1 Arquitetura do processador 7.2.2 7.2.3 7.2.4 7.2.5 . . . . . . . . . . . . . . . NIOS II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 137 138 141 144 145 146 147 150 151 152 153 153

Tipos de cores do NIOS II . . . Memria cache . . . . . . . . . Instrues personalizadas . . Ambiente de desenvolvimento

7.2.6 Multiprocessamento . . . . . . . 7.2.7 Compartilhamento de recursos 7.2.8 Mutex . . . . . . . . . . . . . . . 7.3 Sistema Classicador Proposto . . . . 7.3.1 O hardware do sistema . . . . .

7.3.2 O software do sistema . . . . . . . . . . . . . . . . . . . . . . 159 7.4 Resultados Experimentais . . . . . . . . . . . . . . . . . . . . . . . 162 7.5 Concluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 8 Concluso Final e Propostas de Continuidade Referncias Apndice A Projeto do sistema proposto usando o Quartus II e SOPC Apndice B Projeto da PAL em VHDL Apndice C Projeto em hardware da instruo personalizada no NIOS II 183 167 173

187

191

xv

Sumrio

xvi

Lista de Figuras

1.1 Dados binrios em formato grco. . . . . . . . . . . . . . . . . . . 1.2 Cobertura obtida pelo minimizador Booleano. . . . . . . . . . . . . 1.3 Outra opo de cobertura. . . . . . . . . . . . . . . . . . . . . . . . 1.4 Superfcie de separao entre as classes quadrado e crculo. . 1.5 Conjunto de dados reais de duas dimenses e duas classes (cruz e crculo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6 Probabilidade de apresentao das amostras durante treinamento de uma mquina de aprendizado utilizando a tcnica de Boosting. 1.7 Dados selecionados fora da margem. . . . . . . . . . . . . . . . . . 1.8 Dados selecionados pelo algoritmo de Wilson e posterior reduo. 1.9 Diagrama simplicado do mtodo de projeto proposto para o cir-

2 4 4 5 7 7 9 9

cuito digital classicador. . . . . . . . . . . . . . . . . . . . . . . . . 10 2.1 Um sistema com entradas-sada . . . . . . . . . . . . . . . . . . . . 17 2.2 Um sistema de aprendizado com entradas-sada . . . . . . . . . . 17 2.3 Risco emprico e risco funcional . . . . . . . . . . . . . . . . . . . . 21 3.1 Hipercubo de dimenso 3. . . . . . . . . . . . . . . . . . . . . . . . 28 3.2 Distribuio da distncia de Hamming em N em funo de n. . . 31 3.3 Exemplo de cobertura. . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1 Exemplo de conjunto de dados de duas classes. . . . . . . . . . . 63

4.2 Regra do vizinho-mais-prximo (k = 1). . . . . . . . . . . . . . . . . 64 4.3 Regra do k vizinho-mais-prximo (k = 3). . . . . . . . . . . . . . . . 65 4.4 Histograma dos dados sintticos. . . . . . . . . . . . . . . . . . . . 69 4.5 Nmero mdio de acertos do classicador kNN em funo de k, utilizando diferentes mtricas na soluo do problema de dados sintticos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.6 Exemplos de amostras de caracteres manuscritos digitalizados. . 71 4.7 Histograma dos dados dos caracteres manuscritos. . . . . . . . . 72 xvii

Lista de Figuras
4.8 Nmero mdio de acertos do classicador kNN em funo de k, utilizando diferentes mtricas na soluo do problema dos caracteres manuscritos. . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.9 Histograma dos dados do problema Gene. . . . . . . . . . . . . . . 74 4.10 Nmero mdio de acertos do classicador kNN em funo de k, utilizando diferentes mtricas na soluo do problema de dados de genes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.11 Histograma dos dados do problema do corao. . . . . . . . . . . . 76 4.12 Nmero mdio de acertos do classicador kNN em funo de k, utilizando diferentes mtricas na soluo do problema de dados do corao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.13 Histograma dos dados do cogumelo. . . . . . . . . . . . . . . . . . 77 4.14 Nmero mdio de acertos do classicador kNN em funo de k, utilizando diferentes mtricas na soluo do problema de dados do cogumelo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.1 Exemplo de conjunto de dados em 2 de duas classes: crculo ou cruz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.2 Subconjunto consistente. . . . . . . . . . . . . . . . . . . . . . . . . 94 5.3 Subconjunto consistente reduzido. . . . . . . . . . . . . . . . . . . 95 5.4 Subconjunto restante. . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.5 Subconjunto restante reduzido (k = 3). . . . . . . . . . . . . . . . . 97 5.6 Exemplo de conjunto de dados em 2 de duas classes (crculo e cruz) e formato multimodal. . . . . . . . . . . . . . . . . . . . . . 98 5.7 Subconjunto consistente obtido pelo algoritmo RSR na soluo do problema do tabuleiro de xadrez. . . . . . . . . . . . . . . . . . 98 5.8 Subconjunto consistente reduzido obtido pelo algoritmo RSR na soluo do problema do tabuleiro de xadrez. . . . . . . . . . . . . 99 5.9 Subconjunto restante obtido pelo algoritmo RSR na soluo do problema do tabuleiro de xadrez. . . . . . . . . . . . . . . . . . . . 99 5.10 Subconjunto restante reduzido obtido pelo algoritmo RSR na soluo do problema do tabuleiro de xadrez. . . . . . . . . . . . . . . . . . 100 5.11 Nmero mdio de acertos do classicador 1-NN em funo de k, utilizando diferentes mtricas na soluo do problema de dados sintticos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 5.12 Nmero mdio de acertos do classicador 1-NN em funo de k, utilizando diferentes mtricas na soluo do problema dos caracteres manuscritos. . . . . . . . . . . . . . . . . . . . . . . . . . . 102 5.13 Nmero mdio de acertos do classicador 1-NN em funo de k, utilizando diferentes mtricas na soluo do problema de dados de genes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 xviii

Lista de Figuras
5.14 Nmero mdio de acertos do classicador 1-NN em funo de k, utilizando diferentes mtricas na soluo do problema de dados do corao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 5.15 Nmero mdio de acertos do classicador 1-NN em funo de k, utilizando diferentes mtricas na soluo do problema de dados do cogumelo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 6.1 Diagrama do mtodo de projeto do circuito digital classicador. . 108 6.2 Quantidade mdia de amostras selecionadas para obteno da funo Booleana do circuito digital classicador, para cada valor de k, na soluo do problema com dados articiais utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.3 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de k, na soluo do problema com dados articiais utilizando o mtodo proposto (RSR). . . . . . 113 6.4 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada quantidade de amostras selecionadas, na soluo do problema com dados articiais utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . 114 6.5 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de termos de produto, na soluo do problema com dados articiais utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 6.6 Nmero mdio de termos de produto obtidos, para cada valor de k, na soluo do problema com dados articiais utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . 115 6.7 Quantidade mdia de amostras selecionadas para obteno da funo lgica do circuito digital classicador, para cada valor de k, na soluo do problema de reconhecimento de caracteres manuscritos utilizando o mtodo proposto (RSR). . . . . . . . . . . 117 6.8 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de k, na soluo do problema de reconhecimento de caracteres manuscritos utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 6.9 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de termos de produto, na soluo do problema de reconhecimento de caracteres manuscritos utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . 118 xix

Lista de Figuras
6.10 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada quantidade de amostras selecionadas, na soluo do problema de reconhecimento de caracteres manuscritos utilizando o mtodo proposto (RSR). . . . . . . 119 6.11 Nmero mdio de termos de produto obtidos, para cada valor de k, na soluo do problema de reconhecimento de caracteres manuscritos utilizando o mtodo proposto (RSR). . . . . . . . . . . 119 6.12 Quantidade mdia de amostras selecionadas para obteno da funo Booleana do circuito digital classicador, para cada valor de k, na soluo do problema do gene utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 6.13 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de k, na soluo do problema do gene utilizando o mtodo proposto (RSR). . . . . . . . . . . . . 122 6.14 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de termos de produto, na soluo do problema do gene utilizando o mtodo proposto (RSR). 122 6.15 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada quantidade de amostras selecionadas, na soluo do problema do gene utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 6.16 Nmero mdio de termos de produto obtidos, para cada valor de k, na soluo do problema do gene utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 6.17 Quantidade mdia de amostras selecionadas para obteno da funo lgica do circuito digital classicador, para cada valor de k, na soluo do problema do corao utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 6.18 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de k, na soluo do problema do corao utilizando o mtodo proposto (RSR). . . . . . . . . . . . 126 6.19 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de termos de produto, na soluo do problema do corao utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 6.20 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada quantidade de amostras selecionadas, na soluo do problema do corao utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 xx

Lista de Figuras
6.21 Nmero mdio de termos de produto obtidos, para cada valor de k, na soluo do problema do corao utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 6.22 Quantidade mdia de amostras selecionadas para obteno da funo Booleana do circuito digital classicador, para cada valor de k, na soluo do problema do cogumelo utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 6.23 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de k, na soluo do problema do cogumelo utilizando o mtodo proposto (RSR). . . . . . . . . . . 130 6.24 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de termos de produto, na soluo do problema do cogumelo utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 6.25 Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada quantidade de amostras selecionadas, na soluo do problema do cogumelo utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . 131 6.26 Nmero mdio de termos de produto obtidos, para cada valor de k, na soluo do problema do cogumelo utilizando o mtodo proposto (RSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 7.1 Exemplo de sistema com processador NIOS II. 7.2 7.3 7.4 7.5 . . . . . . . . . . . 139 . . . . II. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 146 148 149 155 156 157 158 160

Estrutura interna do processador NIOS II. . . . . . . . Instruo personalizada no processador NIOS II. . . . Sistema de desenvolvimento para o processador NIOS Fases de projeto de um sistema em FPGA. . . . . . . .

7.6 Vista superior do kit de desenvolvimento. . . . . . . . . 7.7 Diagrama em blocos do kit de desenvolvimento. . . . . 7.8 Implementao em hardware do Sistema Classicador. 7.9 Diagrama simplicado da PAL implementada na FPGA. 7.10 Mapa de memria Flash do sistema (inicializao). . . .

7.11 Mapa de memria SDRAM do sistema (programa e dados). . . . . 160 7.12 Mapa de memria SRAM do sistema (dados comuns). . . . . . . . 161 7.13 Funo Booleana processada pelo sistema para implementao na PAL, no formato do programa Espresso. . . . . . . . . . . . . . 164

xxi

Lista de Figuras

xxii

Lista de Tabelas

1.1 Exemplo de tabela verdade.

. . . . . . . . . . . . . . . . . . . . . .

3.1 Etapa 1 do mtodo Quine-McCluskey para determinao dos implicantes primos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.2 Etapa 2 do mtodo Quine-McCluskey para escolha dos implicantes primos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.1 Dados do Jogo de Tnis . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.2 4.3 4.4 4.5 Ocorrncias Ocorrncias Ocorrncias Ocorrncias da da da da caracterstica caracterstica caracterstica caracterstica Tempo . . . . Temperatura Umidade . . . Vento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 50 50 50

4.6 Sntese dos resultados

. . . . . . . . . . . . . . . . . . . . . . . . . 78 com dados . . . . . . . . 112 do caracter . . . . . . . . 116

6.1 Resultados obtidos com cada mtodo no problema binrios sintticos. . . . . . . . . . . . . . . . . . . . . 6.2 Resultados obtidos no problema de reconhecimento 0 para cada mtodo. . . . . . . . . . . . . . . . . . .

6.3 Resultados obtidos no problema Gene. . . . . . . . . . . . . . . . . 121 6.4 Resultados obtidos no problema do corao. . . . . . . . . . . . . 125 6.5 Resultados obtidos no problema do cogumelo para cada mtodo. 129 7.1 Descrio dos componentes do kit de desenvolvimento . . . . . . 154

7.2 Descrio da FPGA EP2C35 do kit de desenvolvimento . . . . . . 154 7.3 Resultados de tempos de execuo. . . . . . . . . . . . . . . . . . . 163

xxiii

Lista de Tabelas

xxiv

CAPTULO

Introduo

este captulo apresentada a motivao para a realizao deste trabalho de tese, bem como os seus objetivos principais. descrito sucintamente o problema para o qual esta tese prope uma soluo. As principais contribuies deste trabalho e a organizao geral do texto so mostradas em seguida.

1.1 Classicadores de Padres Binrios


Classicadores de padres so sistemas capazes de determinar a classe (categoria ou rtulo) de uma dada amostra (ou padro, instncia, exemplo, etc.) dentre um conjunto de categorias conhecidas, vide (Duda, Hart, & Stork 2000). Por exemplo: padres de vozes digitalizados podem ser identicados e classicados pelos fonemas; imagens digitalizadas de caracteres manuscritos podem ser identicadas em um correspondente cdigo; cdigos emitidos por sensores podem ser classicados em algum status; etc. Classicadores de padres binrios podem ser implementados em circuitos digitais combinatoriais, desde que os dados de entrada e suas correspondentes sadas sejam conhecidas. Por meio destes dados conhecidos, montada uma tabela que relaciona cada entrada binria sua correspondente sada binria (comumente chamada de tabela verdade). Um exemplo mostrado na Tabela 1.1 onde x, y e z so as entradas binrias e S a sada. Na Figura 1.1 so apresentados os mesmos dados em forma grca, onde o smbolo quadrado representa a sada S em 0, e o smbolo crculo representa a sada S em 1. De posse da tabela de dados binrios emprega-se um mtodo de determi1

Captulo 1

Introduo

Tabela 1.1: Exemplo de tabela verdade. Entradas z y x 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 Sada S 1 0 1 1 1 X 0 0

z 100 101

110

111

000

001

010 y

011

Figura 1.1: Dados binrios em formato grco.

1.1 Classicadores de Padres Binrios

nao da funo Booleana (algoritmo de minimizao lgica) que melhor represente a funo que relaciona a entrada com a sada. Alguns destes mtodos so: mapa de Karnaugh, mtodo tabular de Quine-McCluskey, e Espresso (De Micheli 1994). Por meio da equao Booleana do circuito, na forma de soma de produtos (ou produto de somas), obtm-se diretamente o circuito digital com portas lgicas (portas AND, OR, NOT ). O circuito digital pode ser implementado utilizando circuitos integrados digitais ou mesmo gravando-o em um dispositivo lgico programvel (PLD - Programmable Logic Device) (Ercegovac, Lang, & Moreno 2000) tipo: PAL - Programmable Array Logic; PLA - Programmable Logic Array; ou FPGA - Field Programmable Gate Array. Em determinados problemas de classicao no so conhecidas todas as possibilidades do espao de entrada/sada do sistema. Neste caso, a sada do circuito combinatorial representada por uma situao de no importa (dont care) para uma entrada desconhecida (sem classicao prvia), antes da fase de projeto do circuito digital. Esta situao simbolizada por um X na sada correspondente entrada desconhecida (veja Tabela 1.1). Um algoritmo de minimizao lgica tem como objetivo principal gerar a funo Booleana que melhor representa a relao das entradas com as sadas, utilizando o menor nmero de produtos (ou somas), de tal forma a resultar em um circuito com menos portas lgicas (De Micheli 1994). O algoritmo aproveita as situaes de dont care da tabela de entrada para minimizar a funo Booleana geradora do circuito. Assim, para o exemplo mostrado na Tabela 1.1, a funo lgica Booleana encontrada : S = y + z . x (1.1)

o que resulta em um menor nmero de portas lgicas para implementar o circuito. Entretanto, o circuito resultante associa o dado de entrada desconhecido (sada dont care) sada 1 (crculo), o que pode no corresponder ao desejado. A Figura 1.2 apresenta a cobertura obtida pelo minimizador Booleano. H uma boa probabilidade de o circuito classicador combinatorial no apresentar a resposta desejada para uma entrada desconhecida, uma vez que no objetivo da minimizao lgica tratar estes dados. Para o problema exemplo dado na Tabela 1.1, talvez a melhor soluo seja: S = z . + z .y + y. x x
3

(1.2)

Captulo 1
z

Introduo

Figura 1.2: Cobertura obtida pelo minimizador Booleano.

o que garante uma resposta equilibrada (mesma quantidade) para a sada em 0 e em 1. Isto resultaria em um maior nmero de portas lgicas, mas possivelmente em acerto de classicao para a entrada desconhecida. A Figura 1.3 apresenta a cobertura utilizada para obter a Equao 1.2.
z

Figura 1.3: Outra opo de cobertura.

Na Figura 1.4 apresentada uma superfcie de separao possvel para a resposta do circuito digital denido pela Equao 1.2, levando em conta a simetria do espao de entrada dos dados binrios mostrados na Figura 1.1. Assim, o circuito resultante associa o dado de entrada desconhecido (dont care) sada 0 (quadrado), o que pode ser o resultado desejado para o classicador na soluo deste problema.
4

1.2 Controle da Generalizao


z 100 101

110

111

000

001

010 y

011

Figura 1.4: Superfcie de separao entre as classes quadrado e crculo.

1.2 Controle da Generalizao


Geralmente, em problemas de classicao, mais interessante acertar a resposta para os dados desconhecidos (no disponveis na fase de projeto) do que acertar a resposta para os dados conhecidos (dados disponveis na fase de projeto). Assim, so tolerados erros para os dados de treinamento para incrementar os acertos dos dados desconhecidos. Algoritmos de gerao e minimizao de funes Booleanas so is tabela verdade, ou seja, o circuito digital gerado pela equao lgica resultante de tais algoritmos produz 100% de acertos para os dados conhecidos. Mas a ocorrncia de erro mnimo (0%) para os dados conhecidos (treinamento) no signica que o classicador ter um timo desempenho na classicao dos dados desconhecidos (Teixeira, Braga, Takahashi, & Saldanha 2000). Em geral, o classicador pode errar nos dados de treinamento para acertar mais nos dados desconhecidos. Ento, uma maneira de melhorar o classicador binrio projetado pela sua tabela verdade eliminar dados conhecidos da tabela verdade que poderiam prejudicar o desempenho do classicador para dados desconhecidos. A diculdade est justamente em selecionar quais dados devem ser descartados e quais devem ser mantidos para ns de projeto do melhor classicador. Tanto os dados desconhecidos quanto os dados eliminados da tabela verdade so tratados pelo minimizador de funo Booleana como uma situao de dont care. Isto possibilita ao minimizador Booleano expandir os dados conhecidos e retidos para projeto de forma a gerar uma superfcie de separao entre as classes que depender dos dados dont care. Assim, possvel controlar a forma da superfcie de separao do resultado de classicao do
5

Captulo 1

Introduo

circuito gerado por meio da escolha seletiva dos dados de treinamento a serem descartados. A superfcie de separao no deve ser to suave a ponto de privilegiar uma resposta (undertting), e nem to encurvada a ponto de contornar todos os dados de treinamento (overtting). Este o conhecido dilema entre a polarizao e a varincia, amplamente conhecido no contexto de Redes Neurais Articiais (Haykin 2001).

1.3 Seleo de Padres


Em uma Mquina de Vetores de Suporte (Support Vector Machine - SVM), conforme (Vapnik 1998), o hiperplano timo de separao das classes determinado em funo dos vetores de suporte, ou seja, amostras que se encontram entre as margens (i = C) e sobre as margens (0 < i < C). Margem denida como a menor distncia entre os exemplos do conjunto de treinamento e o hiperplano de separao das classes (vide Figura 1.5), sendo que esta distncia exvel o bastante para separar amostras de classes diferentes sobrepostas espacialmente. Os i s so os coecientes de Lagrange obtidos para cada amostra no processamento do algoritmo do SVM e que determinam, dentre os dados de treinamento, quais so os vetores de suporte. Amostras externas s margens (i = 0) so ignoradas. Isto inspira a possibilidade de projeto de uma mquina de aprendizado que utilize as amostras conhecidas que estejam perto da margem de separao das classes. No treinamento de uma mquina de aprendizado com tcnica de Boosting (Munro 1992; Cachin 1994; Schapire 2002), os padres com maior erro de classicao tm sua probabilidade de apresentao aumentada. Estes dados mais utilizados para treinamento, selecionados por esta tcnica, so justamente aqueles prximos fronteira de separao das classes, conforme mostrado na Figura 1.6. Novamente, os dados de maior importncia so justamente aqueles prximos a fronteira de deciso das classes. O algoritmo de seleo de amostras proposto por (Wilson 1972) possui a caracterstica de eliminar tanto os dados ruidosos quanto os dados que esto perto da fronteira de separao das classes (ou dados entre as margens das classes). Assim os dados resultantes so aqueles que descrevem puramente cada classe, e podem ser utilizados como dados de treinamento (projeto) para um classicador, garantindo uma melhor generalizao para os dados desconhecidos (Wagner 1973) do que utilizando todo o conjunto de treinamento. Na Figura 1.7 so mostrados os dados selecionados pelo algoritmo de Wilson utilizando os dados da Figura 1.5. Nem todos os dados selecionados pelo algoritmo de Wilson so necessrios
6

1.3 Seleo de Padres

Figura 1.5: Conjunto de dados reais de duas dimenses e duas classes (cruz e crculo).

10 8 6 4 2 0 Classe 0 Classe 1

10

1 0.8 Probabilidade 0.6 0.4 0.2 0

10

Figura 1.6: Probabilidade de apresentao das amostras durante treinamento de uma mquina de aprendizado utilizando a tcnica de Boosting.

Captulo 1

Introduo

para caracterizar uma determinada classe. Dados contidos mais no interior (mais longe da margem) da classe podem tambm ser descartados e o restante utilizado para treinamento de um classicador sem prejudicar o seu desempenho. Na Figura 1.8 mostrado o subconjunto de dados obtido aps a aplicao da regra de Wilson e posterior eliminao das amostras que esto longe da margem de separao das classes utilizando os dados da Figura 1.5. Os dados de interesse so justamente aqueles que esto fora e prximos s margens de separao das classes, garantindo a generalizao necessria ao classicador. Para o projeto de um classicador de dados binrios, o algoritmo de Wilson pode ser utilizado como pr-processamento dos dados de entrada do minimizador de funo Booleana, de tal forma a gerar um circuito digital com melhor generalizao. Entretanto, quando a quantidade e dimenso dos dados de entrada muito grande, torna-se dispendioso para o minimizador de funo Booleana gerar a equao lgica do circuito digital. Torna-se ento necessrio diminuir o tamanho dos dados de entrada, eliminando novamente os dados desnecessrios.

1.4 Objetivo da Tese


O objetivo principal deste trabalho de tese a gerao de circuitos combinatoriais que atuem como classicadores de padres binrios e que apresentem um resultado de classicao dos dados de entrada desconhecidos (generalizao) com um desempenho to bom ou melhor do que para dados de entrada conhecidos (disponveis durante a fase de projeto). Ou seja, o circuito digital gerado possui uma probabilidade baixa de classicar erroneamente dados desconhecidos, tendo os dados conhecidos como base de projeto. O mtodo proposto utiliza o processo de ltragem dos dados binrios de entrada (dados conhecidos) de tal forma a eliminar os dados ruidosos ou que esto dentro da margem de separao das classes, e tambm os dados que esto bem no interior das classes. Os dados selecionados so justamente aqueles fora da margem de separao das classes, mas prximos da fronteira de deciso. Assim, um outro objetivo desta tese a proposta de um algoritmo de seleo mnima de amostras, baseado na Regra do Vizinho-mais-prximo, para que a fase de projeto do classicador necessite de menos recursos de armazenamento e processamento, sem degradar a capacidade de generalizao. A metodologia de projeto proposta para o classicador digital resumida na Figura 1.9. Os dados de projeto (ou treinamento) do classicador so selecionados por um algoritmo e posteriormente aplicados ao algoritmo de minimizao Booleana. O minimizador Booleano fornece a expresso lgica do
8

1.4 Objetivo da Tese

Figura 1.7: Dados selecionados fora da margem.

Figura 1.8: Dados selecionados pelo algoritmo de Wilson e posterior reduo.

Captulo 1

Introduo

circuito classicador com capacidade de generalizao.

Figura 1.9: Diagrama simplicado do mtodo de projeto proposto para o circuito digital classicador. realizada uma comparao do mtodo proposto com outros mtodos de classicao conhecidos que possuem um desempenho j comprovado, com o objetivo de validar o mtodo proposto. Estes mtodos so: a Rede Neural Articial treinada com o algoritmo multiobjetivo (MOBJ) para controle da generalizao (Teixeira 2001); e a Mquina de Vetores de Suporte (vide (Vapnik 1998)) que durante seu processo de treinamento seleciona as amostras que melhor identicam as classes. Finalmente, objetiva-se implementar um sistema classicador de padres binrios em um circuito embutido com caractersticas de portabilidade, funcionamento rpido em tempo real e com treinamento on-line para atuar em problemas crticos de classicao de padres.

1.5 Principais Contribuies


Durante o desenvolvimento da metodologia de projeto e implementao do circuito classicador com capacidade de generalizao, surgiram as seguintes principais contribuies contidas neste trabalho de tese: O desenvolvimento de um novo mtodo de seleo de amostras baseado no kNN para treinamento de mquinas de aprendizado; A denio de uma nova mtrica de distncia entre padres baseada nos coecientes da verossimilhana da Regra de Bayes; Uma modicao na mtrica VDM para melhoramento do classicador kNN utilizando esta mtrica na soluo de problemas especcos; Uma deduo e formulao probabilstica para a mtrica Distncia de Discriminao;
10

1.6 Organizao do Texto

Um esquema de projeto de circuito digital combinatorial para operar como classicador de padres binrios com capacidade de generalizao; Uma proposta de implementao em hardware/software de um sistema classicador autnomo, porttil e verstil com capacidade de treinamento on-line e resposta com tempo de atraso mnimo; Uma tcnica para emular uma PAL dentro de uma FPGA para implementao de circuitos combinatoriais de dois nveis.

1.6 Organizao do Texto


Este trabalho de tese est organizado da seguinte maneira: O Captulo 2 apresenta o Sistema de Mquina de Aprendizado. Os principais conceitos relacionados ao assunto so descritos, bem como as principais diculdades no projeto e implementao de um Sistema de Aprendizado. Mtodos de projeto derivados do risco do erro so descritos. Os Padres Binrios so caracterizados no Captulo 3. A forma de codicao binria dos dados para garantir tima generalizao por um classicador mostrada, juntamente com as principais propriedades dos dados binrios. Os conceitos principais relacionados ao espao Booleano de alta dimenso so descritos. apresentada uma reviso de mtodos de Sntese de Circuitos Digitais, com a apresentao dos conceitos utilizados. Os algoritmos de minimizao de funes lgicas Quine-McCluskey e Espresso so descritos detalhadamente. No Captulo 4 apresentado o problema de Reconhecimento de Padres. As tcnicas de classicao de padres baseadas em mtodos paramtricos e no paramtricos so exemplicadas, bem como as suas caractersticas. dada uma nfase especial Regra do Vizinho-mais-prximo, por ser a tcnica na qual se baseou o mtodo proposto neste trabalho. Assim, apresentada a evoluo desta tcnica encontrada na literatura. Algumas mtricas de similaridade so descritas e algumas so desenvolvidas. Experimentos com a Regra do Vizinho-mais-prximo so realizados para validar as mtricas. O Captulo 5 apresenta alguns mtodos de seleo das amostras baseados na Regra do Vizinho-mais-prximo, os quais diminuem a quantidade de amostras de treinamento para armazenamento e processamento, alm de melhorar a generalizao dos classicadores projetados pelas
11

Captulo 1

Introduo

amostras selecionadas. proposto um algoritmo de seleo de amostras derivado dos mtodos conhecidos, e alguns experimentos so realizados para validar a proposta. No Captulo 6 apresentada a metodologia de projeto proposta para a gerao do circuito digital classicador com tima generalizao. Um dos mtodos de minimizao de funo Booleana utilizado em conjunto com o algoritmo de seleo de amostras descrito no captulo anterior para garantir a capacidade de generalizao do classicador. Resultados so obtidos e comparados com outras tcnicas para gerao do circuito digital com capacidade de generalizao. A implementao em hardware do circuito classicador proposto apresentada no Captulo 7. Foi adotada uma soluo baseada em hardware recongurvel em FPGA com sistema de multiprocessamento baseado no processador NIOS II. So descritas as ferramentas utilizadas para o projeto e implementao do sistema classicador. Algumas medidas de desempenho do sistema implementado em hardware so tambm apresentadas. No Captulo 8 so apresentadas as Concluses e Propostas de Continuidade deste trabalho, o qual acredita-se ser possvel a sua explorao futura em vrios aspectos.

12

CAPTULO

Aprendizagem de Mquina

incia moderna e engenharia so baseadas em modelos analticos

para descrever sistemas fsicos, biolgicos e sociais. Entretanto, em muitas aplicaes estes modelos analticos so desconhecidos ou o sistema sob estudo muito complexo para ser analiticamente descrito. Com o crescente uso de computadores e sensores de baixo custo para coleta de dados, h um grande volume de dados sendo gerados por tais sistemas. Na ausncia de modelos analticos, tais dados prontamente disponveis podem ser usados para derivar modelos pela estimao de relaes teis entre variveis do sistema, isto , dependncias entrada-sadas desconhecidas. Um mtodo de aprendizagem um algoritmo, usualmente implementado em software, que estima um mapeamento desconhecido (dependncia) entre entradas e sadas do sistema baseado nos dados disponveis, isto , nas amostras (entradas, sadas) conhecidas, segundo (Cherkassky & Mulier 1998). Uma vez que a dependncia tenha sido estimada, ela pode ser usada para a predio das sadas futuras do sistema. Nas sees que se seguem so detalhados o problema de aprendizado e suas caractersticas.

2.1 Sistemas de Aprendizado


Um sistema de aprendizado pode realizar as seguintes tarefas especcas: Classicao: reconhecimento de padres ou estimao de fronteiras (limites) de deciso de classe. 13

Captulo 2

Aprendizagem de Mquina

Regresso: estimao de funes contnuas desconhecidas de dados ruidosos. Estimao: da densidade de probabilidade das amostras. Para a realizao das tarefas, o sistema de aprendizado utiliza os seguintes estgios de operao em seqncia: 1. Aprendizagem/estimao baseada nas amostras de treinamento; e 2. Operao/predio quando predies so feitas com as amostras de teste. Basicamente, o aprendizado de um sistema pode ser supervisionado ou no supervisionado. Aprendizado supervisionado usado para estimar um mapeamento (entrada/sada) desconhecido baseado em amostras (entrada/sada) conhecidas. Classicao e regresso so exemplos de tarefas deste tipo. O termo supervisionado indica o fato de que valores de sada para amostras de treinamento so conhecidos. Em aprendizado no supervisionado, apenas amostras de entrada so apresentadas ao sistema de aprendizado, e no h noo da sada durante o aprendizado. O objetivo do aprendizado no supervisionado pode ser estimar a distribuio de probabilidade das entradas ou descobrir uma estrutura natural, isto , agrupamentos nos dados de entrada. A distino entre aprendizado supervisionado e no supervisionado est apenas no nvel da declarao do problema (vide (Cherkassky & Mulier 1998)). Isto no implica que mtodos originalmente desenvolvidos para aprendizado supervisionado no possam ser utilizados (com pequenas modicaes) para tarefas de aprendizado no supervisionado, e vice-versa. O problema de aprendizagem/estimao da dependncia dos dados apenas parte do procedimento experimental geral para tirar concluses dos dados. O procedimento experimental geral adotado em estatstica clssica envolve as seguintes etapas: 1. Declarao do problema; 2. Formulao de hipteses: especica uma dependncia desconhecida, a qual deve ser estimada a partir dos dados experimentais; 3. Gerao de dados/Projeto do experimento: articial ou natural, observado e/ou controlado; 4. Coleta de dados e pr-processamento: escalonamento, codicao; 5. Estimao do modelo: previso precisa, capacidade de generalizao; 6. Interpretao do modelo e esboo das concluses.
14

2.2 Caracterizao das variveis

Mesmo que as etapas do procedimento experimental sejam precisas e conveis, o modelo resultante no poder ser vlido se os dados no so informativos ou a formulao do problema no estatisticamente signicativa. Na seo seguinte, os dados (ou variveis) so caracterizados.

2.2 Caracterizao das variveis


As variveis (ou caractersticas, atributos) de entrada e sada podem ser basicamente de dois tipos: numrico e categrico. Tipo numrico inclui valores reais ou inteiros (ex.: idade, velocidade, comprimento, etc). Uma caracterstica numrica tem duas importantes propriedades: seus valores tm uma relao de ordem e uma relao de distncia entre dois valores de caracterstica. Sadas numricas (valores reais) correspondem a problemas de regresso ou estimao de funes contnuas. Varivel categrica (ou simblica) no tem ordem ou relao de distncia denida. Dois valores de uma varivel categrica podem ser iguais ou diferentes. Exemplos: cor, sexo, pas. Sadas categricas representam uma classe de problemas conhecidos como reconhecimento de padres, classicao ou anlise de discriminao. Uma varivel categrica com dois valores pode ser convertida, a princpio, a uma varivel numrica binria com dois valores (0 e 1). Uma varivel categrica com J valores pode ser convertida em J variveis numricas binrias, uma varivel binria para cada valor categrico. Este mtodo conhecido como cdigo 1-de-J, indicando que cada uma das J variveis binrias codica um valor caracterstico. Exemplo para J = 8: Varivel 1: 00000001 Varivel 2: 00000010 Varivel 8: 10000000 H dois outros tipos de variveis menos comuns: peridico e ordinal. Uma varivel peridica uma varivel numrica para a qual a relao de distncia existe, mas no h relao de ordem (ex.: dias da semana). Uma varivel ordinal uma varivel categrica para a qual uma relao de ordem existe, mas no h relao de distncia (ex.: ranking de melhor jogador). A quantidade de caractersticas para cada entrada de um sistema determina a dimenso do espao de entrada. O aumento da dimenso dos dados de entrada provoca um crescimento exponencial da complexidade do problema de aprendizado, efeito conhecido como maldio da dimensionalidade (vide (Haykin 2001)), tratado na prxima seo.
15

Captulo 2

Aprendizagem de Mquina

2.3 Maldio da Dimensionalidade


No problema de aprendizado, o objetivo estimar uma funo usando um nmero nito de amostras de treinamento. O nmero nito de amostras de treinamento implica que qualquer estimativa de uma funo desconhecida sempre imprecisa. Estimao signicativa possvel apenas para funes sucientemente suaves, onde a suavidade da funo medida com respeito densidade de amostras dos dados de treinamento. Para funes de alta dimenso torna-se difcil coletar amostras sucientes para se conseguir esta alta densidade. Este problema comumente referido como a maldio da dimensionalidade (curse of dimensionality) conforme (Cherkassky & Mulier 1998). A maldio da dimensionalidade devida geometria do espao de alta dimenso. As propriedades do espao de alta dimenso geralmente aparecem como contra senso porque a experincia humana com o mundo fsico em espao de baixa dimenso. Conceitualmente, objetos em espao de alta dimenso tm uma maior rea de superfcie para um dado volume do que objetos em espao de baixa dimenso. A distribuio em alta dimenso possui as seguintes propriedades: Tamanho das amostras que produzem a mesma densidade incrementam exponencialmente com a dimenso. Ex.: um conjunto de amostras de n dados em R1 ter a mesma densidade de pontos em Rd se o nmero de pontos for nd ; Um raio maior necessrio para encobrir uma frao dos pontos de dados em um espao de alta dimenso; Todo ponto ca mais prximo a uma borda (margem) do que a outro ponto, o que requer extrapolao pela mquina de aprendizado. A maldio da dimensionalidade tem srias conseqncias quando se est tratando com nmero nito de amostras em espao de alta dimenso. H diculdade em predizer uma resposta em um dado ponto, uma vez que qualquer ponto estar na mdia mais prximo a uma borda do que a um ponto do conjunto de treinamento.

2.4 O Problema de Aprendizado


O objetivo do aprendizado preditivo estimar dependncias no conhecidas entre as variveis de entrada (x) e a sada (w) de um conjunto de observaes
16

2.4 O Problema de Aprendizado

passadas de valores (xi , wi ), sendo i = 1, ..., n, como mostra a Figura 2.1 segundo (Cherkassky & Mulier 1998). O outro conjunto de variveis rotuladas z denota todos os outros fatores que afetam a sada mas cujos valores no so observados ou controlados. Portanto, o conhecimento de valores de entrada observveis (x) no especica unicamente as sadas (w). Esta incerteza nas sadas reete a falta de conhecimento dos fatores no observados (z), e isto resulta em dependncia estatstica entre os dados observados e sadas. O efeito de entradas no observveis (z) pode ser caracterizado pela distribuio de probabilidade condicional p(w|x), o qual indica a probabilidade de que w ocorrer dada a entrada x.

Figura 2.1: Um sistema com entradas-sada. O cenrio geral de aprendizado envolve trs componentes: um gerador de vetores de entrada aleatrio, um sistema que retorna uma sada para cada vetor de entrada, e a mquina de aprendizado a qual estima um mapeamento (entrada, sada) desconhecido do sistema baseado nas amostras (entrada, sada) observadas (veja Figura 2.2).

Figura 2.2: Um sistema de aprendizado com entradas-sada. O gerador produz vetores aleatrios x Rd tirados independentemente de uma densidade de probabilidade xa p(x), que desconhecida. Em geral, o modelador (mquina de aprendizado) no tem controle sobre quais vetores de entrada so fornecidos ao sistema. O sistema produz um valor de sada w para todo vetor de entrada x de acordo com uma densidade de probabilidade condicional p(w|x), a qual tambm desconhecida. Esta descrio inclui o caso especco de um sistema determinstico onde w = f (x), e tambm o caso da formulao de regresso de
17

Captulo 2

Aprendizagem de Mquina

w = f (x) + , onde um rudo aleatrio com mdia zero. Sistemas reais raramente tm sadas verdadeiramente aleatrias; entretanto eles geralmente tm entradas no medidas (z). Estatisticamente, o efeito da variao das entradas no observveis (z) na sada do sistema pode ser caracterizado como aleatrio e representado como uma distribuio de probabilidade. No caso mais geral, a mquina de aprendizado capaz de implementar um conjunto de funes f (x, ), , onde um conjunto de parmetros abstratos usados apenas para indexar o conjunto de funes. Na formulao, o conjunto de funes implementadas pela mquina de aprendizado pode ser qualquer conjunto de funes, escolhido a priori, antes do processo de aprendizado ser iniciado. O problema encontrado pela mquina de aprendizado selecionar uma funo, do conjunto de funes que ele suporta, que melhor aproxima a resposta do sistema. A mquina de aprendizado limitada a observar um nmero nito de exemplos (n) em seqncia para produzir esta seleo. Estes dados de treinamento produzidos pelo gerador e pelo sistema sero independentes e identicamente distribudos (iid) de acordo com a funo de densidade de probabilidade conjunta (pdf - probability density function) indicada na Equao 2.1. p(x, w) = p(x)p(w|x) (2.1) A qualidade da aproximao produzida pela mquina de aprendizado medida pela perda L(w, f (x, )) ou discrepncia entre a sada produzida pelo sistema e pela mquina de aprendizado para um dado ponto x. Por conveno, a perda recebe valores no-negativos, de tal forma que grandes valores positivos correspondem aproximao pobre. O valor esperado da perda chamado risco funcional, dado pela Equao 2.2. Rf unc () = L(w, f (x, ))p(x, w)dxdw (2.2)

Aprendizado o processo de estimar a funo f (x, 0 ), a qual minimiza o risco funcional sobre o conjunto de funes suportadas pela mquina de aprendizado, usando apenas os dados de treinamento (p(x, w) no conhecido). Com dados nitos, no se pode esperar encontrar f (x, 0 ) exatamente; ento indicado f (x, ) como a estimativa da soluo tima obtida com dados de treinamento nitos usando algum procedimento de aprendizado. claro que qualquer tarefa de aprendizado pode ser solucionada pela minimizao de Rf unc () se a densidade p(x, w) conhecida. Em um problema de classicao binria (duas classes), a sada do sistema toma apenas dois valores simblicos (w = {0, 1}) correspondendo s duas classes. Conseqentemente, a sada da mquina de aprendizado necessita
18

2.5 Aprendizado Adaptativo

apenas de escolher bem um entre dois valores. Ento o conjunto de funes f (x, ), torna-se um conjunto de funes indicadoras. Uma funo de perda comumente usada para este problema mostrada na Equao 2.3, a qual mede o erro de classicao.
0 se w = f (x, ) L(w, f (x, )) = 1 se w = f (x, ).

(2.3)

Usando esta funo de perda, o risco funcional (Equao 2.2) quantica a probabilidade de erro na classicao. O aprendizado ento torna-se o problema de encontrar a funo indicadora f (x, 0 ) (classicador) a qual minimiza a probabilidade de erro na classicao usando apenas os dados de treinamento.

2.5 Aprendizado Adaptativo


Com amostras nitas, sempre melhor resolver diretamente um exemplo particular do problema de aprendizado do que tentar resolver um problema mais geral (e muito mais difcil) de estimao de densidade conjunta entre entrada e sada (vide (Cherkassky & Mulier 1998)). Os mtodos clssicos podem no ser apropriados para muitas aplicaes porque modelagem paramtrica (com amostras nitas) impem muitas suposies rgidas sobre a dependncia desconhecida, o que especica sua forma paramtrica. Isto tende a introduzir grande polarizao na modelagem, isto , a discrepncia do modelo paramtrico assumido e a (desconhecida) verdade. Igualmente, mtodos no paramtricos clssicos funcionam apenas em casos assintticos (tamanho das amostras muito grande). As limitaes da abordagem clssica motivam o uso de mtodos adaptativos (ou exveis). Mtodos adaptativos conseguem maior exibilidade especicando uma larga classe de funes de aproximao. O modelo de predio ento selecionado desta larga classe de funes. O principal problema tornase escolher o modelo de complexidade tima (exibilidade) para os dados nitos disposio. Dois dos princpios indutivos que so mais comumente utilizados em processos de aprendizado adaptativos so a minimizao do risco emprico (Empirical Risk Minimization - ERM) e a minimizao do risco estrutural (Structural Risk Minimization - SRM) segundo (Cherkassky & Mulier 1998), assuntos das prximas subsees.
19

Captulo 2

Aprendizagem de Mquina

2.5.1 Princpio da Minimizao do Risco Emprico


O objetivo do aprendizado preditivo estimar dependncias desconhecidas em uma classe de funes de aproximao usando dados disponveis. A estimativa tima corresponde ao mnimo do risco funcional esperado. O problema que o risco funcional depende da cdf (cumulative probability distribution function) F (x, w) desconhecida, ou pdf f (x, w) tambm desconhecida. A nica informao disponvel sobre esta distribuio est nas amostras de treinamento disponveis. Uma soluo para o problema de aprendizado estimar a cdf F (x, w) desconhecida, ou pdf f (x, w) desconhecida, dos dados disponveis e ento encontrar uma estimativa tima f (x, 0 ). Outra soluo procurar uma estimativa que garanta o mnimo do risco emprico conhecido, como um substituto para o risco funcional desconhecido. Esta abordagem chamada de minimizao do risco emprico (ERM - Empirical Risk Minimization). Com amostras nitas, a abordagem ERM sempre prefervel estimao da densidade conforme (Cherkassky & Mulier 1998). O princpio indutivo ERM tipicamente usado em problemas clssicos (paramtricos) onde o modelo especicado primeiro e ento seus parmetros so estimados dos dados. Esta abordagem trabalha bem apenas quando o nmero de dados de treinamento grande relativamente complexidade do modelo pr-especicado (ou o nmero de parmetros livres). Usando o princpio indutivo da minimizao do risco emprico, empiricamente estimada a funo de risco usando os dados de treinamento. O risco emprico o risco mdio para os dados de treinamento, e pode ser minimizado escolhendo os parmetros apropriados. Sob o princpio indutivo da minimizao do risco emprico (ERM), procurada uma soluo f (xi , ) que minimize o risco emprico (erro de treinamento) como um substituto para o risco funcional esperado. Para estimao do risco funcional esperado para classicao usando a mdia do risco emprico sobre os dados utiliza-se a Equao 2.4: Remp () = 1 n I(wi = f (xi , )) n i=1 (2.4)

onde I() a funo indicadora que toma o valor 1 se seu argumento verdadeiro e 0 se falso, e f (xi , ) a regra de deciso de classicao. Uma propriedade geral necessria para qualquer princpio indutivo a assintoticidade, ou seja, a estimao obtida pelo ERM deve convergir para o valor verdadeiro (ou melhor valor possvel) com o nmero de amostras de treinamento grande. Um objetivo inicial da teoria de aprendizado formular as
20

2.5 Aprendizado Adaptativo

condies sobre as quais o princpio ERM consistente (assinttico). Considerando a aplicao do princpio ERM ao problema de aprendizado preditivo, suponha que Remp ( |n) indique o valor timo do risco emprico fornecido pela funo de perda L(x, w, |n) minimizando o risco emprico para n amostras iid, e Rf unc ( |n) indique o valor desconhecido do risco funcional para a mesma funo L(x, w, |n). Ento o princpio ERM consistente se o risco funcional (desconhecido) Rf unc ( |n) e o risco emprico Remp ( |n) convergem para o mesmo limite de risco mnimo R(0 ) quando o nmero de amostras cresce para innito (vide (Cherkassky & Mulier 1998)). Isto resumido pelas Equaes 2.5 e 2.6, e a noo de consistncia mostrada pelo grco da Figura 2.3. Rf unc ( |n) R(0 ) quando n Remp ( |n) R(0 ) quando n (2.5) (2.6)

Figura 2.3: Risco emprico e risco funcional.

Assumindo um problema de classicao, o risco emprico corresponde probabilidade de erro de classicao para os dados de treinamento (erro de treinamento), e o risco funcional esperado a probabilidade de erro mdio de classicao sobre a distribuio p(x, w) desconhecida, onde (xi , wi ) so as amostras de treinamento. Para um dado conjunto de amostras, esperase Remp ( |n) < Rf unc ( |n) porque a mquina de aprendizado sempre escolhe uma funo (estimada) que minimiza o risco emprico mas no necessariamente o risco funcional. Em outras palavras, funes L(x, w, |n) produzidas pelo princpio ERM para um conjunto de amostras de tamanho n so sempre estimativas polarizadas da melhor funo de minimizao do risco funcional.
21

Captulo 2

Aprendizagem de Mquina

2.5.2 Princpio da Minimizao do Risco Estrutural


Com mtodos de modelagem adaptativos ou exveis, o modelo no conhecido, e ele estimado usando um grande nmero de modelos candidatos (isto , funes de aproximao de mquina de aprendizado) para descrever os dados avaliados. O principal objetivo a escolha do modelo candidato de complexidade certa para descrever os dados de treinamento. O objetivo do aprendizado escolher um elemento timo da estrutura e estimar seus coecientes por meio das amostras de treinamento. A escolha do modelo da mquina de aprendizado de complexidade tima resulta no mnimo do risco funcional esperado. Assim, a estimativa do risco funcional esperado pode ser usada para a seleo do modelo. O princpio indutivo chamado minimizao do risco estrutural (Structural Risk Minimization SRM) providencia um mecanismo formal para a escolha de um modelo com complexidade tima para amostras nitas. Sob SRM, o conjunto S de funes de perda L(x, w, ), possui uma estrutura, a qual consiste dos elementos Sk = {L(x, w, ), k } tal que: S1 S2 . . . S k . . . Para um conjunto de dados de treinamento {(x1 , w1 ), (x2 , w2 ), . . . , (xn , wn )}, o princpio SRM seleciona a funo Lk (x, w, |n) minimizando o risco emprico para as funes de Sk . Ento, para cada elemento da estrutura Sk , o risco garantido encontrado. No nal escolhido um elemento da estrutura tima Stimo que garanta risco funcional mnimo. Este subconjunto Stimo um conjunto de funes tendo complexidade tima para um determinado conjunto de dados. O SRM providencia caracterizao quantitativa do compromisso entre a complexidade das funes de aproximao e a qualidade da adaptao (tting) dos dados de treinamento (vide (Cherkassky & Mulier 1998)). Enquanto a complexidade (subconjunto de ndice k) aumenta, o mnimo do risco emprico decresce, ou seja, a qualidade dos ajustes dos dados aumenta. O SRM escolhe um elemento timo da estrutura que produz o limite mnimo do risco funcional. O princpio SRM no especica uma estrutura particular. Entretanto, aplicao de sucesso do SRM na prtica depende da estrutura escolhida.

2.6 Concluso
Uma mquina de aprendizado capaz de predizer as sadas futuras do sistema baseado em um conjunto de dados de treinamento. Vrias caracte22

2.6 Concluso

rsticas dos dados de treinamento devem ser levadas em considerao para garantir que a mquina de aprendizado seja capaz de realizar sua tarefa com preciso: quantidade de amostras, dimenso das amostras, tipos de atributos, etc. O objetivo bsico do aprendizado de mquina estimar as dependncias no conhecidas entre as entradas de dados e a sada do sistema, por meio das entradas/sadas conhecidas. Entretanto, nem todas as entradas do sistema em estudo podem ser observadas, o que aumenta a complexidade da mquina para realizar a sua tarefa de predio. O risco funcional indica o valor esperado para o erro de predio produzido pela mquina de aprendizado. Sendo assim, idealmente a mquina de aprendizado deve ter risco funcional mnimo. O risco funcional s conhecido se for conhecida a distribuio conjunta dos dados de treinamento. Como na maioria dos problemas isto no possvel, ento pode-se substituir o risco funcional pelo risco emprico (funo de risco estimada pelos dados de treinamento). Assim, o princpio da minimizao do risco emprico um mtodo de modelagem da mquina de aprendizado pelo ajuste de seus parmetros, quando a quantidade de dados disponveis grande. Outro mtodo de aprendizado adaptativo baseado no princpio da minimizao do risco estrutural. Este mtodo seleciona a melhor complexidade do modelo da mquina de aprendizado a partir dos dados de treinamento, e que ainda garanta risco funcional mnimo.

23

Captulo 2

Aprendizagem de Mquina

24

CAPTULO

Padres Binrios e Sntese de Circuitos Digitais

omo o objetivo principal deste trabalho a gerao de circuitos digi-

tais classicadores capazes de classicar dados binrios de entrada, ento so apresentados neste captulo as principais caractersticas inerentes a conjunto de dados binrios e os principais mtodos de minimizao Booleana para projeto de circuitos digitais a partir destes conjuntos de dados.

3.1 Padres Binrios


Padres binrios so basicamente vetores de 0 e 1s, tambm chamados de strings binrias. So utilizados para representar ou codicar alguma informao, seja numrica ou nominal, por exemplo: valores de temperatura, velocidade, uma imagem ou som digitalizado, presena ou ausncia de atributos, etc. Os nmeros de 0 a 10, por exemplo, podem ser representados por padres binrios. Isto poderia ser feito por 4 dgitos binrios codicados pelo modo usual (0000 representando o decimal 0, 0001 representando o decimal 1, 0010 representando o decimal 2, 0011 representando o decimal 3, e assim por diante at o decimal 10 representado como 1010). Isto chamado de representao distribuda porque os 1s no padro aparecem em todas as 4 posies binrias dependendo da escolha do cdigo. Alternativamente, dez bits binrios poderiam ser escolhidos para apresentar os mesmos nmeros colocando o 1 no ensimo lugar a direita para o ensimo nmero. Assim, o 25

Captulo 3

Padres Binrios e Sntese de Circuitos Digitais

decimal 0 representado como 0000000000, o decimal 1 como 0000000001, o decimal 2 como 0000000010, o decimal 3 como 00000000100 e assim por diante at o decimal 10 representado como 1000000000. Isto chamado de representao localizada porque o cdigo usa a localizao do 1 para representar o dado conforme (Aleksander 1995). Outras formas de representao em cdigo binrio podem ser encontradas na literatura, cada uma com uma caracterstica diferente. geralmente assumido que dois padres binrios so similares se eles diferem apenas em uns poucos bits de seus valores de entrada. Mas isto no pode ser assumido para o caso geral. Alguns cdigos numricos binrios convencionais, os quais so numericamente adjacentes, tm cdigos muitos diferentes (por exemplo: o cdigo 15 01111 e o 16 10000). Em outras aplicaes, dois padres so ditos similares se eles contm o mesmo nmero de 1s ou se eles representam o mesmo padro em diferentes posies deslocadas em um registrador. A generalizao de atributos numricos pode ser relacionada a diferentes mtricas de similaridade (ou distncia) entre padres. Em redes neurais articiais sem peso (weightless articial neural networks) implementadas em memria tipo RAM (Random Access Memory) (Braga 1995), por exemplo, a generalizao geralmente relacionada a distncia Hamming (quantidade de bits diferentes). Neste caso importante transformar nmeros em string de bits de tal modo que a proximidade numrica seja transformada em proximidade de Hamming (Rohwer & Morciniec 1995). Nas sees que se seguem, so apresentados o problema de classicao de dados binrios e a capacidade de generalizao do classicador de acordo com a forma de representao dos dados binrios. As caractersticas dos padres binrios so tambm levantadas bem como o do espao Booleano.

3.1.1 Classicao Binria


Em um processamento convencional, problemas de classicao binria podem ser facilmente implementados programando um algoritmo simples tal como: 1. Armazene os padres conhecidos (amostras de treinamento); 2. Quando um padro desconhecido encontrado, calcule a sua distncia de Hamming aos padres conhecidos e classique-o de acordo com a menor distncia. A diculdade com esta tcnica ocorre quando a quantidade de padres grande e quando a denio das classes vaga. No h garantia, neste caso,
26

3.1 Padres Binrios

que a medida da distncia de Hamming fornea a resposta correta. Logo, outras mtricas devem ser empregadas, como ser apresentado no captulo 4.

3.1.2 Generalizao Binria


Propriedades de generalizao dependem fortemente da forma de representao da entrada que est sendo usada no sistema de classicao. O cdigo binrio convencional permite uma representao natural de uma varivel inteira, mas possui propriedade no-linear e no monotonicidade. Especicamente, valores inteiros diferentes apenas por um nvel podem ter sua distncia de Hamming entre um e o mximo. Uma mquina de aprendizado assume que todo bit do padro de entrada tem a mesma importncia relativa. Este no certamente o caso da notao binria natural, onde os bits so ordenados em nvel incremental de importncia. Um mtodo eciente para generalizar distncia Hamming usa uma combinao de tcnicas de codicao CMAC e Gray (Rohwer & Morciniec 1995). O cdigo Gray de um inteiro i pode ser obtido com o ou-exclusivo de i (expresso como um nmero ordinrio de base 2) com i/2 (arredondado para baixo). O cdigo Gray no incrementa a faixa dinmica da distncia do espao de padres, mas resulta em um mapeamento de distncia mais regular que o cdigo binrio convencional. Por causa de suas propriedades, variveis inteiras diferentes por um nvel tm exatamente uma posio do bit trocado na sua representao em cdigo Gray. Assim, em uma vizinhana muito pequena, o mapeamento da distncia melhorado monotonicamente. CMAC emprega um tipo especial de mapeamento no-linear na codicao da varivel de entrada. O resultado produzido pelo CMAC computado como uma soma de pesos selecionados. O mapeamento resulta na propriedade de que pontos muito prximos um do outro no espao de entrada compartilham alguns pesos. O cdigo gerado transformando um vetor espacial de dimenso D em um vetor no espao K dimensional, onde K um coeciente de associao arbitrariamente escolhido, sendo o principal parmetro responsvel pela sua propriedade de generalizao (Kolcz & Allinson 1994). A prescrio para codicar um inteiro x em um cdigo CMAC/Gray concatenar K strings de bits, sendo o j-simo (contado a partir de 1) calculado pela Equao 3.1, arredondado para baixo e expresso usando o cdigo Gray. kj = x+j1 K (3.1)

Isto garante uma representao em aK bits dos inteiros entre 0 e (2a 1)K (inclusive), de tal forma que se inteiros x e y diferem aritmeticamente por K ou menos, seus cdigos diferem pela distncia de Hamming |x y|; e se sua
27

Captulo 3

Padres Binrios e Sntese de Circuitos Digitais

distncia aritmtica K ou mais, sua correspondente distncia de Hamming ao menos K.

3.1.3 Hipercubos binrios


Vetores binrios podem ser representados gracamente na forma de hipercubos, onde cada vrtice do hipercubo corresponde a um vetor de determinada categoria (conforme j mencionado no Captulo 1). Na Figura 3.1 mostrado gracamente um conjunto de dados binrios de dimenso trs, classicados em duas categorias distintas (crculo e quadrado). Um vrtice (vetor binrio) que no pertence a alguma categoria denominado dont care, representado no grco por um X. Para vetores binrios de dimenso maior que 3, difcil realizar a sua representao grca, mas o princpio o mesmo.
z 100 101

110

111

000

001

010 y

011

Figura 3.1: Hipercubo de dimenso 3.

3.1.4 Espao Booleano


Suponha que n o nmero de dimenses do espao Booleano. O nmero de pontos possveis ento 2n = N . Pontos de N so naturalmente representados por n-tuplas de zeros e uns e podem ser escritos como n-bits em representao binria (por exemplo: 10010101 para n = 8). Assim, os objetos de estudo do espao {0, 1}n so vetores n-dimensionais com componentes binrios segundo (Kanerva 1988). No se deve pensar neles como nmeros inteiros, uma vez que os inteiros so como conjunto ordenado de uma dimenso. As propriedades teis do espao {0, 1}n resultam de seu grande nmero de dimenses, e so relatadas a seguir.
28

3.1 Padres Binrios

Conceitos Alguns conceitos relacionados ao espao {0, 1}n , segundo (Kanerva 1988), so apresentados: Origem, O: o ponto com todas coordenadas 0 chamado de origem. Complemento, x : a n-tupla que tem 1 onde x tem 0 e vice-versa. Norma, |x|: o nmero de 1s na representao binria de x. Diferena, x y: a diferena de dois pontos x e y a n-tupla que tem 1 onde x e y diferem e zeros caso contrrio. o ou-exclusivo de x e y tomado bit a bit: x y = x y. A diferena comutativa: x y = y x. Distncia, d(x, y): a distncia entre dois pontos x e y o nmero de dimenses na qual x e y diferem. chamada distncia de Hamming (sua raiz quadrada a distncia Euclidiana) e expressa em bits. Distncia a norma da diferena: d(x, y) = |x y|. Dois pontos de N que esto perto um do outro so ditos serem similares. Intermediariedade, (x : y : z): o ponto y est entre os pontos x e z se e somente se a distncia de x a z a soma das distncias de x a y e de y a z: d(x, z) = d(x, y) + d(y, z). Ortogonalidade, xy: ponto x ortogonal ao ponto y, ou os dois so perpendiculares ou indiferentes, se e apenas se a distncia entre os dois metade do valor de suas dimenses: d(x, y) = n/2. A distncia n/2 chamada a distncia indiferena de {0, 1}n . Se x ortogonal a y, ele tambm ortogonal ao seu complemento y (x o meio entre y e y): xy implica xy . Crculo, O(r, x): um crculo com raio r e centro x o conjunto dos pontos que esto no mximo r bits de x: O(r, x) = {y|d(x, y) r} Qualquer crculo com raio n o espao N completo (O(n, x) = N ). O espao N pode ser representado pelos vrtices da formao de cubo no espao Euclidiano n-dimensional. A distncia entre dois pontos de N o comprimento do caminho mais curto ao longo das bordas do cubo juntando os dois pontos. Quando dois pontos esto mais distantes do que um bit um do outro, h mltiplos caminhos mais curtos entre eles.
29

Captulo 3

Padres Binrios e Sntese de Circuitos Digitais

Analogia Esfrica Os vrtices de uma formao cbica n-dimensional cam na superfcie de uma esfera n-dimensional com (mtrica Euclidiana) raio n/2. Isto faz parte da analogia esfrica para o espao {0, 1}n conforme (Kanerva 1988). Como N esfrico, pode-se pensar como a superfcie de uma esfera com circunferncia 2n (utilizando distncia de Hamming). Assim, N pode ser rotacionado para mover qualquer de seus pontos para a origem. Todos pontos de N podem ser igualmente qualicados como pontos da origem. Um ponto de N e seu complemento so como dois plos com distncia n um do outro, com todo espao entre eles. Os pontos do meio entre os plos e perpendicular a eles so como o equador. Um conjunto de pontos dentro de uma dada distncia de um ponto chamado um crculo em N . Os pontos de N entre 2 pontos x e y formam um subespao de dimenso d(x, y), sendo o correspondente conjunto representado como uma linha reta na esfera (um segmento de um grande crculo). Caso y seja o oposto de x, ento o subespao entre x e y a esfera toda. Os segmentos (isto , o caminho mnimo entre 2 pontos) de N no so nicos, e tambm os crculos em N , via de regra, no so convexos. Distribuio do Espao N O nmero de pontos que esto exatamente d bits de um arbitrrio ponto x o nmero de modos para escolher d coordenadas de um total de n coordenadas, e portanto dado pelo coeciente binomial mostrado na Equao 3.2 (vide (Kanerva 1988)). n n! (n : d) = (3.2) = d!(n d)! d Assim, a probabilidade de se ter um ponto x a uma distncia d da origem mostrada pela Equao 3.3, sendo p a probabilidade de uma coordenada (bit) ser 0 ou 1 (por exemplo: p = 1/2).

n P (x) = .pd (1 p)nd d

(3.3)

A distribuio de N ento a distribuio binomial com parmetros n e p, mostrada na Equao 3.4 (Peebles 1993), sendo u a funo degrau. A mdia do binmio n/2, e a varincia n/4. A correspondente funo de densidade de probabilidade mostrada na Equao 3.5, sendo a funo impulso. n d .p (1 p)nd u(x d) Fx (x) = d d=0
30
n

(3.4)

3.1 Padres Binrios

n d fx (x) = .p (1 p)nd (x d) d d=0 Tendncia Ortogonalidade

(3.5)

Uma notvel propriedade de N que a maioria dos seus pontos ca aproximadamente a uma distncia mdia n/2 de um ponto (e seu complemento). Em outras palavras, a maioria do espao aproximamente ortogonal a qualquer ponto dado, e quanto maior for n, mais pronunciado o efeito. Isto pode ser visualizado pelo grco mostrado na Figura 3.2. Esta propriedade a base do trabalho desenvolvido por Kanerva (vide (Kanerva 1988)) no projeto do SDM (Sparse Distributed Memory).
30 n = 10 n = 100 n = 1000 25

20

pdf * n

15

10

0.1

0.2

0.3

0.4

0.5 n

0.6

0.7

0.8

0.9

Figura 3.2: Distribuio da distncia de Hamming em N em funo de n.

Distribuio do Crculo Algumas questes podem ser levantadas a respeito da distribuio dos pontos em um crculo O(r, x): Como o espao N distribudo ao redor de um ponto? Qual a rea (nmero de pontos) do crculo O(r, x)? Como os pontos do crculo so distribudos?
31

Captulo 3

Padres Binrios e Sntese de Circuitos Digitais

A rea do crculo O(r, x) o nmero de pontos que so 0, 1, 2, ..., r bits distantes de x; portanto a soma dos primeiros r + 1 coecientes binomiais: |O(r, x)| = (n : 0) + (n : 1) + ... + (n : r) Um ponto x de N tem n vizinhos que esto a 1 bit distante dele, n.(n 1)/2 que esto a dois bits distante, n.(n 1).(n 2)/3! que esto a 3 bits distante, e em geral, (n : r) que esto a r bits distante. Para valores de r que so pequenos comparados com n, o nmero cresce quase exponencialmente com r, segundo (Kanerva 1988). A distribuio do crculo que inscreve menos do que a metade do espao N (r < n/2) aproximadamente binomial.

3.2 Sntese de Circuitos Digitais


Uma das aplicaes da teoria de chaveamento resolver o problema de minimizao do nmero de portas lgicas digitais e o nmero de conexes entre portas digitais em circuitos VLSI (Very Large Scale Integration). Minimizar o nmero de entradas por porta AND e o nmero total de portas AND em um circuito VLSI anlogo a minimizar o nmero de antecedentes por regra e o nmero total de regras em uma base de regras em inteligncia articial (Jaskolski 1992). A otimizao de circuitos lgicos combinacionais passa pela modelagem da funo lgica na forma de expresso em soma de produtos (dois nveis), ou produto de somas. Esta otimizao importante pelos seguintes aspectos: permite a translao direta da forma de tabela; reduz a informao necessria para expressar qualquer funo lgica; um modo formal de processar a representao de sistemas. O objetivo do algoritmo de minimizao lgica minimizar uma cobertura F de dois nveis de uma funo f . So representados por F ON , F OF F e F DC os conjuntos on set (sada em 1), off set (sada em 0) e dc set (sada em X - dont care) da funo f , respectivamente. assumido que ao menos dois destes conjuntos so especicados como entradas para o problema de minimizao. O terceiro conjunto pode ser derivado complementando a unio dos outros, ou seja, f pode ser especicada incompletamente. Para funes completamente especicadas, F DC vazio e F OF F e F ON so usados intercambiavelmente. Em sntese de circuitos VLSI, suposto que apenas os vetores de entrada que o circuito recebe so os mesmos na descrio dos dados do circuito. Vetores de entrada que no esto nos dados de descrio do circuito so considerados condies dont care (dc set). Assim o circuito VLSI gera uma sada
32

3.2 Sntese de Circuitos Digitais

denida para vetores de entrada nos dados de descrio do circuito mas no para todos. Em classicao, se um ponto de entrada est fora do conjunto conhecido, ainda desejvel providenciar uma estimativa de qual categoria o ponto pertence. Este problema resolvido classicando o ponto como sendo do hipercubo mais prximo (e correspondente categoria) em termos de alguma mtrica de distncia como a de Hamming (Jaskolski 1992). Isto corresponde a uma forma de generalizao providenciada pelo circuito digital. A seguir apresentada uma explanao sobre denies e alguns mtodos de minimizao de funes Booleanas.

3.2.1 Denies
Um literal uma varivel de entrada complementada ou no complementada para uma funo Booleana segundo (Ercegovac, Lang, & Moreno 2000). A parte de entrada de uma funo Booleana possui valores no conjunto {0, 1, X} e representa um produto de literais. O valor X representa a condio dont care. A parte de sada da funo Booleana tem valores no conjunto {0, 1}. Um mintermo de n variveis um termo de produto de n literais, em que cada varivel aparece exatamente uma vez ou na forma no complementada ou na complementada. H 2n mintermos possveis de n variveis. Cada mintermo tem o valor 1 para uma nica atribuio das variveis, porque o produto tem o valor 1 somente quando todos os literais tem valor 1, e isto acontece para uma atribuio, uma vez que todas as outras atribuies produzem pelo menos um literal com o valor 0. Uma soma de mintermos uma soma de produtos em que todos os produtos so mintermos e nenhum mintermo repetido. Qualquer funo de chaveamento (ou tabela verdade) pode ser representada por uma soma de mintermos. Esta expresso a soma de mintermos correspondente aos elementos da representao do conjunto-um (on set) da funo. A soma de mintermos que representa uma funo Booleana nica, de forma que uma representao cannica. Um termo de produto p um implicante de uma funo f se, para qualquer atribuio para a qual p tenha o valor 1, a funo tambm tem o valor 1. Qualquer termo de produto, que aparece em uma soma de produtos que represente uma funo, um implicante dessa funo. Implicante primo (prime implicant) de uma funo um implicante que no sobreposto por qualquer outro implicante da mesma funo. Em outras palavras, um implicante primo se ele no contido por qualquer implicante da funo.
33

Captulo 3

Padres Binrios e Sntese de Circuitos Digitais

Toda soma de produtos mnima consiste em uma soma de implicantes primos, mas no necessariamente todos os implicantes primos da funo. Um implicante primo essencial um implicante primo que cobre pelo menos uma atribuio que no coberta por outro implicante primo. Para formar uma expresso mnima, todos os implicantes primos essenciais, e possivelmente alguns no essenciais so necessrios; estes ltimos devem ser selecionados para que o custo seja mnimo. A escolha de implicantes primos no essenciais no nica e, portanto, pode haver mais do que uma soma de produtos mnima. Um implicante primo essencial se existe um mintermo da funo coberto por apenas aquele implicante dentre todos os implicantes primos da funo. Funes especicadas completamente so o caso especial de funes com nenhuma condio dont care. Funes de chaveamento incompletamente especicadas podem ser representadas por duas expresses: uma correspondente aos 1s (ou 0s) da funo e a outra aos dc (valores dont care). Uma cobertura de uma funo Booleana um conjunto (lista) de implicantes que cobre todos seus mintermos. O tamanho, ou cardinalidade, de uma cobertura o nmero de seus implicantes. Dont care podem ser efetivamente usados para reduzir o tamanho de uma cobertura de uma funo incompletamente especicada. Na Figura 3.3 mostrado gracamente um exemplo de cobertura referente ao conjunto de dados binrios mostrado na Figura 3.1. Neste exemplo, a amostra Dont care forma uma cobertura com 3 outras amostras da classe crculo.
z

Figura 3.3: Exemplo de cobertura. O objetivo da minimizao lgica de dois nveis determinar uma cobertura mnima de uma funo. O objetivo da heurstica de minimizao lgica determinar coberturas mnimas. Minimizao heurstica motivada pela
34

3.2 Sntese de Circuitos Digitais

necessidade de reduzir o tamanho das formas de 2 nveis com tempo de computao e armazenamento limitados. Uma cobertura cannica mnima um conjunto de cubos de mxima assinatura que identica unicamente o conjunto de primos cobrindo cada mintermo. Uma cobertura cannica mnima pode ser computada e usada como um ponto de partida para minimizao heurstica. Uma cobertura prima aquela em que todos seus implicantes so primos.

3.2.2 Mtodos de minimizao


O objetivo primrio da minimizao lgica de dois nveis a reduo do tamanho da funo Booleana, ou pela forma de soma de produtos ou pela forma de produto de somas. O objetivo secundrio a reduo dos literais, segundo (De Micheli 1994). Minimizao lgica de sada nica e funes de mltiplas sadas seguem o mesmo princpio, mas o ltimo mais complexo. O procedimento para obter uma soma de produtos mnima de uma funo de chaveamento : 1. Determine todos os implicantes primos. 2. Obtenha os implicantes primos essenciais. 3. Se nem todos as sadas em 1 estiverem cobertas pelos implicantes primos essenciais, escolha dentre os implicantes primos restantes um conjunto que cubra as sadas em 1 no cobertas e que obtenha o custo mnimo. Existem alguns mtodos de minimizao lgica. Os mais comuns so: Exato: Quine & McCluskey, McBoole, ESPRESSO-EXACT, ESPRESSOSIGNATURES. Minimizao lgica exata ataca o problema de computar uma cobertura mnima. um problema clssico em teoria de chaveamento. A soluo do problema depende do Teorema de Quine, o qual delimita o espao de procura para uma soluo tima. Teorema de Quine: H uma cobertura mnima que prima. A diculdade de abordagem causada pelo tamanho da tabela de imn plicantes. Com n entradas, uma funo pode ter tantos quantos 3n implicantes primos e 2n mintermos. Ento um algoritmo exponencial com um problema de tamanho exponencial requer provavelmente tamanho de memria e tempo de processamento proibitivos. Heurstico (estratgia de melhoria iterativa): MINI, PRESTO, ESPRESSO (ferramenta padro), BOOM (Hlavicka & Fiser 2001; Fiser & Hlavicka 2001). Alguns minimizadores heursticos produzem coberturas primas e
35

Captulo 3

Padres Binrios e Sntese de Circuitos Digitais

mnimas as quais a cardinalidade geralmente perto do mnimo. Minimizadores heursticos computam todos os primos e utilizam algoritmos heursticos para cobrir a tabela de implicantes primos. Muitos minimizadores heursticos no computam todos implicantes primos, evitando ento o potencial gargalo do armazenamento de um grande conjunto. Em vez disto, eles computam uma cobertura prima iniciando da especicao original da funo. Esta cobertura ento manipulada modicando ou deletando implicantes at que uma cobertura com uma propriedade conveniente mnima seja encontrada. Estes minimizadores heursticos usam uma estratgia de melhoria iterativa. Minimizao lgica heurstica pode ser vista como a aplicao de um conjunto de operadores cobertura lgica, a qual inicialmente fornecida ao minimizador com o conjunto dont care (DC). A cobertura declarada ser o resultado nal da minimizao quando os operadores no podem reduzir mais o tamanho da cobertura. Os operadores mais comuns so: Expande Reduz Irredundante Essencial A seguir apresentada uma explanao sobre os mtodos Quine-McCluskey e ESPRESSO, por serem os mais comumente utilizados. Quine-McCluskey Quine-McCluskey um mtodo tabular para obter a soma de produtos mnima. Neste mtodo, utilizam-se duas fases (vide (Ercegovac, Lang, & Moreno 2000)): 1. determinao dos implicantes primos da funo, e 2. escolha de um conjunto de implicantes primos que cubra a funo dada e tenha um custo mnimo. Duas tabelas so construdas. A primeira tabela, a qual fornece os implicantes primos usando a identidade xy + xy = x, organizada da seguinte maneira: 1. A primeira coluna corresponde a uma lista de mintermos da funo, os quais so obtidos diretamente do conjunto on set. A notao atribui um
36

3.2 Sntese de Circuitos Digitais

1 a uma varivel no complementada, e 0 a uma varivel complementada. Os mintermos so agrupados de acordo com o nmero de 1s na representao binria. 2. A segunda coluna mostra os implicantes com n 1 literais. Estes implicantes so obtidos agrupando-se em pares os elementos da primeira coluna que diferem somente no valor de uma varivel. Um elemento da primeira coluna pode ser usado na formao de mais de um par. Para produzir o emparelhamento, basta examinar grupos adjacentes. A entrada na segunda coluna, correspondente a determinado par, relaciona os valores comuns dos elementos que formam o par, e um - para a varivel cujo valor difere. Os elementos da primeira coluna que participam da formao de pares so marcados com um N, o qual indica que eles no so implicantes primos. 3. A terceira coluna mostra os implicantes de n 2 literais. Isto obtido formando-se pares de elementos da segunda coluna. Para formar um par, dois elementos devem ter seus - na mesma posio, e o restante deve diferir somente em uma varivel. Como antes, os elementos da segunda que participam na formao de pares so marcados com um N, o qual indica que eles no so implicantes primos. 4. O processo continuado da mesma maneira at que mais nenhum elemento possa ser emparelhado. 5. Os implicantes primos so todos aqueles elementos que no so marcados com um N. O segundo passo do mtodo consiste em obter uma cobertura mnima, ou seja, o nmero mnimo de implicantes primos que cobre o conjunto-um. Uma segunda tabela construda para este propsito, na qual as linhas correspondem aos implicantes primos obtidos da primeira tabela, e as colunas aos elementos do conjunto-um. Para cada linha (implicante primo), marca-se com X as entradas correspondentes aos elementos do conjunto-um cobertos pelo implicante primo. Em seguida, identica-se os implicantes primos essenciais como aqueles que tm um X em uma coluna que no tem nenhum outro X. Estes implicantes primos essenciais fazem parte de qualquer cobertura, de forma que os elementos do conjunto-um que eles cobrem so eliminados (como j cobertos). Finalmente, os elementos do conjunto-um restantes so cobertos com tanto menos implicantes primos quanto possvel.
37

Captulo 3

Padres Binrios e Sntese de Circuitos Digitais

Como exemplo de utilizao do mtodo Quine-McCluskey, so apresentadas as Tabelas 3.1 e 3.2 para minimizao lgica da seguinte funo de quatro entradas: f (x3 , x2 , x1 , x0 ) = conjunto-um(0, 1, 3, 5, 7, 11, 12, 13, 14)

Tabela 3.1: Etapa 1 do mtodo Quine-McCluskey para determinao dos implicantes primos. Mintermos Prod. de 3 literais Prod. de 2 literais Prod. de 1 literal 0000N 000 01 0001N 001N 001N 0011N 0101N 011N 1100N 011 011N 0111N 101 1011N 110 1101N 110 1110N

Tabela 3.2: Etapa 2 do mtodo Quine-McCluskey para escolha dos implicantes primos. 0 1 3 5 7 11 12 13 14 000 X X 011 X X 101 X X 110 X X 110 X X 01 X X X X A soma de produtos mnima resultante : f (x3 , x2 , x1 , x0 ) = x3 x2 x1 + x2 x1 x0 + x2 x1 x0 + x3 x2 x0 + x3 x0 ou: f (x3 , x2 , x1 , x0 ) = x3 x2 x1 + x2 x1 x0 + x3 x2 x1 + x3 x2 x0 + x3 x0 O mtodo prontamente estendido para o caso em que h dont care. Estes dont care so includos no primeiro passo (para obter os implicantes primos), mas no so usados no segundo passo (para obter a cobertura mnima). O mtodo Quine McCluskey bastante direto de ser programado, porm, para problemas prticos, o nmero de implicantes primos normalmente muito grande, de forma que a obteno de uma cobertura mnima algo que
38

3.2 Sntese de Circuitos Digitais

consome muito tempo. Alm disto, este mtodo aplicvel somente a funes de sada nica, enquanto que, na prtica, necessrio considerar o caso de mltiplas sadas. Espresso Espresso (University of Texas at Austin College of Engineering 1990) um minimizador de dois nveis eciente e rpido. Ele explora os operadores enquanto efetua um renamento iterativo de uma cobertura. A sada do Espresso uma cobertura irredudante, geralmente mnima em cardinalidade. O algoritmo do Espresso se divide em algumas etapas (ou operadores) para atingir o objetivo nal: determinao da cobertura mnima. Estas etapas so: 1. Expande: Este operador utilizado por muitos minimizadores heursticos. Seu objetivo incrementar o tamanho de cada implicante de uma dada cobertura, de tal forma que implicantes de tamanho pequeno podem ser cobertos e deletados. Implicantes maximamente expandidos so primos da funo. A expanso de um implicante feito elevando um (ou mais) de seus 0s para 1. Isto corresponde a incrementar seu tamanho, e portanto cobrindo mais mintermos. Uma rpida anlise da posio do implicante no espao Booleano com respeito ao conjunto OF F permite determinar alguma possvel ou impossvel direo para expanso, mas no todas. Ento o prximo passo pesquisar por outros cubos na cobertura que poderiam ser cobertos por uma expanso especca possvel. Quando esta pesquisa nalizada, observa-se por direes de expanso que permitem ao implicante expandido sobrepor um mximo nmero de outros cubos. No m, j se ter o implicante primo tornando ele to grande quanto possvel. A questo fundamental do processo de expanso se o cubo expandido ainda vlido, isto , se ele ainda um implicante da funo f . H dois mtodos principais para este teste: Vericando pela interseo do implicante expandido com o subconjunto OF F ; Vericando pela cobertura do implicante expandido por F ON F DC . F OF F no necessrio. Muitos primos diferentes podem ser derivados pela expanso dos cubos em direes diferentes. Cada primo poderia cobrir diferentes subconjuntos de F . O principal objetivo cobrir o maior subconjunto de implicantes de F .
39

Captulo 3

Padres Binrios e Sntese de Circuitos Digitais

2. Reduz: O operador Reduz objetiva decrementar o tamanho de cada implicante de uma dada cobertura F de tal forma que uma sucessiva expanso poderia levar a uma outra cobertura de menor cardinalidade. Um implicante reduzido vlido quando, com os implicantes restantes, ele cobre a funo. Entretanto, coberturas reduzidas no so primas e o operador Reduza no garante a irredundncia da cobertura. 3. Irredundante: O operador irredundante deleta um nmero mximo de implicantes redundantes, tornando a cobertura irredundante. Um mnimo subconjunto de implicantes selecionado tal que nenhum implicante naquele subconjunto coberto pelo restante. 4. Essencial: A deteo de implicantes primos essenciais importante para ambos mtodos (exato e heurstico) de minimizao. Primos essenciais devem fazer parte de qualquer cobertura, por isto, eles podem ser extrados e armazenados enquanto o minimizador manipula os primos no essenciais. Implicantes primos essenciais so acrescentados de volta cobertura no nal do mtodo de minimizao. Espresso computa primeiro o complemento de uma cobertura para ser usado pelo operador Expande. Ento ele aplica os operadores Expande e Irredundante, os quais tornam a cobertura prima e irredundante. Depois que os essenciais so extrados, Espresso itera os operadores Reduza, Expande e Irredundante na pesquisa por coberturas irredundantes de cardinalidade decrescente. Quando nenhuma melhora pode ser alcanada, Espresso tenta reduzir e expandir a cobertura usando uma heurstica diferente. Estes passos so mostrados no Algoritmo 1. O Algoritmo 1 uma descrio simplicada do Espresso. assumido que Espresso recebe como entradas os conjuntos ON e DC, e gera o conjunto OF F por complementao. Na prtica, o programa pode aceitar quaisquer dois conjuntos entre ON , OF F e DC. A funo custo uma soma ponderada da cobertura e cardinalidade literal. A rotina torne_esparso modica o nmero de 1/0s no vetor sem afetar a cardinalidade da cobertura, para implementao em circuitos lgicos, como PLA (Programmable Logic Array). A funo ltimo aplica diferentes heursticas em ltimo caso. Espresso fornece uma cobertura mnima (conjunto mnimo dos maiores hipercubos possveis) que cobre todos os dados de treinamento de uma classe sem cobrir qualquer ponto pertencente a outra classe. assumido que todos os outros pontos so condies dont care os quais podem ser cobertos se
40

3.3 Concluso

Algoritmo 1 ESPRESSO(F ON , F DC ) F OF F = complemento(F ON F DC ) F = expande(F ON , F OF F ) F = irredundante(F, F DC ) E = essencial(F, F DC ) F =F E F DC = F DC E repita 2 = custo(F ) repita 1 = |F | F = reduza(F, F DC ) F = expande(F, F OF F ) F = irredundante(F, F DC ) at |F | 1 F = ultimo(F, F DC , F OF F ) at custo(F ) 2 F =F E F DC = F DC E F = torne_esparso(F, F DC , F OF F ) necessrio para resolver o problema de minimizao. Isto, de fato, uma generalizao (Jaskolski 1992).

3.3 Concluso
Padres binrios representam dados em forma de strings binrias. Para que uma mquina de aprendizado possa aprender alguma informao a partir de um conjunto de dados binrios, necessrio que os dados sejam codicados em um formato apropriado, de modo que a mquina possa generalizar dados desconhecidos. O mtodo de codicao CMAC/Gray apresentado como uma alternativa de codicao de padres binrios, de forma que padres semelhantes tero distncia de Hamming pequena. As caractersticas e propriedades do espao Booleano foram apresentadas, evidenciando a complexidade da anlise em um espao de alta dimenso. Algumas propriedades so difceis de assimilar devido impossibilidade de representao grca, uma vez que estas propriedades no aparecem em duas ou trs dimenses (espao de baixa dimenso). A distribuio dos pontos no espao ndimensional foi quanticada, bem como mostrada a tendncia dos pontos em se concentrarem a uma distncia de Hamming com valor n/2. Mtodos de minimizao de funes Booleanas objetivam obter a funo lgica com o menor nmero de produtos e literais a partir dos subconjuntos F ON , F OF F e F DC . Dois mtodos foram revistos: Quine-McCluskey (exato) e
41

Captulo 3

Padres Binrios e Sntese de Circuitos Digitais

Espresso (heurstico). O mtodo exato possui um custo computacional elevado para um grande conjunto de dados de entrada, enquanto o mtodo heurstico tenta minimizar esta decincia, porm sem a garantia de que se obter a funo lgica mnima (mas pelo menos prxima da mnima). Ambos mtodos podem aproveitar o subconjunto DC (dont care) para aumentar a cobertura dos implicantes da funo, diminuindo o nmero de produtos e literais necessrios para especicao da funo Booleana. Isto corresponde a um tipo de generalizao para dados de entrada no conhecidos, ou seja, dados do subconjunto F DC .

42

CAPTULO

Reconhecimento de Padres

adres so representados convencionalmente como vetores multidimensionais, onde cada dimenso uma nica caracterstica (ou atributo) (Jain, Murty, & Flynn 1999). Padres podem ser representados como valores de nmeros reais ou listas ordenadas de atributos, ou descrio de partes e suas relaes. Assim, as caractersticas dos padres so divididas nos seguintes tipos: Caractersticas quantitativas: valores contnuos, valores discretos, intervalos de valores. Caractersticas qualitativas: nominais ou no ordenadas (ex.: cor), ordinais (ex.: frio ou quente). Dentre as aplicaes das mquinas que reconhecem padres (tambm denominado classicador), pode-se citar: reconhecimento automtico da fala; identicao de manuscritos (Hastie & Simard 1997); reconhecimento de caracter ptico; identicao de seqncia de DNA (Lorena, Batista, & de Carvalho 2002); reconhecimento de face humana (Partridge 2000; Mahamud & Hebert 2003); identicao para radar. 43

Captulo 4

Reconhecimento de Padres

A tarefa de um classicador usar o vetor de caractersticas fornecido pelo extrator de caractersticas para associar o objetivo a uma categoria. Pelo fato de a classicao ser, em base, a tarefa de recuperar o modelo que gerou os padres, diferentes tcnicas de classicao so teis dependendo do tipo de modelos candidatos, a saber: reconhecimento estatstico: foca as propriedades estatsticas dos padres (geralmente expressa em densidades de probabilidade); reconhecimento neural: descendente de reconhecimento estatstico; reconhecimento sinttico: regras ou gramticas que descrevem a deciso. importante compreender a diferena entre clustering (classicao no supervisionada) e anlise discriminatria (classicao supervisionada). Em classicao supervisionada, os padres (treinamento) rotulados so usados para aprender as descries das classes e assim rotular um novo padro. Enquanto no caso de clustering, o problema agrupar uma dada coleo de padres no rotulados em clusters signicativos, ou seja, os rtulos so obtidos unicamente dos dados (Jain, Murty, & Flynn 1999). Intuitivamente, padres dentro de um cluster vlido so mais similares entre si do que os padres pertencentes a outros clusters. Clustering um problema combinatorial difcil. A sada do clustering pode ser hard (uma partio dos dados em cada grupo) ou fuzzy (onde cada padro possui um grau de pertinncia em cada cluster de sada). Em problemas de classicao, h duas abordagens distintas: uma usa o conhecimento estatstico da distribuio conjunta das amostras e de suas categorias quando possvel obt-las (mtodo paramtrico). Outra abordagem no possui nenhum conhecimento da distribuio das amostras, exceto o que pode ser inferido das amostras (mtodo no-paramtrico). A anlise padro de Bayes (mtodo paramtrico), segundo (Duda, Hart, & Stork 2000), produz um timo procedimento de deciso e uma correspondente probabilidade de erro mnimo de classicao. Talvez o procedimento de deciso no paramtrico mais simples seja a forma da Regra do Vizinho-mais-prximo. No caso de grandes amostras, esta regra simples tem uma probabilidade de erro que menor do que o dobro da probabilidade de erro da regra de Bayes (Cover & Hart 1967; Cover 1968). A seguir, so apresentados as etapas para o projeto de um classicador e de algumas tcnicas de classicao paramtricas e no paramtricas. Em seguida, alguns experimentos so realizados para classicao de dados binrios.
44

4.2 Tcnicas de Classicao Paramtricas

4.1 Projeto de um Classicador


Para o projeto de um classicador, as seguintes fases e problemas so normalmente encontrados: 1. Coleta de dados: Qual o tamanho adequado e representativo do conjunto de exemplos para treinamento e teste do sistema? 2. Escolha das caractersticas: Como combinar conhecimento prvio e dados empricos para encontrar caractersticas relevantes e efetivas? 3. Escolha do modelo: Quando rejeitar um modelo e procurar outro? Qual a expectativa do desempenho obtido por um modelo? 4. Treinamento: Qual tcnica de treinamento mais apropriada para o conjunto de dados? 5. Avaliao: importante para medir o desempenho do sistema e para identicar a necessidade de melhoramento de seus componentes. Uma vez denidas as caractersticas e parmetros do classicador, ainda permanecem pendncias do tipo: Como ajustar a complexidade do modelo? (no to simples que ele no possa explicar as diferenas entre as categorias, e nem to complexo para resultar em classicao pobre em padres novos.) A propriedade geral em reconhecimento de padro o compromisso (negociao) da complexidade da pesquisa contra a preciso. Este o dilema do projetista e que motiva o desenvolvimento de diferentes metodologias de classicao. Em geral, alta preciso de classicao e baixa taxa de reteno de dados (nmero de amostras selecionadas) implicam em melhor desempenho (Lam, Keung, & Liu 2002). Isto pode ser quanticado pelas frmulas: preciso = nmero de classicaes corretas nas amostras de teste nmero de amostras de teste nmero de prottipos aprendidos (amostras selecionadas) nmero de amostras de treinamento

taxa de reteno =

4.2 Tcnicas de Classicao Paramtricas


Uma das tcnicas de classicao paramtricas mais difundidas a Regra de Bayes, apresentada na prxima subseo. Uma funo de discriminao pode ser derivada facilmente por esta tcnica. A Regra Naive de Bayes tambm apresentada com um exemplo simples de aplicao.
45

Captulo 4

Reconhecimento de Padres

4.2.1 Regra de Bayes


Suponha que se conhea a probabilidade prvia (a priori) P (wj ) e a densidade condicional p(x|wj ) para j = 1, 2, onde x representa as variveis de entrada e w a sada (categoria) de um sistema. A densidade de probabilidade conjunta de se encontrar um padro que da categoria wj e possui caracterstica de valor x (ou seja: p(wj , x)), pode ser escrita de duas maneiras, mostradas na Equao 4.1 (vide (Duda, Hart, & Stork 2000)). p(wj , x) = P (wj |x).p(x) = p(x|wj ).P (wj ) (4.1)

Rearranjando a Equao 4.1, obtm-se a chamada frmula de Bayes (Equao 4.2). p(x|wj ).P (wj ) P (wj |x) = (4.2) p(x) onde para o caso de duas categorias, p(x) determinado pela Equao 4.3.
2

p(x) =
j=1

p(x|wj ).P (wj )

(4.3)

A frmula de Bayes pode ser expressa informalmente em palavras como mostrado pela Equao 4.4. a posteriori = verossimilhana a priori evidncia (4.4)

A frmula de Bayes mostra que observando o valor de x pode-se converter a probabilidade a priori P (wj ) para a probabilidade a posteriori P (wj |x) - a probabilidade do estado natural de wj , dado que o valor x da caracterstica tenha sido medido. Chama-se p(x|wj ) a verossimilhana de wj com respeito a x, um termo escolhido para indicar a categoria wj para a qual p(x, wj ) maior e mais parecida para ser a categoria verdadeira. O fator evidncia, p(x), pode ser visto meramente como fator de escala que garante que a probabilidade posterior soma 1. Tendo-se uma observao x para a qual P (w1 |x) maior que P (w2 |x), poderiase naturalmente ser inclinado a decidir que o estado natural real w1 . Quando observa-se um x particular, a probabilidade do erro de classicao dada pela Equao 4.5.
P (w |x) se decidir por w 1 2 P (erro|x) = P (w |x) se decidir por w 2 1

(4.5)

Para minimizar a probabilidade do erro, a regra de deciso de Bayes torna46

4.2 Tcnicas de Classicao Paramtricas

se: Decida por w1 se P (w1 |x) > P (w2 |x), seno decida por w2 . Ou a seguinte regra de deciso equivalente: Decida por w1 se p(x|w1 ).P (w1 ) > p(x|w2 ).P (w2 ), caso contrrio decida por w2 . Ento, a probabilidade do erro de classicao para a Regra de Bayes dada pela Equao 4.6. P (erro|x) = min[P (w1 |x), P (w2 |x)] (4.6)

4.2.2 Funo de Discriminao


Para o caso de taxa de erro mnima, a funo de discriminao corresponde mxima probabilidade a posteriori mostrada na Equao 4.7 ou 4.8. gi (x) = P (wi |x) gi (x) = p(x|wi ).P (wi ) (4.7) (4.8)

Remanejando todo gi (x) por f (gi (x)), onde f () uma funo monotnica crescente, o resultado da classicao no se altera. Assim, outra forma de apresentao da funo de discriminao mostrada na Equao 4.9. gi (x) = ln p(x|wi ) + ln P (wi ) (4.9)

Ou seja, para classicao por taxa mnima de erro qualquer destas funes tem resultados idnticos, mas algumas podem ser mais simples para compreender ou para computar do que outras. Se as probabilidades a priori P (wi ) so as mesmas para todas as classes, ento o termo ln P (wi ) torna-se uma constante aditiva sem importncia que pode ser ignorada.

4.2.3 Regra Naive de Bayes


Quando as relaes de dependncia entre as caractersticas usadas por um classicador so desconhecidas, geralmente faz-se a suposio simples de que as caractersticas so condicionalmente independentes dada a categoria. Isto simplica o clculo da verossimilhana, como mostrado pela Equao 4.10.
d

p(x|wj ) =
i=1

p(xi |wj )

(4.10)

47

Captulo 4

Reconhecimento de Padres

onde d a dimenso dos dados de entrada x. Esta frmula aplicada Equao 4.2 a chamada Regra Naive de Bayes. Na prtica, geralmente apresenta bons resultados, como exemplicado na subseo seguinte. Considerando ainda o problema de classicao de duas categorias nas quais os componentes do valor de caractersticas so valores binrios e condicionalmente independentes, ou seja: x = (x1 , ..., xd )T onde os componentes xi so 0 ou 1, com probabilidades dadas pela Equaes 4.11 e 4.12. pi = Pr [xi = 1|w1 ] (4.11) qi = Pr [xi = 1|w2 ] (4.12)

Assumindo independncia condicional, pode-se escrever P (x|wi ) como o produto das probabilidades para os componentes de x, mostradas nas Equaes 4.13 e 4.14.
d

p(x|w1 ) =
i=1 d

pxi .(1 pi )1xi i


x qi i .(1 qi )1xi

(4.13) (4.14)

p(x|w2 ) =
i=1

A funo de discriminao para o caso de duas classes dada pela Equao 4.15, segundo (Schalkoff 1992). g(x) = g1 (x) g2 (x) Ou de outro modo: g(x) = P (w1 |x) P (w2 |x) Assim: g(x) = p(x|w1 ).P (w1 ) p(x|w2 ).P (w2 ) (4.17) (4.16) (4.15)

Substituindo 4.13 e 4.14 em 4.17, e aplicando a funo logartmica em cada termo do lado direito da equao, obtm-se a funo de discriminao mostrada na Equao 4.18.
d

g(x) =
i=1

xi ln

pi 1 pi P (w1 ) + (1 xi ) ln + ln qi 1 qi P (w2 )

(4.18)

Assim, a regra de deciso pode ser escrita: Decida w1 se g(x) > 0 e w2 se g(x) 0.
48

4.2 Tcnicas de Classicao Paramtricas

Ento, a condio de caracterstica independente leva a um classicador linear simples (vide (Schalkoff 1992)). Geometricamente, os possveis valores para x aparecem como os vrtices de um hipercubo d-dimensional; a superfcie de deciso denida por g(x) = 0 um hiperplano que separa vrtices w1 dos vrtices w2 .

4.2.4 Exemplo da Regra Naive de Bayes


A Tabela 4.1 mostra distribuies de freqncia para as relaes entre as caractersticas e a classe no conjunto de dados do Jogo de Tnis (Hall 1999). Desta tabela, fcil calcular as probabilidades necessrias para aplicar as Equaes 4.2 e 4.10. Tabela 4.1: Dados do Jogo de Tnis. Caractersticas Temperatura Umidade quente alta quente alta quente alta mdia alta frio normal frio normal frio normal mdia alta frio normal mdia normal mdia normal mdia alta quente normal mdia alta

Exemplo 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Tempo ensolarado ensolarado nublado chuva chuva chuva nublado ensolarado ensolarado chuva ensolarado nublado nublado chuva

Vento fraco forte fraco fraco fraco forte forte fraco fraco fraco forte forte fraco forte

Classe no jogar no jogar jogar jogar jogar no jogar jogar no jogar jogar jogar jogar jogar jogar no jogar

As probabilidades para caractersticas nominais so estimadas usando contagem de freqncia calculadas dos dados de treinamento. As probabilidades para caractersticas numricas so assumidas para serem de uma distribuio normal; outra vez os parmetros necessrios so estimados dos dados de treinamento. Qualquer freqncia zero recolocada por 0.5 como a probabilim dade, onde m o nmero de exemplos de treinamento. Assim so montadas as Tabelas 4.2 4.5 tendo como referncia a Tabela 4.1. Imagine acordar de manh e desejar determinar se o dia apropriado para um jogo de tnis. Notando que o clima ensolarado, a temperatura quente, a umidade normal e o vento fraco, aplica-se as Equaes 4.2, 4.3 e 4.10 e calcula-se a probabilidade posterior de cada classe, usando probabilidades derivadas das Tabelas 4.2 4.5:
49

Captulo 4

Reconhecimento de Padres

Tabela 4.2: Ocorrncias da caracterstica Tempo. Jogar 2 4 3 9 No Jogar 3 0 2 5

ensolarado nublado chuva

5 4 5 14

Tabela 4.3: Ocorrncias da caracterstica Temperatura. Jogar 2 4 3 9 No Jogar 2 2 1 5

quente mdia frio

4 6 4 14

Tabela 4.4: Ocorrncias da caracterstica Umidade. alta normal Jogar 3 6 9 No Jogar 4 1 5 7 7 14

Tabela 4.5: Ocorrncias da caracterstica Vento. forte fraco Jogar 3 6 9 No Jogar 3 2 5 6 8 14

50

4.2 Tcnicas de Classicao Paramtricas

p(nojogar) = a

5 = 0, 357 14

p(jogar) =

9 = 0, 643 14

p(ensolarado, quente, normal, f raco|nojogar) = p(ensolarado|nojogar) a a p(quente|nojogar) a p(normal|nojogar) a p(f raco|nojogar) a 3 2 1 2 = 5 5 5 5 = 0, 0192

p(ensolarado, quente, normal, f raco|jogar) = p(ensolarado|jogar) p(quente|jogar) p(normal|jogar) p(f raco|jogar) 2 2 6 6 = 9 9 9 9 = 0, 0219

p(ensolarado, quente, normal, f raco) = 0, 0192 0, 357 + 0, 0219 0, 643 = 0, 0209

p(nojogar|ensolarado, quente, normal, f raco) = a

0, 0192 0, 357 0, 00685 = = 0, 328 0, 0209 0, 0209

p(jogar|ensolarado, quente, normal, f raco) =

0, 0141 0, 0219 0, 643 = = 0, 675 0, 0209 0, 0209

Assim, neste dia recomendvel jogar tnis, pois a probabilidade de jogar maior do que no jogar, dado as condies climticas do dia. Devido suposio de que os valores das caractersticas so independentes dentro da classe, o classicador Naive de Bayes apresenta um desempenho de
51

Captulo 4

Reconhecimento de Padres

predio desfavoravelmente afetado pela presena de atributos redundantes nos dados de treinamento. Por exemplo, se h uma caracterstica X que perfeitamente correlacionada com uma segunda caracterstica Y , ento tratandoas com signicados diferentes provoca o dobro do efeito na Equao 4.2 do que deveria ter. Assim, dependncias moderadas entre as caractersticas resultaro em impreciso na estimao da probabilidade, mas as probabilidades no so to fortes na prtica para resultar no incremento do erro de classicao (Zhang & Ling 2003). Assim sendo, o classicador Naive de Bayes ainda um timo classicador.

4.3 Tcnicas de Classicao No Paramtricas


Todas as densidades paramtricas clssicas so unimodais (possuem um nico mximo local), enquanto muitos problemas prticos envolvem densidades multimodais. Entretanto, procedimentos no paramtricos podem ser usados sem a suposio de que as formas das densidades so conhecidas. H diversos tipos de mtodos no paramtricos em reconhecimento de padres. Alguns consistem de procedimentos para estimao das funes de densidade dos padres de amostras. Se estas estimativas so satisfatrias, elas podem substituir as densidades verdadeiras para o projeto do classicador. Outras consistem de procedimentos para estimar diretamente as probabilidades a posteriori P (wj |x). Isto relativo a procedimentos de projeto no paramtricos, tais como a regra do vizinho-mais-prximo, a qual ultrapassa a estimao da probabilidade e vai diretamente s funes de deciso. Em geral, procedimentos no paramtricos utilizam alguma forma de medida de similaridade entre os dados de treinamento e os dados desconhecidos para a tomada de decises. Idealmente, no se pode computar a distncia entre dois padres at que se tenha transformado-os para serem to similares quanto possvel. Entretanto, a transformao geralmente de grande complexidade. A seguir so apresentadas as mtricas de similaridade mais comuns e a regra do vizinho-mais-prximo utilizada para classicao de padres.

4.3.1 Mtricas de Distncia


Uma mtrica D(, ) meramente uma funo que fornece uma distncia escalar entre dois padres. til pr-computar os valores de todas as n(n 1)/2 distncias tomadas aos pares para os n padres e armazen-las em uma matriz simtrica, para ento utiliz-las na classicao dos padres. Supondo trs vetores a, b e c, tem-se as seguintes propriedades para qualquer mtrica de distncia entre eles:
52

4.3 Tcnicas de Classicao No Paramtricas

no negatividade: D(a, b) 0; reexibilidade: D(a, b) = 0 se e somente se a = b; simetria: D(a, b) = D(b, a); desigualdade triangular: D(a, b) + D(b, c) D(a, c). Basicamente, uma mtrica pode ser local ou global. Mtricas locais so aquelas que variam dependendo da posio dos pontos no espao de entrada. Mtricas globais assumem que a avaliao da similaridade independente da rea do espao de entrada (Blanzieri & Ricci 1999b). H prs e contras no uso de mtricas locais. De um lado, mtricas locais geram classicadores que so sensveis a mudanas locais dos dados. Por outro lado, mtricas globais tem poucos parmetros e conseqentemente os classicadores so computacionalmente mais leves e menos suceptveis a efeitos de rudo de dados. Classicadores baseados em mtricas globais tm uma dominncia na polarizao da componente de erro, enquanto aqueles baseados em mtricas locais tendem a ter uma maior componente da varincia. O ponto crtico parece ser a grade de localidade da mtrica: escolha da localidade correta em diferentes reas do espao de entrada pode levar a uma descrio melhor das superfcies de separao. Um inconveniente encontrado em base de dados reais que caractersticas contnuas e nominais podem ser encontradas juntas no mesmo vetor de caractersticas de uma amostra. Isto complica o clculo da distncia entre diferentes padres. O problema pode ser atacado de diferentes maneiras (Blanzieri & Ricci 1999a): Ordenao: ordenando e numerando os valores das caractersticas nominais e aplicando uma mtrica contnua como a Euclidiana. Em geral esta abordagem introduz vizinhos ctcios. Discretizao: discretizando os valores numricos e aplicando uma mtrica nominal, por exemplo overlap ou VDM (descritas adiante). Com a discretizao alguma informao inevitavelmente perdida e parmetros da discretizao podem ser crticos. Combinao: combinando duas mtricas, uma nominal e uma numrica, obtendo uma mtrica heterognea. A seguir dada uma descrio de algumas mtricas mais comuns e apresentado um desenvolvimento de uma nova mtrica.
53

Captulo 4

Reconhecimento de Padres

Distncia Euclidiana A distncia Euclidiana a mtrica mais comumente empregada. A frmula Euclidiana, para distncia entre duas amostras em d dimenses, mostrada na Equao 4.19.
d
1 2

D(a, b) =

(ak bk )2

(4.19)

k=1

Distncia Manhattan A distncia Manhattan simplesmente denida pela Equao 4.20. Ela caracterizada por usar apenas a distncia horizontal e vertical para dados de duas dimenses (quando d = 2).
d

D(a, b) =
k=1

|ak bk |

(4.20)

Distncia Minkowsk Mtrica Minkowsk (ou norma Dw ) para padres d-dimensionais denida pela Equao 4.21.
d
1 w

Dw (a, b) =
k=1

|ak bk |

(4.21)

A distncia Euclidiana a norma D2 , enquanto a distncia Manhattan a norma D1 . A desvantagem do uso direto da mtrica Minkowsk a tendncia da caracterstica de escala mais alta dominar as outras. Solues para este problema incluem a normalizao de caractersticas contnuas ou outros esquemas de peso. Distncia overlap ou Hamming Quando todos os atributos so simblicos, o modo tradicional de utilizar o algoritmo do vizinho-mais-prximo aplicar a mtrica overlap a qual simplesmente conta o nmero de atributos que tem valores diferentes para dois exemplos. A distncia entre dois padres binrios em termos de nmero de elementos nos quais eles diferenciam chamada distncia de Hamming, depois que o engenheiro americano R. W. Hamming, em meados de 1950, usou esta medida para desenvolver um cdigo de correo de erro (Aleksander 1995).
54

4.3 Tcnicas de Classicao No Paramtricas

A mtrica overlap calcula a distncia entre dois padres considerando igual a zero quando os atributos so iguais, e igual a um quando os atributos so diferentes. Isto mostrado pelas Equaes 4.22 e 4.23.
d

D(a, b) =
k=1

(ak , bk )

(4.22)

0 se a = b k k (ak , bk ) = 1 se ak = bk

(4.23)

Esta mtrica pode, geralmente, falhar na captura da complexidade do domnio do problema, podendo levar a um desempenho pobre de classicao (Liu & White 1997).

Distncia HEOM Heterogeneous Euclidian-overlap Metric (HEOM) uma combinao da mtrica Euclidiana e overlap (Wilson & Martinez 1997; Wilson & Martinez 2000). Basicamente HEOM uma funo de distncia heterognea que usa diferentes funes de distncia em diferentes tipos de atributos. Ela expressa pelas Equaes 4.24 e 4.25.
d

Dheom(a, b) =
k=1

dk (ak , bk )2

(4.24)

onde:
distncia overlap se o ksimo atributo nominal dk (ak , bk ) = distncia Euclidiana se o k simo atributo numrico

(4.25)

Distncia VDM A mtrica valor diferena (Value Difference Metric - VDM) foi proposta como uma alternativa para a determinao da distncia entre dois valores simblicos (Stanll & Waltz 1986). Supondo dois padres a e b com um conjunto de atributos d, esta distncia determinada pela comparao das distribuies de probabilidades condicionais para os valores ak e bk para cada atributo k d (Payne & Edwards 1998). Isto representado pelas Equaes 4.26, 4.27 e 4.28.
d

DV DM (a, b) =
k=1

(ak , bk ).(ak )
55

(4.26)

Captulo 4

Reconhecimento de Padres

(ak , bk ) =
cC

|P (c|ak ) P (c|bk )|2 P (c|ak )2


cC

(4.27)

(ak ) =

(4.28)

onde C o conjunto de todos os rtulos das classes presentes no conjunto de dados, e P (c|ak ) a probabilidade condicional da classe de ak , isto , a probabilidade de o valor ak ocorrer no conjunto de dados para atributo k em amostras da classe c. Esta probabilidade determinada diretamente dos dados de treinamento contando o nmero de ocorrncias contendo o valor ak para o atributo k, e determinando a proporo sobre a classe c, ou seja: P (c|ak ) = padres contendo ak para classe = c padres contendo ak (4.29)

O peso () componente de VDM fornece uma indicao de como um valor de atributo discrimina entre diferentes classes. O seu valor mnimo representa uma distribuio de classe uniforme onde um valor de atributo aparece com probabilidade igual em amostras de todas as classes. O valor mximo do peso igual a 1 indica um valor de atributo que aparece em apenas uma classe. O peso usado para controlar a inuncia do atributo para cada amostra de treinamento quando determinando o vizinho-mais-prximo nal. A mtrica VDM foi originalmente desenvolvida para aplicao em problemas onde todos os atributos so simblicos. VDM , estatisticamente falando, uma medida de associao entre classes e um par de valores de atributos, porque a medida aplicada apenas a 2 valores de um atributo em qualquer instante de tempo. Isto explicitado na equao abaixo como outra forma de formulao da mtrica:
d C

DV DM (a, b) =
k=1 i=1

|p(ci |ak ) p(ci |bk )|

(4.30)

Uma proposta de modicao da mtrica VDM apresentada por (Cost & Salzberg 1993), denominada MVDM. O princpio do VDM estendido para incluir pesos (x e y ):
d

DM V DM (a, b) = a b
k=1

d(ak , bk )r

(4.31)

A incluso de pesos no MVDM baseado na idia que algumas instncias no conjunto de treinamento so mais conveis na classicao que outras. Outra verses do VDM: DVDM: tambm trata instncias com atributos numricos. feita uma
56

4.3 Tcnicas de Classicao No Paramtricas

discretizao dos atributos numricos. HVDM (Heterogeneous VDM): combina mtrica Euclidiana para caractersticas numricas com um VDM.

Distncia VDM modicada Em determinados problemas com dados binrios, o valor do atributo igual a zero em uma dada amostra no indica nenhuma informao til. Neste caso, considera-se apenas informao til se o valor do atributo um (bit ativo em 1). Para estes tipos de dados, prope-se neste trabalho de tese que a mtrica VDM possa ser simplicada. Assim, a probabilidade da amostra ser de uma determinada classe, dado que o atributo possui valor 0, pode ser denida como 0, 5 (p(ci |ak = 0) = 0, 5), considerando problemas de duas classes. Para problemas de mais classes, a probabilidade p(ci |ak = 0) dividida igualmente pelo nmero total de classes. Esta proposta de modicao na mtrica VDM testada e comparada em seo posterior.

Distncia Mahalanobis Correlao linear entre caractersticas podem tambm distorcer medidas de distncias. Esta distoro pode ser aliviada pela aplicao de uma transformao dos dados ou usando a distncia Mahalanobis, dada pela Equao 4.32. D(a, b) = (a b)1 (a b)T (4.32)

onde os padres a e b so vetores linha, e a matriz de covarincia das amostras dos padres ou a matriz de covarincia conhecida do processo de gerao dos padres. A distncia Mahalanobis associa diferentes pesos para diferentes caractersticas baseados nas suas varincias e correlaes aos pares.

Distncia de Discriminao (DD) A distncia de discriminao foi proposta por (Aleksander, Clarke, & Braga 1994) como alternativa distncia de Hamming para o projeto de neurnios binrios. A distncia explicada a seguir utilizando a mesma nomenclatura do trabalho original. Em seguida, desenvolvida originalmente uma formulao estatstica para a mtrica.
57

Captulo 4

Reconhecimento de Padres

Supondo um conjunto de treinamento armazenado como pares de entradasada: T = {(I1 , z1 ), (I2 , z2 ), ..., (It , zt )} onde cada Ij um vetor binrio de dimenso n, e cada zj 0 ou 1 para identicar a classe pertencente cada amostra. Os vetores binrios do conjunto de entrada podem ser particionados em dois conjuntos disjuntos: pares t1 que tem zj = 1 e pares t0 que possuem zj = 0 onde t1 + t0 = t. associado um coeciente de discriminao k a cada varivel (bit) de entrada ik o qual a medida da capacidade de discriminao daquela entrada como denida pelo conjunto de treinamento (Aleksander 1995). Para o clculo de k , necessrio denir os ndices ak1 e ak0 como sendo: ak1 o nmero de vezes que ik = 1 no subconjunto de treinamento t1 (quando zj = 1); e ak0 o nmero de vezes que ik = 1 no subconjunto de treinamento t0 (quando zj = 0). Assim, k dada pela Equao 4.33. k = mag onde mag[x] a magnitude de x. denido k = 1 se t1 ou t0 = 0, notando que se ambos so 0, signica que o sistema no foi treinado. Uma entrada mais discriminatria quando a ocorrncia de ik = 1 coincide totalmente com a ocorrncia de zj = 1 e no com a ocorrncia de zj = 0. Isto signica que ak1 = t1 e ak0 = 0 o qual resulta k = 1. Em contraste, h muitos modos nos quais uma entrada pode ser m discriminatria. No caso, por exemplo quando ik = 1 para exatamente a metade das instncias de zj = 0 e zj = 1, ento atk1 = atk0 = 0.5 e k = 0. Similarmente, se ik = 1 em todas amostras 1 0 de treinamento, ento atk1 = atk0 = 1 e k = 0. O mesmo vlido se ik = 0 em 1 0 todas amostras de treinamento. O valor de ak1 pode ser calculado por produto interno mostrado na Equao 4.34. ak1 = I k z =
t k Ij zj

ak1 ak0 t1 t0

(4.33)

(4.34)

j=1

onde I k um vetor coluna dos bits k de todas as entradas. Similarmente, ak0 pode ser tambm calculado como mostrado na Equao 4.35. ak0 = I k z =
58
t j=1 k Ij (1 zj )

(4.35)

4.3 Tcnicas de Classicao No Paramtricas

De posse do coeciente de discriminao k , denida uma alternativa para distncia de Hamming a qual chamada distncia de discriminao (DD). Dado dois vetores de entrada x e y representados como: x = (x1 , x2 , ..., xn ) e y = (y1 , y2 , ..., yn ), a distncia de discriminao denida como na Equao 4.36. DD(x, y) =
k=1 n

k .mag[xk yk ]

(4.36)

Ou de outra forma mostrada na Equao 4.37.


n

DD(x, y) =
k=1

xk = yk

(4.37)

Aplicando a Equao 4.37 para calcular a distncia de um ponto x origem, obtm-se a Equao 4.38.
n

DD(x, 0) =
k=1

xk = 1

(4.38)

Assim, fcil provar que para dois pontos diferentes x e y, a distncia de discriminao entre eles dada pela Equao 4.39.

DD(x, y) = |DD(x, 0) DD(y, 0)|

(4.39)

Assim possvel calcular e armazenar a distncia de cada amostra origem. De posse destes valores, possvel calcular facilmente a distncia entre quaisquer pontos tomados dois a dois. Fazendo uma nova formulao, obtm-se a Equao 4.40 a partir de ak1 nmero de amostras com ik = 1 e z = 1 = t1 nmero de amostras com z = 1
ak1 . t1

(4.40)

Dividindo o numerador e denominador da Equao 4.40 por t (total de amostras), obtm-se a Equao 4.41. ak1 = t1 nmero de amostras com ik = 1 e z = 1 nmero total de amostras t nmero de amostras com z = 1 nmero total de amostras t

(4.41)

Colocando a Equao 4.41 em forma de probabilidade, uma vez que possvel estimar a probabilidade pela freqncia, obtm-se a Equao 4.42. ak1 P [(z = 1) (ik = 1)] = = P (ik = 1|z = 1) t1 P (z = 1) Isto indica a probabilidade do bit ik ser 1, dado a classe z = 1.
59

(4.42)

Captulo 4

Reconhecimento de Padres
ak0 , t0

Fazendo o mesmo desenvolvimento para

partindo da Equao 4.43: (4.43)

ak0 nmero de amostras com ik = 1 e z = 0 = t0 nmero de amostras com z = 0 obtm-se a Equao 4.44. ak0 P [(z = 0) (ik = 1)] = P (ik = 1|z = 0) = t0 P (z = 0)

(4.44)

Assim, k pode ser escrito como indicado na Equao 4.45, simplesmente substituindo na Equao 4.33 as Equaes 4.44 e 4.42. k = |P (ik = 1|z = 1) P (ik = 1|z = 0)| (4.45)

Isto indica qual a probabilidade (chance) do bit k poder contribuir na diferenciao (discriminao) de uma classe da outra. Desenvolvendo atk0 de outra maneira, partindo da Equao 4.43 e dividindo 0 o numerador e denominador por t (total de amostras), resulta na Equao 4.46. nmero de amostras com ik = 1 e z = 0 ak0 nmero total de amostras t = (4.46) nmero de amostras com z = 0 t0 nmero total de amostras t Como t0 = t t1 , ento obtm-se a Equao 4.47. ak0 = t0 nmero de amostras com ik = 1 e z = 0 nmero total de amostras t nmero de amostras com z = 1 1 nmero total de amostras t (4.47)

Colocando em forma de probabilidade, obtm-se a Equao 4.48. ak0 P [(z = 0) (ik = 1)] = t0 1 P (z = 1) (4.48)

Recalculando k pela substituio das Equaes 4.48 e 4.42 na Equao 4.33, obtm-se a Equao 4.49, k = mag P [(z = 1) P (ik = 1)] P [(z = 0) P (ik = 1)] P (z = 1) 1 P (z = 1) (4.49)

a qual aps algumas dedues, chega-se na Equao 4.50. k = mag P [(ik = 1)|(z = 1)] P (ik = 1) P (z = 0) (4.50)

Assim, os coecientes de discriminao k podem ser calculados pelas probabilidades de ocorrncia dos k bits como mostrado pela Equao 4.45 ou 4.50. Estas duas equaes so uma contribuio deste trabalho de tese para
60

4.3 Tcnicas de Classicao No Paramtricas

a distncia de discriminao calculada pela Equao 4.36.

Distncia de Bayes Considere um problema de reconhecimento de padres de duas classes. Suponha dois exemplos (amostras) em [0, 1]n : x = (x1 , ..., xn ) y = (y1 , ..., yn ) Suponha que p(c1 |x) seja a probabilidade que o exemplo x seja da classe c1 . Ento: r(x, y) = p(c1 |x)p(c2 |y) + p(c2 |x)p(c1 |y) (4.51) a probabilidade de erro de classicao de x pela regra do vizinho-maisprximo dado que o vizinho-mais-prximo de x usando uma mtrica particular y (Blanzieri & Ricci 1999b). Tambm: r (x) = 2p(c1 |x)p(c2 |x) = 2p(c1 |x)(1 p(c1 |x)) (4.52)

a probabilidade de erro de classicao de x pela regra do vizinho-maisprximo, dado um conjunto hipottico innito. Short e Fukunaga (Short & Fukunaga 1981) mostraram que minimizando a expectativa: E[(r(x, y) r (x))2 ] (4.53)

equivalente a minimizar E[(p(c1 |x) p(c1 |y))2 ], ento a melhor mtrica : D(x, y) = |p(c1 |x) p(c1 |y)| Para problemas de mltiplas classes, o clculo da mtrica se torna:
C

(4.54)

D(x, y) =
i=1

|p(ci |x) p(ci |y)|

(4.55)

A estimao de p(ci |x) e p(ci |y) a diculdade desta mtrica. Ela pode ser estimada utilizando o teorema de Bayes: p(ci |x) = p(x|ci )p(ci ) = p(x) p(x|ci )p(ci ) p(x|ck )p(ck ) (4.56)

C k=1

Assim, o problema se reduz a estimar p(x|ck ) e p(ck ). A estimativa de probabilidade mais simples baseada em contagem de
61

Captulo 4

Reconhecimento de Padres

freqncia. Deste modo, possvel estimar p(ci ) com: p (ci ) = N (ci ) N (4.57)

onde N (ci ) o nmero de casos que so da classe ci e N o tamanho do conjunto das amostras. Infelizmente, estimativa de probabilidade baseada em freqncia resulta em desempenho pobre se o tamanho das amostras pequeno. Entretanto, o desempenho desta mtrica comparvel ao classicador de Bayes (Blanzieri & Ricci 1999a). Alm disto, a mtrica baseada em estimao de probabilidade garante um esquema natural de unicao para tratar com tipos de caractersticas nominais e numricas. Distncia MRM (Minimum Risk Metric) uma mtrica muito simples que minimiza diretamente o risco de erro de classicao (Blanzieri & Ricci 1999b). Dado um exemplo x da classe ci e um vizinho-mais-prximo y, o risco nito de erro de classicao de x dado por: r(x, y) = p(ci |x)(1 p(ci |y)) (4.58)

O risco nito total a soma dos riscos estendidos a todas as diferentes classes e dado por:
C

r(x, y) =
i=1

p(ci |x)(1 p(ci |y))

(4.59)

Minimizando diretamente o risco, obtm-se a mtrica:


C

DM RM (x, y) = r(x, y) =
i=1

p(ci |x)(1 p(ci |y))

(4.60)

Novamente, a estimao de p(ci |x) e p(ci |y) a diculdade desta mtrica. Ela pode ser estimada utilizando o teorema de Bayes, como na mtrica anterior, e assim o problema se reduz a estimar p(x|ci ) e p(ci ). Nova mtrica Prope-se neste trabalho de tese a denio de uma nova mtrica baseada nos coecientes usados para clculo da verossimilhana na equao de Bayes: p(xi |cj ). A idia parte da suposio de que a diferena absoluta entre os valores dos coecientes relativos ao mesmo atributo para duas amostras, resulta numa medida de distncia entre as amostras devido ao mesmo atributo. Considerando este clculo para todos os atributos e somando a contribuio de todos, resulta na medida de distncia total entre as duas amostras. Assim, esta nova mtrica denida como:
62

4.3 Tcnicas de Classicao No Paramtricas

D(x, y) =
i=1 j=1

|p(xi |cj ) p(yi |cj )|

(4.61)

Novamente a estimao de p(xi |cj ) e p(yi |cj ) feita por contagem de freqncia. Alguns experimentos so apresentados posteriormente com o intuito de validar a mtrica e comparar o seu desempenho com outras mtricas.

4.3.2 Regra do Vizinho-mais-prximo


Uma das mais atrativas regras de deciso no paramtricas a regra do vizinho-mais-prximo (nearest neighbor decision rule - NN) (Cover & Hart 1967). A regra do vizinho-mais-prximo bastante utilizada, principalmente por causa de sua simplicidade conceitual que leva a uma implementao direta. Este mtodo explicado a seguir com o histrico de sua evoluo. Suponha que Dn = {x1 , ..., xn } seja um conjunto de amostras rotuladas e que x Dn a amostra mais prxima a um ponto de teste x. Ento a regra do vizinho-mais-prximo para classicao de x associar a ele o rtulo associado com x . Esta regra pode ser entendida mais facilmente utilizando recursos grcos. Supondo um conjunto de dados de duas dimenses em (x 2 ), separados em duas classes: crculo e cruz. A Figura 4.1 exemplica um conjunto de dados hipottico, onde o dado identicado como asterisco representa a amostra desconhecida que deve ser classicada.

Figura 4.1: Exemplo de conjunto de dados de duas classes. Pela regra do vizinho-mais-prximo, a amostra desconhecida ser associada a mesma classe da amostra conhecida mais prxima, ou seja, crculo. A Figura 4.2 mostra a regra.
63

Captulo 4

Reconhecimento de Padres

Figura 4.2: Regra do vizinho-mais-prximo (k = 1). Pode-se dizer que esta regra de deciso foi difundida com o trabalho de Cover (Cover & Hart 1967; Cover 1968), quando foi provado que esta regra tem uma probabilidade de erro que sempre menor do que o dobro da probabilidade do erro de Bayes. Com o advento da revoluo do computador nos anos 90, em termos de memrias baratas e alta velocidade de processamento, tem ocorrido um ressurgimento das tcnicas de vizinho-mais-prximo, e tem trazido a regra NN para a dianteira como uma tcnica de classicao no paramtrica popular (Dasarathy, Snchez, & Townsend 2000). Uma variao da regra do vizinho-mais-prximo, classica x pela associao ao rtulo mais freqentemente representado entre os k exemplos mais prximos, ou seja, uma classicao feita examinando os rtulos dos k vizinhos-mais-prximos e decidindo pela maioria (regra do k-vizinho-maisprximo - kNN). A Figura 4.3 mostra o mesmo exemplo anterior usando o mtodo para k = 3. Assim a amostra desconhecida associada classe cruz. A regra do vizinho-mais-prximo simples (k = 1) seleciona wm com probabilidade P (wm |x). A regra dos k vizinhos mais prximos seleciona wm se uma maioria dos k vizinhos mais prximos so rotulados wm , um evento de probabilidade: k P (wm |x)i [1 P (wm |x)]ki i i= k+1
2

(4.62)

Em geral, quanto maior o valor de k, maior a probabilidade que wm seja selecionado. A regra dos k vizinhos mais prximos pode ser vista como uma tentativa para estimar a probabilidade a posteriori P (wi |x) das amostras. re64

4.3 Tcnicas de Classicao No Paramtricas

Figura 4.3: Regra do k vizinho-mais-prximo (k = 3). comendvel usar um alto valor de k para obter uma estimativa convel. Por outro lado, desejvel tambm que todos os k vizinhos mais prximos x estejam muito mais prximos de x para ter certeza de que P (wi |x ) aproximadamente o mesmo que P (wi |x). Isto fora a escolha de k como uma pequena frao das amostras. apenas no limite de n quando tende para innito que pode-se assegurar o comportamento da regra do k-vizinho-mais-prximo perto do timo. Ou seja, no caso assinttico, quando o nmero de amostras torna-se arbitrariamente grande, os k vizinhos mais prximos estaro perto da amostra sendo classicada (Koplowitz & Brown 1981). Uma generalizao da regra do vizinho-mais-prximo (k1-NN ) proposta por Tomek (Tomek 1976b), onde k1 vizinhos dentre os k vizinhos mais prximos (sendo 0 < k1 < k) so utilizados para decidir a classe da amostra desconhecida. Outras derivaes do kNN so propostas na literatura com objetivo de incrementar o desempenho do mtodo (Luk & Macleod 1986; Hattori & Takahashi 1999). Um dos principais inconvenientes da regra do vizinho-mais-prximo o alto custo computacional, tanto na parte de armazenamento das amostras de treinamento, quanto no clculo das distncias entre as amostras de treinamento e a amostra desconhecida. Desde que a regra do vizinho-mais-prximo seja um procedimento de pesquisa no arquivo de dados conhecidos, todas as amostras devem ser examinadas para classicar cada amostra desconhecida. Ento quando o arquivo de dados torna-se grande, armazenamento e requerimento computacional podem tornar a aplicao proibitivamente cara. Para minimizar estes problemas, Hart props a regra de deciso baseada no vizinho-mais-prximo condensado (condensed nearest neighbor - CNN ) (Hart
65

Captulo 4

Reconhecimento de Padres

1968). Nesta tcnica, o conjunto de amostras reduzido levando-se em conta a classicao incorreta das amostras de treinamento pelas prprias amostras de treinamento vizinhas. As amostras selecionadas formam o que ele denominou subconjunto consistente, ou seja, um subconjunto de amostras que quando usado como conjunto de referncia para a regra do vizinho-maisprximo, classica todas as amostras de treinamento corretamente. No garantido que o subconjunto consistente gerado pela regra de Hart seja mnimo, inclusive, a determinao do subconjunto consistente mnimo um problema de difcil soluo. Gates (Gates 1972) prope um mtodo iterativo (reduced nearest neighbor - RNN ) para reduzir o subconjunto consistente, testando por eliminao cada amostra do subconjunto consistente. Tomek props em outro trabalho (Tomek 1976c) duas modicaes na regra do vizinho-mais-prximo condensado baseado na suposio de que as amostras selecionadas so justamente aquelas prximas da fronteira de deciso da classe. Entretanto, Toussaint (Toussaint 1994) provou que um destes mtodos de Tomek no vlido. Gowda props em seu trabalho (Gowda & Krishna 1979) um algoritmo para determinao do subconjunto consistente selecionando pares de amostras mais prximas que so de classes diferentes, ou seja, amostras perto da fronteira de deciso, e posteriormente a aplicao da tcnica de reduo de Gates. Entretanto, o enfoque principal do seu trabalho era justamente a mtrica de distncia utilizada para clculo dos vizinhos mais prximos. Hamza (Hamza, Krim, & Karacali 2003) prope um algoritmo semelhante ao de Gowda que tambm diminui os dados de treinamento, mas usando o princpio da minimizao do risco estrutural como principal objetivo, semelhante ao mtodo utilizado em mquinas de vetores de suporte (Lorena & de Carvalho 2003). Wilson (Wilson 1972) em seu trabalho prope um outro mtodo que alm de reduzir a quantidade de amostras, melhora o risco de erro de classicao quando comparado regra do vizinho-mais-prximo pura (Tomek 1976a), cando o risco prximo ao risco de Bayes (risco timo). Resumidamente, este mtodo utiliza as amostras restantes do conjunto de treinamento quando retiradas as amostras pertencentes ao subconjunto consistente proposto por Hart. A convergncia (desempenho assinttico) da regra de Wilson provada por Wagner (Wagner 1973), ou seja, na medida que a quantidade de amostras aumenta, o risco de erro de classicao se aproxima ao erro de Bayes. Vrias tcnicas para reduzir a quantidade de amostras de treinamento foram propostas na literatura desde ento (Ritter, Woodruff, Lowry, & Isenhour 1975; Kovcs & Guerrieri 1991; Aha, Kibler, & Albert 1991; Dasarathy 1994; Kuncheva & Bezdek 1998; Hattori & Takahashi 2000). Algumas destas tcnicas propem a substituio por amostras articiais geradas a partir das
66

4.3 Tcnicas de Classicao No Paramtricas

amostras de treinamento para aplicao da regra do vizinho-mais-prximo (Chang 1974; Geva & Sitte 1991; Chaudhuri, Murthy, & Chaudhuri 1994). Outras tcnicas misturam as propostas de seleo de amostras (ltragem) e abstrao (substituio) (Lam, Keung, & Liu 2002). Ainda outros mtodos de seleo utilizam tcnica de quantizao vetorial (Xie, Laszlo, & Ward 1993; Yen, Young, & Nagurka 2004). Algumas propostas de melhoramento das tcnicas de condensao e classicao pela regra do vizinho-mais-prximo baseadas em mtodos heursticos aparecem na literatura (Snchez, Barandela, Alejo, & Marqus 2001; Wu, Ianakiev, & Govindaraju 2002). Comparaes entre os mtodos baseados na regra do vizinho-mais-prximo so realizados (Dasarathy, Snchez, & Townsend 2000; Wilson & Martinez 2000), alm de comparaes com mquinas de vetores de suporte (Vincent & Bengio 2001). O desempenho da regra do vizinho-mais-prximo tambm depende diretamente da mtrica de distncia utilizada. Um estudo mais aprofundado da inuncia da mtrica de distncia para o desempenho da regra do vizinho-maisprximo foi realizado por Short (Short & Fukunaga 1981). O melhoramento do desempenho em classicao baseada na regra do vizinho-mais-prximo pode ser obtido pela escolha apropriada da medida de distncia. Vrios tipos de mtricas so propostas na literatura para utilizao com a regra do vizinhomais-prximo com o intuito de melhorar o desempenho do mtodo (Gowda & Krishna 1979; Fukunaga & Flick 1984; Payne & Edwards 1998; Weinshall, Jacobs, & Gdalyahu 1999; Avesani, Blanzieri, & Ricci 1999; Peng, Heisterkamp, & Dai 2003; Xing, Ng, Jordan, & Russell 2003). Algumas tcnicas utilizam mtricas adaptativas que dependem diretamente das amostras de treinamento para clculo das distncias (Dudani 1976; Aleksander, Clarke, & Braga 1994; Hastie & Tibshirani 1996; Ricci & Avesani 1999; Paredes & Vidal 1998; Paredes & Vidal 2000; Domeniconi, Peng, & Gunopulo 2000; Peng, Heisterkamp, & Dai 2002; Domeniconi & Gunopulos 2002). Outro problema que interfere no desempenho da regra do vizinho-maisprximo a dimensionalidade das amostras de treinamento. A taxa de convergncia do classicador pela regra do vizinho-mais-prximo diminui dramaticamente na medida em que a dimensionalidade do espao de caractersticas incrementa (Snapp, Psaltis, & Venkatesh 1991). Algumas tcnicas so propostas na literatura na tentativa de minimizar este problema (Nene & Nayar 1997; Liu, Moore, & Gray 2004). A seguir descrita a inuncia dos atributos para a regra do vizinho-maisprximo. No captulo seguinte, so detalhados os mtodos presentes na literatura para diminuir a quantidade de amostras de treinamento e conseqentemente o custo computacional da regra de deciso pelo vizinho-mais-prximo.
67

Captulo 4

Reconhecimento de Padres

Inuncia dos Atributos Um atributo (ou caracterstica) de uma amostra irrelevante se ele no contribui em nada para a tarefa de classicao do padro. A regra do vizinhomais-prximo sensvel a incluso de atributos irrelevantes no conjunto de dados. Geralmente, o desempenho da classicao degrada com o incremento de atributos irrelevantes. A seleo de atributos um processo de identicao do subconjunto de atributos relevantes dentre os atributos presentes no conjunto de dados. Algumas tcnicas de implementao da regra do vizinho-mais-prximo utilizam pesos para identicar atributos irrelevantes, de tal forma que atributos irrelevantes contribuem pouco para a tarefa de classicao. Pesos dos atributos so determinados avaliando o algoritmo do vizinhomais-prximo nos dados de treinamento. Um vetor de pesos de atributo gerado inicialmente com valores iguais para todos os atributos. A cada padro de treinamento que avaliado, os pesos so ajustados de tal forma a penalizar os pesos dos atributos que produzem classicao errada, e incrementar os pesos dos atributos que produzem classicao correta. O resultado dos pesos pode ser usado para determinar quais atributos devem ser mantidos no subconjunto de atributos, e quais devem ser descartados.

68

4.3 Tcnicas de Classicao No Paramtricas

4.3.3 Experimentos com dados binrios


Foram realizados alguns experimentos com o classicador baseado na regra dos k vizinhos mais prximos (kNN) utilizando dados binrios como entrada, com o objetivo de testar tanto o mtodo kNN quanto algumas das mtricas j descritas. Inicialmente so mostrados os detalhes e resultados obtidos com dados gerados articialmente, e em seguida com dados de problemas reais. Na prxima seo do texto apresentada uma sntese dos resultados obtidos. Dados sintticos Foram geradas articialmente 2974 amostras de valores binrios com 24 bits cada, divididas em duas classes (0 e 1). Na Figura 4.4 apresentado o histograma dos dados gerados para cada classe de dados, levando em conta a freqncia com que cada bit est ativado (nvel lgico 1). Observa-se que h uma tendncia na preferncia de ativao de alguns bits, diferente para cada classe. Para os dados gerados para a classe 0, os bits prximos de 5 e 18 tem uma freqncia maior de ativao. Para os dados gerados para a classe 1, os bits prximos de 12 tem uma freqncia maior de ativao.
Classe 0
800 600 400 200 0 0

Frequncia

10

15

20

25 Bit

Classe 1
400 300 200 100 0 0

Frequncia

10

15

20

25 Bit

Figura 4.4: Histograma dos dados sintticos. A ordem de armazenamento das amostras aleatria, podendo ser de qualquer classe. Do total de amostras, 2380 (80%) foram utilizadas como refern69

Captulo 4
95

Reconhecimento de Padres

90

Acertos [%]

85

80 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 75 0 2 4 6 8 10 k 12 14 16 18 20 22

Figura 4.5: Nmero mdio de acertos do classicador kNN em funo de k, utilizando diferentes mtricas na soluo do problema de dados sintticos. cia para o classicador kNN (treinamento), e 594 (20%) foram reservadas para teste. A gerao destas amostras foi repetida 10 vezes, formando 10 conjuntos de amostras articiais de treinamento e teste. O grco 4.5 apresenta os resultados obtidos pelo classicador kNN para os dados de teste em cada mtrica, em funo do parmetro k (foram utilizados valores mpares para k entre 1 e 21. Conforme mostrado no grco, o desempenho do classicador kNN foi melhor utilizando a mtrica de distncia de Bayes, enquanto o pior desempenho foi obtido com a mtrica overlap. A nova mtrica proposta neste trabalho de tese obteve um desempenho mdio entre a pior e melhor mtrica. A mtrica VDM modicada obteve resultados melhores que a VDM original para baixos valores de k (k < 12), enquanto que o inverso observado para valores mais altos de k (k > 12). Dados caracteres manuscritos Neste problema foi utilizado um conjunto de amostras de uma base de dados de domnio pblico (UCI Repository of Machine Learning Databases and Domain Theories) da Universidade da Califrnia (Blake & Merz 1998), referente a imagens digitalizadas de caracteres numricos manuscritos (Optical Recognition of Handwritten Digit). Na Figura 4.6 so mostradas algumas amostras de caracteres manuscritos do banco de dados. Esta base de dados possui as seguintes caractersticas:
70

4.3 Tcnicas de Classicao No Paramtricas

Cada amostra compreende uma matriz 32x32 de bits {0 ou 1}, ou 1024 bits em forma de vetor. Cada amostra classicada como sendo uma dentre 10 classes (correspondente imagem dos caracteres de 0 a 9). O conjunto total de dados possui 1934 amostras, das quais 189 correspondem ao caracter manuscrito 0. A ordem das amostras aleatria.

Figura 4.6: Exemplos de amostras de caracteres manuscritos digitalizados. Neste trabalho foi utilizado apenas o problema da classicao do dgito 0 para efeito de simplicao. Assim o resultado possui um valor binrio: classe 1 (dgito 0) ou classe 0 (qualquer outro dgito). Na Figura 4.7 mostrado o histograma da freqncia de ativao de cada bit (nvel lgico 1 de cada bit do conjunto de dados). Do conjunto original de dados, 386 amostras (20%) foram reservadas para teste. O restante dos dados (1548 amostras - 80%) foram utilizadas para treinamento do classicador kNN. O grco 4.8 apresenta os resultados obtidos pelo classicador kNN em cada mtrica, em funo do parmetro k. Conforme mostrado no grco, o desempenho do classicador kNN foi melhor utilizando a mtrica de distncia overlap, empatando com a nova mtrica proposta. As outras mtricas
71

Captulo 4
Classe 0
2000 1500 Frequncia 1000 500 0 0

Reconhecimento de Padres

100

200

300

400

500

600

700

800

900

1000 Bit

Classe 1
200 150 Frequncia 100 50 0 0

100

200

300

400

500

600

700

800

900

1000 Bit

Figura 4.7: Histograma dos dados dos caracteres manuscritos. obtiveram um resultado bem prximo, excetuando a mtrica de Bayes que obteve um resultado pior. A mtrica VDM modicada obteve um resultado ligeiramente melhor que a VDM original para baixos valores de k (k < 11), entretanto o inverso notado para valores superiores de k (k > 13). Dados do problema Gene Este problema se refere a deteco de limites intron/exon (junes splice) em seqncias de nucleotide (Prechelt 1994). De uma janela de 60 elementos da seqncia do DNA, deve-se decidir quando o meio um limite intron/exon (donor), ou um limite exon/intron (acceptor), ou nenhum destes. Cada nucleotide, o qual um atributo nominal de 4 valores, identicado por duas entradas binrias. H 25% de donors e 25% de acceptors no conjunto de dados. So caractersticas do conjunto de dados do problema Gene: nmero de entradas booleanas: 120 nmero de sadas booleanas: 3 nmero de exemplos: 3175 Para efeito de simplicao foi aplicado apenas o problema de deteco da existncia de um limite, independente que seja um donor ou um acceptor.
72

4.3 Tcnicas de Classicao No Paramtricas


100

99.8

99.6

99.4

99.2 Acertos [%]

99

98.8

98.6

98.4

98.2

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes

98

10 k

12

14

16

18

20

22

Figura 4.8: Nmero mdio de acertos do classicador kNN em funo de k, utilizando diferentes mtricas na soluo do problema dos caracteres manuscritos. Assim, foi nomeado classe 0 para as amostras que contenham um limite, e classe 1 para amostras que no possuem um limite. A Figura 4.9 apresenta o histograma de freqncia de ativao (nvel lgico 1) de cada bit do conjunto de dados separados para cada classe. Devido a existncia de amostras ambguas, ento o conjunto total foi reduzido para 2989 amostras. Destas, 2391 (80%) foram separadas para treinamento do kNN, e o restante (598 amostras, 20%) para teste. O grco 4.10 apresenta os resultados obtidos pelo classicador kNN em cada mtrica, em funo do parmetro k para o problema de identicao de limites em genes. Conforme mostrado no grco, o desempenho do classicador kNN foi melhor utilizando a nova mtrica proposta. A mtrica VDM possui um desempenho semelhante para baixos valores de k (k < 7), mas para valores superiores de k (k > 7) esta mtrica tem seu desempenho ligeiramente inferior melhor mtrica. A VDM modicada teve seu desempenho piorado em relao a VDM original. Por sua vez, a mtrica overlap obteve o pior desempenho para este problema. Dados do corao Neste problema foi utilizado um conjunto de amostras de uma base de dados de domnio pblico (UCI Repository of Machine Learning Databases and Domain Theories) da Universidade da Califrnia (Blake & Merz 1998). O con73

Captulo 4

Reconhecimento de Padres

Classe 0
1500

Frequncia

1000

500

0 0

20

40

60

80

100

120 Bit

Classe 1
1500

Frequncia

1000

500

0 0

20

40

60

80

100

120 Bit

Figura 4.9: Histograma dos dados do problema Gene.

95

90

85 Acertos [%] 80 75

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 2 4 6 8 10 k 12 14 16 18 20 22

70

Figura 4.10: Nmero mdio de acertos do classicador kNN em funo de k, utilizando diferentes mtricas na soluo do problema de dados de genes.

74

4.3 Tcnicas de Classicao No Paramtricas

junto de dados descreve o diagnstico cardaco de imagens de tomograa computadorizada por emisso de prton simples (SPECT - Single Proton Emission Computed Tomography). Cada um dos pacientes classicado dentre duas categorias: normal (classe 1) e anormal (classe 0). A base de dados do conjunto de 267 imagens SPECT foi processada para extrair as caractersticas que sumarizam as imagens SPECT originais. Como resultado, 44 caractersticas foram criadas para cada paciente. O padro foi processado posteriormente para obter 22 padres de caractersticas binrias. So caractersticas do conjunto de dados do problema do corao: nmero de entradas booleanas: 22 nmero de sadas booleanas: 1 nmero de exemplos: 267 nmero de exemplos da classe 0: 55 nmero de exemplos da classe 1: 212 A Figura 4.11 apresenta o histograma de freqncia de ativao (nvel lgico 1) de cada bit do conjunto de dados separados para cada classe. Das 267 amostras, apenas 210 foram utilizadas pois 57 amostras possuam resultados ambguos. Para o classicador kNN, 168 (80%) amostras foram utilizadas como referncia. Para realizao dos testes, 42 (20%) amostras foram reservadas. O grco 4.12 apresenta os resultados obtidos pelo classicador kNN em cada mtrica, em funo do parmetro k para o problema do corao. Conforme mostrado no grco, o desempenho do classicador kNN variou bastante, no s em funo do valor de k, como tambm em funo da mtrica escolhida. Para valores mais altos de k (k > 7), a mtrica de Bayes obteve o melhor desempenho. Para valores especcos de k (k = 5 e k = 7) a nova mtrica proposta obteve o melhor resultado. A mtrica de pior desempenho para este problema foi a VDM. A VDM modicada apresentou uma melhora em relao a VDM original. Dados do cogumelo Foi utilizado um conjunto de amostras de uma base de dados de domnio pblico (Proben1) prprio para ser empregado com Redes Neurais na soluo de problemas de classicao (Prechelt 1994). O problema escolhido referente classicao de cogumelos como venenosos ou no venenosos, levando em conta uma srie de atributos. Esta base de dados possui as seguintes caractersticas:
75

Captulo 4

Reconhecimento de Padres

Classe 0
12 10 Frequncia 8 6 4 2 0 0 2 4 6 8 10 12 14 16 18 20 22 Bit

Classe 1
150

Frequncia

100

50

0 0

10

12

14

16

18

20

22 Bit

Figura 4.11: Histograma dos dados do problema do corao.

90

89

88

87

86 Acertos [%]

85

84

83

82

81

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 2 4 6 8 10 k 12 14 16 18 20 22

80

Figura 4.12: Nmero mdio de acertos do classicador kNN em funo de k, utilizando diferentes mtricas na soluo do problema de dados do corao.

76

4.3 Tcnicas de Classicao No Paramtricas

Cada amostra compreende 125 bits em forma de vetor. Cada grupo de bits representa uma caracterstica do cogumelo como: forma, cor, odor, habitat, etc. Cada amostra classicada como sendo 0 (no venenoso) ou 1 (venenoso). O conjunto total de 8124 amostras, sendo que 4208 so de cogumelos no venenosos, e 3916 so de cogumelos venenosos. A ordem das amostras aleatria.

A Figura 4.13 apresenta o histograma de freqncia de ativao (nvel lgico 1) de cada bit do conjunto de dados separados para cada classe. Das 8124 amostras originais, 6500 (80%) foram separadas para treinamento do kNN, e o restante (1624 amostras, 20%) para teste.
Classe 0
5000 4000 Frequncia 3000 2000 1000 0 0 20 40 60 80 100 120 Bit

Classe 1
5000 4000 Frequncia 3000 2000 1000 0 0 20 40 60 80 100 120 Bit

Figura 4.13: Histograma dos dados do cogumelo. O grco 4.14 apresenta os resultados obtidos pelo classicador kNN em cada mtrica, em funo do parmetro k para o problema do cogumelo. Conforme mostrado no grco, o desempenho do classicador kNN foi melhor utilizando a mtrica overlap, seguido de perto pela nova mtrica e a VDM modicada que empatam com a melhor mtrica para k < 10. A mtrica de Bayes resultou em um desempenho inferior em relao s outras mtricas.
77

Captulo 4
100

Reconhecimento de Padres

99.9

99.8

99.7

99.6 Acertos [%]

99.5

99.4

99.3

99.2

99.1

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 2 4 6 8 10 k 12 14 16 18 20 22

99

Figura 4.14: Nmero mdio de acertos do classicador kNN em funo de k, utilizando diferentes mtricas na soluo do problema de dados do cogumelo.

Tabela 4.6: Sntese dos resultados.


Problema Articial Caracter Gene Corao Cogumelo Mtrica Bayes overlap,Nova VDM,Nova Bayes overlap kNN k Acertos (%) 19 92,91,3 1 99,90,1 3 92,81,2 21 88,11,9 1 1000 MLP Acertos (%) 92,81,0 99,70,2 86,31,1 86,24,3 1000 SVM Acertos (%) 92,80,8 99,80,1 87,61,1 88,11,9 1000

4.3.4 Sntese dos Resultados


A Tabela 4.6 apresenta um resumo dos resultados obtidos pelo mtodo kNN na soluo dos problemas anteriores com dados binrios de entrada. So apresentados a melhor mtrica, o melhor valor do parmetro k e o maior ndice de acertos obtidos para os dados de teste em cada problema. Alm disto, so mostrados os resultados obtidos para os mesmos problemas utilizando dois outros mtodos: Rede Neural (Multilayer Perceptron - MLP) (Haykin 2001) e Mquina de Vetores de Suporte (Support Vector Machine - SVM)(Vapnik 1998). Cabe uma observao de que para validao no treinamento da Rede Neural, so reservados 20% dos dados de treinamento para este m. Observa-se que o mtodo kNN possui um desempenho comparvel aos mtodos MLP e SVM, sendo que em alguns problemas foram obtidos resultados superiores.
78

4.4 Concluso

4.4 Concluso
Reconhecimento de padres uma das principais tarefas de uma mquina de aprendizado. Se conhecida a distribuio dos dados de treinamento (amostras conhecidas), um mtodo paramtrico de reconhecimento (como a Regra de Bayes) torna-se a melhor soluo para o problema. Entretanto, na maior parte das vezes no se conhece a distribuio das amostras de treinamento e mtodos no paramtricos podem ser empregados (como a Regra do Vizinho-mais-prximo) na tentativa de se obter uma soluo que se aproxima da tima. Foi apresentada a formulao da Regra de Bayes, juntamente com uma possvel simplicao (Regra Naive de Bayes) baseada na independncia das caractersticas das amostras de treinamento. Geralmente esta simplicao no decrementa signicativamente o desempenho do classicador, como demonstrado a partir de um exemplo. Mtodos no paramtricos dependem de uma medida de distncia (ou similaridade) entre as amostras de treinamento. Assim, foram apresentadas algumas mtricas de distncias mais comuns, que tratam de caractersticas numricas e nominais. A Distncia de Discriminao (Aleksander, Clarke, & Braga 1994) foi detalhadamente apresentada e desenvolvida uma formulao estatstica original para ela. Foi proposta uma modicao na mtrica VDM com o objetivo de melhorar o desempenho do classicador kNN para determinados tipos de dados. Foi tambm proposta uma nova mtrica baseada nos coecientes de clculo da verossimilhana da equao de Bayes, que se mostrou ecaz quando utilizada pela regra do vizinho-mais-prximo, conforme observado nos resultados dos experimentos. Algumas mtricas apresentaram os melhores resultados para alguns problemas, mas para outros problemas as mesmas mtricas apresentaram os piores resultados. A nova mtrica proposta no apresentou o pior desempenho para nenhum dos problemas utilizados nos experimentos, sendo assim mais adequada para problemas em geral. A Regra do Vizinho-mais-prximo foi descrita, juntamente com suas vantagens e desvantagens. Um histrico do desenvolvimento desta tcnica nos ltimos 30 anos tambm foi apresentado. Alguns experimentos com o classicador kNN utilizando dados binrios foram realizados para comparar as mtricas apresentadas. Observou-se que, dependendo da mtrica escolhida e do valor do parmetro k adotado, o desempenho do classicador kNN pode ser signicativamente melhorado. Entretanto, a melhor escolha da mtrica no bem denida para cada tipo de problema. Tambm observou-se que o melhor desempenho obtido no kNN se compara aos mtodos de classicao baseados em Rede Neural Articial e Mquina de Vetores de Suporte.
79

Captulo 4

Reconhecimento de Padres

80

CAPTULO

Seleo das Amostras

regra do vizinho-mais-prximo e sua extenso a k vizinhos combinam sua simplicidade conceitual com o fato de que seu erro assinttico (tamanho de amostras innito) menor do que o dobro do erro de classicao de Bayes. Entretanto, para um grande conjunto de amostras de alta dimenso, o uso desta metodologia em aplicaes reais torna-se computacionalmente pesado, devido ao grande nmero de distncias a serem computadas para cada amostra de teste. Alm disto, o conjunto de treinamento pode conter rudo ou amostras rotuladas erradas o que usualmente leva a diminuir o seu desempenho (Dasarathy, Snchez, & Townsend 2000; Snchez, Barandela, Marqus, Alejo, & Badenas 2003). Neste captulo, so descritas as principais tcnicas utilizadas para sele-

cionar as amostras de treinamento que melhor identicam o problema, de forma a poupar tanto o custo de armazenamento quanto o custo de processamento dos dados. Em seguida, apresentada uma nova proposta de metodologia de seleo de amostras baseada na regra do vizinho-mais-prximo. Finalmente so apresentados alguns experimentos realizados e os resultados obtidos com a tcnica proposta.

5.1 Mtodos de Seleo de Amostras


Para combater o problema de armazenamento e custo computacional, so propostos na literatura alguns esquemas para condensar os dados originais (tambm referenciados na literatura como reduo, renamento, edio, prprocessamento e seleo de prottipos), de tal forma que poucos vetores de dados necessitam ser armazenados (Wilson & Martinez 2000). 81

Captulo 5

Seleo das Amostras

Duas metodologias distintas tm sido propostas para minimizar estes problemas (Lam, Keung, & Liu 2002): Gerao de prottipos ou abstrao: cria um novo conjunto de amostras, ou pela gerao de prottipos articiais que resumem caractersticas representativas de instncias similares (Lam, Keung, & Liu 2002), ou usando mdias de peso ajustveis do conjunto de treinamento original. Seleo de prottipos ou ltragem: seleciona um subconjunto particular dos prottipos e aplica a regra do vizinho-mais-prximo usando apenas as amostras selecionadas. Tcnicas de ltragem reduzem o conjunto de dados retendo instncias representativas do conjunto original dos dados. Dois mtodos existem nesta linha: Algoritmos de reduo ou condensao para seleo do subconjunto mnimo de prottipos que levam aproximadamente ao mesmo desempenho que a regra do vizinho-mais-prximo usando todo o conjunto de treinamento. Algoritmos de edio que eliminam prottipos rotulados errados do conjunto original e limpam a sobreposio entre regies de classes diferentes. Estas tcnicas tendem a oferecer melhoramento em desempenho. Entretanto, a natureza heurstica de muitos algoritmos de reduo contrasta com o forte fundamento estatstico da regra do vizinho-mais-prximo (Dasarathy, Snchez, & Townsend 2000). Desde que edio usada para limpar amostras rotuladas erradas e eliminar os prottipos sobrepostos (Toussaint 1994) do conjunto de treinamento, o principal objetivo aumentar a preciso de reconhecimento produzindo um conjunto esterelizado. O fato que uma vantagem computacional pode ser ganha um benefcio secundrio. Como resultado, a reduo do conjunto de dados devido a edio muitas vezes pequena quando comparado aos mtodos de condensao, mas a preciso de reconhecimento para conjunto de treinamento editado melhor. Condensao, entretanto, dene o mtodo que recupera a fronteira de deciso do vizinho-mais-prximo com um subconjunto idealmente mnimo de prottipos. utilizado primariamente com o propsito de reduzir o nmero de amostras para ganhar uma vantagem computacional. Ainda que isto seja feito de modo a minimizar a mudana na preciso do reconhecimento, uma caracterstica infeliz de muitos procedimentos de condensao que eles podem geralmente resultar em pobre desempenho de reconhecimento marginal.
82

5.1 Mtodos de Seleo de Amostras

Enquanto edio muitas vezes prefervel ao analista, condensao de mais prtica importncia ao engenheiro desenvolvendo um sistema de reconhecimento de padres para emprego em aplicaes em tempo real. Usando edio e condensao em conjunto, a melhora de reconhecimento induzido pela edio pode ser combinada com a maior reduo promovida por ferramentas de condensao para produzir um conjunto que signicantemente menor do que o original com uma capacidade de reconhecimento similar ou melhor. Normalmente, edio aplicada seguida por condensao, a qual a ordem natural baseado nos objetivos de limpar e reduzir (Dasarathy, Snchez, & Townsend 2000). Apesar de ser observado que as regras de edio do vizinho-mais-prximo so assintoticamente timas, elas podem levar a resultados ruins de classicao se o nmero de prottipos no for grande o bastante comparado dimensionalidade intrnseca do espao de caracterstica. Isto torna edio um problema mais crtico do que condensao. A justicativa para o mtodo do conjunto condensado que se um ponto classicado errado pela regra do vizinho-mais-prximo, ele provavelmente est perto da fronteira de deciso, assim ele deve fazer parte do conjunto condensado (Toussaint 1994). Entretanto, a regra do vizinho mais-prximo condensado guarda muitos pontos, que no esto perto da fronteira de deciso por causa de seu passo de inicializao arbitrrio. As tcnicas de condensao (Toussaint 1994) tambm apresentam algumas desvantagens as quais so: Em geral, estas tcnicas so seqenciais em natureza e o subconjunto condensado resultante uma funo da ordem na qual o conjunto de treinamento processado; O conjunto condensado determina apenas aproximadamente a fronteira de deciso original determinada pelo conjunto de treinamento; Geralmente so utilizadas heursticas que complicam os algoritmos e dicultam a anlise; Os mtodos geralmente resultam em um conjunto de treinamento consistente (um conjunto condensado que classica corretamente todos objetos do conjunto de treinamento), em vez de produzir um conjunto condensado consistente em fronteira de deciso (um conjunto condensado que dene precisamente a mesma fronteira de deciso do conjunto original de treinamento). Nas sees que se seguem, so apresentados os mtodos de abstrao e ltragem de amostras encontrados na literatura.
83

Captulo 5

Seleo das Amostras

5.1.1 Abstrao de Instncias


Uma abordagem para encontrar instncias representativas o mtodo de abstrao das instncias o qual gera prottipos por abstrao das instncias originais. Prottipos articiais gerados por tcnicas de abstrao de instncias podem ser mais representativos do que prottipos obtidos por tcnicas de ltragem. Tcnicas de abstrao de instncias usualmente removem pontos da borda de tal forma que fronteiras de deciso mais suaves podem ser obtidas. Tcnicas de abstrao tipicamente possuem uma maior capacidade de generalizao e maior taxa de reduo de dados do que tcnicas de ltragem (Lam, Keung, & Liu 2002). Atravs de abstrao de instncias, as caractersticas mais comuns de um conceito podem ser aprendidas e o conceito aprendido tem menos risco para overt do que utilizando os dados originais. Mtodos de abstrao podem generalizar instncias com classicao perdida em regies compactas combinando-as com outras instncias, obtendo melhor tolerncia a rudos do que apenas selecionando-as como prottipos. Entretanto, instncias articiais geradas por abstrao podem no ser possveis de serem amostradas realmente. Assim, prottipos gerados so menos compreensveis do que aqueles selecionados por mtodos de ltragem. Por exemplo, no fcil encontrar uma interpretao para valores mdios de caractersticas discretas. Alm disto, abstrao simples tambm falha para descrever conceitos formados por fronteiras de deciso cncavas. Por estes motivos, esta tcnica no foi a escolhida para utilizao neste trabalho de tese e, por isto, no ser detalhada.

5.1.2 Filtragem de Instncias


Mtodos de ltragem so usualmente simples e rpidos. Apesar de sua simplicidade, alguns mtodos de ltragem podem obter preciso comparvel ou superior ao classicador vizinho-mais-prximo puro. Como as tcnicas de ltragem selecionam instncias representativas do conjunto original, o conceito aprendido representado de maneira simples comparado s instncias originais. Ento o conceito (ou idia) aprendido facilmente compreendido. Desde que regras de ltragem podem ser projetadas para ltrar instncias diferentes tais como borda (ou margem), pontos centrais e rudo, ento podem ser facilmente aplicadas diferentes regras simultneas ou separadas para ltrar instncias (Lam, Keung, & Liu 2002). Entretanto, mtodos de ltragem de instncias tm algumas desvantagens. Eles assumem que exemplos ideais podem ser encontrados no conjunto original dos dados, o que limita a potncia dos mtodos de ltragem. A potncia
84

5.1 Mtodos de Seleo de Amostras

de generalizao limitada pela seleo apenas dos dados originais, e alguns mtodos tambm so sensveis ordem de apresentao de instncias. O mtodo de ltragem pela reteno de instncias fora da margem descarta instncias classicadas erradas pela regra do k vizinho-mais-prximo. Como rudo raramente classicado corretamente pelos seus vizinhos, tambm ele usualmente removido. Este mtodo tambm remove instncias da margem pois elas usualmente possuem vizinhos de diferentes classes, resultando em limites de classes mais suaves. Ele mantm principalmente instncias intermedirias e centrais. Geralmente, a taxa de reduo de dados baixa comparada com abstrao de instncias. O mtodo de ltragem pela seleo do subconjunto consistente possui uma taxa de reduo de amostras mais elevado, mas a generalizao resultante menor quando comparada ao mtodo anterior. Subconjunto consistente de um conjunto de amostras um subconjunto o qual, quando usado como um conjunto de referncia armazenado para a regra do vizinho-mais-prximo, classica corretamente todos os pontos restantes do conjunto de amostras (Hart 1968). Um subconjunto consistente mnimo um subconjunto consistente com o nmero mnimo de elementos. A seguir so apresentados alguns mtodos de ltragem encontrados na literatura. Subconjunto Condensado O mtodo CNN (Condensed Nearest Neighbor) um mtodo de pr-processamento dos dados para o reconhecimento de padres proposto por Hart (Hart 1968), baseado na regra do vizinho-mais-prximo. Seu objetivo reduzir o tamanho do conjunto de dados original D (conjunto das amostras de classicao conhecida) pela eliminao de certas amostras sem afetar signicativamente o desempenho da classicao pelo vizinho-mais-prximo. A regra do vizinho-mais-prximo utilizada com os dados condensados E (sendo E D) pode resultar em quase o mesmo resultado que a regra do vizinhomais-prximo com D. A regra CNN possui as seguintes propriedades: Ela obtm um conjunto E (subconjunto consistente) o qual um subconjunto do conjunto original, porm bem menor e que requer menor custo computacional de armazenamento e processamento; O conjunto E classica (pela regra do vizinho-mais-prximo) todas as amostras em D corretamente. O algoritmo a seguir o proposto por Hart para obteno do subconjunto consistente pelo mtodo do vizinho mais-prximo-condensado (CNN):
85

Captulo 5

Seleo das Amostras

1. A primeira amostra armazenada em um buffer B1. 2. A segunda amostra classicada pela regra NN, usando como conjunto de referncia o conjunto de B1. Se a segunda amostra classicada corretamente ela colocada em um buffer B2, caso contrrio ela colocada em B1. 3. Procedendo indutivamente, a i-sima amostra classicada pelo corrente contedo de B1. Se classicada corretamente colocada em B2, caso contrrio colocada em B1. 4. Depois de uma passagem atravs do conjunto original de amostras, o procedimento repete o lao at terminar, o que pode acontecer de dois modos: (a) O B2 esgotado, com todos seus membros agora transferidos para B1 (neste caso, o subconjunto consistente encontrado o conjunto original de entrada); ou (b) Um passo completo feito por B2 com nenhuma transferncia para B1. (Se isto acontece, todos subseqentes passos atravs de B2 resultaro em nenhuma transferncia.) 5. O contedo nal de B1 usado como ponto de referncia para a regra NN; o contedo de B2 descartado. O mesmo algoritmo pode ser declarado de outra forma mais simplicada: 1. A primeira amostra do padro copiada do conjunto de treinamento original para o subconjunto reduzido (inicialmente vazio). 2. O subconjunto reduzido usado para classicar cada padro de conjunto de treinamento, iniciando com o primeiro. Isto feito at acontecer um dos seguintes casos: (a) Todo padro do conjunto de treinamento classicado corretamente, neste caso o processo termina. (b) Um dos padres do conjunto de treinamento classicado incorretamente, neste caso v para 3. 3. Some o padro do conjunto de treinamento que foi incorretamente classicado para o subconjunto reduzido. V para 2.
86

5.1 Mtodos de Seleo de Amostras

Se as classes possuem pequena sobreposio, ento o algoritmo tender a separar os pontos perto da margem entre as classes. Pontos profundamente embutidos dentro da classe sero descartados. Se as classes possuem alta sobreposio, ento o algoritmo manter todos os pontos do conjunto original de amostras, e no ser realizada reduo importante no tamanho das amostras. O subconjunto consistente obtido pode ser utilizado para classicao de padres desconhecidos pela regra do vizinho-mais-prximo. Uma desvantagem do CNN que ele processa amostras de D aleatoriamente (Tomek 1976c), ou seja, move as amostras de D para E aleatoriamente no incio e menos mais tarde (quando ele tende a tomar amostras perto da fronteira de classicao). Isto signica que E contm: amostras interiores as quais poderiam ser eliminadas, o que implica que E maior que o necessrio; amostras que denem uma fronteira em E mas no em D (isto , amostras no essenciais em D tornam-se pontos da fronteira em E). Isto causa um indesejvel deslocamento entre fronteiras. O mtodo ideal de reduo de D usaria pontos perto da fronteira de deciso para gerar E, mas a fronteira de deciso verdadeira desconhecida. Tomek (Tomek 1976c) prope duas modicaes para melhorar o CNN, porm uma de suas propostas invalidada por Toussaint (Toussaint 1994) alm de corrigir um erro na descrio do algoritmo CNN. Reduo do Subconjunto Consistente O vizinho-mais-prximo condensado (CNN) no uma regra de deciso nova uma vez que ainda escolhe a classe pelo vizinho-mais-prximo. A palavra condensado refere-se ao procedimento para escolha de um subconjunto do conjunto de treinamento, o qual pode classicar padres desconhecidos to bem quanto o conjunto de treinamento original. Assim, uma menor quantidade de memria necessria para armazenar o conjunto de treinamento e menor tempo de processamento requerido para chegar a uma deciso. Um subconjunto consistente de um conjunto de treinamento um subconjunto que classica todos os padres de treinamento corretamente usando a Regra do Vizinho-mais-prximo. O subconjunto consistente mnimo o menor e mais eciente subconjunto de treinamento que apropriadamente classica todos padres de treinamento. O CNN consistente, porm no garantido que seja mnimo. provado por simulao que CNN no mnimo, e o subconjunto consistente mnimo difcil de se obter.
87

Captulo 5

Seleo das Amostras

O mtodo do vizinho-mais-prximo reduzido (RNN) uma extenso da regra CNN (Gates 1972) na tentativa de se obter o subconjunto consistente mnimo. O algoritmo RNN mostrado a seguir: 1. Copie todo o subconjunto consistente para o subconjunto reduzido. 2. Remova o primeiro padro do subconjunto reduzido. 3. Use o subconjunto reduzido para classicar os padres de treinamento: (a) Se todos os padres so classicados corretamente, v para 4. (b) Se um padro classicado incorretamente, retorne o padro que foi removido do subconjunto reduzido em 2 e v para 4. 4. Se todos padres do subconjunto reduzido foram removidos uma vez (e possivelmente recolocado) ento pare. Caso contrrio, remova o prximo padro e v para 3. Gowda (Gowda & Krishna 1979) props um mtodo de dois estgios para determinar um subconjunto consistente baseado no CNN modicado. O primeiro estgio semelhante ao mtodo de obteno do subconjunto condensado. O segundo estgio semelhante ao mtodo de reduo do subconjunto consistente. O algoritmo descrito a seguir:

Estgio 1: 1. Para cada amostra x do conjunto de treinamento, encontre o vizinhomais-prximo y de classe oposta utilizando uma determinada mtrica. 2. Ordene as amostras de 1 em ordem crescente da distncia e armazene em um conjunto ORDEM. 3. Coloque a primeira amostra de ORDEM em DEPSITO. 4. A prxima amostra de ORDEM classicada pela regra do vizinho-maisprximo usando as amostras que esto presentes em DEPSITO. Se a classicao est errada, some a amostra a DEPSITO. 5. Repita o passo 4 at que todas as amostras em ORDEM sejam testadas. 6. Aps um passo atravs de ORDEM, aplique passos 4 e 5 para as amostras retidas em ORDEM. Repita este procedimento at que no haja transferncias de amostras de ORDEM para DEPSITO em um passo. O contedo de DEPSITO constitui o conjunto de treinamento condensado modicado.
88

5.1 Mtodos de Seleo de Amostras

Estgio 2: 1. Uma amostra de DEPSITO transferida para um conjunto EXAME. 2. Todas as amostras em ORDEM so classicadas pela regra do vizinhomais-prximo usando as amostras que esto em DEPSITO. Se h qualquer erro de classicao, transra a amostra do passo 1 de volta para DEPSITO, caso contrrio retenha-a em EXAME. 3. Repita passos 1 e 2 para todas amostras em DEPSITO. Subconjunto Editado Wilson (Wilson 1972) props um mtodo de reduo do conjunto de amostras de treinamento para classicao usando a regra do vizinho-mais-prximo. O mtodo basicamente faz a edio das amostras pr-classicadas usando a regra do k vizinho-mais-prximo com k = 3, seguido pela classicao usando a regra-do-vizinho mais prximo simples (k = 1) com as amostras restantes pr-classicadas. Isto produz um procedimento de deciso o qual o risco se assemelha ao risco de Bayes em muitos problemas com apenas umas poucas amostras pr-classicadas. O algoritmo proposto por Wilson para a regra do k vizinho-mais-prximo editado mostrado a seguir: 1. Para toda amostra i pertencente ao conjunto de treinamento {(x1 , w1 ), . . . , (xN , wN )} (a) Encontre os k (k = 3) vizinhos mais prximos a xi entre: {x1 , x2 , . . . , xi1 , xi+1 , . . . , xN } (b) Encontre a classe associada com o maior nmero de pontos dentre os k vizinhos mais prximos. 2. Edite o subconjunto (x, w) deletando (xi , wi ) quando wi no concorda com o maior nmero dos k vizinhos mais prximos como determinado anteriormente. 3. Tome uma deciso de classicao sobre uma amostra desconhecida usando o subconjunto editado (conjunto reduzido de amostras pr-classicadas) como referncia para a regra do vizinho-mais-prximo simples (k = 1).
89

Captulo 5

Seleo das Amostras

O algoritmo resulta em um conjunto de amostras selecionadas do conjunto original, as quais esto fora da margem de separao das classes. Assim, so eliminadas tanto as amostras ruidosas quanto as amostras de classes diferentes sobrepostas na margem o que torna o treinamento do correspondente classicador mais fcil na prtica (Ferri, Albert, & Vidal 1999). Entretanto, impossvel remover prottipos ruins sem remover tambm alguns prottipos bons. Algoritmos de edio constituem diferentes tipos de compromisso entre remover tantos prottipos ruins e ainda manter alguma pequena sobreposio entre as classes. possvel desenvolver o desempenho assinttico da regra do vizinho-maisprximo usando edio. O desempenho assinttico o desempenho quando o nmero de amostras pr-classicadas muito grande. A regra k vizinho-maisprximo editado possui um desempenho assinttico (Wagner 1973) melhor do que a regra do vizinho-mais-prximo pura, e ainda difcil diferenciar do desempenho da Regra de Bayes em muitas situaes. O risco de se usar a regra do vizinho-mais-prximo decrementa na medida em que o nmero de vizinhos aumenta. O risco de se usar a regra do k vizinho-mais-prximo editado est geralmente entre o risco de usar a regra do vizinho-mais-prximo com o mesmo nmero k de vizinhos e o risco de Bayes. Apesar do bom desempenho em classicao, este mtodo resulta em uma taxa baixa de reduo de amostras. Assim, mtodos derivados da tcnica de Wilson tem aparecido na literatura com o objetivo de melhorar seu desempenho (Ferri, Albert, & Vidal 1999; Kim & Oommen 2004). O mtodo de edio pode tambm ser utilizado com iteraes sucessivas para melhorar o desempenho. Subconjunto seletivo Ritter (Ritter, Woodruff, Lowry, & Isenhour 1975) props um mtodo de pr-processamento dos dados de treinamento (amostras conhecidas) para se encontrar um subconjunto de amostras de forma que o risco de classicao permanece o mesmo. Trs critrios servem de base para o mtodo: O subconjunto deve ser consistente; Todas amostras devem estar mais perto a um vizinho seletivo de mesma classe do que qualquer amostra de outra classe inclusive do subconjunto seletivo (conjunto original); No deve haver nenhum subconjunto que satisfaa os 2 critrios anteriores e que contenha menos membros do que o subconjunto seletivo.
90

5.2 Mtodo Proposto de Seleo de Amostras

A taxa de erro do subconjunto seletivo est entre a taxa de erro do vizinhomais-prximo e do vizinho-mais-prximo condensado. Assim, a fronteira de deciso do vizinho-mais-prximo est mais precisamente reproduzida pelo subconjunto seletivo. Quando as amostras esto mais juntas, o critrio do vizinho-mais-prximo seletivo parece favorecer as amostras perto da superfcie de deciso.

5.1.3 Tipicidade de instncias


Tipicidade utilizada para indicar como uma instncia tipicada com respeito fronteira de deciso (Lam, Keung, & Liu 2002). A tipicidade de uma instncia pode ser denida como: T (i) = mdia de similaridade de i a instncias de mesma classe mdia de similaridade de i a instncias de outras classes

A similaridade de duas instncias x e y, Sim(x, y), denida como: Sim(x, y) = 1 Dist(x, y) onde Dist(x, y) a medida de distncia, onde todas as caractersticas contnuas so normalizadas por suas faixas caractersticas. A tipicidade de uma instncia possui as seguintes caractersticas: Instncias tpicas a uma classe especca usualmente possuem tipicidade muito maior do que 1; Instncias fronteiras usualmente possuem tipicidade perto de 1; Instncias rudo possuem tipicidade menor que 1. Tipicidade um bom indicador para localizar instncias na margem e fora da margem. Para instncias ordinais com tipicidade maior do que 1, h uma tendncia de que a tipicidade seja linearmente proporcional distncia da fronteira de deciso. Instncias rudos possuem tipicidade menor do que 1, e so inversamente proporcionais distncia da fronteira. Uma instncia dita estar na margem se sua tipicidade menor do que a tipicidade mdia de sua classe subtrado do desvio padro.

5.2 Mtodo Proposto de Seleo de Amostras


O mtodo de projeto do classicador de dados binrios proposto neste trabalho de tese baseado na ltragem dos dados binrios de entrada do minimizador de funo Booleana. Este pr-processamento envolve a escolha das
91

Captulo 5

Seleo das Amostras

amostras de dados binrios que melhor representam cada classe, espacialmente localizadas fora da margem de separao das classes, porm perto da margem (Lacerda & Braga 2004). Partindo da suposio de que, dentro da margem de separao das classes, h uma mistura espacial dos dados de classes diferentes, estes dados so descartados juntamente com os dados que esto bem no interior das classes. Os dados selecionados (restantes) so sucientes para denir a fronteira de separao entre as classes, com uma superfcie de deciso suave o bastante para garantir a generalizao adequada. Alm disto, a quantidade menor de dados resulta em uma diminuio no custo de armazenamento e de processamento. A seguir, explicado o procedimento de seleo de amostras proposto neste trabalho de tese. Sero utilizados exemplos com dados reais de duas dimenses para facilitar a compreenso do algoritmo. A mtrica utilizada nestes exemplos a Euclidiana. Na seo seguinte (5.3), so apresentados os resultados obtidos com o mtodo proposto na soluo de alguns problemas de classicao com dados binrios. Diferentes mtricas so testadas com o algoritmo.

5.2.1 Etapas do Mtodo Proposto


Suponha um conjunto X de n amostras reais xi (xi 2 , X = {x0 , x1 , , xn1 }, i = {0, 1, , n 1}) de dimenso d = 2 (xi 2 , xi = {xi0 , xi1 }) onde cada amostra xi associada a uma das possveis classes. Para efeito de simplicao sero consideradas apenas duas classes (0 ou 1). A Figura 5.1 mostra um exemplo deste conjunto de dados classicados em crculo ou cruz. A funo de um classicador associar uma amostra y desconhecida (sem classe) sua classe mais provvel baseando-se no conjunto X de amostras conhecidas. A ltragem tem por objetivo no s a reduo da quantidade de amostras de treinamento, mas tambm melhoria na capacidade de generalizao do classicador com projeto baseado nas amostras selecionadas. Para o processo de seleo de amostras a serem utilizadas no projeto do classicador, proposto um algoritmo de trs etapas: 1. Seleo das amostras que esto mais prximas da fronteira de separao das classes (amostras da margem) utilizando um mtodo semelhante ao proposto por Gowda (Gowda & Krishna 1979). Este subconjunto consistente, ou seja, quando utilizado como referncia regra do vizinhomais-prximo, classica corretamente todas as amostras de treinamento. 2. Reduo do subconjunto consistente, utilizando a tcnica proposta por Gates (Gates 1972) onde para cada amostra do subconjunto consistente
92

5.2 Mtodo Proposto de Seleo de Amostras

Figura 5.1: Exemplo de conjunto de dados em ou cruz.

de duas classes: crculo

testada sua necessidade para manter a consistncia do subconjunto. O subconjunto restante automaticamente determinado, pois compreende as amostras de treinamento originais sem as amostras do subconjunto consistente reduzido. 3. Reduo das amostras do subconjunto restante pela seleo das amostras que esto mais prximas do subconjunto consistente reduzido. A quantidade de amostras selecionadas determinada pela quantidade (k) de vizinhos mais prximos escolhidos para cada amostra do subconjunto consistente reduzido (Lacerda & Braga 2004). A seguir detalhada cada etapa do algoritmo proposto, denominado RSR (Reduo do Subconjunto Restante).

5.2.2 Subconjunto Consistente


A obteno do subconjunto consistente parte da suposio de que as amostras de interesse esto perto da fronteira de deciso da classe. Assim, na regio do espao das amostras em que h uma mistura de classes, ou que pelo menos amostras de classes distintas esto mais prximas segundo uma mtrica de distncia, so selecionadas gradativamente pares de amostras de classes distintas para fazerem parte do subconjunto consistente, em ordem de distncia entre as amostras de classes distintas que fazem parte do par. Quando as amostras selecionadas so capazes de classicar corretamente as demais amostras pela regra do vizinho mais prximo, o processo de seleo termina. Isto descrito formalmente pelo algoritmo a seguir: 1. Para cada amostra xi do conjunto de treinamento X, encontre o vizinhomais-prximo xj de classe oposta utilizando uma determinada mtrica
93

Captulo 5

Seleo das Amostras

Figura 5.2: Subconjunto consistente. (calculando a distncia entre duas amostras), formando um par (xi , xj ). Podero haver pares diferentes com amostras repetidas. 2. Ordene os pares de amostras do passo anterior em ordem crescente da distncia entre si e armazene-os em um vetor ORDEM. 3. Retire do conjunto de treinamento as amostras constantes no primeiro par de amostras (de distncia menor entre si) de ORDEM e armazene no subconjunto consistente (inicialmente vazio). Pode ser que alguma amostra j tenha sido transferida. 4. Classique cada amostra do conjunto de treinamento pela regra do vizinho-mais-prximo simples utilizando como referncia o subconjunto consistente. Se houver algum erro, retorne a 3 considerando o prximo par de amostras de menor distncia entre si. Caso contrrio, nalize. O subconjunto consistente nal obtido pelo procedimento acima classica corretamente todos os dados de treinamento pela regra do vizinho-maisprximo. A Figura 5.2 mostra o resultado do algoritmo acima utilizando os dados da Figura 5.1 como entrada.

5.2.3 Reduo do Subconjunto Consistente


No garantido que o subconjunto consistente obtido pelo procedimento anterior seja mnimo, portanto pode ser reduzido utilizando alguma tcnica, como o procedimento descrito a seguir: 1. Copie o subconjunto consistente para o subconjunto consistente reduzido (inicialmente vazio).
94

5.2 Mtodo Proposto de Seleo de Amostras

Figura 5.3: Subconjunto consistente reduzido. 2. Remova a ltima amostra do subconjunto consistente reduzido ordenado em ordem crescente das distncias entre os pares mais prximos de amostras de classes diferentes. 3. Utilize o subconjunto consistente reduzido como referncia para classicar as amostras do conjunto de treinamento pela regra do vizinho-maisprximo simples: (a) Se todas as amostras so classicadas corretamente, v para 4. (b) Se uma amostra classicada incorretamente, retorne a amostra que foi removida do subconjunto consistente reduzido em 2 e v para 4. 4. Se todas as amostras do subconjunto consistente reduzido foram removidas uma vez (e possivelmente recolocada) ento pare. Caso contrrio, remova a prxima amostra do subconjunto consistente reduzido (como em 2) e v para 3. No garantido tambm que o resultado deste procedimento seja um subconjunto consistente mnimo, mas ser prximo do mnimo. A Figura 5.3 apresenta o resultado do algoritmo acima quando utiliza os dados das Figuras 5.1 e 5.2 como entrada. O conjunto de treinamento original menos o subconjunto consistente reduzido forma o subconjunto restante ou subconjunto editado (Wilson 1972), que utilizado na prxima etapa. A Figura 5.4 mostra o subconjunto restante obtido com o conjunto de dados anterior.

5.2.4 Reduo do Subconjunto Restante


As amostras obtidas pelo procedimento anterior j garantem uma boa generalizao para o classicador, por causa da ltragem das amostras que se
95

Captulo 5

Seleo das Amostras

Figura 5.4: Subconjunto restante. encontram perto da fronteira de classes, tornando a superfcie de deciso mais suave. Entretanto, nem todas as amostras presentes no subconjunto restante obtido na etapa anterior so necessrias para manter o mesmo desempenho de classicao quando utilizando o subconjunto restante total. Assim, desenvolvido um procedimento para reduo do subconjunto restante, utilizando a regra do vizinho-mais-prximo. O procedimento descrito como: Obtenha, do subconjunto restante, os k vizinhos mais prximos de cada classe para cada amostra do subconjunto consistente reduzido, e armazene em um subconjunto restante reduzido (inicialmente vazio). Pode ser que alguma amostra do subconjunto restante j esteja no subconjunto restante reduzido, assim ignore-a. O valor de k pode ser escolhido arbitrariamente ou pode ser ajustado iterativamente pelo algoritmo baseado no desempenho do classicador obtido. A diculdade est justamente em escolher o valor de k mais apropriado de forma a garantir o melhor desempenho para o classicador. A Figura 5.5 apresenta o resultado nal do algoritmo para o subconjunto restante reduzido sendo 3 o valor escolhido para k. Ao nal do procedimento acima (com um valor apropriado para k), o subconjunto restante reduzido ser capaz de garantir ao classicador o mesmo desempenho obtido utilizando o subconjunto restante total.

5.3 Resultados do Mtodo Proposto de Seleo das Amostras


Com o objetivo de validar o algoritmo de seleo de amostras proposto (RSR) neste trabalho de tese, foram realizados alguns experimentos utilizando da96

5.3 Resultados do Mtodo Proposto de Seleo das Amostras

Figura 5.5: Subconjunto restante reduzido (k = 3). dos numricos e dados binrios. Primeiramente, utilizou-se um conjunto de dados de duas dimenses de nmeros reais de duas classes e caracterstica multimodal em forma de tabuleiro de xadrez. Em seguida, foram utilizados os mesmos conjuntos de dados binrios apresentados em captulo anterior.

5.3.1 Tabuleiro de Xadrez


A seguir so apresentados os resultados do algoritmo de seleo de amostras proposto (RSR) utilizando um conjunto de dados de duas dimenses com distribuio multimodal (tabuleiro de xadrez) e duas classes (crculo e cruz) conforme mostrado na Figura 5.6. A mtrica utilizada foi a Euclidiana por se tratar de dados numricos. Na Figura 5.7 mostrado o subconjunto consistente obtido pela primeira etapa do algoritmo proposto. Observa-se que as amostras selecionadas nesta etapa esto sobrepostas e perto da fronteira de deciso das classes. Na Figura 5.8 mostrado o subconjunto consistente reduzido obtido pela segunda etapa do algoritmo proposto. Percebe-se que a quantidade de amostras reduziu drasticamente em relao ao grco anterior. Na Figura 5.9 mostrado o subconjunto restante, ou seja, so os dados da Figura 5.6 menos os dados da Figura 5.8. Neste grco, os dados de classes diferentes j no esto sobrepostos, entretanto a quantidade de amostras grande. Por m, o algoritmo RSR resulta nos dados mostrados na Figura 5.10, onde a quantidade de amostras baixa enquanto no h sobreposio de amostras de classes diferentes.
97

Captulo 5

Seleo das Amostras

3.5

2.5

1.5

0.5

0.5

1.5

2.5
2

3.5

Figura 5.6: Exemplo de conjunto de dados em cruz) e formato multimodal.


Subconjunto consistente inicial 4

de duas classes (crculo e

3.5

2.5

1.5

0.5

0.5

1.5

2.5

3.5

Figura 5.7: Subconjunto consistente obtido pelo algoritmo RSR na soluo do problema do tabuleiro de xadrez.
98

5.3 Resultados do Mtodo Proposto de Seleo das Amostras

3.5

2.5

1.5

0.5

0.5

1.5

2.5

3.5

Figura 5.8: Subconjunto consistente reduzido obtido pelo algoritmo RSR na soluo do problema do tabuleiro de xadrez.
4

3.5

2.5

1.5

0.5

0.5

1.5

2.5

3.5

Figura 5.9: Subconjunto restante obtido pelo algoritmo RSR na soluo do problema do tabuleiro de xadrez.
99

Captulo 5
4

Seleo das Amostras

3.5

2.5

1.5

0.5

0.5

1.5

2.5

3.5

Figura 5.10: Subconjunto restante reduzido obtido pelo algoritmo RSR na soluo do problema do tabuleiro de xadrez.

5.3.2 Dados binrios


Nesta seo so apresentados os resultados obtidos utilizando os mesmos conjuntos de dados binrios do captulo anterior. Em cada problema foram obtidos 10 conjuntos de dados diferentes de forma a poder obter uma mdia dos resultados. Os conjuntos de dados tambm foram particionados da mesma maneira como anteriormente: 80% para treinamento e 20% para teste. Os resultados obtidos utilizando as amostras selecionadas pelo RSR como referncia para o classicador 1-NN (k = 1) so apresentados em seqncia. Para o clculo das distncias entre amostras, utilizou-se algumas mtricas j descritas em captulo anterior para ns de comparao. Antes da execuo do algoritmo RSR, montada a matriz de distncias entre todas as amostras de treinamento e teste. Dados sintticos Na Figura 5.11 apresentado o resultado obtido do classicador 1-NN quando utilizando o algoritmo de seleo de amostras RSR em funo de k, para os dados binrios sintticos gerados conforme Figura 4.4. O parmetro k dene a quantidade de amostras selecionadas pelo algoritmo RSR. Observa-se que a mtrica de melhor desempenho foi a de Bayes. A pior mtrica foi a over100

5.3 Resultados do Mtodo Proposto de Seleo das Amostras

lap. A mtrica VDM modicada obteve claramente um desempenho ligeiramente superior a mtrica VDM original.
95

90

Acertos [%]

85

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes

80

75

10 k

12

14

16

18

20

Figura 5.11: Nmero mdio de acertos do classicador 1-NN em funo de k, utilizando diferentes mtricas na soluo do problema de dados sintticos. Comparando este grco com o resultado obtido do classicador kNN no captulo anterior para os mesmos dados (Figura 4.5), observa-se que houve uma pequena suavizao das curvas de resultados, mas o desempenho geral piorou. Entretanto, utilizando-se a mtrica de Bayes, o desempenho melhorou ligeiramente para k = 1. Dados caracteres manuscritos Na Figura 5.12 apresentado o resultado obtido do classicador 1-NN quando utilizando o algoritmo de seleo de amostras RSR em funo de k, para os dados binrios de caracteres manuscritos conforme Figura 4.6. O parmetro k dene a quantidade de amostras selecionadas pelo algoritmo RSR. Observa-se que todas as mtricas utilizadas obtiveram desempenho semelhante, excetuando a mtrica de Bayes que obteve claramente um resultado inferior s demais. Comparando este grco com o resultado obtido do classicador kNN no captulo anterior para os mesmos dados (Figura 4.8), observa-se que houve uma suavizao das curvas de resultados, mas o desempenho geral piorou.
101

Captulo 5

Seleo das Amostras

100

99.5

99

Acertos [%]

98.5

98

97.5

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 10 20 30 40 50 k 60 70 80 90 100

97

Figura 5.12: Nmero mdio de acertos do classicador 1-NN em funo de k, utilizando diferentes mtricas na soluo do problema dos caracteres manuscritos.

102

5.3 Resultados do Mtodo Proposto de Seleo das Amostras

Dados do problema gene Na Figura 5.13 apresentado o resultado obtido do classicador 1-NN quando utilizando o algoritmo de seleo de amostras RSR em funo de k, para os dados binrios do problema gene conforme Figura 4.9. O parmetro k dene a quantidade de amostras selecionadas pelo algoritmo RSR. Observa-se que a mtrica VDM obteve o melhor resultado. A mtrica VDM modicada obteve um resultado inferior, sendo que a pior mtrica foi a overlap (abaixo de 75%). A nova mtrica proposta obteve um resultado ligeiramente inferior a melhor.
95

90

Acertos [%]

85

80 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 75 0 2 4 6 8 10 k 12 14 16 18 20 22

Figura 5.13: Nmero mdio de acertos do classicador 1-NN em funo de k, utilizando diferentes mtricas na soluo do problema de dados de genes. Comparando este grco com o resultado obtido do classicador kNN no captulo anterior para os mesmos dados (Figura 4.10), observa-se que houve uma suavizao das curvas de resultados. Alm disto, houve uma inverso de desempenho entre as mtricas VDM e a nova mtrica proposta. O desempenho geral do classicador melhorou com o algoritmo RSR. Dados do corao Na Figura 5.14 apresentado o resultado obtido do classicador 1-NN quando utilizando o algoritmo de seleo de amostras RSR em funo de k,
103

Captulo 5

Seleo das Amostras

para os dados binrios do problema do corao conforme Figura 4.11. O parmetro k dene a quantidade de amostras selecionadas pelo algoritmo RSR. Observa-se que a mtrica de Bayes obteve claramente o melhor resultado. A mtrica VDM modicada obteve um resultado claramente melhor que a VDM original. A mtrica com o pior desempenho foi a distncia de discriminao.
89

88

87

Acertos [%]

86

85

84 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 5 10 15 20 25 k 30 35 40 45 50

83

82

Figura 5.14: Nmero mdio de acertos do classicador 1-NN em funo de k, utilizando diferentes mtricas na soluo do problema de dados do corao. Comparando este grco com o resultado obtido do classicador kNN no captulo anterior para os mesmos dados (Figura 4.12), observa-se que houve uma clara suavizao das curvas de resultados. Alm disto, o desempenho geral do classicador piorou ligeiramente com o algoritmo RSR. Dados do cogumelo Na Figura 5.15 apresentado o resultado obtido do classicador 1-NN quando utilizando o algoritmo de seleo de amostras RSR em funo de k, para os dados binrios do problema do cogumelo conforme Figura 4.13. O parmetro k dene a quantidade de amostras selecionadas pelo algoritmo RSR. Observa-se que as mtricas utilizadas obtiveram resultados semelhantes, excetuando a mtrica de Bayes que obteve os resultados inferiores.
104

5.3 Resultados do Mtodo Proposto de Seleo das Amostras


101

100

99

Acertos [%]

98

97

96 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 20 40 60 80 100 k 120 140 160 180 200

95

94

Figura 5.15: Nmero mdio de acertos do classicador 1-NN em funo de k, utilizando diferentes mtricas na soluo do problema de dados do cogumelo. Comparando este grco com o resultado obtido do classicador kNN no captulo anterior para os mesmos dados (Figura 4.14), observa-se que houve uma suavizao das curvas de resultados. Observa-se tambm que houve uma piora do desempenho geral do classicador com o algoritmo RSR para baixos valores de k (k < 50), quando comparado com o kNN para k = 1.

105

Captulo 5

Seleo das Amostras

5.4 Concluso
Alguns mtodos de seleo das amostras de treinamento que aparecem na literatura foram detalhados neste captulo. Estas tcnicas garantem um custo menor de armazenamento e processamento na aplicao do mtodo de classicao pelo vizinho-mais-prximo. Duas metodologias de seleo de amostras foram apresentadas: abstrao e ltragem. Dentre as tcnicas de ltragem, o mtodo de edio de amostras proposto por (Wilson 1972) garante uma melhor generalizao, entretanto a taxa de reduo de amostras pequena. As amostras selecionadas pelo mtodo de Wilson (subconjunto editado) so aquelas localizadas fora da margem de separao das classes junto com aquelas bem no interior das classes. Para caracterizao das classes, bastaria o subconjunto editado sem as amostras que esto bem no interior das classes, pois estas amostras no contribuem na formao da fronteira de deciso. Foi apresentado uma proposta de metodologia de seleo de amostras perto da margem de separao das classes, derivado do mtodo proposto por (Wilson 1972), que resulta em uma quantidade menor de amostras. Quanto maior o nmero (k) de vizinhos mais prximos das amostras do subconjunto consistente reduzido, menor o erro de classicao dos dados de teste, porm sem necessariamente selecionar todas amostras do subconjunto restante para se obter o mesmo desempenho do mtodo de Wilson, conforme comprovado por observaes experimentais. Portanto, proposto neste trabalho de tese um mtodo de seleo de amostras que melhora a taxa de reduo do subconjunto editado sem comprometer signicativamente o desempenho do classicador baseado nas amostras selecionadas. Estas amostras selecionadas so utilizadas para o projeto do circuito classicador digital o que resulta em melhor generalizao e menor custo computacional para o minimizador de funo Booleana. Isto ser tratado no captulo seguinte. O mtodo de seleo de amostras proposto tambm pode ser utilizado em conjunto com outras tcnicas de classicao com o objetivo de melhorar o desempenho e diminuir o custo computacional (Carvalho, Lacerda, & Braga 2005).

106

CAPTULO

Projeto do Circuito Classicador Digital

mtodo de projeto proposto para gerao do circuito classicador digital com capacidade de generalizao baseado na seleo apropriada das amostras binrias do conjunto de dados de treinamento, antes da utilizao do minimizador Booleano para obteno da funo Booleana do circuito (Lacerda & Braga 2005). Na Figura 6.1 apresentado um diagrama descrevendo as etapas do projeto do classicador. Inicialmente, os dados binrios de treinamento so utilizados como entrada para o algoritmo de seleo de amostras apresentado no captulo anterior (RSR). O algoritmo claramente dividido em trs etapas, conforme mostrado na Figura 6.1. Ao nal da terceira etapa, tem-se as melhores amostras que descrevem cada classe dos dados de entrada. Em seguida, as amostras selecionadas so utilizadas como entrada para o minimizador Booleano (foi utilizado o Espresso). As amostras descartadas pelo algoritmo RSR so consideradas pelo algoritmo de minimizao como amostras dont care, o que facilita o processo de expanso das coberturas criadas pelo minimizador, alm de embutir a caracterstica de generalizao na funo Booleana resultante. O resultado do minimizador Booleano, dado em termos de soma de produtos de literais, descreve o circuito digital o qual pode ser implementado em um circuito digital programvel tipo PAL (Programmable Array Logic), composto por matriz de entrada de portas AND e matriz de sada de porta OR. A sada do circuito digital, tendo como entrada os dados binrios desejados para classicar, compreende o resultado da classicao (neste projeto foi aplicado 107

Captulo 6

Projeto do Circuito Classicador Digital

Figura 6.1: Diagrama do mtodo de projeto do circuito digital classicador.

108

6.1 Experimentos

apenas para duas classes). De forma a obter um mtodo automtico para gerar o circuito classicador digital com o melhor desempenho, pode ser aplicado o algoritmo abaixo, de forma a ajustar automaticamente o parmetro k exigido no algoritmo RSR. Uma vez determinado o melhor parmetro k, no mais necessrio ajust-lo para o mesmo problema. O mesmo pode ser feito para denir a melhor mtrica de distncia utilizada no algoritmo RSR. 1. Faa k = 0. 2. Utilizando o minimizador de funo Booleana (Espresso), e tendo como entrada todas as amostras do subconjunto restante, gere o circuito classicador digital. 3. Contabilize o nmero de acertos de classicao do circuito gerado pelo passo anterior utilizando o conjunto de amostras de teste. Armazene o resultado em MAX. 4. Incremente o valor de k de um. 5. Obtenha, do subconjunto restante, os k vizinhos mais prximos de cada classe para cada amostra do subconjunto consistente reduzido, e armazene em um subconjunto restante reduzido (inicialmente vazio). Pode ser que alguma amostra do subconjunto restante j esteja no subconjunto restante reduzido, neste caso ignore-a. 6. Utilizando o minimizador de funo Booleana (Espresso), e tendo como entrada o subconjunto restante reduzido obtido no passo anterior, gere o novo circuito classicador digital. 7. Contabilize o nmero de acertos de classicao do circuito gerado no passo anterior utilizando o conjunto de amostras de teste. 8. Repita os passos 4 a 7 enquanto o nmero de acertos de classicao dos dados de teste, utilizando o circuito gerado pelo subconjunto restante reduzido, for menor que MAX. A seguir so apresentados os resultados dos experimentos realizados utilizando esta metodologia de projeto proposta.

6.1 Experimentos
Para a realizao dos testes de desempenho e obteno dos resultados experimentais, foi utilizado um computador PC com processador Intel Pentium IV - 1800MHz com 1 Giga bytes de memria RAM, e sistema operacional Linux.
109

Captulo 6

Projeto do Circuito Classicador Digital

O mtodo proposto (RSR) no captulo anterior e outros mtodos (para efeito de comparao) foram utilizados em conjunto com o minimizador Booleano para obter a funo Booleana de circuitos classicadores digitais na soluo de alguns problemas, tanto com dados gerados articialmente quanto com dados reais. Pelo fato de o classicador projetado ser um circuito digital, necessrio que os dados do problema sejam binrios. Foram escolhidos problemas de apenas duas classes (0 ou 1) para efeito de simplicao. O algoritmo RSR proposto foi implementado em linguagem C++ (Eckel 2000) e utilizou-se dados binrios de entrada armazenados em arquivo (formato Espresso). A verso pronta do programa Espresso (University of Texas at Austin College of Engineering 1990) utilizada foi implementada em linguagem C. O processamento da funo Booleana do classicador obtido tambm foi implementado em C++ para clculo dos resultados de classicao dos dados de teste (simulao do circuito digital). Os outros mtodos utilizados para efeito de comparao com o mtodo proposto (RSR) foram: Sem pr-processamento (ltragem) dos dados de treinamento, ou seja, os dados originais so empregados diretamente como entrada para o Espresso. Rede Neural (Haykin 2001) de duas camadas (Multilayer Perceptron MLP) com treinamento multiobjetivo (MOBJ) (Teixeira 2001). Mquina de Vetor de Suporte (Support Vector Machine - SVM) (Vapnik 1998; Schwaighofer 2002) Para utilizar a generalizao aprendida tanto pela Rede Neural quanto pela SVM, estes foram treinados com os dados de treinamento. Ento, os prprios dados de treinamento so reclassicados por estas mquinas j treinadas de modo a passar aos dados a generalizao aprendida por estas mquinas. De posse dos dados reclassicados, estes foram utilizados para obter a equao Booleana do circuito digital classicador utilizando o minimizador de funo Booleana (Espresso). A implementao utilizada nestes mtodos foi para Matlab verso 6.5 (The Mathworks 2001). Os resultados da utilizao dos diferentes mtodos (Sem ltragem, RSR, MLP e SVM) para obteno da funo lgica do circuito digital classicador foram contabilizados e comparados em cada problema de classicao. Isto mostrado a seguir.
110

6.1 Experimentos

6.1.1 Dados Sintticos


Aplicando-se o mtodo proposto (RSR) nos dados sintticos descritos em captulo anterior (Figura 4.4), obteve-se os resultados indicados nas Figuras 6.2 a 6.6. O procedimento foi repetido para cada conjunto de amostras geradas articialmente (10 conjuntos) e obtido a mdia para apresentao nos grcos. O procedimento foi executado para diferentes tipos de mtricas de distncia indicadas nas correspondentes legendas dos grcos. A quantidade de vizinhos mais prximos de cada classe para cada amostra do subconjunto consistente reduzido representada por k nas guras. O grco da Figura 6.2 indica o nmero mdio de amostras selecionadas para compor o subconjunto restante reduzido para cada valor de k, em cada mtrica utilizada. Observa-se que medida em que o parmetro k cresce, a quantidade de amostras selecionadas tambm aumenta, obviamente. A mtrica overlap apresentou uma taxa maior de crescimento de amostras em funo de k, enquanto a mtrica de Bayes apresentou a menor taxa. Este subconjunto de dados selecionados so utilizados pelo Espresso para obteno da funo lgica do circuito digital classicador. O grco da Figura 6.3 apresenta o nmero mdio de acertos de classicao dos dados de teste obtidos pela simulao do circuito digital obtido tomando como base de projeto cada subconjunto restante reduzido obtido com cada valor de k, para cada um dos 10 experimentos e para cada uma das 6 mtricas testadas. Observa-se pelo grco que o nmero mdio de acertos de classicao aumenta inicialmente a partir de k = 1 independente da mtrica utilizada, e aps um certo valor para k o grco tende a estabilizar. O melhor resultado obtido para k = 7 e utilizando-se a mtrica VDM modicada. O pior desempenho do circuito foi obtido utilizando-se a mtrica de Bayes (para baixos valores de k, k 5) e overlap (para valores mais altos de k, k 5). Observa-se que, para o classicador 1-NN com RSR descrito em captulo anterior (Figura 5.11) e tambm empregado neste problema, a melhor mtrica obtida foi a de Bayes, enquanto que com o mtodo RSR para gerao do circuito digital classicador, a mtrica VDM modicada apresenta um resultado melhor em relao s outras mtricas. Os grcos das Figuras 6.4 e 6.5 apresentam os ndices de acertos dos circuitos classicadores obtidos para os dados de teste em funo da quantidade de amostras utilizadas e nmero de termos de produto, respectivamente. Observa-se novamente a superioridade da mtrica VDM modicada no ndice de acertos do circuito obtidos nos dois grcos. A Figura 6.6 apresenta o nmero mdio de termos de produtos obtidos em funo do parmetro k. A mtrica overlap apresentou o maior ndice de termos de produto em funo de k, o que explica o baixo desempenho desta mtrica no
111

Captulo 6

Projeto do Circuito Classicador Digital

ndice de acertos do circuito indicado nos grcos anteriores. A mtrica VDM modicada, por sua vez, apresentou o menor ndice de termos de produto em funo de k, o que explica a sua capacidade maior de generalizao, ou seja, um ndice maior de acertos para os dados de teste. Na Tabela 6.1 so mostrados os resultados com os circuitos digitais simulados e obtidos a partir dos diferentes mtodos apresentados, para a soluo do problema de classicao dos 10 conjuntos de dados articiais. So mostrados a quantidade de amostras utilizadas para obter a funo Booleana do circuito digital pelo Espresso (minimizador Booleano), o tempo de processamento do programa Espresso, o nmero de produtos obtidos na funo Booleana de cada circuito, e a porcentagem de acertos dos dados de teste pelo circuito obtido em cada mtodo. Os valores apresentados esto no formato de mdia e desvio padro. Tabela 6.1: Resultados obtidos com cada mtodo no problema com dados binrios sintticos.
Mtodo Sem ltragem RSR (k=7,VDMm) MLP (32 nodos) SVM (rbf,w=10,c=1) No amostras 2380 (100%) 112944 (47,41,8%) 2380 (100%) 2380 (100%) T. Espresso [s] 20,5 <1 61 51 No prod. 653 191 302 311 Acertos (%) 84,01,6 89,11,2 89,11,1 88,60,8

Observa-se que o mtodo proposto (RSR) utilizando k = 7 e mtrica de distncia VDM modicada (VDMm) apresenta um resultado de acertos de classicao dos dados de teste com o circuito simulado semelhante aos outros mtodos, mas utilizando uma quantidade de amostras menor. Pelo fato do mtodo RSR utilizar uma quantidade menor de amostras como entrada para o programa Espresso, este necessitou signicativamente de menos tempo de processamento quando comparado com outros mtodos. O mtodo proposto tambm obtm a funo lgica do circuito digital com menos termos de produto, o que economiza portas lgicas na implementao do circuito digital, diminuindo a rea ocupada e consumo do circuito gerado.

112

6.1 Experimentos

1800

1600

1400

1200 N. amostras

1000

800

600 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 2 4 6 8 10 k 12 14 16 18 20

400

200

Figura 6.2: Quantidade mdia de amostras selecionadas para obteno da funo Booleana do circuito digital classicador, para cada valor de k, na soluo do problema com dados articiais utilizando o mtodo proposto (RSR).

95

90

Acertos [%]

85

80 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 75 0 2 4 6 8 10 k 12 14 16 18 20

Figura 6.3: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de k, na soluo do problema com dados articiais utilizando o mtodo proposto (RSR).

113

Captulo 6

Projeto do Circuito Classicador Digital

90

88

86

Acertos [%]

84

82

80

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 400 600 800 1000 1200 1400 1600 1800

78 200

N. amostras da margem

Figura 6.4: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada quantidade de amostras selecionadas, na soluo do problema com dados articiais utilizando o mtodo proposto (RSR).

90

88

86

Acertos [%]

84

82

80

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 16 18 20 N. termos produto 22 24 26

78 14

Figura 6.5: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de termos de produto, na soluo do problema com dados articiais utilizando o mtodo proposto (RSR).

114

6.1 Experimentos
26

24

N. de termos de produto

22

20

18

16

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 2 4 6 8 10 k 12 14 16 18 20

14

Figura 6.6: Nmero mdio de termos de produto obtidos, para cada valor de k, na soluo do problema com dados articiais utilizando o mtodo proposto (RSR).

6.1.2 Reconhecimento de Caracter Manuscrito


Foram obtidas as funes lgicas dos circuitos digitais classicadores utilizando o mtodo proposto de projeto com os dados de caracteres manuscritos descrito no Captulo 4 (Figura 4.6). Novamente o problema foi simplicado para a identicao apenas do caracter 0 dentre os caracteres de 0 a 9. O processo foi repetido 10 vezes, sendo que a cada processo os dados eram permutados antes de serem divididos em conjunto de treinamento, teste e validao. Para o mtodo proposto (RSR), so apresentados os resultados nas Figuras 6.7 a 6.11, onde k representa a quantidade de vizinhos mais prximos de cada classe para cada amostra do subconjunto consistente reduzido. Para este problema, o valores escolhidos para k variaram entre 5 e 100, tomados de 5 em 5. O grco da Figura 6.7 indica o nmero mdio de amostras selecionadas para compor o subconjunto restante reduzido para cada valor de k, em cada mtrica utilizada. Observa-se novamente que, a medida em que o parmetro k cresce, a quantidade de amostras selecionadas tambm aumenta, como j esperado. A mtrica VDM modicada apresentou uma taxa maior de crescimento de amostras em funo de k, enquanto a mtrica de Bayes apresentou a menor taxa. Este subconjunto de dados selecionados utilizado pelo Espresso para obteno da funo Booleana do circuito digital classicador.
115

Captulo 6

Projeto do Circuito Classicador Digital

O grco da Figura 6.8 apresenta o nmero mdio de acertos de classicao dos dados de teste pelo circuito digital simulado tomando como base de projeto cada subconjunto restante reduzido obtido com cada valor de k, para cada um dos 10 experimentos e para cada uma das 6 mtricas testadas. Observa-se pelo grco que o nmero mdio de acertos de classicao apresenta uma variao inicialmente a partir de k = 5 dependendo da mtrica utilizada, e aps um certo valor para k o grco tende a estabilizar. O melhor resultado obtido para k = 50 e utilizando-se a mtrica de Bayes. O pior desempenho geral do circuito foi obtido utilizando-se a mtrica overlap. Interessante comparar com o resultado obtido em captulo anterior utilizando o classicador 1-NN com RSR (Figura 5.12). Neste classicador, o pior desempenho foi obtido com a mtrica de Bayes enquanto aqui foi o melhor! Os grcos das Figuras 6.9 e 6.10 apresentam os ndices de acertos dos circuitos classicadores simulados para os dados de teste em funo do nmero de termos de produtos e quantidade de amostras utilizadas, respectivamente. Observa-se novamente a superioridade da mtrica de Bayes no ndice de acertos do circuito nos dois grcos, utilizando uma quantidade de termos de produto e amostras menores que o valores mximos utilizados. A Figura 6.11 apresenta o nmero mdio de termos de produtos obtidos em funo do parmetro k. A mtrica de Bayes, apresentou o menor ndice de termos de produto em funo de k, o que explica a sua capacidade maior de generalizao, ou seja, um ndice maior de acertos para os dados de teste. Na Tabela 6.2 so mostrados os resultados obtidos com os circuitos digitais simulados e projetados a partir dos diferentes mtodos apresentados, para a soluo do problema de classicao dos 10 conjuntos de dados do caracter manuscrito. So mostrados a quantidade de amostras utilizadas para obter pelo Espresso a funo Booleana do circuito digital, o tempo de processamento do Espresso para obter a funo Booleana do circuito em cada mtodo, o nmero de produtos da funo Booleana de cada circuito, e a porcentagem de acertos dos dados de teste pelo circuito simulado. Os valores apresentados esto no formato de mdia e desvio padro. Tabela 6.2: Resultados obtidos no problema de reconhecimento do caracter 0 para cada mtodo.
Mtodo Sem ltragem RSR (k=50,Bayes) MLP (4 nodos) SVM (rbf,w=1,c=1) No amostras 1548 (100%) 47249(30,53,2%) 1548 (100%) 1548 (100%) T. Espresso [s] 5871516972 138002375 4320016752 12892427514 No prod. 2,00,0 1,30,5 1,90,3 2,00,0 Acertos (%) 98,60,7 98,90,5 98,60,3 98,90,6

Novamente observa-se que o mtodo proposto (RSR) possui resultados de acertos de classicao prximos aos outros mtodos utilizando menos amos116

6.1 Experimentos

tras e com menor tempo de processamento do Espresso.


1200 1100 1000 900 800 N. amostras 700 600 500 400 300 200 100 0 10 20 30 40 50 k 60 70

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 80 90 100

Figura 6.7: Quantidade mdia de amostras selecionadas para obteno da funo lgica do circuito digital classicador, para cada valor de k, na soluo do problema de reconhecimento de caracteres manuscritos utilizando o mtodo proposto (RSR).

117

Captulo 6

Projeto do Circuito Classicador Digital

99

98.5

98

97.5

97 Acertos [%]

96.5

96

95.5

95

94.5

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 10 20 30 40 50 k 60 70 80 90 100

94

Figura 6.8: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de k, na soluo do problema de reconhecimento de caracteres manuscritos utilizando o mtodo proposto (RSR).

99

98.5

98

97.5

97 Acertos [%]

96.5

96

95.5

95

94.5

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 1 1.5 N. termos produto 2 2.5

94 0.5

Figura 6.9: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de termos de produto, na soluo do problema de reconhecimento de caracteres manuscritos utilizando o mtodo proposto (RSR).
118

6.1 Experimentos

100

99

98

Acertos [%]

97

96

95

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 200 400 600 N. amostras da margem 800 1000 1200

94

Figura 6.10: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada quantidade de amostras selecionadas, na soluo do problema de reconhecimento de caracteres manuscritos utilizando o mtodo proposto (RSR).

N. de termos de produto

1.5

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0.5 0 10 20 30 40 50 k 60 70 80 90 100

Figura 6.11: Nmero mdio de termos de produto obtidos, para cada valor de k, na soluo do problema de reconhecimento de caracteres manuscritos utilizando o mtodo proposto (RSR).

119

Captulo 6

Projeto do Circuito Classicador Digital

6.1.3 Problema do Gene


Foram obtidas as funes lgicas dos circuitos digitais classicadores utilizando o mtodo proposto com os dados do problema Gene descrito em captulo anterior (Figura 4.9). Novamente o problema foi simplicado para a identicao de duas classes. O processo foi repetido 10 vezes para cada mtodo, sendo que a cada processo os dados eram permutados antes de serem divididos em conjunto de treinamento, teste e validao. Para o mtodo proposto (RSR), so apresentados os resultados nas Figuras 6.12 a 6.16, onde k representa a quantidade de vizinhos mais prximos de cada classe para cada amostra do subconjunto consistente reduzido. O grco da Figura 6.12 indica o nmero mdio de amostras selecionadas para compor o subconjunto restante reduzido para cada valor de k, em cada mtrica utilizada. Observa-se que a medida em que o parmetro k cresce, a quantidade de amostras selecionadas tambm aumenta, como j esperado. A mtrica Distncia de Discriminao apresentou uma taxa maior de crescimento de amostras em funo de k. A mtrica de Bayes apresentou um crescimento assinttico menor do nmero de amostras em funo de k, sendo que para valores de k > 5 a mtrica overlap apresentou valor quase constante de amostras. Este subconjunto de dados selecionados so utilizados pelo Espresso para obteno da funo lgica do circuito digital classicador. O grco da Figura 6.13 apresenta o nmero mdio de acertos de classicao dos dados de teste pelo circuito digital simulado tomando como base de projeto cada subconjunto restante reduzido obtido com cada valor de k, para cada um dos 10 experimentos e para cada umas das 6 mtricas testadas. O melhor resultado obtido para k = 21 e utilizando-se a mtrica Distncia de Discriminao (DD). O pior desempenho do circuito foi obtido utilizando-se a mtrica de overlap para grandes valores de k. Interessante comparar com o resultado obtido em captulo anterior utilizando o classicador 1-NN com RSR (Figura 5.13), onde a mtrica VDM apresentou o melhor resultado para o classicador. Os grcos das Figuras 6.14 e 6.15 apresentam os ndices de acertos dos circuitos classicadores simulados para os dados de teste em funo do nmero de termos de produtos e quantidade de amostras utilizadas, respectivamente. Observa-se novamente a superioridade da mtrica Distncia de Discriminao no ndice de acertos do circuito mostrado nos dois grcos. A Figura 6.16 apresenta o nmero mdio de termos de produto obtidos em funo do parmetro k. A mtrica overlap apresentou o menor ndice assinttico mdio de termos de produto em funo de k, entretanto, isto no foi capaz de garantir o melhor desempenho para o circuito classicador obtido com esta mtrica.
120

6.1 Experimentos

Na Tabela 6.3 so mostrados os resultados obtidos com os circuitos digitais simulados e projetados a partir dos diferentes mtodos apresentados, para a soluo do problema de classicao dos 10 conjuntos de dados do problema dos genes. So mostrados a quantidade de amostras utilizadas pelo Espresso para obter a funo Booleana do circuito digital, o tempo de processamento do Espresso em cada mtodo, o nmero de produtos da funo Booleana de cada circuito obtido, e a porcentagem de acertos dos dados de teste pelo circuito simulado. Os valores apresentados esto no formato de mdia e desvio padro. Tabela 6.3: Resultados obtidos no problema Gene.
Mtodo Sem ltragem RSR (k=21, DD) MLP (32 nodos) SVM (rbf,w=10,c=1) No amostras 2391 (100%) 183813(72,40,5%) 2540 (100%) 2540 (100%) T. Espresso [s] 1526117 99586 4486503 4493906 No produtos 803 475 806 734 Acertos (%) 69,52,5 78,72,8 69,42,8 72,02,4

Observa-se que o mtodo proposto utilizando a mtrica Distncia de Discriminao (DD) com k = 21 possui resultados de acertos de classicao melhores que outros mtodos utilizando menos amostras e menos tempo de processamento para o Espresso.
2000

1800

1600

1400

N. amostras

1200

1000

800

600

400

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 2 4 6 8 10 k 12 14 16 18 20 22

200

Figura 6.12: Quantidade mdia de amostras selecionadas para obteno da funo Booleana do circuito digital classicador, para cada valor de k, na soluo do problema do gene utilizando o mtodo proposto (RSR).

121

Captulo 6

Projeto do Circuito Classicador Digital

80

75

70

Acertos [%]

65

60

55

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 2 4 6 8 10 k 12 14 16 18 20 22

50

Figura 6.13: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de k, na soluo do problema do gene utilizando o mtodo proposto (RSR).

80

75

70 Acertos [%] 65 60

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 20 25 30 35 N. termos produto 40 45 50 55

55 15

Figura 6.14: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de termos de produto, na soluo do problema do gene utilizando o mtodo proposto (RSR).

122

6.1 Experimentos

80

75

70 Acertos [%] 65 60

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 600 800 1000 1200 1400 1600 1800 2000

55 400

N. amostras da margem

Figura 6.15: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada quantidade de amostras selecionadas, na soluo do problema do gene utilizando o mtodo proposto (RSR).

55

50

45

N. de termos de produto

40

35

30

25 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 2 4 6 8 10 k 12 14 16 18 20 22

20

15

Figura 6.16: Nmero mdio de termos de produto obtidos, para cada valor de k, na soluo do problema do gene utilizando o mtodo proposto (RSR).

123

Captulo 6

Projeto do Circuito Classicador Digital

6.1.4 Problema do Corao


Foram obtidas as funes lgicas dos circuitos digitais classicadores utilizando o mtodo proposto com os dados do problema de diagnstico do corao descrito em captulo anterior (Figura 4.11). O processo foi repetido 10 vezes para cada mtodo, sendo que a cada processo os dados eram permutados antes de serem divididos em conjunto de treinamento, teste e validao. Para o mtodo proposto (RSR), so apresentados os resultados nas Figuras 6.17 a 6.21, onde k representa a quantidade de vizinhos mais prximos de cada classe para cada amostra do subconjunto consistente reduzido. O grco da Figura 6.17 indica o nmero mdio de amostras selecionadas para compor o subconjunto restante reduzido para cada valor de k, em cada mtrica utilizada. Observa-se que a medida em que o parmetro k cresce, a quantidade de amostras selecionadas tambm aumenta, como j esperado. A mtrica Distncia de Discriminao apresentou uma taxa menor de crescimento de amostras em funo de k. A mtrica de overlap apresentou uma taxa de crescimento maior para o nmero de amostras selecionadas em baixos valores de k (k < 37). Para altos valores de k (k > 37), a mtrica de Bayes apresentou valores mais altos de amostras selecionadas. Este subconjunto de dados selecionados so utilizados pelo Espresso para obteno da funo Booleana do circuito digital classicador. O grco da Figura 6.18 apresenta o nmero mdio de acertos de classicao dos dados de teste pelo circuito digital simulado tomando como base de projeto cada subconjunto restante reduzido obtido com cada valor de k, para cada um dos 10 experimentos e para cada umas das 6 mtricas testadas. O melhor desempenho do circuito projetado obtido com a mtrica de Bayes para k = 39, enquanto o pior resultado obtido com a mtrica nova, para k = 1. Observa-se que h uma grande variabilidade do resultado em funo da mtrica escolhida e valor de k. Interessante comparar com o resultado obtido em captulo anterior utilizando o classicador 1-NN com RSR (Figura 5.14), onde o melhor resultado obtido para k = 1 e utilizando-se tambm a mtrica de Bayes. O pior desempenho do 1-NN com RSR foi obtido utilizando-se a mtrica Distncia de Discriminao para valores de k > 1. Para k = 1, a pior mtrica foi a overlap. Os grcos das Figuras 6.19 e 6.20 apresentam os ndices de acertos dos circuitos classicadores simulados para os dados de teste em funo do nmero de termos de produtos e quantidade de amostras utilizadas, respectivamente. Observa-se novamente a superioridade da mtrica de Bayes no desempenho do circuito mostrado nos dois grcos. A Figura 6.21 apresenta o nmero mdio de termos de produtos gerados em funo do parmetro k. A mtrica Distncia de Discriminao apresentou
124

6.1 Experimentos

o menor ndice assinttico mdio de termos de produto em funo de k, entretanto, isto no foi capaz de garantir um bom desempenho para o circuito classicador obtido com esta mtrica. Na Tabela 6.4 so mostrados os resultados obtidos com os circuitos digitais simulados e projetados a partir dos diferentes mtodos apresentados, para a soluo do problema de classicao dos 10 conjuntos de dados do problema do corao. So mostrados a quantidade de amostras utilizadas pelo Espresso para obteno da funo Booleana do circuito digital classicador, o tempo de processamento do Espresso em cada mtodo, o nmero de termos de produto obtidos na funo Booleana para cada circuito, e a porcentagem de acertos dos dados de teste obtido pelo circuito simulado. Os valores apresentados esto no formato de mdia e desvio padro. Tabela 6.4: Resultados obtidos no problema do corao.
Mtodo Sem ltragem RSR (k=39, Bayes) MLP (64 nodos) SVM (rbf;w=0,1;c=0,1) No amostras 168 (100%) 1264(752%) 168 (100%) 168 (100%) T. Espresso [s] <1 <1 <1 <1 No produtos 14,21,4 6,51.6 4,74,8 10 Acertos (%) 84,44,3 86,85,2 84,57,8 88,11,9

Observa-se que utilizando SVM, obteve-se a funo lgica do circuito classicador com apenas um termo de produto e com o maior ndice de acertos dos dados de teste. O mtodo proposto (RSR), mesmo utilizando menos amostras para obteno da funo Booleana, obteve um ndice de acertos menor com mais termos de produto. Provavelmente o baixo desempenho do mtodo RSR devido a quantidade baixa de amostras de treinamento (apenas 168) em relao a alta dimenso dos dados (22 atributos). Devido tambm a pouca quantidade de amostras, o Espresso consumiu pouco tempo de processamento (< 1s) em todos os mtodos.

125

Captulo 6

Projeto do Circuito Classicador Digital

130

120

110

100

90 N. amostras

80

70

60

50

40

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 5 10 15 20 25 k 30 35 40 45 50

30

Figura 6.17: Quantidade mdia de amostras selecionadas para obteno da funo lgica do circuito digital classicador, para cada valor de k, na soluo do problema do corao utilizando o mtodo proposto (RSR).

88

86

84

Acertos [%]

82

80

78

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 5 10 15 20 25 k 30 35 40 45 50

76

Figura 6.18: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de k, na soluo do problema do corao utilizando o mtodo proposto (RSR).

126

6.1 Experimentos

88

86

84

Acertos [%]

82

80

78

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 4 4.5 5 5.5 6 6.5 7

76 3.5

N. termos produto

Figura 6.19: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de termos de produto, na soluo do problema do corao utilizando o mtodo proposto (RSR).

88

86

84

Acertos [%]

82

80

78

VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 40 50 60 70 80 90 100 110 120 130

76 30

N. amostras da margem

Figura 6.20: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada quantidade de amostras selecionadas, na soluo do problema do corao utilizando o mtodo proposto (RSR).

127

Captulo 6
7

Projeto do Circuito Classicador Digital

6.5

N. de termos de produto

5.5

4.5

4 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 5 10 15 20 25 k 30 35 40 45 50

3.5

Figura 6.21: Nmero mdio de termos de produto obtidos, para cada valor de k, na soluo do problema do corao utilizando o mtodo proposto (RSR).

6.1.5 Classicao de Cogumelos


Foram obtidas as funes lgicas dos circuitos digitais classicadores utilizando o mtodo proposto com os dados do problema de classicao de cogumelos descrito em captulo anterior (Figura 4.13). O processo foi repetido 10 vezes para cada mtodo, sendo que a cada processo os dados eram permutados antes de serem divididos em conjunto de treinamento, teste e validao. Para o mtodo proposto (RSR), so apresentados os resultados nas Figuras 6.22 a 6.26, onde k representa a quantidade de vizinhos mais prximos de cada classe para cada amostra do subconjunto consistente reduzido. O grco da Figura 6.22 indica o nmero mdio de amostras selecionadas para compor o subconjunto restante reduzido para cada valor de k, em cada mtrica utilizada. Observa-se que a medida em que o parmetro k cresce, a quantidade de amostras selecionadas tambm aumenta, como j esperado. A mtrica overlap apresentou uma taxa maior de crescimento de amostras em funo de k. A mtrica de Bayes apresentou um crescimento assinttico menor do nmero de amostras em funo de k. Este subconjunto de dados selecionados so utilizados pelo Espresso para obteno da funo Booleana do circuito digital classicador. O grco da Figura 6.23 apresenta o nmero mdio de acertos de classicao dos dados de teste pelo circuito digital simulado tomando como base de projeto cada subconjunto restante reduzido obtido com cada valor de k, para
128

6.1 Experimentos

cada um dos 10 experimentos e para cada uma das 6 mtricas testadas. O melhor resultado obtido para k = 140 e utilizando-se a mtrica overlap. O pior desempenho do circuito foi obtido utilizando-se a mtrica de Bayes. Interessante comparar com o resultado obtido em captulo anterior utilizando o classicador 1-NN com RSR (Figura 5.15). A mtrica de Bayes tambm apresentou o pior resultado. Os grcos das Figuras 6.24 e 6.25 apresentam os ndices de acertos dos circuitos classicadores simulados para os dados de teste em funo do nmero de termos de produtos e quantidade de amostras utilizadas, respectivamente. Observa-se novamente a superioridade da mtrica overlap no ndice de acertos do circuito mostrado nos dois grcos. A Figura 6.26 apresenta o nmero mdio de termos de produto obtidos em funo do parmetro k. A mtrica de Bayes, apresentou o menor ndice assinttico mdio de termos de produto em funo de k, entretanto, isto no foi capaz de garantir um bom desempenho para o circuito classicador obtido com esta mtrica. Na Tabela 6.5 so mostrados os resultados obtidos com os circuitos digitais simulados e projetados a partir dos diferentes mtodos apresentados, para a soluo do problema de classicao dos 10 conjuntos de dados do problema do cogumelo. So mostrados a quantidade de amostras utilizadas pelo Espresso para obteno da funo Booleana do circuito digital classicador, o tempo de processamento do Espresso em cada mtodo, o nmero de termos de produto da funo Booleana de cada circuito obtido, e a porcentagem de acertos dos dados de teste pelo circuito simulado. Os valores apresentados esto no formato de mdia e desvio padro. Tabela 6.5: Resultados obtidos no problema do cogumelo para cada mtodo.
Mtodo Sem ltragem RSR (k=140,overlap) MLP (64 nodos) SVM (rbf,w=1,c=1) No amostras 6500 (100%) 3207112(49,31,7%) 6500 (100%) 6500 (100%) T. Espresso [s] 371 143 1856 30923 No prod. 20 20 20 20 Acertos (%) 1000 1000 1000 1000

Novamente observa-se que o mtodo proposto (RSR) possui resultados de acertos de classicao idnticos aos outros mtodos utilizando menos amostras e menos tempo de processamento para o Espresso.

129

Captulo 6

Projeto do Circuito Classicador Digital

4000

3500

3000

2500 N. amostras

2000

1500

1000 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 20 40 60 80 100 k 120 140 160 180 200

500

Figura 6.22: Quantidade mdia de amostras selecionadas para obteno da funo Booleana do circuito digital classicador, para cada valor de k, na soluo do problema do cogumelo utilizando o mtodo proposto (RSR).

105

100

95

90 Acertos [%]

85

80

75 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 20 40 60 80 100 k 120 140 160 180 200

70

65

Figura 6.23: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de k, na soluo do problema do cogumelo utilizando o mtodo proposto (RSR).

130

6.1 Experimentos

105

100

95

90 Acertos [%]

85

80 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes

75

70

65 0.5

1.5 N. termos produto

2.5

Figura 6.24: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada valor de termos de produto, na soluo do problema do cogumelo utilizando o mtodo proposto (RSR).

105

100

95

90 Acertos [%]

85

80

75 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0 500 1000 1500 2000 2500 3000 3500 4000

70

65

N. amostras da margem

Figura 6.25: Acertos de classicao para os dados de teste em cada circuito digital simulado, para cada quantidade de amostras selecionadas, na soluo do problema do cogumelo utilizando o mtodo proposto (RSR).

131

Captulo 6
2.5

Projeto do Circuito Classicador Digital

N. de termos de produto

1.5

1 VDM modificada VDM Nova mtrica Distncia discriminao Overlap Bayes 0.5 0 20 40 60 80 100 k 120 140 160 180 200

Figura 6.26: Nmero mdio de termos de produto obtidos, para cada valor de k, na soluo do problema do cogumelo utilizando o mtodo proposto (RSR).

6.2 Concluso
O circuito classicador digital projetado por meio dos dados selecionados pelo mtodo RSR proposto apresentou desempenho simulado de classicao semelhante aos melhores mtodos de classicao utilizados na atualidade para obter o correspondente circuito, porm com menos dados de treinamento. Alguns testes foram implementados utilizando dados articiais e dados reais, cujos resultados comprovam as observaes. Alm disto, a utilizao do mtodo proposto exigiu menos esforo computacional para o minimizador de funo Booleana (o Espresso) devido ao menor nmero de amostras de treinamento. O mtodo proposto possui um custo computacional alto, pois derivado da Regra do Vizinho-mais-prximo. A complexidade devida principalmente ao clculo das distncias entre todas as amostras de treinamento para escolha dos vizinhos mais prximos. Alm disto, o mtodo utiliza um processo de ordenao dos valores das distncias calculadas (foi utilizado o Quicksort) para a tomada de deciso. A complexidade do mtodo tambm aumentada por causa das 3 diferentes etapas a serem executadas em seqncia, utilizando iterao para cada etapa. Apesar disto, o gargalo maior de processamento para determinao do circuito digital est justamente no minimizador de funo Booleana (Espresso).
132

6.2 Concluso

No foi indicado o tempo de processamento dos mtodos utilizados nos experimentos pelos seguintes motivos: o algoritmo implementado para o mtodo proposto ainda no est otimizado para efeito de comparao; utilizou-se diferentes plataformas (C++, Matlab) para implementao dos mtodos; o tempo maior de processamento, em geral, devido a execuo do Espresso (exceto no mtodo de Rede Neural com algoritmo de treinamento MOBJ). Assim, foi apresentado nos resultados dos experimentos apenas o tempo de processamento do Espresso, por ser o mesmo programa utilizado em conjunto com cada mtodo.

133

Captulo 6

Projeto do Circuito Classicador Digital

134

CAPTULO

Implementao do Circuito Classicador

ara determinadas aplicaes, um classicador de padres binrios necessita ser implementado em circuito digital de modo a ter carac-

tersticas de portabilidade, autonomia e execuo em tempo real. Na literatura especializada encontram-se alguns exemplos de implementao em hardware de circuitos classicadores de padres binrios como em (Tzionas, Tsalides, & Thanailakis 1992; Tzionas, Tsalides, & Thanailakis 1994; Lipman & Yang 1997; Ferrari, Borgatti, & Guerrieri 2000; Silva, Lacerda, & Braga 2004). Aps a realizao dos testes do mtodo de projeto proposto nesta tese implementados em software e executados em um sistema de computador tipo PC (monoprocessado), decidiu-se fazer a implementao do sistema do classicador de padres binrios em hardware recongurvel. O principal objetivo desta etapa da tese foi comprovar a possibilidade de implementar a proposta em um sistema embutido (vide (Wolf 2001)), o que o tornaria vivel para as mais diversas aplicaes, principalmente em problemas que exigem soluo com sistemas portteis e com processamento em tempo real, conforme (Wilmshurst 2001). A seguir ser dada uma explanao geral sobre sistemas embutidos, evidenciando as suas principais caractersticas de projeto. Em seguida, ser apresentada a arquitetura escolhida para implementao do sistema proposto baseado no processador NIOS II (Altera Corporation 2003b) em FPGA. Os detalhes de hardware e software necessrios para implementao do sistema proposto usando a arquitetura escolhida so mostrados em conjunto com al135

Captulo 7

Implementao do Circuito Classicador

guns resultados de operao do sistema.

7.1 Projeto de Sistemas embutidos


Sistemas embutidos so sistemas que geralmente fazem interface direta com o ambiente, reagindo com o mesmo, ou aparecem como parte de um sistema computacional implementando aplicaes especcas (Etrusco 2003). Sistemas embutidos so geralmente construdos agrupando-se processadores convencionais e circuitos dedicados de aplicao especca, denominados ASICs (Application Specic Integrated Circuits), alm de um sistema associado de memria e interfaces com o ambiente. ASICs so dispositivos de hardware dedicados e possuem alto desempenho, sendo geralmente destinados a partes complexas das aplicaes, porm implementam apenas funes xas determinadas durante a fabricao. Por outro lado, o uso de processadores convencionais em sistemas embutidos fornece uma interface de desenvolvimento exvel atravs de programao via software . Os sistemas embutidos se caracterizam por restries de projeto e das prprias funes implementadas pelos mesmos pela necessidade de interao direta com o ambiente (vide (Vahid & Givargis 2002)). As restries de projeto envolvem processamento em tempo real e capacidade de controle simultneo de uxo de dados em taxas de ocorrncia diferentes (vide (Wilmshurst 2001)). O desenvolvimento de sistemas embutidos baseado principalmente na diviso de seus componentes de hardware e componentes de software. Estes componentes so implementados utilizando-se diversas tecnologias como: ASICs; processadores de uso geral; combinaes hbridas de processadores de uso geral e ASICs; System on a chip. A seguir so apresentados alguns conceitos sobre projeto e implementao de sistemas embutidos.

7.1.1 Particionamento hardware/software


Uma abordagem tradicional para o projeto de sistemas embutidos o particionamento entre hardware e software . O hardware implementado atravs de ASICs e o software implementado atravs de processadores de uso geral,
136

7.1 Projeto de Sistemas embutidos

microcontroladores ou DSPs (Digital Signal Processor). As partes que necessitam de desempenho so implementadas em hardware, e partes que necessitam de exibilidade so implantadas em software. A principal mtrica que dene a necessidade de um componente do sistema ser implementado em hardware o desempenho requerido segundo (vahid2002). As tarefas que lidam diretamente com processamento em tempo real so implementadas em hardware. A mtrica utilizada para denir a parte a ser implementada em software a exibilidade. O custo do sistema utilizado como mtrica global.

7.1.2 Sistema recongurvel


Sistemas recongurveis so construdos atravs de utilizao de dispositivos de hardware programveis tais como as FPGAs (Field Programmable Gate Arrays) e congurados com a utilizao de ferramentas de projeto. Os sistemas recongurveis podem ser considerados uma alternativa aos sistemas compostos de processadores convencionais e ASICs pois agregam tanto a exibilidade dos primeiros quanto o desempenho dos ltimos. A partir destes dispositivos possvel desenvolver sistemas com caractersticas de desempenho de ASICs e a exibilidade de processadores de uso geral. Esta combinao de exibilidade e desempenho coloca as arquiteturas recongurveis como uma importante rea no desenvolvimento de sistemas computacionais. A computao recongurvel traz modicaes no particionamento hardware/software uma vez que a mesma se encontra em um ponto intermedirio onde temos o desempenho de hardware associado exibilidade do software . Alm disto, toda a implementao ocorre estritamente em hardware, ou seja, no h efetivamente um particionamento entre hardware e software. Em sistemas implementados espacialmente como os sistemas recongurveis temos um modelo de computao diferente que ao invs de realizar operaes em instantes de tempo, seqencialmente, estabelece a alocao de cada operao a uma rea diferente do dispositivo programvel e, desta forma, permite a execuo de quantas operaes possam ser alocadas no dispositivo, em paralelo. A grande vantagem de computao espacial a possibilidade de se explorar todo o paralelismo intrnseco a um determinado algoritmo desde que se tenha recursos de hardware sucientes para tanto.

7.1.3 System on a chip (SoC)


System on a chip, conforme (Berger 2002), uma soluo para integrao de sistemas em um nico circuito integrado. Estas solues so divididas por rea de aplicao e em blocos de propriedade intelectual implementados em
137

Captulo 7

Implementao do Circuito Classicador

hardware comumente chamados cores. A FPGA permite a integrao de sistemas complexos em um nico chip, agregando exibilidade implementao baseada em SoCs. As solues de integrao so divididas em duas plataformas diferentes: um processador convencional integrado parte lgica programvel em dispositivos especcos; processadores implementados na forma de softcores que podem ser instanciados em diversas famlias de FPGAs. Os perifricos podem ser conectados aos processadores atravs de barramentos disponveis nos dispositivos. Na seo seguinte apresentado um processador disponibilizado em forma de softcore para aplicaes de uso geral.

7.2 Processador NIOS II


O processador NIOS II um core de processador RISC de propsito geral (Altera Corporation 2003a), contendo: conjunto de instrues, dados e espao de endereamento de 32 bits; 32 registradores de propsito geral; 32 fontes de interrupo externa; instrues simples de multiplicao e diviso em 32 bits; instrues dedicadas para processamento de produtos de multiplicao de 64 bits e 128 bits; instrues simples de deslocamento; acesso a uma variedade de perifricos on-chip, e interfaces para memria e perifricos off-chip; mdulo de depurao por hardware assistido, habilitando o processador a iniciar, parar, e executar passo a passo sob controle de um ambiente de desenvolvimento; ambiente de desenvolvimento de software baseado na ferramenta GNU C/C++ e Eclipse IDE; desempenho em torno de 150DMIPS (Dhrystone Millions of Instruction per Second).
138

7.2 Processador NIOS II

O processador NIOS II um processador com ncleo congurvel por software . Congurvel signica que caractersticas podem ser somadas ou removidas. Softcore signica que o ncleo da CPU disponibilizado em forma de projeto de software , e pode ser implementado em alguma famlia de FPGA. o usurio quem congura o processador NIOS II e perifricos segundo suas necessidades e ento programa o sistema dentro de uma FPGA. Um sistema de processador NIOS equivalente a um microcontrolador em computador on-chip que inclui uma CPU e uma combinao de perifricos e memria em um simples chip. A Figura 7.1 apresenta um exemplo de um sistema que faz uso do NIOS II.

Figura 7.1: Exemplo de sistema com processador NIOS II. FONTE: Altera Corporation Projetos com processadores softcore permitem congurar o hardware do processador baseado em necessidades de projeto do sistema (Altera Corporation 2003c; Altera Corporation 2003b). Algumas das caractersticas disponveis que podem ser usadas para incrementar o desempenho do sistema NIOS so: A CPU NIOS de 32 bits oferece duas instrues de multiplicao aceleradas por hardware (MSTEP, MUL) o qual aumentam at dez vezes o desempenho da implementao apenas em software .
139

Captulo 7

Implementao do Circuito Classicador

O processador NIOS II pode ser congurado para usar a memria on-chip com cache de instrues e dados, o qual pode aumentar o desempenho do sistema. possvel acrescentar funes personalizadas ao NIOS II para incrementar o seu desempenho. Um processador NIOS II pode ser criado com qualquer combinao de perifricos, interfaces, memria ou CPUs. Geralmente mais eciente duplicar recursos de hardware do que fazer software compartilhar um simples recurso. O nico fator limitante para o nmero de CPUs, perifricos e interfaces de memria em um sistema a quantidade de elementos lgicos disponveis dentro da FPGA. O projetista pode personalizar o sistema com processador NIOS II at chegar ao custo e desempenho desejados. FPGAs do fabricante Altera1 providenciam uma exibilidade para acrescentar caractersticas e incrementar desempenho ao sistema do processador. De outro modo, caractersticas no necessrias ao processador e perifricos podem ser eliminados para ajustar o projeto em um dispositivo menor e mais barato. Muitas personalizaes so possveis devido aos pinos e recursos lgicos dos dispositivos FPGA serem programveis. Em geral, possvel utilizar: pinos extras e recursos lgicos no chip para serem usados em funes no relacionadas ao processador. Um sistema de processador NIOS II consome em torno de 5% de uma FPGA de alta densidade, deixando o resto dos recursos do chip disponveis para implementar outras funes. pinos extras e lgica no chip para implementar perifricos adicionais ao sistema com processador NIOS II. Altera disponibiliza uma variedade de bibliotecas de perifricos que podem ser facilmente conectados ao sistema de processamento do NIOS II. Altera disponibiliza um conjunto de perifricos comumente utilizados em microcontroladores, tais como timers, interfaces de comunicao serial, portas gerais de E/S, controladores de SDRAM e outras interfaces de memria. Projetistas podem tambm criar seus prprios perifricos e integr-los ao sistema de processamento NIOS II. Para sistemas de desempenho crtico que gastam muitos ciclos de CPU executando uma seo especca do cdigo, uma tcnica comum criar um perifrico personalizado que implementa a mesma
1 Altera, Quartus, NIOS IDE, SOPC Builder, Cyclone, Stratix so marcas registradas da Altera Corporation

140

7.2 Processador NIOS II

funo em hardware. Esta metodologia oferece um duplo benefcio em desempenho: a implementao em hardware mais rpida que em software , e o processador est livre para executar outras funes em paralelo enquanto o perifrico personalizado processa os dados. Como perifricos personalizados, instrues personalizadas so um mtodo para incrementar o desempenho do sistema pela melhoria do processador com hardware personalizado. A natureza de core em software do processador NIOS II permite aos projetistas integrar lgica personalizada unidade lgica aritmtica (ULA). Similar as instrues nativas do NIOS II, instrues personalizadas podem formar valores de at 2 registradores fonte e opcionalmente salvar o resultado em um registrador destino. Do ponto de vista de software, instrues personalizadas aparecem como macros em assembly ou funes em linguagem C. Assim programadores no necessitam conhecer assembly para usar instrues personalizadas. Nas prximas subsees, so apresentados alguns detalhes de hardware do processador NIOS II e das ferramentas disponveis para desenvolvimento de sistemas. Tambm so descritas as caractersticas de sistemas multiprocessados.

7.2.1 Arquitetura do processador NIOS II


O core do processador inclui apenas os circuitos necessrios para implementar a arquitetura do NIOS II. Na Figura 7.2 so apresentados os principais componentes internos do processador NIOS II. A arquitetura do NIOS II dene as seguintes unidades funcionais visveis ao usurio: registradores ULA interfaces para instrues lgicas personalizadas controlador de exceo controlador de interrupo barramento de instrues barramento de dados memria cache de instrues e dados interfaces de memria acopladas para instrues e dados mdulo de depurao JTAG
141

Captulo 7

Implementao do Circuito Classicador

Figura 7.2: Estrutura interna do processador NIOS II. FONTE: Altera Corporation

142

7.2 Processador NIOS II

A arquitetura NIOS II suporta barramento de instrues e dados separados, classicando-o como uma arquitetura Harvard. A arquitetura do NIOS II disponibiliza acesso E/S mapeado em memria. Dados de memria e perifricos so mapeados em espao de endereo. A arquitetura do NIOS II litlle endian, isto , palavras e meias palavras so armazenados em memria com os bytes mais signicativos no endereo mais alto. Tipicamente um sistema de processamento com NIOS II contm uma mistura de memria on-chip rpida e memria off-chip mais lenta. Perifricos tipicamente residem on-chip, embora interfaces para perifricos off-chip tambm existem. A arquitetura NIOS II suporta memrias cache para instrues e dados. Memria cache reside on-chip como uma parte do core do processador NIOS II. O core do processador NIOS II pode incluir um, ambos, ou nenhuma das memrias cache. A arquitetura NIOS II suporta um mdulo de depurao JTAG que disponibiliza emulao on-chip para controlar o processador remotamente de um host. Ferramentas de software de depurao no host comunicam com o mdulo JTAG e disponibilizam facilidades tais como: download de programas para a memria; incio e trmino de execuo; congurao de breakpoints e watchpoints; anlise de registradores e memria; coleta de dados em tempo de execuo. O processador NIOS II possui ainda 3 modos de operao: Modo supervisor: todas funes do processador so disponveis e irrestritas. O processador est em modo supervisor assim que resetado. Modo usurio: providencia um subconjunto restrito de funes do modo supervisor. Modo debug: usado por ferramentas de depurao para implementar caractersticas tais como breakpoints e watchpoints. Cdigo do sistema e cdigo de aplicao nunca executam em modo debug. A arquitetura do NIOS suporta os seguintes modos de endereamento: endereamento de registrador;
143

Captulo 7

Implementao do Circuito Classicador

endereamento indexado; endereamento imediato; endereamento indireto; endereamento absoluto. O formato das palavras de instrues do NIOS II esto em trs categorias: tipo I: contm um valor imediato embutido dentro da palavra de instruo; tipo R: todos argumentos e resultados so especicados como registradores; tipo J: implementa a instruo CALL.

7.2.2 Tipos de cores do NIOS II


Altera disponibiliza 3 tipos de ncleos para o NIOS II: NIOS II/f - o core fast projetado para desempenho rpido; NIOS II/s - o core standard projetado para tamanho pequeno enquanto mantm o desempenho; NIOS II/e - o core economic projetado para alcanar o menor tamanho possvel. Todos cores NIOS II suportam as seguintes famlias de FPGA da Altera: Stratix Stratix II Cyclone Cyclone II A seguir detalhado 2 tipos de core: NIOS II/f e NIOS II/e. O NIOS II/s possui caractersticas intermedirias entre os dois cores anteriores, sem degradar substancialmente o seu desempenho.
144

7.2 Processador NIOS II

core NIOS II/f O tipo de core NIOS II/f possui as seguintes caractersticas: Possui caches separadas para instrues e dados; Pode acessar at 2GBytes de espao de endereo externo; Opo de suportar memria fortemente acoplada para instrues e dados; Emprega 6 estgios de pipeline; Multiplicao, diviso e deslocamento em hardware; Suporta a adio de instrues personalizadas; Suporta mdulo de depurao JTAG. core NIOS II/e O objetivo do projeto no core NIOS II/e reduzir recursos de utilizao o mximo quanto possvel, enquanto mantm compatibilidade com a arquitetura do conjunto de instrues do NIOS II. O core do NIOS II/e quase metade do tamanho do core NIOS II/s, mas o desempenho de execuo substancialmente menor.

7.2.3 Memria cache


O core do processador NIOS II contm cache de dados e instrues (Altera Corporation 2005d). Em todos cores atuais do NIOS II no h um mecanismo de coerncia de cache em hardware. Desta forma, se h dispositivos acessando memria compartilhada, o software deve explicitamente manter a coerncia atravs de todos os dispositivos. O contedo do cache de dados de todos processadores que acessam a memria compartilhada deve ser gerenciado pelo software para garantir que todos os processadores lem os mesmos valores recentes e no sobreescrevam novos dados com dados ultrapassados. Este mecanismo feito atualizando os dados do cache e utilizando facilidades de bypassar a memria cache para mover dados entre a memria compartilhada e os dados de cache necessrios. A biblioteca de funes C do NIOS II disponibiliza algumas funes para acesso de dados da memria principal bypassando a cache.
145

Captulo 7

Implementao do Circuito Classicador

7.2.4 Instrues personalizadas


Com o processador NIOS II embutido da Altera, projetistas de sistemas podem acelerar algoritmos em software de tempo crtico adicionando instrues personalizadas ao conjunto de instrues do NIOS II (Altera Corporation 2005b). Com instrues personalizadas, projetistas de sistemas podem reduzir uma mquina complexa de instrues padres a uma simples instruo implementada em hardware. Com o processador NIOS II de instrues personalizadas, projetistas de sistemas so capazes de levar vantagem da exibilidade de FPGAs para encontrar necessidades de desempenho de sistemas. Isto d ao projetista de sistemas a habilidade para modicar o core do processador NIOS II para atender as necessidades de uma aplicao particular. A Figura 7.3 apresenta o modo de insero de um hardware ULA do NIOS II de forma a criar uma instruo personalizada.

Figura 7.3: Instruo personalizada no processador NIOS II. FONTE: Altera Corporation Projetistas de sistemas tem a habilidade para acelerar tempo crtico de software pela converso do algoritmo em blocos lgicos de hardware. Como fcil alterar o projeto de um processador NIOS II baseado em FPGA, instrues personalizadas providenciam um modo fcil para particionar projetos em hardware/software durante a implementao de um sistema embutido. Para cada instruo personalizada, o ambiente de desenvolvimento integrado do NIOS II (IDE) produz uma macro que denida no cabealho do pro146

7.2 Processador NIOS II

grama do sistema. Assim possvel chamar uma macro de uma aplicao em cdigo de linguagem C como uma chamada normal funo e no necessrio programar em assembly para acessar as instrues personalizadas. As macros denidas pelo NIOS II IDE fazem uso de tipos inteiros em C. As instrues personalizadas do processador NIOS II permitem a denio de macros personalizadas que permitem tipos de 32 bits de entrada para interfacear com instrues personalizadas. O NIOS II usa funes embutidas do compilador gcc para mapear instrues personalizadas. Usando funes embutidas permitem a tipos alm de inteiros para serem usados com instrues personalizadas.

7.2.5 Ambiente de desenvolvimento


A presso crescente para entrega de produtos robustos no mercado em um tempo hbil tem aumentado a importncia da vericao de projetos de processadores embutidos (Altera Corporation 2004). Projeto com o processador embutido NIOS II suporta uma ampla faixa de solues de vericao incluindo: NIOS II IDE (Integrated Development Environment) pode ser usado para vericar projetos rodando em placas em desenvolvimento ou personalizadas usando seu debugger incluso. ISS (Instruction Set Simulator) usado para modelar o conjunto de instrues do processador NIOS II em um software baseado em modelo de simulao. Isto permite projetistas rodarem a imagem executvel de seus projetos de software no ISS e depurar o software usando o NIOS II IDE Debugger. O ISS principalmente utilizado quando uma placa de desenvolvimento no est disponvel. Register Transfer Level (RTL) Simulation. RTL habilita projetistas para observar qualquer registrador e sinal dentro do projeto. Sistemas baseados em NIOS II podem facilmente serem simulados em ModelSim2 usando um ambiente automaticamente criado pelo SOPC Builder e NIOS II IDE. ModelSim uma ferramenta de simulao e depurao para VHDL (Very High Speed Integrated Circuit Hardware Description Language), VERILOG e projetos de linguagens mixadas. Simulao e vericao so partes vitais do processo de projeto. O processador NIOS II pode ser vericado compreensivamente usando depurao, emulao por software usando NIOS II ISS e simulao RTL usando ModelSim.
2

ModelSim marca registrada da Mentor Graphics Corporation

147

Captulo 7

Implementao do Circuito Classicador

Simulao RTL uma parte importante do processo de projeto para sistemas congurveis uma vez que ele permite observar sinais embutidos dentro do processador e seus conjuntos de perifricos. A Figura 7.4 apresenta as ferramentas utilizadas para o projeto, compilao, simulao e congurao da FPGA da Altera com um sistema de processador NIOS II. A seguir so detalhadas algumas destas ferramentas de software .

Figura 7.4: Sistema de desenvolvimento para o processador NIOS II.

Quartus II O software de projeto Quartus II da Altera disponibiliza um ambiente de projeto completo e multiplataforma que facilmente adapta as necessidades do projetista (Altera Corporation 2005e). O software inclui solues para todas as fases de projeto de FPGA da Altera (Figura 7.5). O software QuartusII permite o uso de interface grca de projeto, interface para ferramenta de anlise, e interface em linha de comando para cada fase do projeto.
148

7.2 Processador NIOS II

Figura 7.5: Fases de projeto de um sistema em FPGA. FONTE: Altera Corporation SOPC Builder SOPC Builder (System On a Programmable Chip) uma ferramenta de software que permite ao usurio criar um microcontrolador embutido totalmente funcional e personalizado chamado mdulo do sistema NIOS II. Um sistema completo NIOS II contm um processador embutido NIOS II e seus sistemas de perifricos associados. SOPC Builder permite ao usurio criar facilmente e rapidamente um mdulo de sistema multi-master (master, slave, lgica de rbitro de barramento, etc.) que conectado e pronto uso em FPGAs da Altera. NIOS II IDE O NIOS II IDE (Integrated Development Environment) um software com interface grca para desenvolvimento de programas em C/C++ para o processador NIOS II. Todo desenvolvimento das tarefas de programas podem ser acompanhadas de dentro do NIOS II IDE, incluindo edio, compilao e depurao de programas. O NIOS II IDE uma janela atravs da qual todas outras ferramentas podem ser acessadas. O NIOS II IDE baseado na popular ferramenta Eclipse IDE e no kit de ferramenta de desenvolvimento Eclipse C. O NIOS II IDE uma interface do usurio que manipula outras ferramentas livrando o usurio dos detalhes de
149

Captulo 7

Implementao do Circuito Classicador

ferramentas de linha de comando e apresenta um ambiente de desenvolvimento unicado. ModelSim ModelSim uma ferramenta de simulao e depurao para VHDL, VERILOG e projetos de linguagens mixadas. As seguintes etapas so utilizadas para simular um projeto no ModelSim: 1. Criar uma biblioteca de trabalho; 2. Compilar arquivos de projeto; 3. Executar simulao; 4. Analisar resultados. Em ModelSim, todos projetos, sejam eles em VHDL, VERILOG ou uma combinao dos dois so compilados em uma biblioteca. Uma nova simulao sempre iniciada pela criao de uma biblioteca de trabalho, aps a qual realizada a compilao das unidades de projeto. Tendo o projeto compilado, o simulador invocado em um mdulo de alto nvel (VERILOG) ou uma congurao em par de entidade/arquitetura (VHDL). Pela anlise dos resultados obtidos da simulao, so feitas as correes no projeto at se obter os resultados desejados.

7.2.6 Multiprocessamento
Sistema multiprocessado qualquer sistema o qual incorpora 2 ou mais microprocessadores trabalhando juntos para executar uma tarefa (Altera Corporation 2005a). O processador NIOS II da Altera e a ferramenta SOPC Builder permitem aos desenvolvedores de sistemas projetar e construir sistemas multiprocessados que compartilham recursos rapidamente. Usando o NIOS II IDE, o projetista pode criar e depurar 3 projetos de software , um para cada processador do sistema. Sistemas multiprocessados possuem o benefcio de incrementar o desempenho, quando comparado com sistemas monoprocessados, porm com aumento do custo geral. FPGAs providenciam uma plataforma ideal para desenvolvimento de sistemas multiprocessados assimtricos embutidos desde que o hardware possa ser facilmente modicado e ajustado usando a ferramenta SOPC Builder de modo a providenciar timo desempenho do sistema. Mltiplos processadores NIOS II so hbeis para compartilhar recursos de sistema graas a capacidade de arbitrao.
150

7.2 Processador NIOS II

NIOS II IDE e SOPC Builder providenciam um esquema simples de particionamento de memria que permite mltiplos processadores rodarem seu software em diferentes regies separadas da mesma memria fsica. O NIOS II IDE providencia a cada processador sua prpria seo dentro da memria na qual ele pode executar seu software . NIOS II IDE inclui um nmero de caractersticas que podem ajudar no desenvolvimento de software para sistemas multiprocessados, incluindo a depurao simultnea de mltiplos processadores on chip. Mltiplas sesses de depurao podem rodar ao mesmo tempo em um sistema multiprocessado e podem parar e continuar cada processador independentemente. Breakpoints tambm podem ser congurados individualmente para cada processador. Sistemas multiprocessados NIOS II podem ser divididos em 2 principais categorias: 1. aqueles que compartilham recursos; 2. aqueles que cada processador autnomo e no compartilha recurso com outros. Estes mltiplos processadores no comunicam entre si, sendo impossvel de interferirem com a operao de outro.

7.2.7 Compartilhamento de recursos


Recursos so considerados compartilhados quando eles so disponveis para serem acessados por mais do que um processador. Recursos podem ser compartilhados simplesmente conectando eles no barramento principal dos mltiplos processadores na matriz de conexo do SOPC Builder. Mas s isto no garante que os processadores que compartilham os recursos trabalharo no destrutivamente. O software executando em cada processador responsvel por coordenar o acesso aos recursos compartilhados com os outros processadores do sistema. O tipo mais comum de compartilhamento de recurso em sistemas multiprocessados a memria. Memria compartilhada pode ser usada desde como simples ag cujo propsito comunicar status entre processadores, at estruturas de dados complexas que so coletivamente acessadas por muitos processadores simultaneamente. Se um componente de memria para ser compartilhado para propsito de dados, sua porta de acesso necessita ser conectada ao barramento mestre dos processadores que esto compartilhando a memria. Se um processador est escrevendo em uma rea particular da memria de dados compartilhada no mesmo instante que outro processador est lendo ou escrevendo naquela rea, provavelmente ocorrero corrupo de dados, causando no mnimo aplicao de erros, e possivelmente um crash no sistema.
151

Captulo 7

Implementao do Circuito Classicador

Para prevenir que mltiplos processadores interram um com o outro, um core de hardware includo no sistema que permite a diferentes processadores obterem a posse de recursos compartilhados por um perodo de tempo. Isto previne que o recurso compartilhado se torne corrompido pela ao de outro processador. O processador NIOS II permite a manipulao de proteo de recursos compartilhados com sua caracterstica de core de hardware mutex (mutual exclusion). Este core um pequeno componente do SOPC Builder. Um mutex permite que um dos processadores possa acessar exclusivamente o recurso de hardware do sistema. Isto melhor detalhado na prxima seo.

7.2.8 Mutex
Ambientes multiprocessados podem usar o core mutex para coordenar acessos a dispositivos compartilhados. O core mutex providencia um protocolo para garantir propriedade mutuamente exclusiva de recurso compartilhado. O core mutex providencia uma operao atmica de teste e ativao baseados em hardware, permitindo ao software em um ambiente multiprocessado determinar qual processador apropria o mutex. O core mutex pode ser usado em conjunto com memria compartilhada para implementar caractersticas de coordenao interprocessadores. O core mutex projetado para uso em sistemas processados baseados em Avalon, tais como um sistema de processador NIOS II. Altera disponibiliza device drivers para o processador NIOS II para habilitar o uso do hardware mutex. O core mutex disponibiliza acesso a dois registradores de 32 bits mapeados em memria. Supondo que h mltiplos processadores acessando um core simples de mutex, e cada processador tem um nico identicador (ID): 1. quando o campo valor 0x0000, o mutex est disponvel (isto , destravado). Caso contrrio, o mutex est indisponvel (travado). 2. o registrador mutex est sempre legvel. Um processador pode ler o registro mutex para determinar seu estado corrente. 3. o registrador mutex escrito apenas sob condies especcas. Uma operao de escrita troca o registrador mutex apenas se uma ou ambas das seguintes condies so verdadeiras: (a) o campo valor do registrador mutex zero; (b) o campo proprietrio do registrador mutex coincide com o campo proprietrio no dado para ser escrito.
152

7.3 Sistema Classicador Proposto

4. um processador tenta adquirir o mutex escrevendo seu ID no campo proprietrio, e escrevendo um valor no zero no campo valor. O processador ento verica se a aquisio sucedeu pela vericao do campo proprietrio. 5. depois do reset do sistema, o bit de reset no registrador reset ativo. Escrevendo um 1 neste bit limpa-o. H algumas funes da biblioteca C do NIOS II prprias para leitura e escrita do registrado mutex.

7.3 Sistema Classicador Proposto


A soluo adotada para implementao em hardware do classicador de padres binrios proposto foi um sistema multiprocessado com NIOS II implementado em FPGA Cyclone II da Altera, disponvel em forma de kit de desenvolvimento e programao em linguagem C/C++. Nas sees seguintes so apresentados os detalhes de hardware e software do sistema completo desenvolvido.

7.3.1 O hardware do sistema


Para implementao do sistema proposto, foi utilizado um kit de desenvolvimento da Altera: NIOS II Development Kit Cyclone II Edition (Altera Corporation 2005c). O principal componente do kit a FPGA da Altera Cyclone II EP2C35 com sinal de clock de 50MHz, conforme pode ser visto na Figura 7.6 (chip U62). Na Tabela 7.1 so apresentados os componentes principais do kit mostrados na Figura 7.6. Estes componentes esto disponveis ao projetista para a implementao de um sistema NIOS II completo em FPGA com vrias opes de perifricos e memria tanto on-chip quanto off-chip. As caractersticas principais da FPGA Cyclone II EP2C35 presente no kit pode ser resumida na Tabela 7.2. Na Figura 7.7 pode ser visto um diagrama simplicado com os componentes e conexes do kit de desenvolvimento. Na Figura 7.8 apresentado um diagrama simplicado do hardware do sistema classicador de padres binrios proposto implementado no kit. O sistema proposto composto por: 3 CPUs NIOS II implementadas na FPGA do kit junto com barramentos de comunicao e perifricos (contadores de tempo), no mostrados para simplicar a Figura 7.8;
153

Captulo 7

Implementao do Circuito Classicador

Tabela 7.1: Descrio dos componentes do kit de desenvolvimento.


Sigla U62 SW0-SW3 D0-D7 U8,U9 U74 U5 LED7 U63 U4 RJ1 RJ1 J19 PROTO1 PROTO2 CON3 JH1, JH2 J25 TP1-TP8 J24 J5 J27 U3 U69 SW8 SW9 SW10 LED0-3,LED6 Y2 J4 J26 D34 Descrio Cyclone II FPGA EP2C35F672C6 Push-button para entrada de sinais pelo usurio LEDs de sada da FPGA 2 LEDs de sete segmentos de sada da FPGA Memria SSRAM de 2 MBytes (synchronous SRAM) Memria Flash de 16 MBytes Indicador de memria Flash com congurao Memria DDR SDRAM de 32 MBytes Interface Ethernet MAC/PHY 10/100 Conector RJ-45 para Ethernet Conector serial RS232 com buffers Conector de expanso Conector de expanso Conector para expanso de memria CompactFlash Conector de expanso PMC para um PCI mezzanine card Conector Mictor com acesso a 27 pinos E/S da FPGA Pontos de teste com acesso a 8 pinos E/S da FPGA Conector JTAG com acesso a FPGA Conector JTAG com acesso ao controlador MAX Conector para o dispositivo de congurao serial Controlador de congurao Altera MAX EPM7256AE Dispositivo de congurao serial Altera EPCS64 para a FPGA Push-button para resetar a CPU Nios II congurada na FPGA Push-button para recongurar a FPGA com a congurao de fbrica Push-button para resetar o kit LEDs de status de congurao do kit Oscilador de 50 MHz, sinal de clock para a FPGA Entrada de clock externo para a FPGA Entrada de energia para alimentao do kit, 16V DC no regulado Reticador em ponte para a alimentao do kit

Tabela 7.2: Descrio da FPGA EP2C35 do kit de desenvolvimento. Caracterstica Elementos lgicos (LE) Blocos de memria de 4kbits Total de bits da RAM Blocos multiplicadores embutidos 18x18 PLLs Pinos de E/S do usurio Quantidade 33.216 105 483.840 35 4 475

154

7.3 Sistema Classicador Proposto

Figura 7.6: Vista superior do kit de desenvolvimento. FONTE: Altera Corporation memria DDR (no indicada na Figura 7.8) e memria SRAM (memria comum) includas no kit; interface JTAG includa na prpria FPGA; display LCD disponvel no kit; PAL implementada dentro da FPGA; mutex (no indicada na Figura 7.8). No Apndice A encontra-se o diagrama de projeto do sistema proposto utilizando o software Quartus II e SOPC Builder. Cada componente possui as seguintes caractersticas e funes dentro do sistema implementado no kit: CPU 1: um NIOS II/e responsvel por receber os dados do computador tipo PC via interface JTAG e encaminhar os dados para a memria comum do sistema (SRAM). Tambm realiza a monitorao das outras CPUs indicando no display LCD o status do sistema. Ao nal de cada ciclo de processamento, a CPU 1 realiza a congurao da PAL com a funo lgica do circuito classicador obtido. CPU 2: um NIOS II/f responsvel pela execuo do algoritmo de seleo de amostras (RSR). Os dados so lidos da memria comum, e ao nal do processamento os dados selecionados so devolvidos mesma memria.
155

Captulo 7

Implementao do Circuito Classicador

Figura 7.7: Diagrama em blocos do kit de desenvolvimento. FONTE: Altera Corporation

156

7.3 Sistema Classicador Proposto

Figura 7.8: Implementao em hardware do Sistema Classicador.

157

Captulo 7

Implementao do Circuito Classicador

CPU 3: um NIOS II/f responsvel pela execuo do minimizador de funo Booleana (Espresso). Os dados so lidos da memria comum assim que a CPU 2 os disponibiliza. Ao nal do processamento, o resultado armazenado na mesma memria para que a CPU 1 possa utiliz-los na congurao da PAL. Memria DDR: responsvel pelo armazenamento do programa de cada CPU e respectivos dados locais. Regies de memria so reservadas para cada CPU de modo que uma CPU no interfere na regio de memria de outra CPU. Memria comum: uma memria SRAM disponvel no kit de desenvolvimento e que compartilhada com as 3 CPUs para troca de dados e informaes. Para evitar conito de dados, o mutex acessado via software por cada CPU. Interface JTAG: responsvel pela transferncia de dados do computador tipo PC para o sistema NIOS, alm de permitir o envio e depurao dos programas executados por cada CPU. Display LCD: controlado pela CPU 1, responsvel por mostrar o status do sistema. PAL: fornece um ambiente de congurao de funo Booleana em hardware para implementao do resultado do processamento da CPU 3 na forma de soma de produtos. No Apndice B, encontra-se a descrio em VHDL da PAL implementada em FPGA, bem como um exemplo de simulao de seu funcionamento. Uma viso simplicada da implementao da PAL mostrada na Figura 7.9. Ela contm uma matriz de portas lgicas AND e OR, em conjunto com registradores para armazenar a congurao das entradas binrias na matriz AND. A PAL foi projetada para comportar uma capacidade mxima de 85 termos de produto de 24 variveis binrias de entrada e uma sada. Uma vez congurada, a PAL funciona como um classicador de dados binrios provenientes de suas entradas, e fornece em sua sada o resultado da classicao. Foi aproveitado 4 botes existentes no kit para funcionarem como entradas binrias para a PAL, enquanto um LED foi aproveitado como indicador da sada da PAL. A m de melhorar o desempenho da CPU 2, responsvel pela execuo do algoritmo RSR, foi implementada uma instruo personalizada em hardware para clculo da distncia entre dois operandos em ponto utuante (vide Apndice C). A distncia justamente o clculo do valor absoluto da diferena entre os dois operandos. Como o processador necessita de realizar este clculo
158

7.3 Sistema Classicador Proposto

Figura 7.9: Diagrama simplicado da PAL implementada na FPGA. vrias vezes, intenciona-se diminuir o tempo total de execuo desta operao. Assim, duas instrues de alto nvel (diferena entre dois operandos e clculo do valor absoluto do resultado) que so executas em 35 ciclos de clock foram substitudas por uma nica instruo de baixo nvel que executada em apenas 10 ciclos de clock. O sistema completo ocupou 49% dos elementos lgicos da FPGA (total de 33.216) e 45% dos pinos de E/S (total de 475). A implementao da instruo personalizada ocupou apenas 2% da FPGA, enquanto s a implementao da PAL ocupou 25%. O baixo rendimento na implementao da PAL se deve ao desperdcio de elementos lgicos para implementar registradores de memria que memorizam o estado da matriz AND na PAL. Alm disto, a PAL ocupa vrios elementos lgicos para implementar as funes lgicas AND e OR. A seguir so apresentados os detalhes do software que so executados em cada CPU.

7.3.2 O software do sistema


O sistema classicador proposto possui 3 processadores NIOS II que podem trabalhar independentemente um do outro. Cada um possui seus prprios recursos de memria para execuo de programas e armazenamento de dados, alm de uma memria comum para troca de dados. Cada processador pode acessar 3 tipos de memrias existentes no kit de desenvolvimento: Memria Flash Memria DDR Memria SRAM A seguir detalhada cada tipo de memria utilizada pelos processadores.
159

Captulo 7

Implementao do Circuito Classicador

Memria Flash A memria Flash possui um tamanho total de 16MBytes e tem por funo: armazenar o programa de inicializao de cada CPU NIOS II; armazenar dados quando necessrio (no utilizado no sistema implementado); armazenar a congurao da FPGA se desejado pelo usurio (no implementado). Na Figura 7.10 apresentado o mapa de memria da Flash. Para cada um dos 3 processadores NIOS II implementados no kit, h uma regio de memria de 1MByte na Flash dedicada para armazenar um programa de inicializao da CPU. Esta parte do programa do sistema denida automaticamente pelo NIOS II IDE.
00FFFFFF

00300000 00200000 00100000 00000000

1MB (CPU 3) 1MB (CPU 2) 1MB (CPU 1)

Figura 7.10: Mapa de memria Flash do sistema (inicializao). O restante da memria Flash no utilizado pelo sistema implementado. Memria SDRAM A memria SDRAM possui um tamanho total de 32MBytes e responsvel por armazenar os aplicativos e dados de cada CPU. Ela foi particionada da maneira indicada na Figura 7.11 para cada CPU. Cada regio da memria SDRAM recebe, via interface JTAG, o programa j compilado correspondente a cada CPU. A ferramenta de software NIOS II IDE
160

7.3 Sistema Classicador Proposto


03FFFFFF

8MB (CPU 3)
03800000

22MB (CPU 2)

02200000

02000000

2MB (CPU 1)

Figura 7.11: Mapa de memria SDRAM do sistema (programa e dados). executada em um PC se encarrega de compilar, transferir e iniciar a execuo de cada programa desenvolvido em linguagem C++ para cada CPU NIOS II. O programa j compilado em cada CPU em conjunto com os dados inicializados possuem o seguinte tamanho para cada CPU (indicado tambm o restante de espao livre de memria): CPU 1: 83 KBytes (1964 KBytes livres para stack e heap); CPU 2: 123 KBytes (22404 KBytes livres para stack e heap); CPU 3: 329 KBytes (7862 KBytes livres para stack e heap). Memria SRAM A memria SRAM foi escolhida para servir de elo de comunicao entre os processadores. Por meio desta memria, os processadores passam os dados uns para os outros sem ocasionar conito de dados. Possui um tamanho total de 2MBytes e foi particionada para melhor organizar os dados, mas qualquer um dos 3 processadores pode acessar qualquer regio desta memria. Na Figura 7.12 apresentado o seu mapa de memria. Cada regio (buffer) alocada da memria SRAM possui a seguinte caracterstica e funo: Buffer 1: aproximadamente 1,43MBytes de tamanho, permitindo armazenar 50.000 linhas por 30 colunas de tabela de dados binrios no formato do Espresso. utilizado pela CPU 1 para armazenar os dados binrios provenientes do PC e conseqentemente lido pela CPU 2 para execuo do algoritmo de seleo das amostras (RSR).
161

Captulo 7
011FFFFF

Implementao do Circuito Classicador

Flags (4 Bytes) Buffer 3 (114kB) Buffer 2 (439kB)

Buffer 1 (1,43MB)

01000000

Figura 7.12: Mapa de memria SRAM do sistema (dados comuns). Buffer 2: aproximadamente 439kBytes de tamanho, permitindo armazenar 15.000 linhas por 30 colunas de tabela de dados binrios no formato Espresso. utilizado pela CPU 2 para armazenar o resultado das amostras selecionadas pelo algoritmo RSR e conseqentemente lido pela CPU 3 para execuo do algoritmo Espresso. Buffer 3: aproximadamente 114kBytes de tamanho, permitindo armazenar 4.000 linhas por 30 colunas de tabela de dados binrios no formato Espresso. utilizado pela CPU 3 para armazenar o resultado do programa Espresso e conseqentemente lido pela CPU 1 para congurar a PAL. Flags: so pequenos espaos reservados da memria para que cada processador possa armazenar o seu status corrente, de modo que a CPU 1 possa identicar o que cada processador est fazendo num dado momento e apresentar a informao no display LCD. O tamanho de cada buffer pode ser alterado de acordo com as necessidades do problema. A seguir apresentado um exemplo de utilizao do sistema classicador implementado.

7.4 Resultados Experimentais


O sistema classicador de dados binrios baseado nas 3 CPUs NIOS II foi implementado com sucesso no kit de desenvolvimento com FPGA da Altera. As 3 CPUs funcionam de maneira independente e em paralelo, permitindo que
162

7.4 Resultados Experimentais

o sistema funcione de maneira contnua. Assim, enquanto novos dados esto sendo recebidos pela CPU 1, os dados anteriores esto sendo processados pela CPU 2 (algoritmo RSR), dados mais antigos j processados pela CPU 2 esto sendo processados pela CPU 3 (algoritmo Espresso), e a PAL j est congurada implementando o classicador com o resultado anterior dos dados j processados pela CPU 3. Para testar o sistema, foi utilizado como entrada o mesmo conjunto de dados sintticos binrios descrito no Captulo 4. Porm, foi utilizado uma quantidade de amostras menor devido a limitao da memria do sistema para armazenamento da matriz de distncias. Assim foram utilizadas 1385 amostras binrias de 24 bits de atributos e 2 classes. A mtrica de distncia escolhida para clculo dos vizinhos-mais-prximos foi a VDM e o parmetro k com valor 10 para o algoritmo RSR. Na tabela 7.3 so mostrados algumas medies de tempo de execuo do sistema classicador implementado no kit (formato de mdia e desvio padro), bem como o mesmo sistema implementado em software em um computador tipo PC Pentium IV 1.8GHz com 1GByte de RAM. Foram medidos o tempo de execuo de cada etapa do sistema classicador (RSR e Espresso) e tambm os resultados obtidos da quantidade de amostras selecionadas pelo algoritmo RSR e termos de produto da funo Booleana obtida do minimizador Booleano (Espresso). Tambm foram realizados testes do Espresso sem a execuo do algoritmo de seleo de amostras (RSR) tanto no PC quanto no sistema NIOS II implementado em kit. O sistema NIOS II tambm foi testado sem a instruo personalizada para clculo das distncias. Tabela 7.3: Resultados de tempos de execuo.
Plataforma PC P4 1.8GHz (sem RSR) PC P4 1.8GHz NIOS II (sem RSR) NIOS II NIOS II personalizado RSR [s] 492 2140339 2009725 N. amostras 1385 831 1385 831 831 Espresso [s] 1,80,4 1,00,0 486,50,5 425,843,6 425,843,6 N. produtos 37 13 37 13 13

A velocidade de processamento do sistema classicador no ambiente do computador PC foi bem maior que no sistema NIOS II proposto conforme tabela anterior. Isto devido principalmente a velocidade superior do clock do PC ( 1800 MHz = 36 vezes superior) e aos recursos de hardware adicionais 50 existentes no PC (memria cache rpida de dados e instrues, barramento de dados de 64 bits, pipeline de mltiplos estgios, preditor de branch, etc). Por outro lado, o sistema NIOS II foi implementado em uma FPGA de baixo custo e com recursos inferiores de hardware. Contudo, o sistema implementado em FPGA possui a caracterstica de ser completamente embutido, autnomo
163

Captulo 7

Implementao do Circuito Classicador

e compacto. Observa-se pela tabela que, com a instruo personalizada no sistema NIOS II, o tempo de execuo do algoritmo RSR (21403 s) diminuiu aproximadamente 6% quando comparado com o tempo de execuo do mesmo algoritmo sem a instruo personalizada (20097 s). Assim, possvel diminuir mais o tempo de execuo do algoritmo RSR e Espresso, implementando mais instrues personalizadas em hardware. O uso do algoritmo de seleo de amostras (RSR) como pr-processamento dos dados antes de aplicao do Espresso, faz com que a quantidade de amostras caia de 1385 para 831 (40% de diminuio). Isto acarreta uma diminuio no tempo de processamento do Espresso no sistema NIOS II em 12,5%, alm de diminuir substancialmente a quantidade de termos de produto da funo Booleana do circuito digital classicador (de 37 para 13). Isto evidencia o ganho da capacidade de generalizao do circuito gerado quando utilizado em conjunto com o algoritmo RSR. O custo para isto est no tempo de processamento do RSR, que para este exemplo de dados no compensou o ganho de tempo de processamento do Espresso. O tempo de atraso de resposta da PAL, implementada na FPGA, para ativao da resposta de classicao (sada) referente amostra de entrada foi de 20ns, conforme medido no simulador do software Quartus II (vide Apndice B). Este tempo de resposta no possvel de ser batido por um sistema implementado em software como em um microcomputador tipo PC. Na Figura 7.13 mostrado um exemplo do resultado da funo Booleana processada pelo sistema proposto (utilizando o algoritmo RSR e Espresso) para implementao na PAL, no formato do programa Espresso.

7.5 Concluso
A utilizao de hardware recongurvel viabiliza a implementao de um sistema multiprocessado de forma rpida, fcil e segura. O conjunto de ferramentas de software disponveis atualmente livra o projetista de um rduo trabalho de se preocupar com vrios detalhes ao mesmo tempo. Isto permite que o projetista se preocupe com outras questes mais relevantes do projeto como, por exemplo, o desenvolvimento do algoritmo que est sendo implementado. O sistema classicador de padres binrios foi implementado em uma FPGA, evidenciando a sua caracterstica de ser possvel a sua implementao em um sistema embutido para aplicaes especcas. Alm do treinamento do classicador ser on-line, o tempo de resposta do sistema treinado depende apenas do atraso de portas lgicas da FPGA. Isto devido ao componente PAL do sistema
164

7.5 Concluso

.i 24 .o 1 .p 13 --0---0-1----1---0-0--00 0-0-0--------0--00000000--0--000---0-0-100--000 00--00----------0-000000 -000-0--00------0--00-0-00000---0---0--000--00--000-01----0-----0-000000-0--0-1------0----000 -0---00-----1-----000-00 00000--------0---0-00000 000000---------0---00-00 00---------0----00000000 0-00----0--1----0-0--00.e

1 1 1 1 1 1 1 1 1 1 1 1 1

Figura 7.13: Funo Booleana processada pelo sistema para implementao na PAL, no formato do programa Espresso. classicador ser implementado utilizando apenas circuitos combinatoriais. A utilizao de hardware recongurvel permite que o sistema classicador possa ser facilmente adaptado para aplicaes diferentes, de acordo com as necessidades do problema. Para aplicaes que exigem velocidade maior de processamento do NIOS II, pode ser necessrio substituir a FPGA por uma de famlia mais poderosa, como por exemplo a Stratix II da Altera. Ou ento desenvolver mais instrues personalizadas em hardware, justamente para substituir a parte do software onde apresenta atrasos maiores. Sistemas mono ou multiprocessados implementados em hardware recongurvel permitem que algoritmos desenvolvidos inicialmente em plataformas monoprocessadas e no portteis (tipo PC) possam ser diretamente migradas para equipamentos embutidos. De acordo com a necessidade, partes do software original pode ser convertido gradativamente para hardware com a nalidade de melhorar o desempenho do sistema. O custo para isto o investimento em tempo de projetista e rea de FPGA. E graas as ferramentas de projeto atuais, isto tudo possvel!

165

Captulo 7

Implementao do Circuito Classicador

166

CAPTULO

Concluso Final e Propostas de Continuidade

istemas de aprendizado podem ser implementados em software ou hardware. A escolha de uma metodologia ou outra depende das necessidades e caractersticas do problema alvo. Geralmente o mtodo

em hardware mais adequado quando necessrio maior rapidez de resposta do sistema e quando a compactao e portabilidade so essenciais. Assim, circuitos digitais so atrativos para implementao de tais sistemas. Alm disto, com o advento de dispositivos digitais recongurveis, possvel a implementao remota e em tempo real de sistemas digitais. Informaes em diversos tipos e formatos podem ser codicadas em dados binrios para serem utilizadas em sistemas digitais. O cdigo de converso utilizado inuencia diretamente a capacidade do sistema em extrair conhecimento pelos dados. Dados binrios podem ser obtidos e armazenados facilmente para serem utilizados diretamente em sistemas de aprendizado. Circuitos digitais podem trabalhar como classicadores e ter boa generalizao desde que, durante a fase de projeto, os dados binrios de treinamento sejam pr-processados (ou ltrados), de forma a eliminar as amostras que prejudiquem o desempenho de classicao do circuito para dados desconhecidos. Os melhores dados selecionados para gerao do circuito so justamente aqueles que se encontram perto da margem de separao das classes. A maior diculdade , justamente, determinar que dados devem ser aproveitados e quais devem ser ignorados para o projeto do circuito digital. Algoritmos de minimizao de funo Booleana utilizados em sntese de circuitos digitais no se preocupam em apresentar generalizao para dados 167

Captulo 8

Concluso Final e Propostas de Continuidade

desconhecidos, uma vez que a funo deles gerar um circuito digital que seja el tabela de dados que o gerou (dados de treinamento), utilizando o mnimo de portas lgicas. Entretanto, os algoritmos de minimizao se aproveitam dos dados desconhecidos (dont care) para otimizar o circuito gerado, durante a etapa de expanso dos hipercubos. Esta forma de expanso semelhante determinao dos vizinhos-mais-prximos de uma amostra de treinamento. Caso os dados binrios sejam cuidadosamente selecionados para utilizao no algoritmo de minimizao Booleana, ento os dados eliminados so tratados como uma situao de (dont care). Assim, durante o processo de expanso dos hipercubos na execuo do algoritmo de minimizao, este obtm a melhor superfcie de separao das classes (sadas do circuito) numa posio intermediria entre as classes. Isto caracteriza a generalizao do circuito gerado. A Regra do Vizinho-mais-prximo possui timo desempenho em problemas de classicao e pode ser utilizada como mtodo de pr-processamento dos dados a serem utilizados no projeto do classicador digital. Vrios algoritmos baseados na regra do vizinho-mais-prximo se propem a identicar e selecionar as amostras perto da margem de modo ao classicador apresentar tima generalizao. O mtodo de seleo proposto neste trabalho se baseia na regra desenvolvida por Wilson (Wilson 1972) para selecionar as amostras perto da margem. A Regra do Vizinho-mais-prximo depende diretamente de uma medida de similaridade dos dados. Neste trabalho foi deduzida a formulao estatstica da Distncia de Discriminao (Aleksander, Clarke, & Braga 1994), uma mtrica de distncia prpria para ser utilizada com dados binrios. Alm disto, foi proposto uma modicao na mtrica VDM para melhoria do seu desempenho para determinados tipos de problemas, conforme comprovado por experimentos. Tambm foi desenvolvida uma nova mtrica baseada nos coecientes da verossimilhana da Regra de Bayes. Esta nova mtrica se mostrou mais adequada para alguns tipos de problemas pois apresentou um comportamento mais estvel para o classicador kNN do que outras mtricas apresentadas. O mtodo de seleo de amostras (denominado RSR) proposto neste trabalho de tese ltra (retira) os dados entre as margens de separao das classes e seleciona (retm) os dados mais prximos s margens que melhor caracterizam cada classe. A quantidade de amostras selecionadas controlada pelo parmetro k, o que inuencia na generalizao da resposta do classicador. A aplicao destes dados selecionados como entrada ao minimizador de funo Booleana faz com que os hipercubos sejam naturalmente expandidos de tal forma a se aproximarem da fronteira de separao das classes, alm da expanso ser tambm em direo ao interior do agrupamento de cada classe.
168

O mtodo de seleo de amostras proposto reduz a quantidade armazenada de amostras necessrias para a obteno do circuito digital pelo minimizador Booleano, o que implica na reduo do custo computacional de processamento pelo minimizador, alm de garantir uma melhora na generalizao quando comparado ao processo de obteno do circuito sem a seleo dos dados. O mtodo de seleo RSR tambm pode ser utilizado em conjunto com outros mtodos de classicao formando um sistema hbrido. O objetivo do pr-processamento das amostras com o algoritmo RSR seria no s a reduo da quantidade de amostras e custo computacional do mtodo subseqente, mas tambm a melhoria no desempenho da classicao nal. O mtodo RSR pode ser utilizado com dados binrios, mas tambm com dados nominais e nmeros reais ou inteiros. O sistema classicador de dados binrios foi implementado em um sistema de hardware recongurvel baseado em FPGA, tornando-o um sistema embarcado que pode ser utilizado em aplicaes especcas que exigem portabilidade, autonomia e compactao. O sistema classicador implementado funciona em tempo real, com treinamento on-line e resposta de classicao rpida com tempo de atraso devido apenas ao atraso intrnseco das portas lgicas. A caracterstica de hardware recongurvel em FPGA permite que o sistema classicador implementado possa ser modicado facilmente para se adaptar a diferentes problemas, alm de permitir modicaes para melhoria do desempenho. Por exemplo, partes do software podem ser convertidas para hardware com um custo de rea de FPGA e tempo de projeto. Ou ento, podese utilizar dispositivos mais velozes para implementao do sistema como alguma famlia de FPGA mais rpida (e possivelmente mais cara). O uso de multiprocessamento para implementao do sistema em hardware recongurvel torna-o exvel para ser utilizado tanto por desenvolvedores de software quanto de hardware. Assim, espera-se que este trabalho de tese tenha continuidade tanto no desenvolvimento de software quanto no de hardware.

169

Captulo 8

Concluso Final e Propostas de Continuidade

Propostas de Continuidade

ugere-se como propostas para continuao deste trabalho de tese, investir nos seguintes problemas relacionados ao tema:

Modicao do algoritmo de minimizao lgica (Quine-McCluskey ou Espresso) para melhorar a generalizao do circuito digital gerado, ou seja, minimizao lgica e controle da generalizao implementados no mesmo algoritmo; Testar o mtodo proposto utilizando outros bancos de dados binrios, inclusive dados reais com caractersticas multimodais; Utilizar o mtodo de seleo de amostras proposto para aplicao em SVM, com o objetivo de diminuir o custo computacional do SVM e de outros mtodos de classicao de dados; Criar um esquema de atualizao (ou modicao) on-line do circuito digital quando os dados de treinamento so disponibilizados em partes, utilizando o sistema proposto;

Comparar o mtodo proposto com outros mtodos tipo: Regra de Bayes, rvore de Deciso, Sistemas Fuzzy, etc; Personalizar mais instrues do processador NIOS II em hardware, tanto para o algoritmo RSR quanto para o Espresso, com o objetivo de diminuir o tempo de processamento; Desenvolver outras mtricas especcas para padres binrios; Implementar recepo de dados do sistema NIOS utilizando a porta serial e/ou ethernet; Desenvolver um programa monitor para a CPU 1 do sistema implementado, de forma que um computador PC possa monitorar o funcionamento do sistema e inclusive enviar comandos; Implementar cache de dados do sistema NIOS II com coerncia de cache; Determinar as condies de contorno do problema para as quais cada mtrica descrita mais indicada que outra; Desenvolver o mtodo de seleo de amostras para mais de duas classes (Myles & Hand 1990) e implementar no sistema NIOS;
170

Melhorar o desempenho do classicador pelo desenvolvimento do algoritmo de seleo de amostras, aproveitando as idias dos mais novos mtodos de seleo de amostras (Snchez, Barandela, Marqus, Alejo, & Badenas 2003); Utilizar todas as amostras de treinamento para obter a funo Booleana do circuito classicador e ento melhorar a generalizao pela manipulao da expresso lgica por meio de algoritmos genticos (hardware evolutivo).

171

Captulo 8

Concluso Final e Propostas de Continuidade

172

Referncias

Aha, D. W., D. Kibler, & M. K. Albert (1991). Instance-based learning algorithms. Machine Learning 6, 3766. Aleksander, I. (1995). An Introduction to Neural Computing (2a ed.). London: International Thomson Computer Press. 284 p. Aleksander, I., T. J. W. Clarke, & A. P. Braga (1994). Binary neural systems: combining weighted and weightless properties. Intelligent Systems Engineering 3(4), 211221. Altera Corporation (2003a, July). NIOS Handbook. San Jose: Altera Corporation. Version 1.3. Altera Corporation (2003b). NIOS II Processor Reference Handbook. San Jose: Altera Corporation. Version 5.1. Altera Corporation (2003c, July). NIOS Software Development Tutorial. San Jose: Altera Corporation. Version 1.3. Altera Corporation (2004, May). AN 351: Simulating Nios II Embedded Processor Designs. San Jose: Altera Corporation. Version 1.0. Altera Corporation (2005a, May). Creating Multiprocessor Nios II Systems Tutorial. San Jose: Altera Corporation. Version 1.0. Altera Corporation (2005b, January). NIOS II Custom Instruction User Guide. San Jose: Altera Corporation. Version 1.2. Altera Corporation (2005c). NIOS II Development Kit - Getting Start User Guide. San Jose: Altera Corporation. Version 2.0. Altera Corporation (2005d). NIOS II Software Developers Handbook. San Jose: Altera Corporation. Version 5.2. Altera Corporation (2005e). Quartus II Development Software Handbook. San Jose: Altera Corporation. Version 5.1. 173

Referncias
Avesani, P., E. Blanzieri, & F. Ricci (1999, September). Advanced metrics for class-driven similarity search. In Tenth International Workshop on Database and Expert Systems Applications, pp. 223227. Berger, A. (2002). Embedded Systems Design - An Introduction to Process, Tools and Techniques. Lawrence, Kansas: CMP Books. 237p. Blake, C. L. & C. J. Merz (1998). UCI Repository of machine learning databases, University of California, Irvine, Dept. of Information and Computer Sciences. Disponvel em http://www.ics.uci.edu/mlearn/MLRepository.html. <Acesso em janeiro de 2004>. Blanzieri, E. & F. Ricci (1999a). A minimum risk metric for nearest neighbor classication. In Proc. 16th International Conf. on Machine Learning, pp. 2231. Morgan Kaufmann, San Francisco, CA. Blanzieri, E. & F. Ricci (1999b). Probability based metrics for nearest neighbor classication and case-based reasoning. Lecture Notes in Computer Science 1650, 1429. Braga, A. P. (1995, November). Design models for recursive binary neural networks. Tese de Doutorado, Imperial College of Science, Technology and Medicine - University of London, London. 163p. Cachin, C. (1994). Pedagogical pattern selection strategies. Neural Network 7(1), 175181. Carvalho, B. P. R., W. S. Lacerda, & A. P. Braga (2005, November). A hybrid approach for sparse least squares support vector machines. In Fifth International Conference on Hybrid Intelligent Systems HIS2005, Rio de Janeiro, Brazil, pp. 323328. IEEE Computer Society. Chang, C.-L. (1974, November). Finding prototypes for nearest neighbor classiers. IEEE Transactions on Computers 23(11), 11791184. Chaudhuri, D., C. A. Murthy, & B. B. Chaudhuri (1994, September). Finding a subset of representative points in a data set. IEEE Transactions on Systems, Man and Cybernetics 24(9), 14161424. Cherkassky, V. S. & F. Mulier (1998). Learning from Data: Concepts, Theory, and Methods. New York: John Wiley & Sons. 441p. Cost, S. & S. Salzberg (1993). A weighted nearest neighbor algorithm for learning with symbolic features. Machine Learning 10, 5778. Cover, T. (1968, January). Estimation by the nearest neighbor rule. IEEE Transactions on Information Theory IT-14(1), 5055. 174

Referncias
Cover, T. & P. Hart (1967, January). Nearest neighbor pattern classication. IEEE Transactions on Information Theory IT-13(1), 2127. Reprinted in Pattern Recognition, Chinese University Press, Hong Kong, 1980. ed. by K.S. Fu. Dasarathy, B. V. (1994, March). Minimal consistent set (MCS) identication for optimal nearest neighbor decision systems design. IEEE Transactions on Systems, Man and Cybernetics 24(3), 511517. Dasarathy, B. V., J. S. Snchez, & S. Townsend (2000). Nearest neighbour editing and condensing tools - synergy exploitation. Pattern Analysis Applications 3, 1930. Springer-Verlag London Limited. De Micheli, G. (1994). Synthesis and Optimization of Digital Circuits. Cingapura: McGraw-Hill International. 579 p. Domeniconi, C. & D. Gunopulos (2002). Adaptive nearest neighbor classication using support vector machines. In T. G. Dietterich, S. Becker, & Z. Ghahramani (Eds.), Advances in Neural Information Processing Systems 14, Cambridge. MIT Press. Domeniconi, C., J. Peng, & D. Gunopulo (2000). An adaptive metric machine for pattern classication. In Advances in Neural Information Processing Systems, pp. 458464. Neural Information Processing Systems: MIT Press. Duda, R. O., P. E. Hart, & D. G. Stork (2000). Pattern Classication. New York: John Wiley & Sons. 654 p. Dudani, S. A. (1976, April). The distance-weighted k-nearest-neighbor rule. IEEE Transactions on Systems, Man, and Cybernetics 6, 325327. Eckel, B. (2000). Thinking in C++, Volume 1: Introduction to Standard C++ (2th ed.). Toronto: Prentice Hall. 814p. Ercegovac, M., T. Lang, & J. H. Moreno (2000). Introduo aos Sistemas Digitais. Porto Alegre: Bookman. 453 p. Etrusco, L. F. (2003, dezembro). Arquiteturas Recongurveis Aplicadas ao Desenvolvimento de Sistemas Embutidos. Tese de doutorado, Escola de Engenharia da Universidade Federal de Minas Gerais, Belo Horizonte. Ferrari, A., M. Borgatti, & R. Guerrieri (2000, December). A complete system for nn classication based on a vlsi array processor. Pattern Recognition 33, 20832093. Ferri, F. J., J. V. Albert, & E. Vidal (1999). Considerations about sample-size sensitivity of a family of edited nearest-neighbor rules. IEEE Transactions on Systems, Man and Cybernetics, Part B 29(5), 667672. 175

Referncias
Fiser, P. & J. Hlavicka (2001, June). Boom: a boolean minimizer. Technical report, CTU, Faculty of Electrical Engineering, Department of Computer Science and Engineering, Prague - Czech Republic. 33 p. Fukunaga, K. & T. E. Flick (1984). An optimal global nearest neighbor metric. IEEE Trans. Pattern Analysis and Machine Intelligence PAMI-6(3), 314318. Gates, G. W. (1972). The reduced nearest neighbor rule. IEEE Transactions on Information Theory 18(3), 431433. Geva, S. & J. Sitte (1991, March). Adaptive nearest neighbor pattern classication. IEEE Transactions on Neural Networks 2(2), 318322. Gowda, K. C. & G. Krishna (1979, July). The condensed nearest neighbor rule using the concept of mutual nearest neighborhood. IEEE Transactions on Information Theory 25(4), 488490. Hall, M. A. (1999, April). Correlation-based Feature Selection for Machine Learning. Tese de Doutorado, Department of Computer Science - University of Waikato, Hamilton - New Zealand. 178p. Hamza, A. B., H. Krim, & B. Karacali (2003, April). Structural risk minimization using nearest neighbor rule. In IEEE International Conference on Acoustics, Speech, and Signal Processing ICASSP 03, Volume 6, pp. 161164. IEEE. Hart, P. E. (1968). The condensed nearest neighbor. IEEE Transaction on Information Theory IT (14), 515516. Hastie, T. & P. Y. Simard (1997). Models and metrics for handwritten character recognition. Statistical Science 13(1), 5465. Hastie, T. & R. Tibshirani (1996, June). Discriminant adaptive nearest neighbor classication. IEEE Transactions on Pattern Analysis and Machine Intelligence 18(6), 607616. Hattori, K. & M. Takahashi (1999). A new nearest-neighbor rule in the pattern classication problem. Pattern Recognition 32(3), 425432. Hattori, K. & M. Takahashi (2000). A new edited k-nearest neighbor rule in the pattern classication problem. Pattern Recognition 33(3), 521528. Haykin, S. (2001). Redes Neurais: Princpios e Prtica (2a ed.). Porto Alegre: Bookman. 900 p. Hlavicka, J. & P. Fiser (2001). Boom: a heuristic boolean minimizer. In ICCAD 01: Proceedings of the 2001 IEEE/ACM international conference on Computer-aided design, Piscataway, NJ, USA, pp. 439442. IEEE Press. 176

Referncias
Jain, A. K., M. N. Murty, & P. J. Flynn (1999, September). Data clustering: A review. ACM Computing Surveys 31(3), 264323. Jaskolski, J. V. (1992, June). Construction of neural network classication expert systems using switching theory algorithms. In International Joint Conference on Neural Networks - IJCNN, Volume 1, pp. 16. IEEE. Kanerva, P. (1988). Sparse Distributed Memory. London: A Bradford Book. 155 p. Kim, S.-W. & B. J. Oommen (2004, June). Enhancing prototype reduction schemes with recursion: A method applicable for large data sets. IEEE Transactions on Systems, Man, and Cybernetics-Part B 34(3), 13841397. Kolcz, A. & N. M. Allinson (1994, May). Application of the cmac input encoding scheme in n-tuple approximation network. In Proceedings on Computers and Digital Technique, Volume 141:3, pp. 177183. IEE. Koplowitz, J. & T. A. Brown (1981). On the relation of performance to editing in nearest neighbor rules. Pattern Recognition 13(3), 251255. Kovcs, Z. M. V. & R. Guerrieri (1991, November). A generalization technique for nearest-neighbor classiers. In IEEE International Joint Conference on Neural Networks, Volume 2, pp. 17821788. IEEE. Kuncheva, L. I. & J. C. Bezdek (1998, Feb.). Nearest prototype classication: clustering, genetic algorithms, or random search? IEEE Transactions on Systems, Man and Cybernetics, Part C 28(1), 160164. Lacerda, W. S. & A. P. Braga (2004, September). Um novo mtodo para determinao de margens utilizando a regra do vizinho mais prximo modicada. In VIII Brazilian Symposium on Articial Neural Networks SBRN2004, So Luis/Maranho. SBC. Lacerda, W. S. & A. P. Braga (2005, November). Design of digital classier circuits with nearest neighbour prior sample selection. In Fifth International Conference on Hybrid Intelligent Systems HIS2005, Rio de Janeiro, Brazil, pp. 531533. IEEE Computer Society. Lam, W., C.-K. Keung, & D. Liu (2002). Discovering useful concept prototypes for classication based on ltering and abstraction. IEEE Transactions on Pattern Analysis and Machine Intelligence 24(8), 10751090. Lipman, A. & W. Yang (1997, September). Vlsi hardware for example-based learning. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 5(3), 320328. Liu, T., A. W. Moore, & A. Gray (2004). Efcient exact k-nn and nonparametric classication in high dimensions. In S. Thrun, L. Saul, & 177

Referncias
B. Schlkopf (Eds.), Advances in Neural Information Processing Systems 16. Cambridge, MA: MIT Press. Liu, W. Z. & A. P. White (1997). Metrics for nearest neighbour discrimination with categorical attributes. In Research and Development in Expert Systems XIV: Proceedings of the 17th Annual Technicial Conference of the BCES Specialist Group, pp. 5159. Lorena, A. C., G. E. A. P. A. Batista, & A. C. P. L. F. de Carvalho (2002). The inuence of noisy patterns in the performance of learning methods in the splice junction recognition problem. In I. C. Society (Ed.), Proceedings of the VII Brazilian Symposium on Neural Networks - SBRN02. Lorena, A. C. & A. C. de Carvalho (2003, Abril). Introduo s mquinas de vetores suporte (Support Vector Machines). Technical Report 192, Universidade de So Paulo, Instituto de Cincias Matemticas e de Computao, So Carlos. Luk, A. & J. E. S. Macleod (1986). An alternative nearest neighbour classication scheme. Pattern Recognition Letters 4, 375382. Mahamud, S. & M. Hebert (2003). Minimum risk distance measure for object recognition. In ICCV 03: Proceedings of the Ninth IEEE International Conference on Computer Vision, Washington, DC, USA, pp. 242. IEEE Computer Society. Munro, P. W. (1992). Repeat until bored; a pattern selection strategy. In J. Moody & R. Lippmann (Eds.), Advances in Neural Information Processing Systems, Volume 4, pp. 10011008. San Mateo, CA: Morgan Kaufmann. Myles, J. P. & D. J. Hand (1990). the multiclass metric problem in nearest neighbour discrimination rules. Pattern Recognition 23(11), 12911297. Nene, S. A. & S. K. Nayar (1997, september). A simple algorithm for nearest neighbor search in high dimensions. IEEE Transactions on Pattern Analysis and Machine Intelligence 19(9), 9891003. Paredes, R. & E. Vidal (1998, July). A nearest neighbor weighted measure in classication problems. In Proceedings of VIII Simposium Nacional de Reconocimiento de Formas y Anlisis de Imgenes, Bilbao, Spain. Paredes, R. & E. Vidal (2000). A class-dependent weighted dissimilarity measure for nearest neighbor classication problems. Pattern Recognition Letters 21(12), 10271036. Partridge, M.; Jabri, M. (2000, December). Face recognition using a new distance metric. In Proceedings of the X Neural Networks for Signal Processing Workshop, Volume 2, pp. 584 593. IEEE Signal Processing Society. 178

Referncias
Payne, T. R. & P. Edwards (1998). Implicit feature selection with the value difference metric. In H. Prade (Ed.), Machine Learning and Data Mining, pp. 450454. 13th European Conference on Articial Intelligence (ECAI98): John Wiley & Sons. Peebles, P. Z. (1993). Probability, Random Variables, and Random Signal Principles (3rd ed. ed.). Singapore: McGraw-Hill. 401 p. Peng, J., D. R. Heisterkamp, & H. K. Dai (2002, August). Adaptive kernel metric nearest neighbor classication. In 16th International Conference on Pattern Recognition, pp. 3336. IEEE. Peng, J., D. R. Heisterkamp, & H. K. Dai (2003, July). LDA/SVM driven nearest neighbor classication. IEEE Transactions on Neural Networks 14(4), 940942. Prechelt, L. (1994, September). Proben1: A set of neural network benchmark problems and benchmarking rules. Technical Report 21, Fakultt fr Informatik, Universitt Karlsruhe, Karlsruhe, Germany. 38p. Ricci, F. & P. Avesani (1999, April). Data compression and local metrics for nearest neighbor classication. IEEE Transactions on Pattern Analysis and Machine Intelligence 21(4), 380384. Ritter, G. L., H. B. Woodruff, S. R. Lowry, & T. L. Isenhour (1975, November). An algorithm for a seletive nearest neighbor decision rule. IEEE Transactions on Information Theory 21, 665669. Rohwer, R. & M. Morciniec (1995, May). The theoretical and experimental status of the n-tuple classier. NCRG 4347, Aston University - Dept. of Computer Science and Applied Mathematics, UK. 24 p. Schalkoff, R. J. (1992). Pattern Recognition: Statistical, Structural and Neural Approaches. John Wiley & Sons. 364 p. Schapire, R. E. (2002, March). The boosting approach to machine learning: An overview. In MSRI Workshop on Nonlinear Estimation and Classication. Berkeley, CA. Schwaighofer, A. (2002, January). SVM toolbox for Matlab - version 2.51. URL http://www.cis.tugraz.at/igi/aschwaig/software.html. Acesso em maro de 2004. Short, R. D. & K. Fukunaga (1981, September). The optimal distance measure for nearest neighbor classication. IEEE Transactions on Information Theory 27(5), 622627. Silva, M. T. P., W. S. Lacerda, & A. P. Braga (2004). Recongurable coprocessor for kanervas sparse distributed memory. Microprocessors and Microsystems 28(3), 127134. 179

Referncias
Snapp, R., D. Psaltis, & S. S. Venkatesh (1991). Asymptotic slowing down of the nearest-neighbor classier. In R. P. Lippmann, J. E. Moody, & D. S. Touretzky (Eds.), Advances in Neural Information Processing Systems, pp. 932938. San Mateo: Morgan Kaufmann. Snchez, J., R. Barandela, R. Alejo, & A. I. Marqus (2001, October). Performance evaluation of prototype selection algorithms for nearest neighbor classication. In Proceedings of XIV Brazilian Symposium on Computer Graphics and Image Processing, pp. 4450. IEEE. Snchez, J. S., R. Barandela, A. I. Marqus, R. Alejo, & J. Badenas (2003, April). Analysis of new techniques to obtain quality training sets. Pattern Recognition Letters 24(7), 10151022. Stanll, C. & D. Waltz (1986, December). Toward memory-based reasoning. Communications of the ACM 29(12), 1213 1228. Teixeira, R. A. (2001, agosto). Treinamento de Redes Neurais Articiais Atravs de Otimizao Multi-objetivo: Uma Nova Abordagem para o Equilbrio entre a Polarizao e a Varincia. Tese de Doutorado, Escola de Engenharia da Universidade Federal de Minas Gerais, Belo Horizonte. 144 p. Teixeira, R. A., A. P. Braga, R. H. C. Takahashi, & R. R. Saldanha (2000, November). Improving generalization of mlps with multi-objective optimization. Neurocomputing 35(1), 189194. The Mathworks (2001). MATLAB Users Guide. The Mathworks. URL http://www.mathworks.com <Acesso em julho de 2003>. Tomek, I. (1976a, June). An experiment with the edited nearest-neighbor rule. IEEE Transactions on Systems, Man and Sybernetics 6(6), 448452. Tomek, I. (1976b, February). A generalization of the k-NN rule. IEEE Transactions on Systems, Man and Sybernetics 6(2), 121126. Tomek, I. (1976c, November). Two modications of CNN. IEEE Transactions on Systems, Man and Sybernetics 6(11), 769772. Toussaint, G. T. (1994, August). A counter-example to tomeks consistency theorem for a condensed nearest neighbor decision rule. Pattern Recognition Letters 15, 797801. Tzionas, P., P. Tsalides, & A. Thanailakis (1992, December). Design and vlsi implementation of a pattern classier using pseudo 2d cellular automata. In IEE Proceedings-G Circuits, Devices and Systems, Volume 139, pp. 661668. 180

Referncias
Tzionas, P. G., P. G. Tsalides, & A. Thanailakis (1994, September). A new, cellular automaton-based, nearest neighbor pattern classier and its vlsi implementation. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 2(3), 343 353. University of Texas at Austin College of Engineering (1990). Espresso. University of Texas at Austin College of Engineering. Disponvel em http://www.ece.utexas.edu/projects/logic_synthesis/sis/espresso <Acesso em agosto de 2003>. Vahid, F. & T. Givargis (2002). Embedded System Design. USA: John Wiley & Sons. 324p. Vapnik, V. N. (1998). Statistical Learning Theory. New York: John Wiley & Sons, Inc. 736p. Vincent, P. & Y. Bengio (2001, June). K-local hyperplane and convex distance nearest neighbor algorithms. Technical report, Dept. IRO, Universit de Montral, C.P. 6128, Montreal, Canada. Techinical Report 1197. Wagner, T. J. (1973, September). Convergence of the edited nearest neighbor. IEEE Transactions on Information Theory 19(5), 696697. Weinshall, D., D. W. Jacobs, & Y. Gdalyahu (1999). Classication in nonmetric spaces. In S. A. S. Michael S. Kearn & D. A. Cohn (Eds.), Advances in Neural Information Processing Systems - Proceedings of the 1998 Conference, Volume 11, London, England, pp. 838844. MIT Press. Wilmshurst, T. (2001). An Introduction to the Design of Small-scale Embedded Systems. New York: Palgrave. 411p. Wilson, D. L. (1972, July). Asymptotic properties of nearest neighbor rules using edited data. IEEE - Transactions on Systems, Man, and Cybernetcs SMC-2(3), 408421. Wilson, D. R. & T. R. Martinez (1997). Improved heterogeneous distance functions. Journal of Articial Intelligence Research 6, 134. Wilson, D. R. & T. R. Martinez (2000). Reduction techniques for instancebased learning algorithms. Machine Learning 38(3), 257286. Wolf, W. (2001). Computers as Components - Principles of Embedded Computing System Design. USA: Morgan Kaufmann. 662p. Wu, Y., K. Ianakiev, & V. Govindaraju (2002, October). Improved k-nearest neighbor classication. Pattern Recognition 35(10), 23112318. Xie, Q., C. A. Laszlo, & R. K. Ward (1993, December). Vector quantization technique for nonparametric classier design. IEEE Transactions on Pattern Analysis and Machine Intelligence 15(12), 13261330. 181

Referncias
Xing, E. P., A. Y. Ng, M. I. Jordan, & S. Russell (2003). Distance metric learning with application to clustering with side-information. In S. T. S. Becker & K. Obermayer (Eds.), Advances in Neural Information Processing Systems 15, pp. 505512. Cambridge: MIT Press. Yen, C.-W., C.-N. Young, & M. L. Nagurka (2004). A vector quantization method for nearest neighbor classier design. Pattern Recognition Letters 25(6), 725731. Zhang, H. & C. X. Ling (2003, June). A fundamental issue of naive bayes. In Y. Xiang & B. Chaib-draa (Eds.), Proceedings of Canadian Conference on Articial Intelligence, Volume 2671 of Lecture Notes in Computer Science, Halifax, Nova Scotia, Canada, pp. 591595. Springer.

182

Apndice A - Projeto do sistema proposto usando o Quartus II e SOPC

183

Date: January 11, 2006


ssram_pll

standard.bdf*

Project: standard

sram_clkin inclk0 frequency: 50.000 MHz Operation Mode: Normal Clk c0 17/10 -107.10 50.00 Ratio Ph (dg) DC (%)

INPUT VCC

inclk0
OUTPUT

c0
sram_clk

inst5 Cyclone II

in_port_to_the_button_pio[3..0]

ddr_pll_cycloneii
VCC

in_port_to_the_button_pio[23..4] ddr_clkin[0] inclk0 frequency: 50.000 MHz Operation Mode: Normal Clk c0 c1 c2 inst1 Cyclone II 17/10 0.00 50.00 17/10 270.00 50.00 1/1 0.00 50.00 Ratio Ph (dg) DC (%)
INPUT VCC

in_port_to_the_button_pio[23..0]

NOT

inclk0

c0 c1 c2 locked

PAL
inst11 pal data_in[data_in_width-1..0] pal_prog[13..0] pal_prog[15] address[address_width-1..0] we data_pal pal_prog[14]

NOT

data_out

OUTPUT

pal_out

inst12

Sistema de multiprocessamento com 3 NIOS II

inst3

Este pino de I/O foi obtido da porta de saida dos LEDs.

std_2C35
AND2

clk_50 reset_n in_port_to_the_button_pio[3..0] write_clk_to_the_ddr_sdram clk_to_sdram_from_the_ddr_sdram clk_to_sdram_n_from_the_ddr_sdram ddr_a_from_the_ddr_sdram[12..0] ddr_ba_from_the_ddr_sdram[1..0] ddr_cas_n_from_the_ddr_sdram ddr_cke_from_the_ddr_sdram ddr_cs_n_from_the_ddr_sdram ddr_dm_from_the_ddr_sdram[1..0] ddr_dq_to_and_from_the_ddr_sdram[15..0] ddr_dqs_to_and_from_the_ddr_sdram[1..0] ddr_ras_n_from_the_ddr_sdram ddr_we_n_from_the_ddr_sdram byteenablen_to_the_lan91c111[3..0] ext_flash_enet_bus_address[23..0] ext_flash_enet_bus_data[31..0] ior_n_to_the_lan91c111 iow_n_to_the_lan91c111 read_n_to_the_ext_flash reset_to_the_lan91c111 select_n_to_the_ext_flash write_n_to_the_ext_flash address_to_the_ext_ssram[20..0] adsc_n_to_the_ext_ssram bw_n_to_the_ext_ssram[3..0] bwe_n_to_the_ext_ssram chipenable1_n_to_the_ext_ssram data_to_and_from_the_ext_ssram[31..0] outputenable_n_to_the_ext_ssram LCD_E_from_the_lcd_display LCD_RS_from_the_lcd_display LCD_RW_from_the_lcd_display LCD_data_to_and_from_the_lcd_display[7..0]
NOT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT BIDIR VCC BIDIR VCC OUTPUT OUTPUT

pld_clear_n

INPUT VCC

inst6

clk_to_sdram[0] clk_to_sdram_n[0] ddr_a[12..0] ddr_ba[1..0] ddr_cas_n[0] ddr_cke[0] ddr_cs_n[0] ddr_dm[1..0] ddr_dq[15..0] ddr_dqs[1..0] ddr_ras_n[0] ddr_we_n[0]

INPUT in_port_to_the_button_pio[3..0] VCC

in_port_to_the_button_pio[3..0]

irq_from_the_lan91c111

INPUT VCC

irq_from_the_lan91c111

OUTPUT OUTPUT BIDIR VCC OUTPUT OUTPUT OUTPUT

byteenablen_to_the_lan91c111[3..0] ext_flash_enet_bus_address[23..0] ext_flash_enet_bus_data[31..0] ior_n_to_the_lan91c111 iow_n_to_the_lan91c111 read_n_to_the_ext_flash ssram_be_n_temp[0] ssram_be_n_temp[1] ssram_be_n_temp[3]


OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT

bw_n_to_the_ext_ssram[0]

bw_n_to_the_ext_ssram[1] select_n_to_the_ext_flash write_n_to_the_ext_flash address_to_the_ext_ssram[20..2] address_to_the_ext_ssram[20..0]


VCC OUTPUT OUTPUT

ssram_be_n_temp[2]

bw_n_to_the_ext_ssram[2]
OUTPUT

bw_n_to_the_ext_ssram[3]

address_to_the_ext_ssram[20..2]

ssram_be_n_temp[3..0]
OUTPUT OUTPUT BIDIR VCC OUTPUT

adsc_n_to_the_ext_ssram
OUTPUT

ssram_adsp_n bwe_n_to_the_ext_ssram chipenable1_n_to_the_ext_ssram data_to_and_from_the_ext_ssram[31..0] outputenable_n_to_the_ext_ssram


OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT BIDIR VCC OUTPUT OUTPUT

ssram_adv_n

enet_ads_n enet_aen LCD_E_from_the_lcd_display LCD_RS_from_the_lcd_display LCD_RW_from_the_lcd_display LCD_data_to_and_from_The_lcd_display[7..0] display_7_segment[0]


OUTPUT GND

display_7_segment[1]

out_port_from_the_seven_seg_pio[0]
OUTPUT

out_port_from_the_led_pio[7..0] out_port_from_the_pal_programmer[15..0] bidir_port_to_and_from_the_reconfig_request_pio

out_port_from_the_led_pio[7..0] inst7 pal_prog[15..0]

display_7_segment[2]
OUTPUT

out_port_from_the_seven_seg_pio[1] display_7_segment[3] display_7_segment[4]


OUTPUT

out_port_from_the_seven_seg_pio[2]
OUTPUT

out_port_from_the_seven_seg_pio[3] display_7_segment[5]
BIDIR VCC NOT

out_port_from_the_seven_seg_pio[4]
OUTPUT

bidir_port_to_and_from_the_reconfig_request_pio display_7_segment[15..0]

display_7_segment[6] display_7_segment[7]

out_port_from_the_seven_seg_pio[5]
OUTPUT OUTPUT

out_port_from_the_seven_seg_pio[6]

out_port_from_the_seven_seg_pio[7]

out_port_from_the_seven_seg_pio[15..0]
inst9 rxd_to_the_uart1
INPUT VCC

display_7_segment[8]
OUTPUT

rxd_to_the_uart1
inst

txd_from_the_uart1

OUTPUT

txd_from_the_uart1

display_7_segment[9] display_7_segment[10]

out_port_from_the_seven_seg_pio[8]
OUTPUT OUTPUT

out_port_from_the_seven_seg_pio[9] display_7_segment[11] display_7_segment[12] display_7_segment[13] display_7_segment[14] display_7_segment[15]

out_port_from_the_seven_seg_pio[10]
OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT

out_port_from_the_seven_seg_pio[11]

out_port_from_the_seven_seg_pio[12]

out_port_from_the_seven_seg_pio[13]

out_port_from_the_seven_seg_pio[14]

out_port_from_the_seven_seg_pio[15]

Page 1 of 1

Revision: standard

Fitter report for standard Wed Dec 07 16:42:53 2005 Version 5.0 Build 168 06/22/2005 Service Pack 1.17 SJ Full Version Additional patches: 1.04 +---------------------------------------------------------------------------------------+ ; Fitter Summary ; +------------------------------------+--------------------------------------------------+ ; Fitter Status ; Successful - Wed Dec 07 16:42:50 2005 ; ; Quartus II Version ; 5.0 Build 168 06/22/2005 SP 1.17 SJ Full Version ; ; Revision Name ; standard ; ; Top-level Entity Name ; standard ; ; Family ; Cyclone II ; ; Device ; EP2C35F672C6 ; ; Timing Models ; Preliminary ; ; Total logic elements ; 16,412 / 33,216 ( 49 % ) ; ; Total pins ; 218 / 475 ( 45 % ) ; ; Total virtual pins ; 0 ; ; Total memory bits ; 110,208 / 483,840 ( 22 % ) ; ; Embedded Multiplier 9-bit elements ; 8 / 70 ( 11 % ) ; ; Total PLLs ; 2 / 4 ( 50 % ) ; +------------------------------------+--------------------------------------------------+ +-------------------------------------------------------------------------------------------------------------+ ; Fitter Resource Usage Summary ; +---------------------------------------------+---------------------------------------------------------------+ ; Resource ; Usage ; +---------------------------------------------+---------------------------------------------------------------+ ; Total logic elements ; 16,412 / 33,216 ( 49 % ) ; ; -- Combinational with no register ; 7823 ; ; -- Register only ; 2918 ; ; -- Combinational with a register ; 5671 ; ; ; ; ; Logic element usage by number of LUT inputs ; ; ; -- 4 input functions ; 6255 ; ; -- 3 input functions ; 5586 ; ; -- <=2 input functions ; 1653 ; ; -- Register only ; 2918 ; ; -- Combinational cells for routing ; 1722 ; ; ; ; ; Logic elements by mode ; ; ; -- normal mode ; 12312 ; ; -- arithmetic mode ; 1182 ; ; ; ; ; Total registers ; 8,589 / 33,216 ( 25 % ) ; ; Total LABs ; 2,041 / 2,076 ( 98 % ) ; ; User inserted logic elements ; 0 ; ; Virtual pins ; 0 ; ; I/O pins ; 218 / 475 ( 45 % ) ; ; -- Clock pins ; 2 / 8 ( 25 % ) ; ; Global signals ; 16 ; ; M4Ks ; 40 / 105 ( 38 % ) ; ; Total memory bits ; 110,208 / 483,840 ( 22 % ) ; ; Total RAM block bits ; 184,320 / 483,840 ( 38 % ) ; ; Embedded Multiplier 9-bit elements ; 8 / 70 ( 11 % ) ; ; Global clocks ; 16 / 16 ( 100 % ) ; ; Maximum fan-out node ; ddr_pll_cycloneii:inst1|altpll:altpll_component|_clk2~clkctrl ; ; Maximum fan-out ; 5737 ; ; Total fan-out ; 80345 ; ; Average fan-out ; 3.33 ; +---------------------------------------------+---------------------------------------------------------------+

Apndice B - Projeto da PAL em VHDL

-------------------------------------------------------------------- Programa de implementacao de uma PAL com uma saida binaria -- Autor: Wilian Soares Lacerda -- Data: 24/10/2005 ------------------------------------------------------------------Library IEEE ; use IEEE.std_logic_1164.all ; use IEEE.std_logic_arith.all ; use IEEE.std_logic_unsigned.all ; ------------------------------------------------------------------entity pal is generic ( -- Numero de variaveis binarias de entrada em bits data_in_width : natural := 24 ; -- Numero de bits de endereco do literal usado para -- acessar matriz and address_width : natural := 12 ; -- Numero de literais = dobro do numero de variaveis de entrada num_literais : natural := 48; -- Numero de bits da matriz and da PAL = num_literais*produtos size_matriz_and : natural := 4080; -- Numero de termos de produto = numero de portas and produtos : natural := 85 ); port ( data_in : in UNSIGNED((data_in_width - 1) downto 0) ; address : in UNSIGNED((address_width - 1) downto 0) ; we : in std_logic ; data_pal : in std_logic; data_out : out std_logic ); end pal; ------------------------------------------------------------------architecture Comportamental of pal is type reg_type is array ((size_matriz_and - 1) downto 0) of std_logic; signal registrador : reg_type ; signal saida_and : std_logic_vector((produtos - 1) downto 0);

187

begin --------------------------------------------------------------memoria : process (we) begin if (we = 1) then registrador(conv_integer(address)) <= data_pal ; end if ; end process ; --------------------------------------------------------------matriz_and : process (registrador,data_in) variable resposta_and : std_logic; variable fusivel : integer; begin for j in 0 to (produtos - 1) loop resposta_and := 1; for i in 0 to (data_in_width - 1) loop for k in 0 to 1 loop fusivel := (j * num_literais) + (i * 2) + k; if (registrador(fusivel) = 0) then -- fusivel sem queimar if (k = 0) then -- entrada nao invertida resposta_and := resposta_and and data_in(i); else -- entrada invertida resposta_and := resposta_and and (not (data_in(i))); end if; end if; end loop; end loop; saida_and(j) <= resposta_and; end loop; end process; --------------------------------------------------------------matriz_or : process (saida_and) variable resposta_or : std_logic; begin resposta_or := 0; for j in 0 to (produtos - 1) loop resposta_or := resposta_or or saida_and(j); end loop; data_out <= resposta_or; end process; --------------------------------------------------------------end Comportamental;

Fitter report for pal Thu Oct 27 19:42:53 2005 Version 5.0 Build 168 06/22/2005 Service Pack 1.17 SJ Full Version Additional patches: 1.04 +---------------------------------------------------------------------------------------+ ; Fitter Summary ; +------------------------------------+--------------------------------------------------+ ; Fitter Status ; Successful - Thu Oct 27 19:42:51 2005 ; ; Quartus II Version ; 5.0 Build 168 06/22/2005 SP 1.17 SJ Full Version ; ; Revision Name ; pal ; ; Top-level Entity Name ; pal ; ; Family ; Cyclone II ; ; Device ; EP2C35F672C6 ; ; Timing Models ; Preliminary ; ; Total logic elements ; 8,562 / 33,216 ( 25 % ) ; ; Total pins ; 41 / 475 ( 8 % ) ; ; Total virtual pins ; 0 ; ; Total memory bits ; 0 / 483,840 ( 0 % ) ; ; Embedded Multiplier 9-bit elements ; 0 / 70 ( 0 % ) ; ; Total PLLs ; 0 / 4 ( 0 % ) ; +------------------------------------+--------------------------------------------------+ +-----------------------------------------------------------------------+ ; Fitter Resource Usage Summary ; +---------------------------------------------+-------------------------+ ; Resource ; Usage ; +---------------------------------------------+-------------------------+ ; Total logic elements ; 8,562 / 33,216 ( 25 % ) ; ; -- Combinational with no register ; 4482 ; ; -- Register only ; 2040 ; ; -- Combinational with a register ; 2040 ; ; ; ; ; Logic element usage by number of LUT inputs ; ; ; -- 4 input functions ; 1379 ; ; -- 3 input functions ; 5143 ; ; -- <=2 input functions ; 0 ; ; -- Register only ; 2040 ; ; -- Combinational cells for routing ; 567 ; ; ; ; ; Logic elements by mode ; ; ; -- normal mode ; 6522 ; ; -- arithmetic mode ; 0 ; ; ; ; ; Total registers ; 4,080 / 33,216 ( 12 % ) ; ; Total LABs ; 2,040 / 2,076 ( 98 % ) ; ; User inserted logic elements ; 0 ; ; Virtual pins ; 0 ; ; I/O pins ; 41 / 475 ( 8 % ) ; ; -- Clock pins ; 2 / 8 ( 25 % ) ; ; Global signals ; 1 ; ; M4Ks ; 0 / 105 ( 0 % ) ; ; Total memory bits ; 0 / 483,840 ( 0 % ) ; ; Total RAM block bits ; 0 / 483,840 ( 0 % ) ; ; Embedded Multiplier 9-bit elements ; 0 / 70 ( 0 % ) ; ; Global clocks ; 1 / 16 ( 6 % ) ; ; Maximum fan-out node ; data_pal ; ; Maximum fan-out ; 4080 ; ; Total fan-out ; 33754 ; ; Average fan-out ; 3.01 ; +---------------------------------------------+-------------------------+

Apndice C - Projeto em hardware da instruo personalizada no NIOS II

LIBRARY ieee; USE ieee.std_logic_1164.all; ------------------------------------------------------------------------------ENTITY dif_abs_float IS PORT ( dataa : IN STD_LOGIC_VECTOR (31 DOWNTO 0); datab : IN STD_LOGIC_VECTOR (31 DOWNTO 0); clk_en : IN STD_LOGIC ; reset : IN STD_LOGIC ; clk : IN STD_LOGIC ; start : IN STD_LOGIC ; result : OUT STD_LOGIC_VECTOR (31 DOWNTO 0) ); END dif_abs_float; ------------------------------------------------------------------------------ARCHITECTURE RTL OF dif_abs_float IS ATTRIBUTE synthesis_clearbox: boolean; ATTRIBUTE synthesis_clearbox OF RTL: ARCHITECTURE IS TRUE; SIGNAL sub_wire0 : STD_LOGIC ; SIGNAL sub_wire1 : STD_LOGIC ; SIGNAL sub_wire2 : STD_LOGIC ; SIGNAL sub_wire3 : STD_LOGIC_VECTOR (31 DOWNTO 0); SIGNAL dataar : STD_LOGIC_VECTOR (31 DOWNTO 0); -- registered dataa SIGNAL databr : STD_LOGIC_VECTOR (31 DOWNTO 0); -- registered datab COMPONENT dif_abs_float_altfp_add_sub_rkg PORT ( dataa : IN STD_LOGIC_VECTOR (31 DOWNTO 0); datab : IN STD_LOGIC_VECTOR (31 DOWNTO 0); overflow : OUT STD_LOGIC ; underflow : OUT STD_LOGIC ; nan : OUT STD_LOGIC ; clk_en : IN STD_LOGIC ; clock : IN STD_LOGIC ; aclr : IN STD_LOGIC ; result : OUT STD_LOGIC_VECTOR (31 DOWNTO 0) ); END COMPONENT; -------------------------------------------------------------------------------

191

BEGIN dif_abs_float_altfp_add_sub_rkg_component : dif_abs_float_altfp_add_sub_rkg PORT MAP ( dataa => dataar, datab => databr, clk_en => clk_en, clock => clk, aclr => reset, overflow => sub_wire0, underflow => sub_wire1, nan => sub_wire2, result => sub_wire3 ); ------------------------------------------------------------------------------PROCESS (clk) BEGIN IF (clkEVENT AND clk = 1) THEN IF (start = 1) THEN dataar <= dataa; databr <= datab; ELSE dataar <= dataar; databr <= databr; END IF; END IF; END PROCESS; result(31) <= 0; -- Transform value to positive result(30 DOWNTO 0) <= sub_wire3(30 DOWNTO 0); END RTL; -------------------------------------------------------------------------------

Fitter report for dif_abs_float Mon Nov 28 14:59:23 2005 Version 5.0 Build 168 06/22/2005 Service Pack 1.17 SJ Full Version Additional patches: 1.04 +---------------------------------------------------------------------------------------+ ; Fitter Summary ; +------------------------------------+--------------------------------------------------+ ; Fitter Status ; Successful - Mon Nov 28 14:59:23 2005 ; ; Quartus II Version ; 5.0 Build 168 06/22/2005 SP 1.17 SJ Full Version ; ; Revision Name ; dif_abs_float ; ; Top-level Entity Name ; dif_abs_float ; ; Family ; Cyclone II ; ; Device ; EP2C35F672C6 ; ; Timing Models ; Preliminary ; ; Total logic elements ; 790 / 33,216 ( 2 % ) ; ; Total pins ; 100 / 475 ( 21 % ) ; ; Total virtual pins ; 0 ; ; Total memory bits ; 0 / 483,840 ( 0 % ) ; ; Embedded Multiplier 9-bit elements ; 0 / 70 ( 0 % ) ; ; Total PLLs ; 0 / 4 ( 0 % ) ; +------------------------------------+--------------------------------------------------+ +--------------------------------------------------------------------+ ; Fitter Resource Usage Summary ; +---------------------------------------------+----------------------+ ; Resource ; Usage ; +---------------------------------------------+----------------------+ ; Total logic elements ; 790 / 33,216 ( 2 % ) ; ; -- Combinational with no register ; 366 ; ; -- Register only ; 92 ; ; -- Combinational with a register ; 332 ; ; ; ; ; Logic element usage by number of LUT inputs ; ; ; -- 4 input functions ; 254 ; ; -- 3 input functions ; 332 ; ; -- <=2 input functions ; 112 ; ; -- Register only ; 92 ; ; -- Combinational cells for routing ; 73 ; ; ; ; ; Logic elements by mode ; ; ; -- normal mode ; 582 ; ; -- arithmetic mode ; 116 ; ; ; ; ; Total registers ; 424 / 33,216 ( 1 % ) ; ; Total LABs ; 52 / 2,076 ( 2 % ) ; ; User inserted logic elements ; 0 ; ; Virtual pins ; 0 ; ; I/O pins ; 100 / 475 ( 21 % ) ; ; -- Clock pins ; 2 / 8 ( 25 % ) ; ; Global signals ; 2 ; ; M4Ks ; 0 / 105 ( 0 % ) ; ; Total memory bits ; 0 / 483,840 ( 0 % ) ; ; Total RAM block bits ; 0 / 483,840 ( 0 % ) ; ; Embedded Multiplier 9-bit elements ; 0 / 70 ( 0 % ) ; ; Global clocks ; 2 / 16 ( 12 % ) ; ; Maximum fan-out node ; clk~clkctrl ; ; Maximum fan-out ; 424 ; ; Total fan-out ; 3979 ; ; Average fan-out ; 3.06 ; +---------------------------------------------+----------------------+

Date: January 11, 2006





dif_abs_float.vwf*

Page 1 of 1
                                                      



Revision: dif_abs_float


Project: dif_abs_float
 

Вам также может понравиться