106
Centro Universitário de Brasília UniCEUB Faculdade de Ciências Exatas e Tecnologia FAET Curso de Engenharia da Computação Projeto Final Aquisição e Tratamento de Dados em um Sistema de Orientação Acústica Aluno: Mateus Silva Teixeira R.A.: 20016207 Professor Orientador: MC. José Julimá Bezerra Júnior Brasília/DF Junho de 2005

Aquisição e Tratamento de Dados em um Sistema de Orientação

Embed Size (px)

Citation preview

  • Centro Universitrio de Braslia UniCEUB

    Faculdade de Cincias Exatas e Tecnologia FAET

    Curso de Engenharia da Computao

    Projeto Final

    Aquisio e Tratamento de Dados em

    um Sistema de Orientao Acstica

    Aluno: Mateus Silva Teixeira R.A.: 20016207

    Professor Orientador: MC. Jos Julim Bezerra Jnior

    Braslia/DF

    Junho de 2005

  • II

    Centro Universitrio de Braslia UniCEUB

    Faculdade de Cincias Exatas e Tecnologia FAET

    Curso de Engenharia da Computao

    Projeto Final

    Aquisio e Tratamento de Dados em

    um Sistema de Orientao Acstica

    Braslia/DF

    Junho de 2005

    Monografia, sob a orientao do Prof. MC. Jos

    Julim Bezerra Jnior avaliado por uma Banca Examinadora

    do Curso de Engenharia da Computao da Faculdade de

    Cincias Exatas e Tecnologia - FAET do Centro

    Universitrio de Braslia - UniCEUB e constituiu requisito

    para obteno do Ttulo de Bacharel em Engenharia da

    Computao.

  • III

    A Sebastio Jos da Silva (in memoriam)

  • IV

    Agradecimentos

    A Deus, pela vida.

    Aos pais, pela oportunidade de poder estudar, e acreditarem nesse ideal.

    Aos meus irmos, pelo incentivo aos estudos.

    A minha namorada, pelo carinho e afeto.

    Aos parentes, pela fora e confiana.

    Aos amigos de faculdade. Tivemos muitos momentos de estudos que me ajudaram

    bastante. Diverso e muito estudo fizeram parte desse longo perodo.

    Aos amigos da banda, pelo apoio, fora e orao.

    Ao professores MC. Wladimir Silva Meyer e MC. Jos Julim Bezerra Jnior, pelo

    incentivo, confiana e dedicao.

    Ao coordenador do curso de Engenharia da Computao, MC. Abiezer Amarlia.

    Aos monitores dos laboratrios, pela ajuda, ateno e pacincia.

    Ao professor da disciplina de Projeto Final, MC. Francisco Javier, por sempre

    incentivar-me a realizar este projeto.

    Aos demais professores do Curso de Engenharia da Computao, por todo o

    conhecimento transmitido ao longo do curso.

    E de modo especial aos grandes amigos: Jlio Csar, Henrique Rodrigues, Adriano

    Delfino, Fernanda Sakamoto e Cezrio Neto.

  • V

    Resumo

    Este projeto consiste no desenvolvimento de um sistema capaz de determinar a

    direo angular de uma fonte de udio, podendo posteriormente ser integrado a sistemas de

    outras naturezas, como sistemas de segurana e vdeo-conferncia.

    O uso da teoria da norma quadrtica, norma 2, nos sinais de udio discretizados,

    possibilita estabelecer uma caracterstica destes sinais. Destaca-se, no modelo proposto, o

    uso de Rede Neural Artificial na estimao da direo angular da fonte acstica, rede esta

    implementada na linguagem C/C++, visando possibilitar sua portabilidade para

    plataformas mveis e independentes de um microcomputador.

    Palavras-Chaves: Redes Neurais, Algoritmo back-propagation, orientao acstica,

    tratamento de sinais.

  • VI

    Abstract

    This project consisted of the development of a system which is able to determine

    the direction of arrival angle of an acoustic source, which may later be integrated to other

    types of systems, such a videoconference systems and security systems.

    The use of the quadratic norm theory, norm 2, in discrete audio signals, permitted

    the handling and use of the signal characteristics. In the proposed model, an artificial

    Neural Network was used to estimate the angular direction of the acoustic source, with the

    network developed in C/C++, allowing it to be portable to mobile and independent

    platforms in personal computers.

    Keywords; neural networks, back-propagation algorithms, acoustic orientation, signal

    treatment.

  • VII

    Sumrio

    1 Introduo ........................................................................................................................1

    1.1 Motivao .................................................................................................................1

    1.2 Objetivos e Consideraes........................................................................................1

    1.3 Sinopse dos Captulos ...............................................................................................2

    2 Suporte Terico................................................................................................................4

    2.1 Redes Neurais ...........................................................................................................4

    2.1.1 O que so Redes Neurais Artificiais? ................................................................4

    2.1.2 Histrico.............................................................................................................6

    2.1.3 Tipos de Rede ....................................................................................................9

    2.1.4 A Estrutura da Rede .........................................................................................10

    2.1.5 Topologias das Redes Neurais .........................................................................10

    2.1.6 Funo de Ativao .........................................................................................11

    2.1.7 Processamento de uma Rede Neural................................................................12

    2.1.8 Aprendizado.....................................................................................................12

    2.1.9 Uso da Rede Neural .........................................................................................15

    2.1.10 Perceptron ......................................................................................................15

    2.1.11 Perceptrons de Mltiplas Camadas (MLP)....................................................18

    2.2 Norma Quadrtica e Funes Utilizadas.................................................................23

    3 Determinao da Direo da Fonte de udio ................................................................26

    3.1 Gravao dos Sinais................................................................................................26

    3.2 Tratamento de Dados ..............................................................................................28

    3.2.1 Tratamento dos Sinais Gravados .....................................................................28

    3.2.2 Grficos da Funo Norma 2 ...........................................................................29

    3.2.3 Resumo do Cdigo para Tratamento dos Dados..............................................31

    3.3 Estrutura do Algoritmo de Aplicao .....................................................................33

    3.3.1 Principais Funes Utilizadas no Algoritmo (Pseudocdigo) .........................34

    3.3.2 Treinamento .....................................................................................................37

    3.3.3 Classificao de Novos Padres ......................................................................39

    3.4 Configurao do Ambiente de Homologao.........................................................40

    3.5 Mtodos Utilizados .................................................................................................41

    3.6 Passos para Realizao do Treinamento e Testes para Determinao da Fonte de

    udio ...............................................................................................................................41

    3.7 Resultados e Consideraes....................................................................................46

  • VIII

    4 Concluso.......................................................................................................................48

    4.1 Consideraes Finais ..............................................................................................48

    4.2 Dificuldades Encontradas .......................................................................................48

    4.3 Sugestes para trabalhos futuros.............................................................................49

    Anexo A Algoritmos para Tratamento de Sinais..............................................................53

    Anexo B Circuito Proposto Anteriormente ......................................................................86

    Anexo C Conversor Analgico/Digital.............................................................................90

  • IX

    Lista de Figuras

    Figura 1.1 Etapas do projeto. ..............................................................................................2

    Figura 2.1 Estrutura da clula neural. .................................................................................5

    Figura 2.2 Rede de perceptrons proposta por Rosemblatt. .................................................7

    Figura 2.3 Exemplo de estrutura de uma rede neural. ......................................................10

    Figura 2.4 Rede de mltiplas camadas do tipo Feed-Forward. ........................................11

    Figura 2.5 Rede recorrente com realimentao. ............................................................11

    Figura 2.6 Aprendizado supervisionado. ..........................................................................14

    Figura 2.7 Aprendizado no-supervisionado. ...................................................................14

    Figura 2.8 Modelo Perceptron. .........................................................................................15

    Figura 2.9

    Perceptron com uma camada oculta. ..............................................................17

    Figura 2.10 Fluxo do algoritmo back-propagation. .........................................................19

    Figura 2.11 Sentido da movimentao na superfcie de erro............................................21

    Figura 2.12 Influncia do termo momentum. ....................................................................22

    Figura 3.1 Tabuleiro usado na simulao. ........................................................................26

    Figura 3.2 Microfone com abertura nas laterais. ..............................................................27

    Figura 3.3 Microfone de Lapela. ......................................................................................27

    Figura 3.4 Microfone utilizado no projeto........................................................................27

    Figura 3.5 Aparelho celular Nokia 1100, usado como fonte de udio para simulao. ...28

    Figura 3.6 Grfico da funo norma 2 dos sinais gravados na linha 01...........................29

    Figura 3.7 Grfico da funo norma 2 dos sinais gravados na linha 02...........................29

    Figura 3.8 Grfico da funo norma 2 dos sinais gravados na linha 03...........................30

    Figura 3.9 Grfico da funo norma 2 dos sinais gravados na linha 04...........................30

    Figura 3.10 Fluxograma do algoritmo de tratamento de dados. .......................................32

    Figura 3.11 Fluxograma da funo principal. ...................................................................34

    Figura 3.12 Fluxograma da funo ativa. .........................................................................35

    Figura 3.13 Fluxograma da funo testa rede...................................................................35

    Figura 3.14 Fluxograma da funo treinamento. ..............................................................36

    Figura 3.15 Tela de apresentao da aplicao.................................................................41

    Figura 3.16 Tela principal.................................................................................................42

    Figura 3.17 Tela de simulao. .........................................................................................42

    Figura 3.18 Escolhendo a linha a ser treinada. .................................................................43

    Figura 3.19 Selecionando os dados para serem treinados.................................................43

    Figura 3.20 Escolhendo ngulos a serem treinados. .........................................................44

  • X

    Figura 3.21 Escolhendo amostras dos ngulos a serem treinadas. ...................................44

    Figura 3.22 Informando que a matriz de teste foi alimentada com sucesso. ....................45

    Figura 3.23 Escolhendo o nmero do treino e a quantidade de iteraes (pocas). .........45

    Figura 3.24 Escolhendo amostra para avaliar. ..................................................................46

    Figura 3.25 Resultado da simulao. ................................................................................46

    Figura B.1 Esquema geral do circuito. .............................................................................86

    Figura B.2 Conjunto 01: subtrator operacional. ...............................................................87

    Figura B.3 Conjunto 02: amplificador inversor................................................................87

    Figura B.4 Conjunto 03: divisor de tenso. ......................................................................88

    Figura B.5 Conjunto 04: amplificador somador. ..............................................................89

    Figura C.1 Conversor analgico humano. ........................................................................91

    Figura C.2 Conversor analgico digital de 8 bits, ADC0804. ..........................................91

    Figura C.3 Caractersticas da pinagem do conversor ADC0804. .....................................92

    Figura C.4 Configurao usada com o conversor ADC0804. ..........................................92

  • XI

    Lista de Tabelas

    Tabela 3.1 Comprimento mximo e mnimo dos sinais em cada linha. ...........................31

    Tabela 3.2 Dados para treinamento da rede neural...........................................................38

    Tabela C.1 Converso volts para binrio no ADC0804. ..................................................91

  • XII

    Lista de Smbolos e Siglas

    ASCII American Standard Code for Information Interchange

    BIT Binary Digit

    Menor unidade de informao

    DARPA Defense Advanced Research Projects Agency

    fs Freqncia do sinal

    GB Giga Byte

    GHz Giga Hertz

    GMDH "Group Method Data Handling"

    GRNN "General Regression Neural Networks"

    IEEE Institute of Electrical and Electronics Engineers

    INNS International Neural Networks Society

    MB Mega Byte

    MHz Mega Hertz

    MLP Multi-layer Perceptron

    Perceptron multi-camadas

    PC Personal Computer

    Computador Pessoal

    PNN "Probabilistic Neural Networks"

    RAM Radom-Access Memory

    RNA Rede Neural Artificial

    .txt Formato de arquivo texto que suporta somente caracteres

  • 1

    1

    Introduo

    1.1

    Motivao

    A aquisio e o tratamento de dados de udio tem sido cada vez mais assunto de

    grandes pesquisas. Dentre estas linhas de pesquisa, destaca-se a coleta de um sinal de

    udio, onde, atravs do tratamento desse sinal, pode-se determinar de qual direo o sinal

    foi emitido.

    Como aplicabilidade, essa determinao pode ser utilizada em um ambiente de

    vdeo-conferncia, pois sabendo a direo da fonte de udio, tem-se a possibilidade de

    encontrar, mais precisamente, o locutor. Em sistemas de segurana, tambm se pode fazer

    uso dessa soluo.

    O uso de Redes Neurais Artificiais tem como objetivo, fazer com que o computador

    se comporte de forma semelhante ao ser humano, pois, crianas de 03 ou 04 anos tm a

    capacidade de distinguir perfeitamente uma cor da outra, mas um computador, que efetua

    grandiosos clculos matemticos, muitas vezes no tem a capacidade de definir tais

    situaes. Ou seja, o objetivo principal das redes neurais generalizar resultados a partir de

    conhecimento anterior que se tem do problema, conhecimento este utilizado para treinar a

    rede. [Siqueira, 2004]

    1.2

    Objetivos e Consideraes

    O trabalho proposto tem como objetivo determinar de qual direo angular uma

    fonte de udio emitiu um som, utilizando Redes Neurais Artificiais para generalizar as

    informaes, considerando que:

    os sinais tero a mesma intensidade e freqncia;

    os sinais esto sendo comparados utilizando a mesma distncia entre a

    fonte de udio e o microfone;

    os sinais foram gravados e tratados para posteriormente serem treinados e

    testados na Rede Neural;

    o resultado ser mostrado entre 0 e 90.

    Para realizao do trabalho tem-se 4 (quatro) etapas:

  • 2

    Figura 1.1

    Etapas do projeto.

    Como mostra a Figura 1.1, ser realizada a aquisio dos dados com a utilizao de

    um microfone. Aps, os dados sero discretizados e tratados pelo software Matlab1. Depois

    de tratados os dados, uma aplicao criada em C/C++2 baseada em Redes Neurais ir

    determinar de qual direo o sinal foi gerado. E por ltimo, ser mostrado de qual direo

    angular, aproximadamente, foi gerado o sinal de udio.

    1.3 Sinopse dos Captulos

    O Captulo 2, suporte terico, trata da histria dos estudos sobre Redes Neurais,

    tipos, estruturas, topologias, aprendizagem, e sobre o algoritmo back-propagation. A

    norma quadrtica e as funes utilizadas tm como objetivo preparar os dados para serem

    utilizados na aplicao

    O Captulo 3 tem como objetivo demonstrar de que forma realizada a aquisio

    acstica para que se possa realizar o tratamento dos dados, as etapas e estrutura do

    prottipo utilizado na validao da estrutura proposta para a determinao da direo da

    fonte acstica, as principais funes utilizadas, como realizado o treinamento e a

    classificao de novos padres, material e passos para o uso da aplicao criada que tem

    1 Matlab: software matemtico otimizado para executar clculos cientficos e de engenharia. 2 C/C++: linguagem de programao.

  • 3

    como finalidade determinar, por simulao, qual direo angular foi gerado o sinal de

    udio. Neste captulo encontram-se tambm os passos para realizar a simulao utilizando

    a aplicao criada.

    Por fim, no Captulo 4, tm-se as consideraes finais, os resultados obtidos,

    dificuldades encontradas para realizao do projeto e as sugestes para trabalhos futuros.

  • 4

    2

    Suporte Terico

    Este captulo tem como objetivo apresentar, de forma sucinta, o que so as redes

    neurais, suas principais caractersticas, aplicabilidades, tipos, como funcionam, etc.

    A aplicao far uso de uma rede neural utilizando o algoritmo back-propagation

    com o objetivo de treinar a rede para determinar a direo da fonte de udio, e

    posteriormente, a rede ser capaz de determinar a direo dessa fonte para novas situaes,

    ou seja, que no foram treinadas.

    A norma quadrtica e as funes utilizadas tm como finalidade tratar e preparar os

    dados para que a aplicao, criada em C/C++ baseada no algoritmo back-propagation,

    possa fazer uso dessas informaes para determinar a direo da fonte de udio.

    2.1 Redes Neurais

    2.1.1 O que so Redes Neurais Artificiais?

    O crebro humano considerado o mais fascinante processador baseado em

    carbono existente, sendo composto por aproximadamente 10 bilhes de neurnios. Todas

    as funes e movimentos do organismo esto relacionados ao funcionamento destas

    pequenas clulas. Os neurnios esto conectados uns aos outros atravs de sinapses, e

    juntos formam uma grande rede, chamada Rede Neural. As sinapses transmitem estmulos

    atravs de diferentes concentraes de Na+ (Sdio) e K+ (Potssio), e o resultado disto

    pode ser estendido por todo o corpo humano. Esta grande rede proporciona uma fabulosa

    capacidade de processamento e armazenamento de informao.

    O sistema nervoso formado por um conjunto extremamente complexo de

    neurnios. Nos neurnios a comunicao realizada atravs de impulsos, quando um

    impulso recebido, o neurnio o processa, e passado um limite de ao, dispara um

    segundo impulso que produz uma substncia neurotransmissora o qual flui do corpo celular

    para o axnio (que por sua vez pode ou no estar conectado a um dendrito de outra clula).

    O neurnio que transmite o pulso pode controlar a freqncia de pulsos aumentando ou

    diminuindo a polaridade na membrana ps-sinptica. Eles possuem um papel essencial na

    determinao do funcionamento, comportamento e do raciocnio do ser humano. Ao

    contrrio das redes neurais artificiais, redes neurais naturais no transmitem sinais

    negativos, sua ativao medida pela freqncia com que emitem pulsos, freqncia esta

  • 5

    de pulsos contnuos e positivos [Braga, Carvalho, Ludernir, 2000] [Tatibana, Kaetsu,

    2004].

    Os principais componentes dos neurnios so:

    Dentritos, que tm por funo, receber os estmulos transmitidos pelos outros

    neurnios;

    Corpo de neurnio, tambm chamado de soma, que responsvel por coletar e

    combinar informaes vindas de outros neurnios;

    Axnio, que constitudo de uma fibra tubular que pode alcanar at alguns

    metros, e responsvel por transmitir os estmulos para outras clulas. [Tatibana,

    Kaetsu, 2004]

    Figura 2.1 Estrutura da clula neural.

    A rea de Redes Neurais Artificiais (RNAs), tambm conhecida como

    conexionismo ou sistemas de processamento paralelo ou distribudo, teve seus estudos

    iniciados por McCulloch e Pitts (1943).

    Este modelo de computao no-algortmica, caracterizado por sistemas que, em

    certos nveis, relembram a estrutura do crebro humano. Por no ser baseada em regras ou

    programas, a computao neural se constitui em uma alternativa computao algortmica

    convencional.

    RNAs so sistemas paralelos distribudos compostos por unidade de processamento

    simples (nodos) que calculam determinadas funes matemticas, em sua grande parte, so

  • 6

    no-lineares. Essas unidades so dispostas em uma ou mais camadas e interligadas por um

    grande nmero de conexes, normalmente unidirecionais. Estas conexes, na maioria dos

    modelos, esto associadas a pesos, os quais armazenam o conhecimento representado no

    modelo e servem para ponderar a entrada recebida por cada neurnio da rede. Enfim, o

    funcionamento dessas redes inspirado na estrutura do crebro humano.

    Para que as redes neurais venham a ter um bom desempenho, necessria uma fase

    de aprendizagem, onde, um conjunto de exemplos apresentado para a rede, a qual extrai

    automaticamente as caractersticas necessrias para representar a informao fornecida.

    Estas caractersticas so utilizadas posteriormente para gerar respostas para o problema.

    Sem dvidas, o atrativo principal da soluo de problemas usando RNAs a

    capacidade de aprender atravs de exemplos e de generalizar a informao aprendida. A

    generalizao que est associada capacidade de a rede aprender atravs de um conjunto

    reduzido de exemplos e posteriormente dar respostas coerentes para dados no-conhecidos,

    uma demonstrao de que a capacidade das redes neurais vai muito alm do que

    simplesmente mapear relaes de entrada e sada. As RNAs so capazes de extrair

    informaes no-apresentadas de forma explicita atravs dos exemplos. [Braga, Carvalho,

    Ludernir, 2000] [Haykin, 2001]

    2.1.2 Histrico

    Os primeiros estudos sobre redes neurais datam de 1943, atravs dos trabalhos e

    artigos de McCulloch e Pitts, em que sugeriam a construo de uma mquina baseada ou

    inspirada no crebro humano. Muitos outros artigos e livros surgiram desde ento, porm,

    por um longo perodo de tempo, pouco resultado foi obtido. At que em 1949, Donald

    Hebb escreveu um livro intitulado "The Organization of Behavior" (A Organizao do

    Comportamento) que perseguia a idia de que o condicionamento psicolgico clssico est

    presente em qualquer parte dos animais pelo fato de que esta uma propriedade de

    neurnios individuais. Suas idias no eram completamente novas, mas Hebb foi o

    primeiro a propor uma lei de aprendizagem especfica para as sinapses dos neurnios. Este

    primeiro e corajoso passo serviram de inspirao para que muitos outros pesquisadores

    perseguissem a mesma idia. E, embora muito tenha sido estudado e publicado nos anos

    que seguiram (1940-1950), estes serviram mais como base para desenvolvimento posterior

    do que para o prprio desenvolvimento.

    Implementaes de redes neurais atravs de circuitos analgicos j existiam nos

    anos 50. Para reproduzir o comportamento do crebro humano, pensava-se que, bastaria

  • 7

    construir uma rede neural suficientemente grande. No entanto, uma detalhada anlise

    matemtica deixou claro o pouco poder computacional de um dos modelos de rede mais

    utilizados naquele perodo, o perceptron, que no capaz, por exemplo, de ser aplicado

    com sucesso em problemas de classificao que no fossem linearmente separveis.

    Em 1956 no "Darthmouth College" nasceram os dois paradigmas da Inteligncia

    Artificial, a simblica e o conexionista.

    A Inteligncia Artificial Simblica tenta simular o comportamento inteligente

    humano desconsiderando os mecanismos responsveis por tal. J a Inteligncia Artificial

    Conexionista acredita que, construindo um sistema que simule a estrutura do crebro, este

    sistema apresentar inteligncia, ou seja, ser capaz de aprender, assimilar, errar e aprender

    com seus erros.

    O primeiro neuro computador a obter sucesso (Mark I Perceptron) surgiu entre

    1957 e 1958, criado por Frank Rosemblatt, Charles Wightman e outros. Devido

    profundidade de seus estudos, suas contribuies tcnicas e de sua maneira moderna de

    pensar, muitos o vem como o fundador da neuro computao na forma em que a temos

    hoje. Seu interesse inicial para a criao do Perceptron era o reconhecimento de padres.

    Rosemblatt mostrou em seu livro (Principles of Neurodynamics) o modelo dos

    "Perceptrons". Nele, os neurnios eram organizados em camada de entrada e sada, onde

    os pesos das conexes eram adaptados a fim de se atingir a eficincia sinptica. [Braga,

    Carvalho, Ludernir, 2000] [Tatibana, Kaetsu, 2004]

    Figura 2.2 Rede de perceptrons proposta por Rosemblatt.

    Aps Rosemblatt, Bernard Widrow, com a ajuda de alguns estudantes, desenvolveu

    um novo tipo de elemento de processamento de redes neurais chamado de Adaline,

    equipado com uma poderosa lei de aprendizado, que diferente do Perceptron que ainda

  • 8

    permanece em uso. Widrow tambm fundou a primeira companhia de hardware de

    neurocomputadores e componentes.

    Infelizmente, os anos seguintes foram marcados por um entusiasmo exagerado de

    muitos pesquisadores, que passaram a publicar mais e mais artigos e livros que tinham uma

    previso pouco confivel para a poca, sobre mquinas to poderosas quanto o crebro

    humano que surgiriam em um curto espao de tempo. Isto tirou quase toda a credibilidade

    dos estudos desta rea e causou grandes aborrecimentos aos tcnicos de outras reas.

    Um perodo de pesquisa silenciosa seguiu-se durante 1967 a 1982, quando poucas

    pesquisas foram publicadas devido aos fatos ocorridos anteriormente. Entretanto, aqueles

    que pesquisavam nesta poca, e todos os que se seguiram no decorrer desses anos

    conseguiram, novamente, estabelecer um campo concreto para o renascimento da rea.

    Os anos 80 trouxeram de volta o interesse por essa fascinante rea, principalmente

    em funo do aparecimento de novos modelos de redes neurais e de algoritmos de

    aprendizado mais poderosos. Na literatura, podem ser encontrados diversos modelos de

    redes neurais e algoritmos de aprendizado. Entretanto, este documento ir se basear no

    modelo de aprendizado denominado retro-propagao do erro ou error back-propagation.

    No item 2.1.11 ir ser detalhando como esse algoritmo funciona.

    Muitos pesquisadores foram bastante corajosos e passaram a publicar diversas

    propostas para a explorao de desenvolvimento de redes neurais bem como suas

    aplicaes. Porm, o fato mais importante deste perodo ocorreu quando Ira Skurnick, um

    administrador de programas da DARPA (Defense Advanced Research Projects Agency)

    decidiu ouvir os argumentos da neuro computao e seus projetistas e, divergindo dos

    caminhos tradicionais dos conhecimentos convencionais, fundou em 1983 pesquisas em

    neuro computao. Este ato no s abriu as portas para a neuro computao, como tambm

    deu DARPA o status de uma das lderes mundiais em se tratando de "moda" tecnolgica.

    Em 1987 ocorreu em So Francisco

    Estado Unidos, a primeira conferncia de

    redes neurais em tempos modernos, a IEEE International Conference on Neural Networks,

    e tambm foi formada a International Neural Networks Society (INNS). A partir destes

    acontecimentos, decorreu a fundao do INNS Jornal em 1989, seguido do Neural

    Computation e do IEEE Transactions on Neural Networks em 1990.

    Desde 1987, muitas universidades anunciaram a formao de institutos de pesquisa

    e programas de educao em neuro computao. [Tatibana, Kaetsu, 2004] [Haykin, 2001]

  • 9

    2.1.3 Tipos de Rede

    Existem dois tipos bsicos de rede neurais: supervisionadas e no supervisionadas:

    Redes supervisionadas

    Constroem modelos, os quais classificam padres ou executam predies de acordo

    com outros padres de "entradas" e "sadas" que eles aprenderam.

    Este tipo de rede apresenta a resposta mais razovel baseada em uma variedade de

    padres de aprendizado. Em uma rede supervisionada, mostra-se rede como fazer

    predies, classificaes, ou decises, fornecendo a ela um nmero de classificaes

    corretas ou predies das quais ela pode aprender. Redes de Retropropagao, GRNN

    ("General Regression Neural Networks"), PNN ("Probabilistic Neural Networks"), e

    GMDH ("Group Method Data Handling") so exemplos de redes supervisionadas.

    [Guahyba, 2004]

    Redes no-supervisionadas

    Pode classificar um conjunto de padres de treinamento em um nmero

    especificado de categorias sem ser mostrado antes como categorizar. A rede faz isto

    agrupando os padres de entrada. Ela os agrupa por sua proximidade em um espao

    dimensional N, onde N o nmero de "entradas". O usurio diz rede o nmero mximo

    de categorias e ela geralmente agrupa os dados em certo nmero de categorias. Entretanto,

    a rede pode no ser capaz de separar os padres naquelas muitas categorias opcionais.

    Redes Kohonen so exemplos de redes no supervisionadas. [Guahyba, 2004]

    Nenhum tipo de rede garante uma resposta absolutamente correta, especialmente se

    os padres so de alguma forma incompletos ou conflitantes.

    Os resultados devem ser avaliados em termos da porcentagem de respostas corretas

    que resultaram do modelo.

    A esse respeito, a tecnologia similar ao funcionamento do neurnio biolgico

    depois deste ter sido "projetado", e difere significantemente de todos outros programas

    convencionais de computador. Redes Neurais podem no trabalhar bem em algumas

    aplicaes. Alguns problemas so bem apropriados para a capacidade de reconhecimento

    de padres de uma rede neural e outros so mais bem resolvidos com mtodos tradicionais.

    [Haykin, 2001] [Braga, Carvalho, Ludernir, 2000]

  • 10

    2.1.4 A Estrutura da Rede

    O bloco de construo bsico da tecnologia de redes neurais o neurnio simulado

    (descrito na Figura 2.3 como um crculo). Neurnios independentes so de pouco uso, a

    menos que eles estejam interconectados em uma rede de neurnios. A rede processa um

    nmero de entradas ("inputs") do "mundo externo" para produzir uma sada ("output"),

    que so as classificaes da rede ou predies. Os neurnios so conectados por pesos

    (retratados como linhas), os quais so aplicados a valores passados de um neurnio para o

    outro.

    Figura 2.3 Exemplo de estrutura de uma rede neural.

    Um grupo de neurnios chamado de slab. Os neurnios tambm so agrupados

    em camadas por suas conexes com o "mundo externo". Por exemplo, se um neurnio

    recebe dados de fora da rede, ele considerado como estando na camada de entrada. Se

    um neurnio contm as classificaes ou predies da rede, ele est na camada de sada.

    Neurnios entre as camadas de entrada e sada esto na(s) camada(s) oculta(s) ou

    escondida(s). Uma camada pode conter uma ou mais slabs de neurnios. [Guahyba, 2004]

    2.1.5 Topologias das Redes Neurais

    Redes Feed-Forward

    So redes com uma ou mais camadas de processadores, sendo que o fluxo de dados

    sempre em uma nica direo, ou seja, no existe realimentao.

  • 11

    Figura 2.4 Rede de mltiplas camadas do tipo Feed-Forward.

    Redes Recorrentes

    So redes com conexes entre processadores da mesma camada e/ou com

    processadores das camadas anteriores (realimentao). [Vellasco, 2004]

    Figura 2.5 Rede recorrente com realimentao.

    2.1.6 Funo de Ativao

    A funo de ativao, tambm conhecida como funo restritiva, restringe a

    amplitude da sada de um neurnio. Essa funo limita (restringe) o intervalo permissvel

    de amplitude do sinal de sada de um valor finito. [Haykin, 2001].

    Dentre as funes mais utilizadas, temos: [Meyer, 1997]

    Degrau: 0,0

    0,1)(

    x

    xxf

    (2.1)

  • 12

    Degrau Simtrico:

    0,1

    0,1)(

    x

    xxf

    (2.2)

    Linear: xxf )(

    (2.3)

    Sigmide:

    xexf

    1

    1)(

    (2.4)

    Tansigmide: xx

    xx

    ee

    eexf )(

    (2.5)

    2.1.7 Processamento de uma Rede Neural

    O processamento de uma Rede Neural pode ser dividido em duas fases:

    Learning

    processo de atualizao dos pesos sinpticos para aquisio do

    conhecimento aquisio de informao.

    Recall

    processo de clculo da sada da rede, dado certo padro de entrada

    recuperao de informao. [Vellasco, 2004]

    2.1.8 Aprendizado

    Uma rede neural tpica uma Rede de Retropropagao, a qual geralmente tem 3

    camadas de neurnios. Valores de entrada na primeira camada so pesados e passados para

    a segunda camada. Neurnios na camada oculta "atiram" ou produzem sadas que so

    baseadas na soma dos valores pesados passados por elas. A camada oculta passa valores

    camada de sada da mesma forma, e a camada de sada produz os resultados desejados

    (predies ou classificaes).

    A rede "aprende", ajustando os pesos das interconexes entre as camadas. As

    respostas que a rede est produzindo so repetidamente comparadas com as respostas

    corretas, e cada vez os pesos das conexes so ajustados na direo das respostas corretas.

    Eventualmente, se o problema pode ser aprendido, um conjunto estvel de pesos

    adaptativamente evolui e ir produzir boas respostas para todas as decises ou predies da

  • 13

    amostra. O real poder das redes neurais evidente quando a rede treinada capaz de

    produzir bons resultados para dados os quais ela nunca "viu" antes.

    O maior segredo para construir com sucesso redes neurais saber quando parar de

    treinar. Se voc treina muito pouco, a rede no ir aprender os padres. Se voc treinar

    muito, a rede ir aprender com o problema ou memorizar os padres de treinamento e no

    generalizar bem com novos padres.

    Dessa forma, conclu-se que aprendizagem o processo pelo qual os parmetros

    de uma rede neural so ajustados atravs de uma forma continuada de estmulo pelo

    ambiente no qual a rede est operando, sendo o tipo especfico de aprendizagem realizada

    definido pela maneira particular como ocorrem os ajustes realizados nos parmetros.

    [Braga, Carvalho, Ludernir, 2000]

    Aprendizado supervisionado

    Nesse tipo de aprendizado, a rede treinada atravs do fornecimento dos valores de

    entrada e de seus respectivos valores desejados de sada, geralmente efetuado atravs do

    processo de minimizao do erro calculado na sada. [Vellasco, 2004]

    A entrada e sada desejada so fornecidas por um supervisor (professor) externo. O

    objetivo ajustar os parmetros da rede, de forma a encontrar uma ligao entre os pares

    de entrada e sada fornecidos.

    Na Figura 2.6 ilustrado o mecanismo de aprendizado supervisionado. O

    professor indica um comportamento bom ou ruim para a rede, visando a direcionar o

    processo. A rede tem sua sada corrente (calculada) comparada com a sada desejada,

    recebendo informaes do supervisor sobre o erro da resposta final. A cada padro de

    entrada submetido rede, compara-se a resposta desejada (que representa uma tima ao

    para ser realizada pela rede) com a resposta calculada, ajustando-se os pesos das conexes

    para minimizar o erro.

  • 14

    Figura 2.6 Aprendizado supervisionado.

    A desvantagem do aprendizado supervisionado que, na ausncia do professor, a

    rede no conseguir aprender novas estratgias para novas situaes no treinadas. Um

    exemplo de algoritmo para aprendizado supervisionado o back-propagation. [Braga,

    Carvalho, Ludernir, 2000]

    Aprendizado no-supervisionado

    Como o prprio nome sugere, no aprendizado no-supervisionado no h um

    professor ou supervisor para acompanhar o processo de aprendizado. A Figura 2.7 ilustra

    este mtodo.

    Figura 2.7 Aprendizado no-supervisionado.

    O aprendizado no supervisionado no requer o valor desejado de sada da rede. O

    sistema extrai as caractersticas do conjunto de padres, agrupando-os em classes inerentes

    aos dados. [Braga, Carvalho, Ludernir, 2000]

    As redes neurais artificiais caracterizam-se portanto:

    pelo grande nmero de elementos de processamento bem simples, inspirado no

    funcionamento de um neurnio;

  • 15

    pelo grande nmero de conexes entre esses elementos de processamento. Cada

    conexo tem peso associado, este peso representa quo forte a interao ou

    acoplamento entre elementos de processamento e se a sua natureza excitatria ou

    inibitria;

    pelo controle altamente paralelo e distribudo;

    pela capacidade de um aprendizado atravs de observaes de um conjunto de

    exemplos;

    pela manuteno do desempenho na presena de rudo e capacidade de lidar com

    dados incompletos.

    2.1.9 Uso da Rede Neural

    Algumas utilizaes atualmente empregando as Redes Neurais Artificiais:

    diagnstico de doenas, identificao de compostos qumicos, anlise de testes mdicos,

    controle de processo, predio de horas de trabalho necessrias para procedimentos

    industriais, identificao bacteriana, anlise de custos, diagnstico diferencial, otimizando

    resultados de experimentos biolgicos, anlise nutricional, experimentos agrcolas,

    gerenciamentos de recursos hdricos, anlise a processamento de sinais, classificao de

    dados, controle de processos, anlise de voz, anlise de imagens, etc. [Braga, Carvalho,

    Ludernir, 2000] [Haykin, 2001]

    2.1.10 Perceptron

    Figura 2.8 Modelo Perceptron.

  • 16

    O modelo Perceptron, utiliza a funo de ativao Degrau, tem a topologia em uma

    nica camada. Normalmente, utiliza o aprendizado supervisionado para o treinamento da

    rede. Sua regra de propagao baseada na seguinte equao:

    jjiij wxnet .

    (2.6)

    onde:

    ix vetor de entrada;

    jiw peso atribudo em cada entrada;

    j bias, desvio.

    Uma das modelagens para o funcionamento de um neurnio consiste em um

    elemento de processamento que possu um nmero X de entradas e uma nica sada (sj).

    As conexes dos neurnios so conhecidas como sinapses, por onde os sinais

    gerados pelas sadas dos neurnios fluem. Cada sinapse possui associada a si um nmero

    real conhecido como peso, cujo mdulo representa o ganho que o sinal recebe quando

    percorre a sinapse, enquanto o sinal do peso representa a natureza da ligao entre os

    neurnios: negativo para ligaes ditas inibitrias e positivas para ligaes ditas

    excitatrias.

    Como visto anteriormente, uma rede neural consiste em um conjunto de neurnios

    conectados por sinapses. Dentre os tipos de redes neurais, neste trabalho, vamos nos deter

    a topologia conhecida como Perceptron multi-camadas (Multi-layer Perceptron MLP).

    As redes MLPs resolvem problemas mais complexos do que o Perceptron simples e

    Adaline, pois as camadas intermedirias simplificam o problema para a camada de sada.

    [Vellasco, 2004]

    Esse tipo de rede, MLP, possui uma ou mais camadas intermedirias. Na Figura 2.9

    ilustrado um perceptron com 3 camadas. Os pontos de entrada no realizam nenhum

    processamento, eles simplesmente distribuem o sinal que recebem para os neurnios da

    camada posterior. Uma camada conectada apenas s camadas adjacentes a ela, e a sada

    de cada neurnio conectada a uma entrada de todos os neurnios na camada posterior,

    num arranjo conhecido como camadas completamente conectadas. O fluxo do sinal ocorre

    sempre no mesmo sentido, da entrada para a sada. Este um exemplo de rede no-

    realimentada.

  • 17

    Figura 2.9

    Perceptron com uma camada oculta.

    A camada S a camada de sada da rede neural, enquanto V recebe o nome de

    camada escondida e E de camada de entrada. Uma rede pode possuir mais de uma camada

    escondida. E entre uma camada e outra, cada neurnio sofre a ao de um peso, W.

    Seja M o nmero de neurnios da camada escondida V, e N o nmero de entradas

    de uma rede neural. Seja um vetor de entrada E onde cada componente um nmero real

    representado por kE , para Nk1 . Se esse vetor E for apresentado rede, cada

    unidade na camada escondida jV realiza o seguinte somatrio:

    N

    k

    wkjkj Ewh

    1

    (2.7)

    e produz uma sada:

    N

    kkjkjj EwGhGV

    1

    (2.8)

    cada unidade na camada de sada realiza o somatrio:

    N

    kkjk

    M

    jijjiji EwWVWh

    11

    (2.9)

    e produz o resultado final:

  • 18

    N

    kjkk

    M

    jijii wEGWGhGS

    11

    (2.10)

    Nota-se que a sada S gerada pela rede para uma entrada E uma funo no

    linear de E . O comportamento dessa funo, uma vez fixada a funo de ativao G de

    cada neurnio, depende exclusivamente do valor dos pesos das sinapses. [Liporace,

    Machado, Barbosa 1994]

    importante que a funo de ativao G de cada neurnio seja no linear, j que

    isso ir determinar o mapeamento SE realizado pela rede, e assim, capaz de

    representar mapeamentos mais complexos do que os representveis por uma funo linear.

    O objetivo descobrir uma configurao de pesos que realize este mapeamento. Para tal

    procedimento, usaremos o treinamento usando o algoritmo back-propagation, descrito a

    seguir. [Liporace, Machado, Barbosa 1994]

    2.1.11 Perceptrons de Mltiplas Camadas (MLP)

    As redes neurais conhecidas como Perceptrons de Mltiplas Camadas - Multilayer

    Perceptron (MLP), consistem de um conjunto de unidades sensoriais (ns de fonte) que

    constituem a camada de entrada, uma ou mais camadas ocultas, ou escondidas, e uma

    camada de sada. O sinal de entrada vai se propagando para frente atravs da rede, camada

    por camada.

    Para resolver diversos problemas difceis, os Perceptrons de Mltiplas Camadas

    tm sido aplicados com sucesso, sendo utilizado em seu treinamento de forma

    supervisionada o algoritmo de retropropagao de erro (error back-propagation).

    [Haykin, 2001]

    Treinamento de Redes MLP

    Dentre os algoritmos existentes para o treinamento de redes neurais de mltiplas

    camadas, o mais conhecido o algoritmo de retropropagao de erros, ou simplesmente,

    back-propagation. O algoritmo back-propagation um algoritmo do tipo supervisionado

    que usa de pares de entrada e sada desejada para, por meio de um mecanismo de correo

    de erros, ajustarem os pesos da rede.

  • 19

    O seu treinamento ocorre em duas fases, em que cada fase percorre a rede em um

    sentido de ida e em um sentido de volta, sendo essas fases denominadas de fase forward e

    fase backward, respectivamente. Para um dado padro de entrada, a fase forward usada

    para definir sua sada na rede. J a fase backward, usa sada fornecida e a sada desejada

    para realizar a atualizao dos pesos e de suas conexes.

    Na Figura 2.10 ilustrado o fluxo do algoritmo back-propagation, no sentido

    forward, os dados vo da entrada para a sada, e no sentido backward, os erros, da sada

    para a entrada.

    Figura 2.10 Fluxo do algoritmo back-propagation.

    Passos da fase forward, de acordo com [Braga, Carvalho, Ludernir, 2000] :

    1. Entrada apresentada a primeira camada da rede, camada C0.

    2. Para cada camada Ci a comear da camada de entrada:

    2.1. Aps os nodos da camada Ci (i > 0) calcularem seus sinais de sada, estes servem

    como entrada para a definio das sadas produzidas pelos nodos da camada Ci+1.

    3. As sadas produzidas pelos nodos da ltima camada so comparadas s sadas

    desejadas.

    Passos da fase backward, de acordo com [Braga, Carvalho, Ludernir, 2000] :

    1. A partir da ltima camada, at chegar camada de entrada:

    1.1. Os nodos da camada atual ajustam seus pesos de forma a reduzir seus erros.

  • 20

    1.2. Os erros de um nodo das camadas intermedirias so calculados utilizando os erros

    dos nodos da camada seguinte conectados a ele, ponderados pelos pesos das

    conexes entre eles.

    Sendo assim, o algoritmo back-propagation, que utiliza essas duas fases apresentado a

    seguir: [Braga, Carvalho, Ludernir, 2000]

    1. Inicializar pesos e parmetros.

    2. Repetir at os erros serem mnimos ou at a realizao de um dado nmero de ciclos:

    2.1. Para cada padro de treinamento X:

    2.1.1. Definir sada da rede atravs da fase forward.

    2.1.2. Comparar sadas produzidas com as sadas desejadas.

    2.1.3. Atualizar pesos dos nodos atravs da fase backward.

    O algoritmo back-propagation baseia-se na regra delta, que foi proposta por

    Widrow e Hoff, sendo denominada regra delta generalizada, e definida como:

    pjpij x

    (2.11)

    onde,

    ij = variao no valor do peso que interliga os neurnios;

    = parmetro da taxa de aprendizagem;

    pjx = sinal de entrada do neurnio j;

    p = gradiente local, definido como: pipi atp , sendo:

    pit = valor esperado na sada do neurnio i para um padro p de entrada;

    pia = valor calculado na sada do neurnio i para um padro de entrada p.

    Com a utilizao desse algoritmo, possvel definir os erros dos nodos das camadas

    intermedirias, possibilitando o ajuste de seus pesos. Esse ajuste de peso realizado

    usando o mtodo do gradiente.

    Taxas de aprendizado esto relacionadas ao passo de incremento (decremento) de

    seus pesos. Sendo que um valor inicial definido pelo usurio ou obtido atravs de

    algumas variaes do algoritmo back-propagation. [Meyer, 1997]

    Atravs da retropropagao do erro quadrtico (Ep) das sadas, obteve-se a equao

    (2.11), por meio das seguintes equaes:

  • 21

    ij

    pij

    E

    (2.12)

    ipipip atE

    2

    (2.13)

    Constitui o ncleo da regra de aprendizado, a derivada parcial do erro quadrtico

    com relao a cada peso ij

    das sinapses que chegam ao neurnio i. Se os pesos sofrem

    alterao sob a equao (2.11), esse erro quadrtico se move na superfcie de erro em

    direo a um ponto de mnimo, conforme ilustrado na Figura 2.11.

    Figura 2.11 Sentido da movimentao na superfcie de erro.

    Um dos problemas encontrados nas redes back-propagation que a superfcie de

    erro pode tender a um ponto de mnimo local, podendo o algoritmo convergir para um

    desses pontos ao invs de convergir para o mnimo geral. Para contornar esse problema,

    deve-se reiniciar o treinamento escolhendo outro conjunto de pesos iniciais, sendo que

    assim, o ponto de partida na superfcie de erro diferente do primeiro, tendo-se uma maior

    chance de evitar-se o ponto determinado ponto de mnimo local. Se o erro quadrtico

    atinge valores tolerveis, dizemos ento que a rede aprendeu a reconhecer os padres

    que a ela foram apresentados e que est rede j est treinada . [Meyer, 1997]

  • 22

    Com objetivo de melhorar o desempenho da rede no processo de treinamento e

    evitar mnimos locais, a adio de um termo momentum uma das tcnicas mais

    freqentes. Est tcnica bastante utilizada por ser simples e efetiva. O termo momentum

    representado pela equao (2.14): [Braga, Carvalho, Ludernir, 2000] [Meyer, 1997]

    )()(1 nman ijpipiij

    (2.14)

    Com a incluso do termo momentum, o treinamento acelerado em regies muito

    planas da superfcie de erros. Alm disso, suprime oscilaes de pesos em vales e ravinas.

    Na Figura 2.12 ilustrado o efeito do uso do termo momentum no caminho seguido pela

    rede durante a fase de aprendizado. [Braga, Carvalho, Ludernir, 2000]

    Figura 2.12 Influncia do termo momentum.

    Durante o treinamento de uma rede MLP possvel ocorrncia de overfitting, ou

    seja, a rede em vez de melhorar o seu desempenho, a rede comea a ter a sua generalizao

    degrada, a sua taxa de acertos para padres diferentes daqueles utilizados para os ajustes de

    pesos piora. Dizemos ento que a rede memorizou os padres de treinamento. As

    alternativas mais usadas para reduzir a ocorrncia de overfitting so:

  • 23

    encerrar o treinamento mais cedo (quando o erro de validao comea a

    subir);

    podar (punning) os pesos mais cedo.

    Modos de Treinamento Seqencial (Estocstico) e por Lote

    Na aplicao prtica do algoritmo de retropropagao, o aprendizado se resulta das

    vrias apresentaes de um determinado conjunto de exemplos de treinamento para o

    perceptron de mltiplas camadas. Como citado em [Haykin, 2001], uma apresentao

    completa do conjunto de treinamento inteiro denominado poca.

    O processo de aprendizagem mantido em uma base de poca em poca at os

    pesos sinpticos e os nveis de bias (desvio) se estabilizarem e o erro mdio quadrado

    sobre todo conjunto de treinamento e convergir para um valor mnimo. [Haykin, 2001]

    Em um determinado conjunto de treinamento de uma rede back-propagation, a

    aprendizagem por retropropagao pode proceder de uma entre duas formas:

    1. Treinamento Seqencial: tambm conhecido como estocstico. Neste tipo de

    treinamento, a atualizao dos pesos se d aps a apresentao de cada exemplo

    que apresentado a rede. Este tipo de treinamento utilizado em problemas em que

    temos uma grande quantidade de padres de treino, pois os pesos, por serem

    modificados rapidamente, podem levar a uma convergncia mais rpida. [Haykin,

    2001] [Meyer, 1997]

    2. Treinamento por Lote: no treinamento por lote, o ajuste dos pesos realizado aps

    a apresentao de todos os exemplos de treinamento que constituem uma poca.

    Este tipo de treinamento exige mais tempo para que os pesos sejam atualizados,

    mas mais usado com algoritmos que alteram a taxa de aprendizagem

    dinamicamente. [Haykin, 2001]

    2.2

    Norma Quadrtica e Funes Utilizadas

    Para realizar o tratamento dos dados, fez-se necessrio a utilizao do software

    Matlab 7.0, onde foi realizada a discretizao dos sinais. O Matlab um software

    especializado e otimizado para realizar clculos cientficos e de engenharia. um

    programa de fcil utilizao que contm diversas funes matemticas que facilitam vrias

    operaes. [Chapman, 2003]

  • 24

    Dentre as funes que esto sendo usadas nesse projeto, destaca-se:

    wavread()3 ;

    norma 2;

    dec2bin();

    A funo wavread() utilizada para realizar a leitura dos sinais de udio, a funo

    norma 2 (norm) calcula o comprimento de um vetor; e a funo dec2bin() transforma um

    nmero decimal em um nmero binrio. [Matsumoto, 2004]

    Com os dados do sinal que foi lido utilizando a funo wavread(), forma-se um

    vetor. Portanto, o sinal de udio tratado como um vetor de dimenso nR , em que n

    o

    nmero de amostras do sinal. Aps a leitura dos sinais, necessrio determinar o

    comprimento do vetor. Tal comprimento calculado utilizando-se a funo norma 2.

    [Boldrini, Costa, Figueiredo, Wetzler, 1981]

    O clculo da norma 2 dado pela expresso abaixo:

    22

    2

    2

    121...,..., nn PPPPP

    (2.15)

    onde,

    nPP ,...,1 = elementos do vetor (amostra de dados);

    n = quantidade de amostras de dados.

    O resultado obtido com o uso da funo norma 2 convertido para binrio atravs

    da funo dec2bin(). A transformao para binrio se faz necessrio, pois o algoritmo

    criado em C/C++ trabalha com nmeros binrios.

    Aps a converso dos dados para binrio, esses valores so armazenados em um

    arquivo de extenso .txt para que o algoritmo possa realizar a leitura dos dados e treinar a

    rede neural.

    Para que possa ser realizada a determinao da direo da fonte de udio, utiliza-se

    um programa baseado em Redes Neurais Artificiais , na configurao back-propagation.

    Foi necessrio o uso da funo norma 2 para determinar uma caracterstica dos

    sinais de udio gravados, nesse caso o comprimento de cada vetor, e assim, poder converte

    3 wavread(): funo que realiza a leitura de um sinal .wav no software Matlab.

  • 25

    esses dados em binrio para que a rede possa determinar a direo angular da fonte de

    udio.

    Os dados tratados so usados para o treinamento da rede neural, a fim de capacitar a

    rede a generalizar resultados para novos dados apresentados.

    Este resultado mostrado atravs da aplicao criada para a avaliao dos

    resultados, onde um algoritmo foi desenvolvido utilizando a linguagem de programao

    C/C++. [Schildt, 1997] [Meyer, 1997]

  • 26

    3 Determinao da Direo da Fonte de udio

    Este captulo tem como escopo a exposio das etapas do projeto, onde foi

    realizada a aquisio dos sinais de udio, tratamento dos dados, simulao, treinamento e

    testes da aplicao criada com intuito de realizar a determinao da direo da fonte de

    udio.

    3.1

    Gravao dos Sinais

    Para elaborao do projeto, fez-se necessrio a gravao de sinais de udio para

    realizao de uma simulao. Os sinais foram gravados em um ambiente simulado,

    composto por um tabuleiro (Figura 3.1) e um microfone.

    Figura 3.1

    Tabuleiro usado na simulao.

    O tabuleiro foi divido em quatro linhas, distantes a 10 cm, 20 cm, 30 cm e 40 cm do

    microfone, e essas linhas dividas em ngulos entre 0 e 90 graus, separados de 5 em 5

    graus.

    Durante a gravao dos sinais, realizaram-se experimentos com 3 (trs) microfones.

    O primeiro microfone (Figura 3.2), com abertura nas laterais dificultou o tratamento dos

    dados, pois essas aberturas capturam o rudo externo em vrias direes.

  • 27

    Figura 3.2

    Microfone com abertura nas laterais.

    O segundo microfone (Figura 3.3), microfone de Lapela ML-70 Le Son, teve como

    problema a sua alta sensibilidade, capturando assim um rudo externo que prejudicaria o

    tratamento dos dados.

    Figura 3.3

    Microfone de Lapela.

    J o terceiro microfone (Figura 3.4) testado durante a gravao dos sinais, foi que

    apresentou o melhor resultado, e assim o escolhido para ser usado no projeto. O microfone

    escolhido possui como caracterstica ser um microfone unidirecional, e sem aberturas

    laterais como as existentes no primeiro microfone testado.

    Figura 3.4

    Microfone utilizado no projeto.

    Foram gravados cinco sinais de udio em cada ngulo e em cada linha, totalizando

    380 (trezentos e oitenta) sinais de udio.

  • 28

    Como fonte de udio foi utilizado um aparelho celular Nokia 1100 (Figura 3.5).

    Atravs do uso do aparelho celular como fonte de udio, tem-se a possibilidade de garantir

    que o sinal ter sempre a mesma intensidade, freqncia e distncia em relao ao

    microfone.

    Figura 3.5

    Aparelho celular Nokia 1100, usado como fonte de udio para simulao.

    Os sinais de udio foram gravados pelo software Cool Edit verso 1.53 fornecido

    pela Syntrillium Software Corporation. Aps a gravao dos sinais, foi coletada uma parte

    desse sinal, 1 (um) segundo, para serem tratados e testados.

    3.2

    Tratamento de Dados

    3.2.1

    Tratamento dos Sinais Gravados

    Aps a gravao e a extrao de uma parte de cada sinal, com durao de 1 (um)

    segundo, esses sinais foram tratados pelo software Matlab 7.0.

    Primeiramente, realizou-se a leitura dos sinais de udio utilizando a funo

    wavread(). Como o sinal, aps ser lido, est sendo tratado como um vetor, a funo norma

    2, descrita no tpico 2.2 calcula o comprimento desse vetor com objetivo de dar uma

    caracterstica desse sinal para que a aplicao possa realizar a determinao da direo

    angular.

  • 29

    3.2.2 Grficos da Funo Norma 2

    Com o uso da funo norma 2, nota-se que o comprimento do sinal varia de acordo

    com o ngulo em que o sinal foi gerado. Atravs dos grficos abaixo, v-se que quanto

    maior o ngulo da fonte de udio em relao ao microfone, menor o comprimento do sinal.

    Figura 3.6

    Grfico da funo norma 2 dos sinais gravados na linha 01.

    Figura 3.7

    Grfico da funo norma 2 dos sinais gravados na linha 02.

  • 30

    Figura 3.8

    Grfico da funo norma 2 dos sinais gravados na linha 03.

    Figura 3.9

    Grfico da funo norma 2 dos sinais gravados na linha 04.

    Pelos grficos acima, verifica-se que o comprimento do sinal, alm de diminuir

    com aumento do ngulo da fonte de udio em relao ao microfone, tambm varia com o

    aumento da distncia entre o microfone e a fonte de udio. Com isso, pode-se dizer que, a

    norma 2 (comprimento) do sinal est relacionada com a sensibilidade do microfone em

    captar os sinais sonoros emitidos.

    Na Tabela 3.1 so mostrados os comprimentos mximos e mnimos obtidos com a

    gravao dos sinais em cada linha.

  • 31

    Tabela 3.1 Comprimento mximo e mnimo dos sinais em cada linha.

    Linha

    Distncia entre fonte de udio e microfone

    Comprimento

    mximo do sinal

    Comprimento

    mnimo do sinal 01 10 cm 254.8013 80.5730

    02 20 cm 170.2843 50.3649

    03 30 cm 126.8136 18.6193

    04 40 cm 117.9248 21.2236

    Com o aumento da distncia da fonte de udio em relao ao microfone, houve uma

    diminuio do comprimento do sinal, pois como mostrado na Tabela 3.1, quando a fonte

    de udio estava a 10 cm do microfone, o comprimento mximo foi de 254.8013, e quando

    estava a 40 cm, o comprimento mximo foi de 117.9248.

    Atravs das Figuras 3.6 a 3.9, tambm se pode notar que existem alguns picos

    que podem acarretar divergncias na determinao da fonte de udio, mas nota-se que a

    norma 2 tende a diminuir com o aumento do ngulo da fonte de udio em relao ao

    microfone. Tais picos devem ter ocorridos devido variao do ambiente e rudos

    externos existentes durante a gravao dos sinais.

    3.2.3 Resumo do Cdigo para Tratamento dos Dados

    A seguir apresentado o fluxograma do algoritmo usado para o tratamento dos

    dados.

  • 32

    Figura 3.10

    Fluxograma do algoritmo de tratamento de dados.

    O fluxograma acima descreve de forma resumida as etapas de tratamento de dados.

    O algoritmo completo encontra-se no Anexo A.

    De acordo com a Figura 3.10, nota-se que a valor da funo norma 2 (norm) foi

    multiplicado por 50, isso ocorreu porque os valores obtidos com o uso dessa funo eram

    baixos, assim multiplicou-se todos os valores do comprimento do sinal com o intuito de

    obter-se valores que melhor se ajustasse ao projeto em execuo. Tal procedimento foi

    adotado, de multiplicar o valor da norma 2 por uma constante, para que os dados, quando

    transformados em binrio, tivessem uma faixa de valores aceitveis para serem tratados

    pela aplicao. Essa faixa de valores deve ficar entre 0 e 255, que corresponde em nmero

    binrio, 00000000 e 11111111, respectivamente.

    Deve-se ressaltar que este algoritmo foi usado para cada linha distante do

    microfone, ou seja, por quatro vezes, alterando os dados de entrada (som gravado),

    intermedirios (norm e nmero binrio) e os dados de sada (arquivo de extenso .txt com

    informaes sobre os sinais gravados).

  • 33

    Fez-se necessrio a converso dos dados para nmero binrio, pois a primeira

    proposta do projeto utilizava um circuito que tinha como objetivo, capturar, tratar e

    converter os sinais analgicos para digital utilizando um conversor Analgico/Digital e

    enviar esses dados para o PC via porta paralela.

    A aplicao foi criada utilizando como entrada os nmeros 0 e 1, e determinou-se

    que as entradas da rede teriam 8 bits, pois a quantidade de sadas fornecidas pelo

    conversor.

    Dessa forma, com a substituio do circuito pela placa de som e os softwares

    Matlab e Cool Edit, fez-se necessrio a converso dos dados para binrio com intuito de

    utilizar a aplicao criada.

    Ressalva-se que, mesmo com as alteraes ocorridas, o objetivo do projeto

    permaneceu, o de determinar por simulao a direo angular da fonte de udio.

    Informaes sobre o circuito que estava sendo criado e sobre o conversor

    analgico/digital esto nos anexos B e C, respectivamente.

    3.3

    Estrutura do Algoritmo de Aplicao

    Aps o tratamento dos dados pelo software Matlab, onde foram gerados arquivos

    de extenso .txt com os dados de cada sinal, uma aplicao ir treinar a rede neural e

    classificar novos padres apresentados rede. A linguagem de programao adotada foi

    C/C++, e o compilador utilizado o Borland C++ Builder 5. [Schildt, 1997]

    O algoritmo composto pelos seguintes procedimentos: [Meyer, 1997]

    InicializaPeso()

    Este procedimento atribui pesos s sinapses da rede. Os pesos

    so valores aleatrios variando entre -0,1 e 0,1;

    InicializaBias()

    Este processo atribui valores s entradas bias (desvio) dos

    neurnios. Da mesma forma como o procedimento InicializaPeso(), este

    procedimento atribui valores aleatrios entre -0,1 e 0,1;

    Treinamento()

    Efetua a atualizao dos pesos e bias com base na funo delta

    generalizada equao (2.11);

    TestaRede()

    Aplica um padro rede para fins de classificao;

    Ativa()

    Para um dado padro de entrada, esse procedimento calcula a sada de

    cada neurnio baseada na funo sigmide equao (2.4);

    GravaParametros()

    Aps o treinamento da rede, este procedimento grava os

    arquivos compostos pelos parmetros do estado final da rede;

  • 34

    LeParametros()

    Realiza a leitura dos parmetros dos arquivos gerados pela

    funo GravaParametros;

    3.3.1 Principais Funes Utilizadas no Algoritmo (Pseudocdigo)

    A seguir tm-se os fluxogramas das principais funes utilizadas no algoritmo:

    [Meyer, 1997]

    Funo Principal():

    Figura 3.11 Fluxograma da funo principal.

  • 35

    Funo Ativa():

    Figura 3.12 Fluxograma da funo ativa.

    Funo TestaRede():

    Figura 3.13 Fluxograma da funo testa rede.

  • 36

    Funo Treinamento():

    Figura 3.14 Fluxograma da funo treinamento.

  • 37

    3.3.2 Treinamento

    Durante a fase de treinamento, foram apresentados N padres representando M

    ngulos diferentes e ajustados os parmetros como a taxa de aprendizagem, momentum e

    tamanho da camada intermediria.

    Para realizao do treinamento, so requeridos os seguintes parmetros:

    Nmero mximo de iteraes;

    Amostras a serem treinadas;

    Nmero do treino.

    A rede neural utilizada no projeto do tipo supervisionada, utilizando a funo de

    ativao sigmide. O aprendizado do tipo supervisionado e o seu treinamento do tipo

    estocstico, ou seqencial.

    No treinamento, usou-se uma matriz 35x9 (Tabela 3.2) onde as linhas representam

    quantidade de amostras utilizadas no treinamento e as colunas so cada bit que a rede deve

    atribuir um peso, sendo que a ltima coluna representa o resultado desejado para sada.

    Os dados de entrada para o treinamento foram escolhidos considerando que, essas

    amostras so possveis entradas que a rede obter. Assim, com esses exemplos, foi

    realizado o treinamento da rede com objetivo de gerar uma matriz de peso para que,

    quando fossem realizados os testes, com novos dados inseridos na rede, esses dados

    pudessem ser influenciados pelos oriundos do treinamento e assim gerar os resultados de

    acordo com o treinamento realizado.

  • 38

    Tabela 3.2 Dados para treinamento da rede neural.

    Padres de entrada para

    treinamento

    Sada Desejada

    0

    1

    1

    1

    1

    0

    0

    1

    0

    0

    1

    1

    1

    1

    0

    0

    1

    0

    0

    1

    1

    1

    0

    0

    1

    1

    0

    0

    1

    1

    1

    0

    0

    1

    1

    0

    0

    1

    1

    1

    1

    1

    1

    0

    0

    0

    1

    0

    1

    0

    1

    1

    1

    15

    0

    1

    0

    1

    1

    1

    0

    1

    15 0

    1

    0

    1

    1

    1

    1

    0

    15 0

    1

    0

    1

    0

    0

    1

    1

    15 0

    1

    1

    0

    1

    0

    1

    0

    15 0

    1

    0

    0

    1

    0

    1

    0

    30 0

    1

    0

    0

    1

    1

    1

    0

    30 0

    1

    0

    0

    1

    1

    0

    0

    30 0

    1

    0

    0

    1

    0

    1

    0

    30 0

    1

    0

    0

    1

    1

    0

    0

    30 0

    1

    0

    0

    0

    0

    1

    1

    45 0

    1

    0

    0

    1

    0

    1

    1

    45 0

    1

    0

    0

    1

    0

    0

    1

    45 0

    1

    0

    0

    0

    1

    0

    0

    45 0

    1

    0

    0

    0

    1

    1

    1

    45 0

    0

    1

    1

    1

    1

    1

    1

    60 0

    0

    1

    1

    1

    1

    1

    1

    60 0

    0

    1

    1

    1

    1

    1

    0

    60 0

    1

    0

    0

    0

    0

    0

    0

    60 0

    0

    1

    1

    1

    1

    1

    1

    60 0

    0

    1

    0

    1

    0

    0

    0

    75 0

    0

    1

    0

    0

    1

    1

    0

    75 0

    0

    1

    0

    0

    0

    1

    0

    75 0

    0

    1

    0

    0

    1

    1

    1

    75 0

    0

    1

    0

    0

    1

    1

    0

    75 0

    0

    0

    1

    0

    0

    1

    0

    90 0

    0

    0

    1

    0

    1

    1

    0

    90 0

    0

    0

    1

    0

    1

    1

    1

    90 0

    0

    0

    1

    0

    1

    1

    0

    90 0

    0

    0

    1

    0

    1

    1

    1

    90

    Na tabela 3.2, encontra-se os dados referentes a gravao realizada na terceira linha

    do tabuleiro, a 30 cm do microfone.

    Para cada treinamento, possvel alterar os padres de entrada, permitindo um

    novo tipo de generalizao e uma nova matriz de peso. Com a alterao dos padres de

    entrada entre um treinamento e outro, tm-se uma diferena entre os pesos da matriz e o

    erro mdio quadrtico, que ir variar dependendo do nmero de iteraes que a rede

    sofrer.

  • 39

    Durante a fase de treinamento, uma das dificuldades encontradas foi determinar a

    quantidade de iteraes para realizao do treinamento, pois como foi descrito no captulo

    2, o treinamento da rede influncia no seu desempenho para fornecer as respostas corretas.

    Dessa forma, caso a rede seja pouco treinada, no ir apresentar bons resultados, mas

    caso a rede venha a ser muito treinada, a rede tende a memorizar os resultados ao

    invs de aprender . Assim, foram realizados diversos testes com a inteno de chegar-se a

    uma quantidade de iteraes que fornecesse um bom resultado quando for realizado o teste

    da rede com intuito de verificar qual a direo da fonte de udio.

    A quantidade de pocas realizadas no treinamento, variou entre 1.000 e 100.000

    iteraes. Esses valores foram obtidos aps uma srie de testes realizados.

    Para realizao do treinamento, utilizou-se, aproximadamente, 52% das amostras

    para treinamento e o restante para validao.

    Verificou-se, que para alguns casos, essa quantidade de amostras para o

    treinamento foi satisfatria, mas, como sugesto para outros trabalhos, sugere-se a

    utilizao de quantidades diferentes de amostras para verificar o comportamento da rede.

    Aps uma srie de treinamentos e testes, optou-se por parar o treinamento quando

    chega-se a 100.000 pocas, pois com uma faixa para treinamento entre 1.000 e 100.000

    pocas, foi possvel verificar o comportamento da rede de acordo com o nmero de pocas

    realizadas durante o treinamento.

    Com a realizao do treinamento e testes, verificou-se que em alguns ngulos a

    rede apresentava um melhor desempenho. Deve-se levar em conta que os rudos externos

    existentes nas gravaes esto influenciando no treinamento da rede neural, pois o

    tratamento realizado teve como objetivo preparar os dados para serem treinados e

    testados pela aplicao, no sendo realizado nenhum tipo de filtragem nos sinais. Dessa

    forma, possveis erros e divergncias relacionados a determinao angular ocorrem devido

    aos problemas encontrados na gravao dos sinais.

    3.3.3 Classificao de Novos Padres

    Para classificar novos padres so informados para rede quais so esses novos

    dados a serem classificados. A rede realiza a leitura dos parmetros gravados, como por

    exemplo, do peso associado ao treino realizado, e executa a funo ativa (Figura 3.12) para

    determinar em qual direo localiza-se a fonte de udio.

  • 40

    Essa direo ser mostrada ao usurio em forma de ngulo aproximado. Assim,

    para cada novo padro que a rede tenha que classificar, ser informado ao usurio o ngulo

    aproximado de onde foi gerado o sinal de udio.

    Considerando o rudo ambiente e o erro aceitvel da rede neural, esses valores

    podem variar em uma faixa de acordo com os grficos da funo norma 2 mostrados no

    Capitulo 2.

    Deve-se ressaltar, que o erro existente na determinao acstica, na prtica pode

    no influenciar de uma forma que venha a prejudicar o uso da aplicao, pois como j foi

    comentado anteriormente, tem-se como possibilidade a aplicao desse projeto em

    sistemas de vdeo-conferncia e sistemas de segurana, e em ambos os sistemas, podem-se

    fazer uso de cmeras filmadoras, e ao ngulo de viso de grande parte das cmeras est em

    torno de 54. Assim, mesmo que existindo uma divergncia entre o ngulo testado e o

    resultado apresentado, essa diferena pode ser compensada pelo ngulo de viso da cmera

    filmadora. [Souza, 2002]

    3.4

    Configurao do Ambiente de Homologao

    Para implementao do prottipo e realizao de testes e simulaes, necessitou-se

    dos seguintes equipamentos e softwares:

    Tabuleiro (Figura 3.1) divido em quatro linhas distantes a 10 cm, 20 cm, 30 cm e

    40 cm do microfone;

    Microfone (Figura 3.4);

    Aparelho celular Nokia 1100 como fonte de udio (Figura 3.5);

    Microcomputador com a seguinte configurao:

    o Pentium III 750 Mhz;

    o 384 MB de memria RAM;

    o 50 GB de disco rgido;

    Softwares utilizados:

    o Sistema Operacional Microsoft Windows XP;

    o Cool Edit verso 1.53;

    o Matlab 7.0;

    o Bloco de notas;

    o Borland C/C++ Builder 5.

  • 41

    3.5

    Mtodos Utilizados

    Aps a gravao, tratamento, e treinamento dos dados, foi realizada uma simulao

    para determinar de qual direo o sinal foi gerado. Para tal objetivo, utiliza-se a aplicao

    criada em C/C++ descrita no item 3.3.

    O primeiro passo para realizao da simulao consiste em escolher em qual linha

    ser comparado os ngulos. Caso ainda no tenha sido realizado o treinamento da rede,

    deve-se escolher a quantidade de interaes que se deseja para treinar a rede. Aps o

    treinamento, podem-se realizar os testes escolhendo o ngulo a ser verificado e conferir o

    resultado apresentado.

    O item 3.6 mostra os passos para realizar a simulao que determina a direo da

    fonte de udio.

    3.6

    Passos para Realizao do Treinamento e Testes para Determinao da Fonte de udio

    A seguir tm-se os passos para realizar o treinamento e testes da rede neural

    utilizando a aplicao criada. So apresentadas as telas, suas funcionalidades e os

    procedimentos para desempenhar a simulao.

    Figura 3.15

    Tela de apresentao da aplicao.

    A Figura 3.15 mostra a Tela de Apresentao do programa criado usando a

    linguagem de programao C. A Figura 3.16, exibi a Tela Principal.

  • 42

    Figura 3.16

    Tela principal.

    Figura 3.17 Tela de simulao.

    Clicando em Arquivo, Figura 3.16, e selecionando a opo Simulao, ser

    mostrada a Tela de Simulao, Figura 3.17, onde poder ser escolhido se deseja realizar

    um novo treinamento ou realizar os testes para verificar de qual direo est localizada a

    fonte de udio.

    Para realizar um novo treinamento, primeiramente devem-se escolher as dados que

    sero treinados. Tal procedimento realizado clicando no boto Arquivos, Figura 3.17,

  • 43

    escolhendo a linha a ser treinada, Figura 3.18, e selecionando o primeiro arquivo de

    extenso .txt que aparece na Figura 3.19.

    Figura 3.18

    Escolhendo a linha a ser treinada.

    Figura 3.19

    Selecionando os dados para serem treinados.

    Em seguida, deve-se indicar o ngulo que dever ser treinado. No primeiro quadro

    da Figura 3.20, escolhe-se qual ngulo ir ser treinado. Em cada ngulo existem cinco

    amostras do sinal. Dessa forma, quando se escolhe o ngulo no primeiro quadro, no

    segundo quadro aparece cada uma das amostras que poder ser utilizada para treinamento.

    Nota-se que as amostras esto escritas da seguinte forma:

    11111001: Amostra 0 da Linha 1 do Ang. de 00 Graus

    que quer dizer que essa amostra contm os dados do som gravado na linha 01 no ngulo

    0, e essa a amostra da primeira gravao realizada nesse ngulo, e os primeiros nmeros

    mostra o dado na forma de nmero binrio.

    Como foi dito no captulo 2, foram gravados cinco sinais em cada ngulo, dessa

    forma, tm-se cinco amostras para cada ngulo, enumeradas de 0 a 4.

  • 44

    Figura 3.20

    Escolhendo ngulos a serem treinados.

    Figura 3.21

    Escolhendo amostras dos ngulos a serem treinadas.

    Aps a escolha dos ngulos e amostras a serem treinadas, deve-se alimentar a

    matriz de teste clicando no boto Alimenta Matriz, Figura 3.21, para que o treinamento

    possa ser realizado.

    Escolhendo o ngulo a ser treinado.

    Escolhendo o amostras serem treinadas.

  • 45

    Figura 3.22 Informando que a matriz de teste foi alimentada com sucesso.

    Figura 3.23

    Escolhendo o nmero do treino e a quantidade de iteraes (pocas).

    Depois de escolhida as amostras a serem treinadas, a alimentada a matriz, preciso

    informar o nmero do treino a ser realizado e a quantidade de iteraes que dever existir

    no treinamento.

    Informado o nmero do treino e a quantidade de iteraes, basta clicar no boto

    Treinamento para que seja realizado o treinamento da rede.

    Caso deseja-se realizar outro treinamento com as mesmas amostras, mas com a

    quantidade de iteraes diferentes, basta informar o nmero do novo treino e a quantidade

    de iteraes.

    Caso almeje realizar o treinamento dos dados de outra linha, faz-se necessrio

    excluir os dados da tela de simulao, para realizar essa ao basta clicar no boto

    Limpar, e seguir os passos a partir da Figura 3.17.

    Para realizar o teste de verificao de qual ngulo o sinal de udio foi emitido,

    devem-se escolher as amostras que sero utilizadas clicando no boto Arquivos da Tela de

    Simulao, selecionar a linha que deseja testar e escolher o primeiro arquivo, mostrado na

    Figura 3.19.

    Escolhe-se o nmero do treino e a quantidade de iteraes.

  • 46

    Aps, deve-se selecionar a amostra a ser testada, informar o nmero do treino e

    clicar no boto Testar Rede, Figura 3.24.

    Figura 3.24

    Escolhendo amostra para avaliar.

    Figura 3.25

    Resultado da simulao.

    Dessa forma, ser informado qual o ngulo aproximado o sinal foi gerado, Figura

    3.25. Tambm informado no resultado final, a entrada em forma de nmero binrio e a

    sada padro da rede neural.

    3.7

    Resultados e Consideraes

    Atravs dos testes realizados, nota-se que existiram algumas divergncias entre o

    ngulo que foi submetido para teste e a sada esperada. Nota-se tambm que a quantidade

    de iteraes do treinamento influncia em boa parte nessa determinao.

  • 47

    Contudo, verifica-se que as provveis causas para os erros na determinao tenham

    sido ocasionadas por rudos externos ocorridos durante a gravao dos sinais, pois como

    foi dito anteriormente, os sinais gravados no sofreram nenhum tipo de filtragem.

    Dessa forma, os resultados apresentados pela aplicao podem apresentar algumas

    divergncias em relao ao ngulo solicitado para teste. Mas como foi mencionado, na

    prtica essa diferena pode ser compensada pelo ngulo de viso de uma filmadora, que

    est em torno de 54. [Souza, 2002]

    Portanto, admite-se uma divergncia entre o ngulo do sinal submetido a teste e o

    ngulo apresentado pela aplicao de no mximo 45. Se essa diferena estiver nessa faixa,

    considera-se que a rede est apresentando, aproximadamente, a direo angular correta.

  • 48

    4

    Concluso

    4.1

    Consideraes Finais

    Atravs da realizao deste projeto, foi possvel determinar, aproximadamente, a

    direo de uma fonte de udio em um sistema acstico.

    Para que fosse possvel a determinao da direo angular da fonte de udio, fez-se

    necessrio o tratamento dos sinais gravados. Para isso, foi calculada a norma 2 do sinal

    discretizado (vetor), que oferece como resultado o comprimento do vetor, possibilitando

    extrair uma caracterstica para cada sinal de udio.

    O uso de Redes Neurais Artificiais possibilitou uma generalizao da determinao

    da fonte de udio. O algoritmo, depois de treinado, tem a capacidade de responder por

    situaes que jamais teve conhecimento. E, atravs do algoritmo back-propagation, chega-

    se, em uma boa parte das amostras a um erro aceitvel, na determinao da fonte de udio,

    permitindo definir, aproximadamente, de qual ngulo o sinal foi gerado.

    O treinamento da rede teve como objetivo fazer com que a mesma aprendesse a

    distinguir novas situaes no treinadas, ou seja, passado para rede informaes de uma

    nova localizao da fonte de udio, e a rede tem a capacidade de informar a localizao

    aproximada dessa fonte.

    Dessa forma, o uso de redes neurais possibilitou uma generalizao das

    informaes, permitindo que a mesma seja capaz de definir a posio de uma fonte de

    udio para novos locais aonde no ocorreu o treinamento.

    Portanto, com uma caracterstica de cada sinal, fornecido pelo uso da norma 2, e o

    uso da aplicao desenvolvida baseada em redes neurais, foi possvel determinar,

    aproximadamente, de qual direo angular foi gravado o sinal de udio.

    4.2

    Dificuldades Encontradas

    Dentre as principais dificuldades encontradas para elaborao do projeto, destacam-

    se:

    1 - criao do algoritmo back-propagation em C/C++;

    2 - gravao e tratamento dos sinais de udio.

  • 49

    A criao do algoritmo back-propagation em C/C++ tem como uma

    particularidade, o uso de nmeros binrios para entrada dos dados.

    A gravao dos sinais foi a parte mais complicada do projeto, j que durante a

    gravao dos sinais, existiram diversos problemas, como: sensibilidade do microfone e

    rudo do ambiente.

    Uma caracterstica observada durante a gravao dos sinais de udio trata-se da

    sensibilidade do microfone de acordo com o ngulo que o sinal foi gerado. Notou-se que

    quanto maior o ngulo, menor a sensibilidade do microfone usado na gravao dos sinais.

    Deve-se ressaltar que existiram algumas alteraes no decorrer da elaborao do

    projeto. Dentre as alteraes realizadas, a que mais se destaca a troca do circuito

    eletrnico que tinha como objetivo capturar, amplificar, converter o sinal de udio e enviar

    o dado para o PC por meio da porta paralela. Tal circuito foi substitudo e optou-se pelo

    uso da placa de som do PC, e os softwares Cool Edit e Matlab, para gravao e tratamento

    dos sinais, respectivamente. Detalhes sobre circuito projetado encontram-se no Anexo B.

    4.3 Sugestes para trabalhos futuros

    Atravs dos conceitos apresentados neste projeto, pode-se ter como inspirao para

    o futuro:

    a construo de um prottipo sem utilizao do PC, realizando a programao

    utilizando um Microcontrolador, deixando o prottipo independente de um

    microcomputador;

    o movimento de uma base giratria, que poder ter como objetivo focalizar a fonte

    de udio, podendo ser utilizado em sistemas de vdeo-conferncia e sistemas de

    segurana;

    uso da voz humana como fonte de udio;

    utilizao de outro mtodo para determinar a direo da fonte acstica, como por

    exemplo, lgica de fuzzy ou interpolao;

    gravao dos sinais de udio utilizando outra fonte de udio e em outro ambiente,

    como por exemplo, um estdio de gravao.

  • 50

    5

    Referncias Bibliogrficas

    ALLDATASHEET, AllDataSheet. Disponvel em .

    Acessado em 10 de novembro de 2004.

    ALMEIDA, Almeida Home page. Disponvel em . Acessado em 24 de novembro de 2004.

    BOGART, Theodore F. Jr.. Dispositivos e Circuitos Eletrnicos

    Volume II. 3 edio. .

    So Paulo: Pearson Makron Books, 2001.

    BOLDRINI, Jos Luiz; COSTA, Sueli I. Rodrigues; FIGUEIREDO, Vera Lcia;

    WETZLER, Henry G.. Algebra Linear

    3 Edio

    So Paulo: Editora Harbra Ltda,

    1981.

    BOYLESTAD, Robert L.; NASHELSKY, Louis. Dispositivos Eletrnicos e Teoria de

    Circuitos Sexta Edio Rio de Janeiro: LTC Editora, 1999.

    BRAGA, Antnio de Pdua; CARVALHO Andr Carlos P. de Leon F; LUDERNIR,

    Teresa Bernarda. Redes Neurais Artificiais Teoria e Aplicaes. LTC, 2000

    CHAPMAN, Stephen J. Programao em MATLAB para Engenheiros

    So Paulo:

    Pioneira Thomson Learning, 2003.

    GUAHYBA; Adriano. Viso Geral sobre Redes Neurais. Disponvel em

    . Acessado em 17 de agosto de 2004.

    HAYKIN, Simon. Redes Neurais: Princpios e Prtica. Trad. Paulo Martins Engel.

    2

    edio Porto Alegre: Bookman, 2001

    INGLE, Vinay K; PROAKIS, John G. Digital Signal Processing using MATLAB.

    BookWare Companio Series, 2000

    LIPORACE, Frederico dos Santos; MACHADO, Ricardo Jos; BARBOSA Valmir

    Carneiro. Um Sistema Neural para Monitorao do Desflorestamento na Regio

    http://www.alldatasheet.com>http://planeta.terra.com.br/educacao/almeida/pg09.htm>http://www.guahyba.vet.br/avicultura/neurais.htm>

  • 51

    Amaznica Utilizando Imagens do Landsat. Centro Cientfico Rio

    Relatrio Tcnico

    CCR-161

    IBM, 1994.

    MATSUMOTO, lia Yathie. MATLAB 6: Fundamentos de Programao

    So Paulo:

    rica, 2001

    MATSUMOTO, lia Yathie. MATLAB 7: Fundamentos de Programao

    So Paulo:

    rica, 2004

    MESSIAS, Antnio Rogrio. Caractersticas de Funcionamento do Conversor

    Analgico Digital ADC0804 de 8 bits. Disponvel em

    Acessado em 27 de

    setembro de 2004

    MEYER, Wladimir da Silva Meyer. Metodologias para Classificao de Texturas e

    Consulta a Bases de Imagens. Instituto Militar de Engenharia

    Rio de Janeiro, 1997.

    NATIONAL. National Semicondutor. Disponvel em . ltimo

    acesso em 10 de novembro de 2004.

    RUSSEL, Stuart; NORVIG, Peter. Artificial Intelligence

    A Modern Approach.

    Pearson Education by Prentice-Hall, New Jersey EUA.

    SCHILDT, Herbet. C, Completo e Total

    3 edio. So Paulo: Pearson Makron Books,

    1997.

    SIQUEIRA, Jos Antnio Lerosa. Inteligncia Artificial Usando Redes Neurais.

    Disponvel em . Acessado em 30 de agosto

    de 2004

    SOUZA, Adlio Ricardo M.. A escolha adequada das cmeras. Able Alarm Servios Ltda. De 20 de agosto de 2002. Disponvel em . Acessado em 16 de junho de 2005.

    STROUSTRUP, Bjarne. A Linguagem de Programao C++

    3 edio. Porto Alegre:

    Bookman, 2000.

    http://www.rogercom.com/pparalela/ConversorADC0804.htm>http://www.national.com>http://www.caetano.eng.br/pef411/index.htm>http://www.ablealarm.com.br/artigo20082002

  • 52

    TATIBANA, Cssia Yuri; KAETSU Deisi Yuki. Uma Introduo s Redes Neurais.

    Disponvel em . Acessado em 17 de agosto de 2004 e

    10 de novembro de 2004.

    VELLASCO, Marley Maria B. R.. Sistemas Inteligentes

    Redes Neurais. Disponvel

    em: . Acessado em 17 de agosto de 2004.

    ZUBEN, Fernando J. Von. Uma Caricatura Funcional de Redes Neurais Artificiais.

    Revista da Sociedade Brasileira de Redes Neurais, Vol.: 1 N. 2, pp.

    77-87, 2003.

    Disponvel em . Acessado em 27 de agosto de 2004.

    http://www.din.uem.br/ia/neurais/>http://www.icahttp://www.sbrn.org.br>

  • 53

    Anexo A Algoritmos para Tratamento de Sinais

    A seguir tm-