Você está na página 1de 37

UNIVERSIDADE FEDERAL DE VIOSA CENTRO DE CINCIAS EXATAS E TECNOLGICAS DEPARTAMENTO DE ENGENHARIA ELTRICA

FERNANDO CSAR PACHECO

REDE NEURAL ARTIFICIAL IMPLEMETADA EM MICROCONTROLADOR DE BAIXO CUSTO: APLICAO NO RECONHECIMENTO DE PADRES DE FALA

VIOSA
2010

FERNANDO CSAR PACHECO

REDE NEURAL ARTIFICIAL IMPLEMETADA EM MICROCONTROLADOR DE BAIXO CUSTO: APLICAO NO RECONHECIMENTO DE PADRES DE FALA

Monografia

apresentada

ao

Departamento de Engenharia Eltrica do Centro de Cincias Exatas e Tecnolgicas da Universidade Federal de Viosa, para a obteno dos crditos da disciplina ELT 490 Monografia e Seminrio e cumprimento do requisito parcial para obteno do grau de Bacharel em Engenharia Eltrica. Orientador: Prof. Dr. Leonardo Bonato Felix

VIOSA 2010
3

FERNANDO CSAR PACHECO

REDE NEURAL ARTIFICIAL IMPLEMETADA EM MICROCONTROLADOR DE BAIXO CUSTO: APLICAO NO RECONHECIMENTO DE PADRES DE FALA

Monografia apresentada ao Departamento de Engenharia Eltrica do Centro de Cincias Exatas e Tecnolgicas da Universidade Federal de Viosa, para a obteno dos crditos da disciplina ELT 490 Monografia e Seminrio e cumprimento do requisito parcial para obteno do grau de Bacharel em Engenharia Eltrica.

Aprovada em 03 de Dezembro de 2010.

COMISSO EXAMINADORA

Prof. Dr. Leonardo Bonato Felix - Orientador Universidade Federal de Viosa

Prof. Dr. Denlson Eduardo Rodrigues - Membro Universidade Federal de Viosa

Prof. Ms. Heverton Augusto Pereira - Membro Universidade Federal de Viosa

Agradecimentos
FAPEMIG, pelo apoio financeiro concedido para a execuo deste trabalho. Aos companheiros Aluzio e Jsus pelas dicas e ensinamentos. Ao Ncleo Interdisciplinar de Anlise de Sinais NIAS, que disponibilizou toda a infra-estrutura. Ao meu orientador, Leonardo Bonato Felix, que me props a idia desse trabalho. minha namorada, pelo apoio e compreenso. E a todos os meus bons amigos que me acompanharam durante esta grande jornada que a graduao em Engenharia Eltrica.

Resumo
Neste trabalho desenvolveu-se um prottipo microcontrolado que capaz de extrair parmetros caracterizadores de um sinal qualquer, desde que se faam os ajustes de offset necessrio, e os utiliza como entrada de uma rede neural, previamente treinada e configurada computacionalmente, a fim de fazer o reconhecimento de padres atravs de um dispositivo independente de computadores e de baixo custo. Para construo desse dispositivo utilizou-se um microcontrolador PIC18F4550, o qual responsvel por todo o processamento realizado: converso A/D, extrao de caractersticas e reconhecimento de padro. Para fins de teste, foram utilizados comandos de voz como sinal de entrada, e alcanou-se uma taxa de acerto de 100% para um banco de dados com dois tipos diferentes de comandos de voz.

Sumrio
1 2 3 INTRODUO .................................................................................................................. 9 OBJETIVOS..................................................................................................................... 11 REVISO BIBLIOGRFICA ......................................................................................... 12 3.1 RECONHECIMENTO AUTOMTICO DE VOZ.................................................................... 12 Aquisio do sinal de fala ..................................................................................... 12 Extrao de parmetros caracterizadores do sinal e voz ....................................... 13 Reconhecimento de padro ................................................................................... 15

3.1.1 3.1.2 3.1.3 3.2

REDE NEURAL ARTIFICIAL .......................................................................................... 16 Estrutura bsica do neurnio artificial.................................................................. 16 Propriedades Das RNAs ....................................................................................... 18 Multi Layer Perceptron......................................................................................... 19

3.2.1 3.2.2 3.2.3 3.3

IMPLEMENTAO DE RNAS EM SISTEMAS INDEPENDENTES DE COMPUTADORES ........... 21 Ferramentas mais utilizadas ................................................................................. 22 Trabalhos correlatos implementao de RNAs em ambiente no computacional . 24 Arquitetura utilizada no presente trabalho ............................................................ 25

3.3.1 3.3.2 3.3.3 4

MATERIAIS E MTODOS............................................................................................. 26 4.1 4.2 4.3 4.4 4.5 AQUISIO DE DADOS ................................................................................................ 27 NORMALIZAO DOS DADOS ...................................................................................... 27 EXTRAO DE CARACTERSTICAS ............................................................................... 27 COMUNICAO COM COMPUTADOR ............................................................................ 29 CLASSIFICAO DO COMANDO DE VOZ........................................................................ 29

5 6 7

RESULTADOS E DISCUSSES..................................................................................... 31 CONCLUSES ................................................................................................................ 34 REFERNCIAS BIBLIOGRFICAS ............................................................................. 35

ANEXO 1 ................................................................................................................................. 37

Lista de Figuras
FIGURA 3.1 PROCESSO DE AQUISIO DO SINAL DE VOZ .......................................................................... 13 FIGURA 3.2 FILTRO ADAPTATIVO NA CONFIGURAO DE PREDIO [6]. .................................................. 14 FIGURA 3.3 ESQUEMA DE UM NEURNIO NATURAL [8]. ........................................................................... 16 FIGURA 3.4 ESTRUTURA BSICA DE UM NEURNIO ARTIFICIAL .............................................................. 18 FIGURA 3.5 ALGUMAS FUNES DE ATIVAO ....................................................................................... 18 FIGURA 3.6 TOPOLOGIA DE UMA REDE NEURAL ...................................................................................... 20 FIGURA 4.1 RESUMO DE OPERAO DO PROTTIPO CONSTRUDO............................................................. 26 FIGURA 4.2 CURVA DE TAXA DE ACERTO POR NMERO DE PARMETROS PARA RECONHECIMENTO DE CINCO
COMANDOS. ................................................................................................................................. 28

FIGURA 4.3 ILUSTRAO DOS VALORES DOS COEFICIENTES PARA DOIS COMANDOS DISTINTOS. OS
COEFICIENTES DO COMANDO "PARA" SO ENCONTRADOS NAS 100 PRIMEIRAS COLUNAS ENQUANTO AS 100 LTIMAS SE REFEREM AO COMANDO "SIGA". ...................................................................... 29

FIGURA 4.4 CURVA DE TAXA DE ACERTO POR NMERO DE COMANDOS PARA EXTRAO DE 20
COEFICIENTES LMS...................................................................................................................... 30

FIGURA 5.1 DESEMPENHO DA ANN IMPLEMENTADA EM MATLAB PARA O COMANDO PARA NO BANCO DE
DADOS DE TESTE. NESSE CASO, A REDE DEVERIA APRESENTAR O VALOR DE SADA 1 QUANDO PARMETROS LMS ADVINDOS DE UM COMANDO "PARA" FOSSEM USADOS COMO ENTRADA. ........... 32

Lista de Tabelas
TABELA 4.1 RESUMO DO ALGORITMO LMS ............................................................................................ 28 TABELA 5.1 COMPARAO COEFICIENTES CALCULADOS PELO MCU E PELO COMPUTADOR. O DESVIO
MDIO EM RELAO AO COMPUTADOR FOI DE 2,36X10-4. .............................................................. 31

TABELA 5.2. TEMPO DE PROCESSAMENTO DO DISPOSITIVO PARA COMANDO DE 500MS DE DURAO. ....... 32

1 Introduo
Os estudos e projetos em redes neurais artificiais, usualmente denominadas redes neurais ou RNA, tem sido motivado desde o seu incio devido ao fato de que o crebro humano processa informaes de forma completamente diferente e, em certos pontos, de forma bem mais efetiva do que o computador digital convencional. O crebro um sistema de processamento de informao altamente complexo, no-linear e paralelo. Ele tem a capacidade de organizar seus constituintes estruturais, conhecidos como neurnios, de forma a realizar processamentos com mais velocidade do que o mais rpido computador hoje existente. Considere como exemplo a viso humana, que se trata de um processo cerebral de reconhecimento perceptivo (reconhecer um rosto familiar inserido em uma cena no-familiar) realizado rotineiramente em

aproximadamente 100-200ms, ao passo que tarefas de complexidade inferior demandam mais tempo para serem executadas em um computador convencional[1]. Outro exemplo o sonar de um morcego, sistema ativo de localizao por eco, que, alm de fornecer informaes sobre distncia at um alvo, transmite informao sobre velocidade relativa, tamanho, e vrias outras caractersticas do mesmo. Toda a complexa computao neural necessria pra extrair essa informao do eco ocorre no interior de um crebro do tamanho de uma ameixa. E de fato, um morcego guiado por eco pode capturar seu alvo com uma taxa de sucesso de causar inveja em um engenheiro de radar ou de sonar[1]. Toda essa impressionante capacidade cerebral devida, principalmente, caracterstica de desenvolvimento plstico do crebro, ou seja, capacidade de reorganizar os padres e sistemas de conexes sinpticas com vistas readequao do crescimento do organismo e s novas capacidades intelectuais e comportamentais do indivduo. [2] Ento, da mesma forma que a plasticidade essencial para o funcionamento dos neurnios como unidades de processamento de informao do crebro humano, ela tambm o com relao s redes neurais construdas com neurnios artificiais. [1] Essa capacidade plstica do crebro mais conhecida como processo de aprendizagem, o qual est presente tanto no crebro quanto nos mtodos de RNA. Diante das tcnicas existentes de redes neurais artificiais e das potencialidades cerebrais que foram apresentadas, como o caso do sonar e da viso humana, a tendncia 9

natural da cincia tentar reproduzir algumas atividades realizadas pelo crebro em um sistema dotado de tcnicas de RNA. E objetivando tal fato que se desenvolveu este trabalho, no qual desenvolvido um hardware microcontrolado programado com uma RNA genrica e com um sistema de captura e de extrao de caractersticas de sinais externos, os quais juntos podem ser utilizados para, primeiramente, extrair informaes de um sinal eltrico qualquer (fazendo assim o papel de algum rgo sensitivo) e, em seguida, atravs de um algoritmo de treinamento computacional, ajustar essa rede para responder a uma sada desejada, conseguindo assim a caracterstica de aprendizado. Para o caso especfico desse projeto, o prottipo foi ajustado para tratar e responder a sinais de voz, servindo assim como um reconhecedor automtico de comandos de voz. O que no exclui a possibilidade de utiliz-lo para quaisquer outros fins que demandem de extrao de caractersticas de um sinal eltrico externo e de reconhecimento de padres.

10

2 Objetivos
Construir um classificador de padres, capaz de operar de forma independente de um computador, atravs de um prottipo microcontrolado. O prottipo deve fazer todas as etapas bsicas de um algoritmo de classificao de padres: Aquisio de um sinal externo. Extrao de parmetros caracterizadores Calcular a resposta de uma rede neural artificial previamente treinada e mostr-la em um LCD Alm disso, o dispositivo deve ser capaz de se comunicar com um computador a fim de enviar informaes necessrias para efetuar o treinamento de uma RNA, o qual ser efetuado em ambiente computacional.

11

3 Reviso Bibliogrfica
Neste captulo sero introduzidos alguns conceitos bsicos sobre o processo de reconhecimento de voz, abordando as tcnicas mais utilizadas e explicando algumas adaptaes que foram necessrias. Em seguida ser detalhada a teoria de Redes Neurais Artificiais (RNAs), que so importantes para o desenvolvimento deste projeto. E devido ao escopo do trabalho, o estudo sobre conceitos de RNAs ser baseado no modelo Perceptron de Mltiplas Camadas (MLP Multi-Layer Perceptron). Uma vez estudada as principais teorias necessrias para o desenvolvimento desse projeto, sero apresentadas as ferramentas que constam na literatura para a implementao de RNAs em sistemas independentes de computadores.

3.1 Reconhecimento automtico de voz


Segundo [3], de forma simplificada, o processo de reconhecimento automtico de voz (RAV) consiste na extrao de informao lingstica no sinal de fala. E normalmente esse processo acontece em trs principais passos: Aquisio do sinal de fala Extrao de parmetros caracterizadores do sinal de voz Reconhecimento de padro

3.1.1 Aquisio do sinal de fala O primeiro passo consiste em realizar a captao do sinal de fala, e para isso o sinal deve passar pelas etapas de amplificao e filtragem passa-baixa anti-aliasing para em seguida ser captado por um conversor analgico digital e ser armazenado em um buffer. Tal processo est demonstrado na Figura 3.1.

12

Figura 3.1 Processo de aquisio do sinal de voz 3.1.2 Extrao de parmetros caracterizadores do sinal e voz Com o sinal armazenado, passa-se para o processo de tratamento digital do sinal de voz, no qual so extrados parmetros caracterizadores do mesmo. Nos trabalhos de reconhecimento automtico de voz existentes na literatura essa etapa de extrao de parmetros pode ser feita utilizando-se vrias tcnicas e, dentre essas, as que se destacam mais so os mtodos de banco de filtros, transformada rpida de Fourier, anlise homomrfica (Cepstrum) e os mtodos de codificao por predio linear (LPC Linear Predictive Coding) [4]. Os mtodos de banco de filtros, transformada rpida de Fourier e a de codificao por predio linear foram largamente usados para a extrao de informao espectral da fala. Entretanto, elas apresentam restries. A mais pronuncivel a de no resolver as caractersticas do trato vocal. O mtodo cepstrum trata essa restrio. A idia por trs do cepstrum a obteno de uma relao linear entre a excitao da energia do sinal e(n) com o filtro utilizado v(n). A literatura reporta que os melhores resultados, na maioria dos casos, so os obtidos pelo mtodo cepstrum [5] Todas essas tcnicas comuns de extrao de parmetros caracterizadores do sinal de voz so normalmente executadas em ambiente computacional, e como o propsito desse trabalho realizar todo o processamento digital do sinal de voz atravs de um hardware microcontrolado, utilizou-se um mtodo de modelagem de sinais, conhecido

13

como filtragem adaptativa, que possui um algoritmo de baixa complexidade e, por isso, de fcil execuo computacional. O filtro adaptativo desenha-se de forma automtica, baseando-se num algoritmo recursivo para ajuste dos seus parmetros, com o intuito de minimizar uma funo de custo. Ele comea com um conjunto de parmetros iniciais arbitrrios, o que demonstra desconhecimento do ambiente, e caso esse sistema seja estacionrio os parmetros do filtro convergem, a cada iterao, para a soluo tima do filtro de Wiener. J em um ambiente no estacionrio o algoritmo possibilita ao filtro a capacidade de seguimento, conseguindo acompanhar as variaes estatsticas ao longo do tempo, desde que suficientemente lentas [6]. Sendo assim, por o sinal de voz ser no estacionrio, os parmetros de ajustes do filtro adaptativo, que neste caso sero os parmetros caracterizadores do comando de voz, apenas acompanham as variaes estatsticas do mesmo, o que pode ser utilizado como uma espcie de assinatura desse sinal. Para melhor compreenso desse processo, na Figura 3.2 demonstrada a configurao de um filtro adaptativo na configurao de predio.

Figura 3.2 Filtro adaptativo na configurao de predio [6]. A funo do filtro adaptativo nesta situao consiste em disponibilizar a melhor predio do valor presente de um sinal aleatrio. O valor presente do sinal serve de resposta desejada para o filtro adaptativo. importante notar que o sinal de referncia do filtro consiste apenas nos valores passados do processo. Em alguns casos o sinal de sada do filtro adaptativo serve como sada do sistema, o que lhe traz a caracterstica de preditor. Como pode ser observado na Figura 3.2, a cada iterao o filtro adaptativo ajustado, atravs do valor do erro de predio e(i), pelo algoritmo de adaptao. Como existem vrios algoritmos, eles so divididos em duas classes[6]: 14

Algoritmos de gradiente Algoritmos de mnimos quadrados Os algoritmos de gradiente baseiam-se no filtro de Wiener, estimando o gradiente

da superfcie da funo de custo. Tem como principal vantagem a baixa complexidade. So bons na explorao de superfcies pouco complicadas. Os algoritmos de mnimos quadrados so baseados no filtro de Kalman. De forma determinstica minimizam a soma dos quadrados dos erros parciais. Tem como vantagem a baixa sensibilidade a mnimos locais da superfcie da funo de custo e a maior velocidade de convergncia comparativamente com os algoritmos de gradiente. Apresentam como principais desvantagens as maiores exigncias computacionais e problemas de estabilidade. Tendo em vista a necessidade de um algoritmo de baixa complexidade, ser utilizado nesse trabalho o algoritmo de gradiente estocstico Least Mean Squares (LMS), que est detalhadamente explicado no Anexo 1. 3.1.3 Reconhecimento de padro Uma vez obtido os parmetros caracterizadores do sinal de voz passa-se para a etapa de reconhecimento de padres. Para essa etapa existem dois algoritmos de mtodos estatsticos de maior destaque [7]: as Redes Neurais Artificiais (Artificial Neural Networks) e os Modelos Ocultos de Markov (Hidden Markov Models). Atravs de um algoritmo de RNA possvel criar um modelo que, ao receber como entrada os parmetros caracterizadores de um sistema qualquer, ele reconhece um padro nesses dados de entrada e responde um valor numrico que identifica uma determinada caracterstica nesse sistema dentre as demais que foram previamente informadas para o algoritmo. E trabalhando com um sistema de sinal de voz, por exemplo, pode-se obter como resposta o reconhecimento de um comando dentre os demais que foram previamente informados para o algoritmo. Na prxima sesso ser detalhado esse algoritmo de reconhecimento de padro (RNA) e, como o foco deste trabalho a implementao de Redes Neurais Artificiais em Hardware, no ser estudado aqui o mtodo Modelos Ocultos de Markov.

15

3.2 Rede neural artificial


Na sua forma mais geral, uma rede neural artificial uma mquina projetada para modelar a forma como o crebro realiza uma tarefa particular. Normalmente implementada utilizando-se componentes eletrnicos (implementao em hardware) ou simulada por programao em um computador digital (implementao em software) [1]. Uma rede neural um processador maciamente e paralelamente distribudo, formado de unidades de processamento simples, que tem propenso para armazenar conhecimento experimental e torn-lo disponvel para o uso. Ela se assemelha ao crebro em dois aspectos [1]: a) O conhecimento adquirido pela rede a partir de seu ambiente atravs de um processo de aprendizagem. b) Foras de conexo entre neurnios, conhecidas como pesos sinpticos, so utilizadas para armazenar o conhecimento adquirido. Uma das caractersticas mais importantes das redes neurais sua capacidade de generalizao. Isto , a rede neural produz sadas adequadas para entradas que no estavam presentes durante o treinamento. A generalizao e a aprendizagem tornam possveis que as redes neurais possam resolver problemas complexos (de grande escala) que so atualmente no tratveis [1] 3.2.1 Estrutura bsica do neurnio artificial Nesta seo ser discutida, brevemente, a estrutura bsica de um neurnio artificial. Para introduzir os conceitos bsicos, a Figura 3.3 apresenta o esquema de funcionamento de um neurnio natural.

Figura 3.3 Esquema de um neurnio natural [8].

16

Os neurnios so divididos em trs sees: o corpo da clula, os dendritos e o axnio, cada um com funes especficas, porm complementares. O corpo do neurnio mede apenas alguns milsimos de milmetros, e os dendritos apresentam poucos milmetros de comprimento. O axnio, contudo, pode ser mais longo e, em geral, tem calibre uniforme. Os dendritos tm por funo receber as informaes, ou impulsos nervosos, oriundas de outros neurnios e conduzi-las at o corpo celular. Aqui, a informao processada e novos impulsos so gerados. Estes impulsos so transmitidos a outros neurnios, passando atravs do axnio at os dendritos dos neurnios seguintes. O ponto de contato entre a terminao axnica de um neurnio e o dendrito de outro chamado de sinapse. pelas sinapses que os nodos se unem funcionalmente, formando redes neurais. As sinapses funcionam como vlvulas, e so capazes de controlar a transmisso de impulsos - isto , o fluxo da informao - entre os nodos na rede neural. [2]. Isso possibilita a passagem dos sinais oriundos dos neurnios pr-sinpticos para o corpo do neurnio ps-sinptico, onde so comparados com os outros sinais recebidos pelo mesmo. Se o sinal eltrico transmitido ao corpo celular, em um intervalo curto de tempo, suficientemente alto, a clula "dispara" e produz um impulso que transmitido para as clulas seguintes (nodos ps-sinpticos). Este sistema simples responsvel pela maioria das funes realizadas pelo nosso crebro. E a capacidade de realizar funes complexas surge com a operao em paralelo de todos os 10 11 nodos do crebro[9]. Tendo em vista essa configurao do neurnio biolgico, Warren McCulloch, psiquiatra e neuroanatomista, e Walter Pitts, matemtico, propuseram em 1943 um modelo matemtico para o mesmo. O modelo em si era uma simplificao do neurnio biolgico at ento conhecido na poca e pode ser visualizado na Figura 3.4. Para representar os dendritos, o modelo constou de n terminais de entrada de informaes x1, x2, ..., xn e simplesmente um terminal de sada y, para representar o axnio. Cada entrada apresenta um coeficiente ponderador que faz o papel das sinapses, sendo que estes coeficientes so valores reais. De forma anloga ao neurnio biolgico, a resposta s ocorre quando a soma ponderada dos sinais de entrada ultrapassa um limiar prdefinido, realizando, portanto, uma atividade semelhante a do corpo celular. No modelo proposto, o limiar foi definido de forma Booleana, dispara ou no dispara, o que est representado na Figura 3.4 pela funo de ativao [9]. 17

Figura 3.4 Estrutura Bsica de um Neurnio Artificial A partir do modelo proposto por McCulloch e Pitts, foram derivados vrios outros modelos que permitem a produo de uma sada qualquer, no necessariamente booleana, e com diferentes funes de ativao. A Figura 3.5 ilustra graficamente quatro funes de ativao diferentes: a) funo linear, b) funo rampa, c) funo degrau (step) e d) funo tangente hiperblica (tansig).

Figura 3.5 Algumas funes de ativao Uma entrada adicional do neurnio artificial o bias. A palavra bias, em ingls, significa vis, linha oblqua ou diagonal; movimento oblquo em sentido figurado: tendncia, propenso; preferncia, preconceito; predisposio. Sendo assim, a funo do bias aplicar uma tendncia ao campo local induzido, produzindo um deslocamento a seus valores. 3.2.2 Propriedades Das RNAs Nesta seo esto listadas algumas vantagens das RNAs para a soluo de problemas computacionalmente complexos. 18

O uso de redes neurais oferece as seguintes propriedades uteis e capacidades [1]: 1. No-linearidade: Um neurnio artificial pode ser linear ou no-linear. Uma rede composta de neurnios no-lineares , por definio, no-linear. 2. Mapeamento de Entrada-Sada: Um conjunto de treinamento consiste de uma serie de dados que so usados como entrada de uma rede neural e outra srie de dados que correspondem s sadas desejadas da rede para cada entrada. Com essas informaes, a RNA pode ser treinada para fornecer as sadas desejadas para os mesmos padres de entrada. Entretanto, o mais importante que a rede neural treinada fornecera sadas equivalentes para entradas que no sejam iguais, mas que apresentem semelhana com as utilizadas no seu treinamento. Essa caracterstica e muito til no reconhecimento de padres. 3. Adaptabilidade: As redes neurais tm a capacidade de adaptar seus pesos sinpticos sob influncia de modificaes do meio ambiente. Em particular, uma rede neural treinada para operar em um ambiente especfico pode ser facilmente re-treinada para lidar com pequenas modificaes nas condies operativas do ambiente. 4. Resposta a Evidncias: No contexto de classificao de padres, uma rede neural pode ser projetada para fornecer informao no somente sobre qual padro particular selecionar, mas tambm sobre a confiana ou crena na deciso tomada. 3.2.3 Multi Layer Perceptron As RNAs com uma camada de neurnio so capazes de resolver problemas linearmente separveis, porm, apesar de resolver uma vasta gama de problemas, existe, por outro lado, outra vasta coleo de problemas no linearmente separveis. Este problema foi proposto por Minsky e Pappert na dcada de 70, quando, em suas publicaes, depreciaram a habilidade das RNA de encontrar solues para simples problemas, como por exemplo, a modelagem do Ou Exclusivo da lgica digital. A soluo encontrada para contornar este problema e como conseqncia retomar as pesquisas sobre RNA, at ento desacreditas por Minsky e Pappert, foram as estruturas neurais de mltiplas camadas, tambm conhecida como redes MLP (Multi Layer Perceptron), na dcada de 80.

19

Figura 3.6 Topologia de uma rede neural As redes MLP apresentam a arquitetura mostrada na Figura 3.6, onde se encontram a camada de entrada, as camadas intermedirias (ou ocultas) e a camada de sada. O nmero de variveis da camada de entrada depende diretamente do nmero de caractersticas agrupadas no vetor das amostras. O nmero de neurnios das camadas intermedirias depende da complexidade do problema. E a camada de sada contm o nmero de neurnios necessrio para executar a codificao das amostras de entrada. O nmero de neurnios das camadas intermedirias determinado de forma emprica, atentando para o caso de overfitting (ou superajuste), que o caso onde existe uma grande quantidade de neurnios e a estrutura ao invs de generalizar as informaes, acabar por memorizar os padres apresentados, no sendo capaz de classificar padres semelhantes. Outro efeito do superajuste que a RNA alm de armazenar as caractersticas relevantes extradas das amostras, guarda em seus pesos informaes de rudos que a princpio no revelam interesse. Por outro lado, caso o nmero de neurnios seja inferior ao desejado, pode ocorrer um underfitting e a RNA no convergir para uma resposta devido a uma sobrecarga de informaes a serem armazenadas em poucos pesos. O treinamento das redes MLP normalmente realizado pelo algoritmo de retropropagao do erro (ou back-propagation), um algoritmo supervisionado que realiza o ajuste dos pesos, a partir do erro existente entre os pares de amostra de dados de entrada e sada da RNA. Este algoritmo apresenta duas fases denominadas forward e backward. A fase forward utilizada para que seja encontrada uma sada a partir dos valores de entrada. A fase backward compara esta sada com a sada desejada e retorna atualizando os valores dos pesos das conexes dos neurnios da estrutura. Por isso, para o 20

treinamento de uma rede necessrio dispor de um banco de dados com os valores de entrada de um sistema, e o valor, ou valores, de sada correspondente a cada conjunto de valores de entrada. No existe um tamanho fixo desse banco de dados, porm quanto maior ele seja maiores so as chances de se obter uma RNA que solucione de maneira mais eficiente um determinado problema. Basicamente, o processo de treinamento da rede MLP tem como objetivo, durante o treinamento, a minimizao da funo de erro quadrtico mdio (mse mean square error). O treinamento da RNA deve ocorrer at que se complete um nmero predeterminado de iteraes para atualizao dos pesos ou quando o erro quadrtico mdio encontrar-se abaixo de um valor pr-estabelecido. Alm desses critrios de parada do treinamento, existem outros que visam evitar o overfitting, j que, infelizmente, difcil saber de antemo o tamanho ideal da rede que evite tal acontecimento. E dentre esses o mais utilizado o parada precoce (early stopping). A parada precoce um mtodo de melhoria da generalizao das RNAs, e oferece modificao durante a etapa de treinamento. Esta tcnica fraciona as amostras em trs grupos distintos. O primeiro grupo so as amostras de treinamento, que so utilizadas para ajustar os pesos. O segundo grupo so as amostras de validao. O erro de validao monitorado durante o processo de treinamento. Normalmente, no incio do treinamento, tanto o erro de treinamento quanto o erro de validao decrescem no decorrer das iteraes, entretanto, medida que comea a ocorrer o overfitting, o erro de validao comea a crescer e a partir desse momento, passado um pr-determinado nmero de iteraes, o treinamento parado e os pesos e os bias obtidos na iterao de menor erro de validao so retornados. O terceiro grupo constitudo das amostras de teste, as quais no so utilizadas no treinamento, mas so uteis para medir o desempenho do modelo obtido e, tambm, para comparar diversos modelos [10].

3.3 Implementao computadores

de

RNAs

em

sistemas

independentes

de

Com o intuito de melhor entender o tema de construo de RNAs fora do ambiente computacional, esta sesso apresentar, resumidamente, os principais mtodos utilizados para esse fim e abordar as principais caractersticas da ferramenta atualmente mais utilizada para esse propsito: o FPGA. 21

Em seguida, a fim de entender as potenciais aplicaes desse tema, sero apresentados alguns exemplos de trabalhos publicados nessa rea, e, por fim, ser abordada a tecnologia utilizada nesse trabalho juntamente com os motivos da utilizao da mesma. 3.3.1 Ferramentas mais utilizadas Como j foi visto, Redes Neurais Artificiais (RNAs) so arquiteturas massiamente paralelas que podem resolver uma srie de complexos problemas de otimizao, classificao e de modelagem. Seu paralelismo juntamente com a capacidade de aprendizado podem oferecer uma maneira rpida, flexvel e alternativa de baixo custo aos paradigmas tradicionais de computao[11]. Sua implementao normalmente realizada por meio de construo em hardware ou de softwares computacionais, porm, a caracterstica de velocidade de processamento proporcionada pelo paralelismo dessas redes no pode ser aproveitada no caso de execuo em software, pois a arquitetura do hardware que executa tal software de natureza seqencial, baseado na arquitetura de Von Neumann, e isso torna essencial a construo de RNAs em hardware quando se tem o desempenho como uma necessidade crtica de um sistema[11]. Portando, foi mantendo o foco no desempenho que na bibliografia os Neuroprocessadores (NPs) e os ASICs (Application Specific Integrated Circuits Circuitos Integrados de Aplicao Especfica) foram os mais populares meios de implementao de redes neurais em hardware. No entanto, os algoritmos de NPs tende a ser mais especfico, o que leva a um ciclo de projeto mais complexo e demorado (maior time-tomarket). Como resultado, os neuro-processadores no correspondem ao ritmo de avano visto em computao, e tendem a ficar desatualizados mais rapidamente. E a falta de flexibilidade e o alto custo de ASICs tambm se revelaram pontos antieconmicos para a implantao de redes neurais em sistemas de produo de baixo volume [11]. Sendo assim, desde o incio 1990, dispositivos programveis como o FPGA (Field Programmable Gate Arrays) tem sido utilizado como uma alternativa para implementaes tradicionais de redes neurais. FPGAs fornecem uma alternativa de baixo custo e, ainda, junta a eficincia e velocidade dos ASICs com a flexibilidade dos neuro-processadores [11].

22

A programao dos FPGAs pode ser feita por diversas ferramentas de projeto e sntese fornecidas por companhias como a Altera, Xilinx, a Atmel, entre outras. Os circuitos podem ser especificados utilizando-se linguagens de descrio de hardware de alto nvel (HDLs Hardware Description Languages), como a VHDL ou a Verilog [12]. Ferramentas de software realizam a sntese dos arquivos com as descries e produzem um cdigo de configurao binrio: o arquivo de bitstream. Este arquivo utilizado para configurar o FPGA. FPGAs permitem a implementao de algoritmos diretamente em hardware, em vez de em software (como, por exemplo, os programas utilizados nos

microcontroladores). A implementao em software, como j foi dito, tem limitaes oriundas da natureza sequencial das arquiteturas de Von Neumann que executam os programas [13]. Por outro lado, o paralelismo existente no hardware pode ser explorado nas implementaes em FPGA, em busca da melhoria de desempenho dos projetos. Alm disso, a flexibilidade desses dispositivos permite que se configure o sistema mesmo em tempo de execuo, o que conhecido como Reconfigurao Dinmica [14], Esses Sistemas Reconfigurveis so normalmente baseados em um

microcontrolador e um FPGA funcionando em conjunto. Uma parte do sistema implementada em hardware, no FPGA, e a outra parte roda em software, no microcontrolador. Ento, entendendo que a aplicao de RNAs em hardware almeje alcanar a mais importante caracterstica da rede neural biolgica, que a aprendizagem, natural que se busque uma arquitetura que seja capaz de adaptar as conexes entre neurnios de acordo com as necessidades do sistema externo. E a caracterstica de Reconfigurao Dinmica que permite tal propriedade, passando assim a ser um quesito importante para se atingir algum nvel de aprendizagem em hardware. Mesmo que utilizao de arquiteturas no seqenciais seja predominante na implementao de redes neurais fora do ambiente computacional, ainda encontram-se alguns trabalhos que utilizam a arquitetura sequencial, como ser constatado na sesso 3.3.2, uma vez que no so muitos os processos que necessitam criticamente do alto desempenho dos FPGAs. Sero apresentados a seguir alguns trabalhos encontrados na literatura que conseguiram avanos significativos no aproveitamento das caractersticas de 23

paralelismo e reconfigurao dinmica ao implementar uma RNA fora do ambiente computacional. 3.3.2 Trabalhos correlatos implementao de RNAs em ambiente no computacional Em [15] descreve-se um tipo de rede neural, baseada num algoritmo chamado Pattern Shaper, que gera sinais eltricos para estimular msculos em indivduos com leses na espinha dorsal. O FPGA faz parte de uma placa chamada Pattern Shaper Board. Ele gera um sinal digital que passa por um conversor DA (digital para analgico) e enviado para os msculos. Uma srie de sensores so utilizados para verificar se o movimento produzido pelo estmulo foi o esperado. Se houver divergncia, as sadas desses sensores alimentam um sistema de adaptao dos pesos da rede. Dessa forma, o equipamento pode se adequar automaticamente diante de duas situaes comuns: cada msculo de cada individuo possui diferentes caractersticas de resposta e as propriedades dos msculos podem variar com o tempo por causa da fadiga muscular. Outro ponto digno de nota e que os FPGAs neste sistema so configurados automaticamente no inicio da operao. Os dados de configurao dos dispositivos ficam armazenados em uma SPROM ( Serial Programmable Read-Only Memory Memria Serial Programvel Somente de Leitura) e so transferidos para os FPGAs quando os circuitos so ligados. Em [16], duas implementaes de controladores para um motor SRM ( Switched Reluctance Motor Motor de Relutncia Chaveado) foram realizadas. Uma RNA implementada em um DSP (Digital Signal Processor Processador Digital de Sinais), Texas Instruments TMS320C25, foi apropriada para controlar o motor em baixa e media velocidades. O tempo de resposta desta implementao era de 84 microssegundos. Entretanto, para controlar o motor em alta velocidade, o tempo de resposta deve ser de no Maximo 39 microssegundos. Uma implementao de rede neural em um FPGA Xilinx XC4000 alcanou um tempo de resposta de dois microssegundos. Em [17] apresentada uma arquitetura chamada FAST (Flexible Adaptable-Size Topology Topologia Flexvel de Tamanho Adaptvel), que permite a alterao do tamanho das redes em tempo de execuo, aumentando ou diminuindo a quantidade de neurnios. Foi construda em uma mquina especializada, que, dentre outros recursos, possui quatro FPGAs Xilinx XC4013-6, dos quais apenas dois foram utilizados. Realizou-se um teste prtico onde a rede neural implementada reconheceu e agrupou 24

pontos de uma imagem por similaridade de cor. Estudos esto sendo feitos pelos autores para aproveitar a reconfigurabilidade dinmica dos novos FPGAs. [18] Apresenta neurnios construdos em placas com vrios FPGAs, dando nfase a velocidade do processamento obtida. Trs sistemas foram implementados nesta arquitetura. Comparando-os com suas verses em software, que rodaram em um DEC5100, os autores informam que as verses em hardware foram aproximadamente 600 vezes mais rpidas. 3.3.3 Arquitetura utilizada no presente trabalho Como pde ser constatado, o FPGA tem sido a principal ferramenta utilizada para aproveitar o desempenho oriundo da caracterstica de paralelismo das RNAs. Porm, como a velocidade de execuo da RNA, no uma necessidade crtica, esse trabalho no aproveitar os desempenhos oferecidos por essa arquitetura e, para o propsito da construo da RNA em ambiente no computacional, ser utilizado um

microcontrolador de natureza sequencial, arquitetura Harvard, o qual ter, internamente, um algoritmo que executa uma RNA pr-determinada. O algoritmo da RNA foi programado de forma a permitir uma fcil reconfigurao da estrutura da rede, permitindo assim que o usurio encontre sem maiores dificuldades a melhor rede que solucione o problema em questo, facilitando assim o processo de aprendizagem do dispositivo.

25

4 Materiais e Mtodos
Na Figura 4.1 est apresentado o resumo de operao do sistema que foi construdo. Como pode ser observado, o incio da operao representado pelo microfone, onde o sistema fica aguardando a chegada de algum comando de voz. Uma vez pronunciado algum comando, o microcontrolador inicia o processo de converso A/D e armazena o sinal digital em uma memria externa. Em seguida, estando o sinal armazenado na memria, inicia-se o algoritmo de extrao de caractersticas, o qual transforma todo o sinal em apenas alguns coeficientes caracterizadores. A partir desse momento, se o prottipo estiver funcionando no modo de execuo, ele ir calcular a resposta da RNA e mostrar o resultado em um LCD, seno, caso esteja no modo de configurao, ele ir enviar os coeficientes caracterizadores para um computador pessoal (PC) via USB, onde ser realizado o treinamento da RNA para futura reconfigurao do microcontrolador. Nas prximas sesses sero explicadas todas as etapas desse ciclo de operao, mostrando detalhes de cada algoritmo e modo de operao.

Figura 4.1 Resumo de operao do prottipo construdo. 26

4.1 Aquisio de dados


Para a captao do sinal de voz utilizou-se um microfone de eletreto conectado a um amplificador operacional com ligao no inversora. Para evitar o efeito aliasing, utilizou-se um filtro passa-baixa Butterworth de quarta ordem com freqncia de corte de 2kHz entre o circuito amplificador e a entrada do conversor analgico-digital do microcontrolador PIC18F4550. Como o corte desse filtro no abrupto a converso A/D foi realizada na freqncia de 5kHz, garantindo assim o cumprimento do teorema de amostragem de Nyquist. importante destacar que essa taxa de amostragem foi escolhida de forma a minimizar o tempo de processamento, porm sem diminuir a taxa de acerto do dispositivo. Na converso analgico-digital trabalhou-se com o microcontrolador (MCU) realizando converses A/D com resoluo de oito bits. Os dados obtidos do conversor A/D foram armazenados em uma memria S-RAM externa de 32kbytes. O acesso ao endereamento dessa memria foi feito de forma direta, o que permitiu a utilizao de apenas um pino do MCU. Isso pde ser obtido ligando em cascata dois registradores 74164 diretamente aos 14 pinos de endereamento da memria, assim o MCU pde enviar o endereo de memria bit por bit para o registrador e o mesmo os disponibilizou de forma paralela memria. Para todas as operaes do MCU foi utilizada a freqncia de clock mxima do mesmo que de 48MHz.

4.2 Normalizao dos dados


Com os dados do comando de voz armazenados na memria externa, o MCU faz a normalizao dos mesmos atravs da aplicao da Equao 1. O que homogeneza a intensidade sonora de cada comando. (1)

4.3 Extrao de caractersticas


Como j explicado, devido s limitaes de desempenho computacional que se encontra em um microcontrolador, utilizou-se o algoritmo de gradiente estocstico Least Mean Square [6] para extrao de caractersticas do sinal de voz. Esse algoritmo, alm de acompanhar as variaes estatsticas do sinal de entrada, o que pode ser usado

27

com uma espcie de assinatura de um comando de voz, possui um algoritmo de baixa complexidade computacional, como pode ser observado na Tabela 4.1. Tabela 4.1 Resumo do algoritmo LMS

Nota-se que esse algoritmo pode modelar um sinal qualquer com quantos coeficientes preditores for necessrio, j que os mesmos so proporcionais ao nmero de entradas anteriores do vetor X(i). Sendo assim escolheu-se montar o vetor X(i) com 20 valores anteriores, o que resulta em um filtro de 20 coeficientes, pois como pode ser observado na Figura 4.2, para esse nmero de valores, o grfico de taxa de acerto por nmero de coeficientes do filtro se encontra estabilizado, e isso significa que, acima desse nmero de parmetros, o algoritmo no consegue aumentar seu grau de representatividade em relao ao sinal de voz.
Taxa de acerto por nmero de parmetros caracterizadores
100 90 80 70

Taxa de acerto

60 50 40 30 20 10 0

10

15

20

25

30

35

40

Nmero de parmetros caracterizadores

Figura 4.2 Curva de taxa de acerto por nmero de parmetros para reconhecimento de cinco comandos. Na Figura 4.2 cada ponto da curva foi obtido atravs da resposta da melhor rede neural dentre 300 redes que foram treinadas para cada ponto, totalizando assim 12000 28

redes distintas treinadas. Cada rede era responsvel para classificao de cinco comandos distintos: direita, esquerda, siga, para e trs. Com esse algoritmo implementado no MCU, possvel fazer o ajuste dos coeficientes do preditor de forma recursiva para todo o sinal de entrada. E como o objetivo a extrao de caracterstica do comando de voz, passam-se ento a entender os coeficientes preditores como parmetros caracterizadores do comando de fala, ou, simplesmente, parmetros LMS.

4.4 Comunicao com Computador


Para fazer o algoritmo de classificao de padres, primeiramente necessrio enviar os parmetros LMS calculados no MCU para um PC, sendo assim possvel analisar os dados e treinar a RNA. Para isso, foi necessrio estabelecer uma comunicao do tipo USB entre o MCU e o PC, o que fez o sistema possuir dois modos de operao: o primeiro o modo de configurao, no qual ao final de cada comando o MCU envia os parmetros LMS para um PC, e o segundo o modo de execuo, no qual aps o clculo dos parmetros LMS, o MCU executa o algoritmo de RNA para realizar a classificao.

4.5 Classificao do comando de voz


Coeficientes LMS do comando Para e Siga
2 4 6

Coeficientes

8 10 12 14 16 18 20 20 40 60 80 100 120 140 160 180 200

Repetio do comando

-0.2 -0.15 -0.1 -0.05

0.05

0.1

0.15

0.2

0.25

0.3

Figura 4.3 Ilustrao dos valores dos coeficientes para dois comandos distintos. Os coeficientes do comando "Para" so encontrados nas 100 primeiras colunas enquanto as 100 ltimas se referem ao comando "Siga". 29

De posse do algoritmo de extrao de caracterstica do comando de voz fez-se um banco de dados com os parmetros LMS calculados de 100 repeties do comando Siga e mais 100 repeties do comando Para. Na Figura 4.3 exibido esse banco de dados na forma de imagem para que se possa perceber a diferena dos valores de cada coeficiente LMS para cada comando. Foram escolhidos apenas dois comandos para a classificao porque, como pode ser observada na Figura 4.4, a curva de taxa de acerto por nmero de comandos decrescente e possui acerto mximo para dois comandos.
100 90 80 70

Taxa de acerto por nmero de comandos

Taxa de acerto

60 50 40 30 20 10 0

Nmero de comandos

Figura 4.4 Curva de taxa de acerto por nmero de comandos para extrao de 20 coeficientes LMS. Na Figura 4.4 cada ponto da curva foi obtido pela resposta da melhor rede neural dentre 300 que foram treinadas para cada ponto. O que totalizou 1200 redes treinadas. Com esse banco de dados treinou-se, em ambiente computacional atravs do software Matlab, duas RNA do tipo feed-forward backpropagation com dois neurnios na camada de entrada e um neurnio de sada. A primeira RNA responde nvel alto somente no caso de receber coeficientes do comando Para, e a segunda RNA responde nvel alto somente no caso de receber coeficientes do comando Siga. Com as redes treinadas gravaram-se os pesos e os bias das RNAs na memria de programa do MCU, os quais so utilizados pelo algoritmo de classificao para calcular a respostas das RNAs programadas no MCU. No algoritmo de classificao que foi criado, caso as duas redes respondam nvel alto para um mesmo comando, ou as duas respondam nvel baixo, o sistema informa, atravs de um LCD, que o comando no foi identificado.

30

5 Resultados e discusses
Para testar o algoritmo de clculo dos coeficientes LMS, gravou-se um vetor de 900 dados na memria de programa do MCU para simular um sinal de voz de entrada e, para esse mesmo sinal, calculou-se 20 coeficientes LMS atravs do MCU e do Matlab. O resultado exibido na Tabela 5.1. Tabela 5.1 Comparao coeficientes calculados pelo MCU e pelo Computador. O desvio mdio em relao ao computador foi de 2,36x10-4.
Parm. MCU 0,243832251 0,210463354 0,178023706 0,146889685 0,117326672 0,089655133 0,064149091 0,041058716 0,020617279 0,003030534 -0,01151817 -0,022913335 -0,031026355 -0,035766916 -0,037080444 -0,034950558 -0,029422137 -0,020543851 -0,008396764 0,006868068 Parm. Computador 0,24366165 0,210280836 0,177828784 0,146683343 0,117110082 0,089429388 0,063915174 0,04081653 0,020368936 0,00277707 -0,011775755 -0,023173991 -0,03128803 -0,036028619 -0,037341071 -0,035209206 -0,029676632 -0,020794258 -0,008641014 0,006631003

Para testar a preciso dos clculos do algoritmo de classificao foram usados os coeficientes da Tabela 5.1 calculados pelo MCU como entrada desse algoritmo, e foi calculada a resposta das RNAs no MCU e no PC. O resultado do MCU apresentou um desvio de 1,82x10-7 em relao ao computador. No treinamento da RNA separou-se 50% dos dados para o treino, 20% para a validao e mais 30% para teste. O resultado do treinamento ilustrado na Figura 5.1. Nota-se que as redes alcanaram um acerto de 100% para os dois comandos, o que devido grande diferena entre os coeficientes LMS dos dois comandos como pde ser visto na Figura 4.3. 31

De posse da estrutura das redes e dos valores dos pesos, ambos obtidos no Matlab, construram-se as mesmas redes neurais no MCU, as quais so utilizadas pelo algoritmo que controla o modo de execuo. Nesse algoritmo, depois de calculado a resposta da RNA, o mesmo ainda faz um arredondamento valores Resposta da ANN do dos comando "Para" para o inteiro mais prximo.
para o banco de teste
1.5 Resposta ANN Resposta esperada 1

Valor de sada

0.5

-0.5

-1

-1.5

10

20

30

40

50

60

Comandos

Figura 5.1 Desempenho da ANN implementada em Matlab para o comando Para no banco de dados de teste. Nesse caso, a rede deveria apresentar o valor de sada 1 quando parmetros LMS advindos de um comando "Para" fossem usados como entrada. Com o prottipo pronto, testaram-se as respostas da rede do MCU e obteve-se um acerto de 100% para classificao de dois comandos de voz. Esses resultados esto consistentes com aqueles obtidos pelo Matlab que esto exibidos na Figura 5.1. Foi medido, tambm, o tempo de processamento dos algoritmos de cada etapa de reconhecimento que foram programados no MCU. O resultado est exibido na Tabela 5.2 Tabela 5.2. Tempo de processamento do dispositivo para comando de 500ms de durao.
Te mpo de proce ssame nto p/ comando de 500ms Etapa Captao do comando de fala Clculo dos parmetros LMS Clculo da resposta da RNA Te mpo (s) tempo real 6,52833 0,011

importante lembrar que os algoritmos implementados no MCU foram programados usando variveis do tipo Ponto Flutuante (32 bits). Por isso existe diferena entres os valores calculados pelo PC e o MCU, pois em ambiente 32

computacional os clculos so feitos com variveis de 64 bits, o que traz uma maior preciso de clculo. Outra ponderao importante que o desempenho da RNA est diretamente ligado qualidade dos parmetros extratores de caracterstica do sinal de fala, sendo assim, justifica-se o acerto de 100% da RNA devido boa diferenciao entre os comandos de voz promovida pelo alto nmero de parmetros LMS calculados. Mas importante destacar que tal nvel de diferenciao foi obtido custa de um maior tempo gasto no clculo dos parmetros LMS, pois o nmero de parmetros calculados diretamente proporcional ao tempo de processamento. Comparando esse trabalho com aqueles mostrados na sesso 3.3.2, percebe-se que haveria um grande avano na velocidade de resposta do dispositivo caso fosse utilizado um dispositivo FPGA ao invs de um microcontrolador, uma vez que, utilizando um FPGA, a etapa de extrao de caractersticas poderia ser processada paralelamente etapa de converso A/D, o que resultaria em uma resposta dos parmetros LMS imediatamente aps o final do pronunciamento de um comando de voz, assim o dispositivo demandaria apenas do tempo de clculo de resposta da RNA para atuar sobre uma sada desejada. O dispositivo apresenta ainda uma ligeira vantagem em relao a alguns trabalhos executados em FPGA, que a facilidade de reconfigurao da RNA. Como a RNA implementada em software, preciso apenas mudar a matriz de pesos e bias gravada na memria de programa do MCU para reconfigurar a RNA, j em um dispositivo FPGA necessrio montar, trabalhosamente, cada um dos neurnios modificados. Porm, essa vantagem passa a no existir quando se tem uma ferramenta como a que demonstrada em 3.3.2, a qual permite que os usurios descrevam arquiteturas de rede em um alto nvel de abstrao e gera cdigos VHDL sintetizveis em sistema CAD para FPGAs. Ento, para esse caso especfico, talvez, a reconfigurao se torne ainda mais fcil que aquela efetuada em software.

33

6 Concluses
O reconhecimento de padres atravs de um prottipo microcontrolado uma alternativa de baixo custo, pois, em modo de execuo, o mesmo independe de computadores e ainda dispensa componentes dispendiosos como os DSPs. E possui, ainda, um grande potencial de aplicabilidade, pois permite a aplicao dos mtodos de RNA em situaes em que no seja vivel, ou possvel, destinar um computador para cumprir essa funo. Outro resultado interessante a capacidade de se obter um hardware de extrao de caractersticas de sinais de udio, com comunicao USB, com um alto nvel de representatividade do sinal de entrada a partir do dcimo quinto parmetro calculado, o que pde ser constatado na Figura 4.3, e com um baixo desvio mdio em relao ao PC. A fim de continuar as pesquisas nessa rea de aplicao, seria interessante, para os trabalhos futuros, explorar a extrao de caracteristicas de sinais e o reconhecimento de padres utilizando um dispositivo FPGA, j que, como foi demonstrado, o mesmo possui diversas caractersticas que permite um produto final de maior desempenho.

34

7 Referncias Bibliogrficas
1. HAYKIN, S. Redes Neurais Princpios e Prticas. So Paulo: Prentice Hall, 1999. 2. PINHEIRO, M. Fundamentos de Neuropsicologia - O Desenvolvimento Cerebral, Trindade, 2007. Disponivel em:

<http://www.fug.edu.br/revista/artigos/Organizados/desenvolvimentosn.pdf>. 3. ALENCAR, V. F. S. Atributos e domnos de interpolao eficientes em reconhecimento de voz distribudo, 2005. 4. RABINER, L. R.; SCHAFER, R. W. Digital Processing Of Speech Signals. [S.l.]: Prentice Hall, 1978. 5. ISHI, C. T. Anlise de Um Sistema de Reconhecimento de Voz Baseado em Fonemas, 1998. 6. em: MARQUES, P. A. C. Introduo Filtragem Adaptativa. Disponivel <http://www.deetc.isel.ipl.pt/sistemastele/STDS/Bibliografia/Texto-

FiltragemAdaptativa.pdf>. Acesso em: 15 ago. 2010. 7. YNOGUTI, C. A. Reconhecimento de Fala Contnua Utilizando Modelos Ocultos de Markov, 1999. 8. VILELA, A. L. M. Sistema Nervoso. Analtomia e Fisiologia Humana. Disponivel em: <http://www.afh.bio.br/nervoso/nervoso1.asp>. Acesso em: 04 nov. 2010. 9. BRAGA, A. P.; LUDERMIR, T. B.; CARVALHO, A. P. L. F. Redes Neurais Artificiais Teorias e Aplicaes. Rio de Janeiro: LTC, 2000. 10. 2009. 11. NOORY, B.; GROZA, V. A Reconfigurables Approach To Hardware Implementation Of Neural Networks. Electrical and Computer Engineering, 2003. IEEE CCECE 2003. Canadian Conference on, Ottawa, 2003. 12. BECKER, J.; HARTENSTEIN, R. W. Configware and morphware going mainsteam, Journal of System Architecture, 2003. 13. TANENBAUM, A. S. Organizao Estruturada de Computadores. [S.l.]: Prentice Hall, 1992. 35 INC, T. M. Neural Network Toolbox, User`s Guide for Use with Matlab,

14.

BRAGA, A. L. S. VANNGen - Uma Ferramenta CAD Flexvel para a Implementao de Redes Neurais Artificiais em Hardware, Braslia, 2005.

15.

BRAURER, E. J. et al. Hardware Implementation of a Neural Network Pattern Shaper Algorithm, 1999.

16.

REAY, D. S.; GREEN, T. C.; WILLIAMS, B. W. Fild Programmable Gate Array Implementationqof Neural Network Accelerator, 9 Mar 1994.

17.

PEREZ-URIBE, A.; SANCHEZ, E. FPGA Implementation of an Adaptable-Size Neural Network, 1996.

18.

KUROKAWA, T.; YAMASHITA, H. Bus Connnected Neural Network Hardware System, 1994.

36

Anexo 1 Algoritmo Least Mean Squares [6]


Este algoritmo utiliza o valor instantneo de e2(i) como estimativa da funo de custo calculada por E[e2(i)]. O algoritmo o seguinte: 1. Estima-se o gradiente da funo:

2. Como o gradiente o vetor que aponta no sentido do mximo da funo de custo, desloca-se o vetor de pesos na direo oposta com o objetivo de procurar o mnimo:

Ou seja, A constante designa-se habitualmente por passo de adaptao e controla a estabilidade e velocidade de convergncia do algoritmo. demonstrado que h existncia de estabilidade do algoritmo desde que o valor do passo de adaptao obedea seguinte desigualdade:

O erro residual ser proporcional a , sendo por isso normal escolher valores pequenos para esta constante. Para aumentar a velocidade de convergncia tambm proposto na bibliografia utilizar elevado no incio do processo de adaptao, e lentamente diminu -lo, por forma a conduzir a um valor baixo de erro residual. Em situao de no-estacionaridade o passo muito reduzido levar a baixa capacidade de seguimento das mudanas no ambiente de trabalho. O algoritmo LMS atualmente o mais utilizado devido, sobretudo, sua baixa complexidade.

37