Академический Документы
Профессиональный Документы
Культура Документы
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
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.
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
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
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
. . . . . . . . . . . . . . . . . . . . . .
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
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.
Captulo 1
Introduo
z 100 101
110
111
000
001
010 y
011
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
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
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
110
111
000
001
010 y
011
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).
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
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.
Captulo 1
Introduo
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.
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.
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
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.
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
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.
Captulo 2
Aprendizagem de Mquina
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
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.
Captulo 2
Aprendizagem de Mquina
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
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)
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.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
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.
Captulo 3
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.
que a medida da distncia de Hamming fornea a resposta correta. Logo, outras mtricas devem ser empregadas, como ser apresentado no captulo 4.
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
110
111
000
001
010 y
011
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
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).
(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.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
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
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.
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
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
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.
Captulo 3
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
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
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
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
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
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
taxa de reteno =
Captulo 4
Reconhecimento de Padres
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
(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)
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)
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.
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
(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
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 .
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
5 4 5 14
4 6 4 14
50
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
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.
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
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
(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
(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
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)
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)
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.
(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
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
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
(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
(4.59)
DM RM (x, y) = r(x, y) =
i=1
(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
D(x, y) =
i=1 j=1
(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.
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
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
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
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
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
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
99.8
99.6
99.4
99
98.8
98.6
98.4
98.2
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
95
90
85 Acertos [%] 80 75
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
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
90
89
88
87
86 Acertos [%]
85
84
83
82
81
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
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.5
99.4
99.3
99.2
99.1
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.
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
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.
Captulo 5
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
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
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
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
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
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
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
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
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.
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.
Captulo 5
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.
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).
Captulo 5
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.
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.
Captulo 5
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.
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.
Captulo 5
3.5
2.5
1.5
0.5
0.5
1.5
2.5
2
3.5
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
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
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.
lap. A mtrica VDM modicada obteve claramente um desempenho ligeiramente superior a mtrica VDM original.
95
90
Acertos [%]
85
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
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
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
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
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
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
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
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
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
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
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
Captulo 6
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
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
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
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).
Captulo 6
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
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
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
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
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
80
75
70
Acertos [%]
65
60
55
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
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
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
130
120
110
100
90 N. amostras
80
70
60
50
40
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
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
6.5
N. de termos de produto
5.5
4.5
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 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
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
75
70
65 0.5
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
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
134
CAPTULO
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
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.
Captulo 7
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.
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
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
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.
Captulo 7
Figura 7.2: Estrutura interna do processador NIOS II. FONTE: Altera Corporation
142
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
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.
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.
Captulo 7
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
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.
147
Captulo 7
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 .
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
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
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
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.
Captulo 7
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
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.
Captulo 7
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
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
156
157
Captulo 7
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
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.
Captulo 7
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
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
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
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.
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
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
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
166
CAPTULO
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
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
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
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
183
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
inst3
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]
in_port_to_the_button_pio[3..0]
irq_from_the_lan91c111
INPUT VCC
irq_from_the_lan91c111
bw_n_to_the_ext_ssram[0]
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_adv_n
display_7_segment[1]
out_port_from_the_seven_seg_pio[0]
OUTPUT
display_7_segment[2]
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[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 ; +---------------------------------------------+---------------------------------------------------------------+
-------------------------------------------------------------------- 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 ; +---------------------------------------------+-------------------------+
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 ; +---------------------------------------------+----------------------+
dif_abs_float.vwf*
Page 1 of 1
Revision: dif_abs_float
Project: dif_abs_float