Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tecnologia em Análise e Desenvolvimento de Sistemas
Redes Neurais – Análise de Voz
Daniel Marin
Erechim, março de 2007.
Sumário
1. INTRODUÇÃO ______________________________________________________ 3
2. OBJETIVO _________________________________________________________ 4
3. JUSTIFICATIVA_____________________________________________________ 5
4. ABORDAGEM INICIAL _______________________________________________ 6
4.1 Sistema Nervoso _________________________________________________ 6
4.1.2 Componentes e um Neurônio ___________________________________ 6
4.2 O Que são Redes Neurais? ________________________________________ 7
4.2.1 Breve Histórico das Redes Neurais ______________________________ 7
5. CARACTERÍSTICAS GERAIS DAS REDES NEURAIS ______________________ 9
5.1 Tipos de Camadas das Redes Neurais ______________________________ 10
5.2 Tipos de Redes Neurais __________________________________________ 11
5.3 Aprendizado de uma Rede Neural Artificial __________________________ 11
5.4 Perceptron Multicamadas (MLP) ___________________________________ 12
5.4.1 Modelagem _________________________________________________ 13
5.5 Algoritmo de Backpropagation ____________________________________ 13
5.6 Desenvolvimento de Aplicações de Redes Neurais ___________________ 14
6. RECONHECIMENTO DE VOZ_________________________________________ 15
7. CONCLUSÃO _____________________________________________________ 17
REFERÊNCIAS BLIBLIOGRÁFICAS _____________________________________ 18
1. INTRODUÇÃO
Este trabalho subdividese em dois objetivos principais, primeiro fazer uma
abordagem clara e sucinta sobre o ramo da Inteligência Artificial denominado “Redes
Neurais” tratando de suas características, histórico, diferentes tipos, utilização, processo
de aprendizado, algoritmo de propagação, camadas de uma rede e desenvolvimento de
aplicações. Em segundo plano demonstrar o emprego de Redes Neurais em softwares
de análise da voz humana.
3. JUSTIFICATIVA
O assunto escolhido para ser desenvolvido neste trabalho, é algo em plena
expansão com mercado de trabalho promissor, pois está apenas “engatinhando” em
termos de tecnologias e softwares disponíveis no mercado. Em segundo lugar é uma
forma de agregarmos um maior conhecimento neste campo da Inteligência Artificial.
4. ABORDAGEM INICIAL
4.1 Sistema Nervoso
O Sistema Nervoso é composto por bilhões de neurônios, que se comportam de
maneira altamente complexa. A comunicação entre eles é realizada através de
impulsos; quando um impulso é recebido, o neurônio o processa, e passado um limite
de ação (conhecimento), dispara um segundo impulso que produz uma substância
neurotransmissora – que em conseqüência disto flui do corpo celular para a região do
axônio, uma vez que ele pode ou não estar conectado ao dentrito (parte do neurônio)
de outro neurônio.
O neurônio transmissor do pulso poderá controlar a sua freqüência aumentando
ou diminuindo, seu papel é essencial na determinação do funcionamento,
comportamento e raciocínio do ser humano.
4.1.2 Componentes e um Neurônio
A estrutura básica de um neurônio é composta por:
Os dentritos: receber os estímulos transmitidos pelos outros neurônios;
O corpo de neurônio: responsável por coletar e combinar informações vindas de
outros neurônios;
Axônio: responsável por transmitir os estímulos para outras células.
A figura abaixo exibe a estrutura básica de um neurônio.
Figura 1.0: Constituição de uma célula neural.
4.2 O Que são Redes Neurais?
4.2.1 Breve Histórico das Redes Neurais
As implementações de Redes Neurais, deram seus primeiros passos no final da
década de 40 através do desenvolvimento de circuitos analógicos. Neste período
surgem nomes como Warren McCulloch e Walter Pitts., precursores desta tecnologia,
conforme texto retirado do site abaixo exposto.
As redes neurais foram desenvolvidas, originalmente, na década de 40, pelo
neurofisiologista Warren McCulloch, do MIT, e pelo matemático Walter Pitts, da
Universidade de Illinois, os quais, dentro do espírito cibernético, fizeram uma
analogia entre células nervosas vivas e o processo eletrônico num trabalho
publicado sobre "neurônios formais". O trabalho consistia num modelo de
resistores variáveis e amplificadores representando conexões sinápticas de um
neurônio biológico.
Desde então, mais enfaticamente a partir da década 80, diversos modelos de
redes neurais artificiais têm surgido com o propósito de aperfeiçoar e aplicar esta
tecnologia. Algumas destas propostas tendem a aperfeiçoar mecanismos
internos da rede neural para aplicação na indústria e negócios, outras procuram
aproximálas ainda mais dos modelos biológicos originais. Retirado de:
http://www.cerebromente.org.br/n05/tecnologia/rna.htm em 19/03/2007
Na década de 1980 houve um interesse maior sobre as redes neurais com a
elaboração de vários trabalhos. Tais como o de Hopfield com a elaboração de um
algoritmo de aprendizagem.
5. CARACTERÍSTICAS GERAIS DAS REDES NEURAIS
Uma Rede Neural Artificial é composta por várias unidades de processamento
cujo funcionamento é bastante simples. Essas unidades, geralmente são conectadas
por canais de comunicação que estão associados e determinado peso. As unidades
fazem operações apenas sobre seus dados locais, que são entradas recebidas pelas
suas conexões. O comportamento inteligente de uma Rede Neural Artificial vem das
interações entre as unidades de processamento da rede (GURNEY, 1997).
A operação de uma unidade de processamento, proposta por McCullock e Pitts em
1943, pode ser especificada do seguinte modo:
· Sinais são apresentados à entrada;
· Cada sinal é multiplicado por um número, ou peso, que indica a sua influência na
saída da unidade;
· É feita a soma ponderada dos sinais que produz um nível de atividade;
· Se este nível de atividade exceder um certo limite (threshold) a unidade produz
uma determinada resposta de saída.
Figura 2.0 : Esquema de unidade McCullock – Pitts(neurônio artificial).
Suponha que tenhamos p sinais de entrada X1, X2, ..., Xp e pesos w1, w2,
..., wp e limitador t; com sinais assumindo valores booleanos (0 ou 1) e pesos
valores reais.
Neste modelo, o nível de atividade a é dado por:
a = w1X1 + w2X2 + ... + wpXp
A saída y é dada po
y = 1, se a >= t ou
y = 0, se a < t.
5.1 Tipos de Camadas das Redes Neurais
As arquiteturas das Redes Neurais são organizadas em camadas – conforme
figura abaixo.
Figura 3.0: Organização das camadas.
A classificação das diferentes camadas das Redes Neurais se dá de três formas
conforme descrição abaixo.
· Camada de Entrada: onde os padrões são apresentados à rede.
· Camadas Intermediárias: onde é feita a maior parte do processamento.
· Camada de Saída: onde o resultado final é concluído e apresentado.
5.2 Tipos de Redes Neurais
Diferenciamos Redes Neurais pela maneira de como se dá à direção dos sinais,
com base nisso temos então dois tipos de Redes Neurais Artificiais.
· Feedforward: neste tipo de Rede Neural, os sinais são propagados em apenas
uma direção, levando em conta a unidade de entrada, passando pela camada
intermediária até a saída.
· Feedback: neste caso os sinais de entrada podem se propagar da saída de
qualquer neurônio para a entrada em um outro neurônio.
Os modelos se apresentam da forma de um conjunto de neurônios de entrada, que
por sua vez fornecem informações para a rede. E um conjunto de neurônios de saída,
que representam os sinais de saída e pro final um conjunto de neurônios intermediários.
Os neurônios são de certa forma conectados ou ligados cada um com um peso,
representado pela letra W. Os pesos ditos positivos correspondem ao sinal de entrada,
e negativos correspondem a fatores de inibição. Cada neurônio tem como propriedade
processar um sinal de entrada e transformálo em sinal de saída.
5.3 Aprendizado de uma Rede Neural Artificial
Uma Rede Neural tem a habilidade de aprender em seu ambiente e com esse
aprendizado melhorar de forma significativa seu desempenho. Isso é feito através de
um processo iterativo de ajustes aplicado a seus pesos, o treinamento. O aprendizado
ocorre quando a rede neural atinge uma solução generalizada para uma classe de
problemas. Denominase algoritmo de aprendizado a um conjunto de regras bem
definidas para a solução de um problema de aprendizado. Existem diversificados tipos
de algoritmos de aprendizado específicos para os diferentes tipos de Redes Neurais, de
podese notar a diferença entre um e outro pela forma como os pesos são modificados.
É importante também ser mencionado à maneira como uma Rede Neural se relaciona
com o ambiente, nestes termos existe os seguintes paradigmas de aprendizado que
serão expostos a seguir.
· Aprendizado Supervisionado: usase um agente externo que por sua vez
indica à rede a resposta desejada para o padrão de entrada.
· AutoOrganização: também conhecido como aprendizado não –
supervisionado, quando não existe um agente externo indicando à resposta a
rede.
· Reforço: quando um agente externo avalia a resposta fornecida pela rede.
5.4 Perceptron Multicamadas (MLP)
O Perceptron Multi Camadas é uma extensão do Perceptron de camada única.
Esta arquitetura apresenta uma camada com unidades de entrada, conectada a uma ou
mais unidades intermediárias, chamadas camadas ocultas, e uma camada de unidades
de saída. Conforme figura abaixo melhor especificando.
Figura 4.0 : Camadas de uma Rede Neural.
Nas redes multicamadas, cada uma de suas camadas tem uma função. A de
saída recebe estímulos da camada intermediária e constrói o padrão que será a
resposta. As camadas intermediárias são as que extraem características, seus pesos
são a codificação de características apresentadas nos padrões de entrada, que
possibilitam a criação de sua própria representação mais complexa e detalhada.
5.4.1 Modelagem
A modelagem da arquitetura de uma Rede Perceptron MultiCamadas envolve a
escolha da quantidade de camadas e o número de unidades em cada camada.
O processamento de cada unidade é influenciado pelo processamento efetuado pelas
unidades das camadas. Cada camada desempenha um papel específico, conforme
descrição abaixo.
· Camada de Entrada: Receptora de estímulos;
· Primeira Camada Oculta: Cada unidade desta camada define uma reta no
espaço de decisão, refletindo características dos padrões apresentados;
· Segunda Camada Oculta: Combina as retas definidas pela camada anterior,
formando regiões convexas onde o número de lados é definido pela número de
unidades da camada anterior conectados a unidade desta camada;
· Camada de Saída: Combina as regiões formadas pela camada anterior,
definindo o espaço de saída da rede.
5.5 Algoritmo de Backpropagation
O aprendizado por backpropagation baseiase na propagação retrógrada do erro
para os níveis anteriores da rede, de acordo com o grau de participação que cada
neurônio teve no nível posterior. Para melhor ser compreendido este conceito devemos
ter em mente os seguintes conceitos expostos a seguir.
5.6 Desenvolvimento de Aplicações de Redes Neurais
Primeiramente é feita a coleta de dados relativos ao problema e sua separação
em um conjunto de treinamento e um conjunto de testes.
Normalmente, os dados coletados são separados em duas categorias: dados de
treinamento, que serão utilizados para o treinamento da rede e dados de teste, que
serão utilizados para verificar sua performance sob condições reais de utilização. Além
dessa divisão, podese usar também uma subdivisão do conjunto de treinamento,
criando um conjunto de validação, utilizado para verificar a eficiência da rede quanto a
sua capacidade de generalização durante o treinamento, e podendo ser empregado
como critério de parada do treinamento.
Depois de determinados estes conjuntos, eles são geralmente colocados em
ordem aleatória para prevenção de tendências associadas à ordem de apresentação
dos dados. Além disso, pode ser necessário préprocessar estes dados, através de
normalizações, escalonamentos e conversões de formato para tornálos mais
apropriados à sua utilização na rede.
6. RECONHECIMENTO DE VOZ
As redes neurais também são empregadas para o reconhecimento de padrões
de voz. Para que seja possível realizar o reconhecimento são seguidos quatro passos
básicos, que serão melhores abordados a seguir.
Primeiramente ocorre a digitalização da fala que se quer reconhecer. Um
segundo passo realiza a computação das características que representam o domínio
espectral contido na fala (regiões de alta energia em freqüências particulares). Esse
passo é computado a cada 10 ms, sendo que cada seção de 10 ms é chamada de
quadro (frame). O terceiro passo consiste do uso de uma rede neural para realizar a
classificação de um conjunto de características dentro das características fonéticas
básicas para cada frame. Por fim, o quarto passo aplica um método de busca para
associar as saídas da rede neural com padrões de palavras a fim de encontrar a
palavra com a qual as saídas da rede mais se assemelham. Em seguida a voz
digitalizada em formato de onda é convertida para uma representação de domínio
espectral. Nesse processo são tomadas medidas a fim de reduzir os efeitos de ruídos
na fala analisada. Para obter informações sobre o índice acústico é aplicada uma janela
de contexto (context window). Após, temse o quadro de interesse para o
processamento e ainda os 60, 30, 30 e 60 ms longe do quadro de interesse, dessa
forma é considerada a natureza dinâmica da fala. A saída da janela de contexto é
enviada a rede neural (26 características por quadro em 5 quadros, ou seja, 130
características). A saída da rede neural é a classificação de cada quadro de entrada,
medida em termos de probabilidade das categorias de fonemas básicos. Essas
medidas de probabilidade são dispostas em uma matriz de probabilidades de
categorias de fonemas básicos.
Figura 5.0: Passos para reconhecimento da voz “Redes Neurais Artificiais”.
Figura 6.0: Rede Neural empregada.
7. CONCLUSÃO
Ao término deste trabalho podemos tiras as seguintes conclusões: as Redes
Neurais Artificiais cada vez mais serão usadas para solucionar questões do nosso dia a
dia. É importante ressaltarmos duas características das Redes Neurais que as tornam
de certa forma algo “curioso”, o Algoritmo de Backpropagation, onde trabalha com a
minimização do erro, e o aprendizado de Redes Neurais que consiste na habilidade de
aprender em seu ambiente e com esse aprendizado melhorar de forma significativa seu
desempenho.
Disponível em: http://www.icmc.sc.usp.br/~andre/research/neural/MLP.htm
(consultado em 20 de março de 2007).
Disponível em: http://www.infowester.com/redesneurais.php (consultado em 20 de
março de 2007).
Disponível em: http://www.inf.ufrgs.br/procpar/disc/cmp135/trabs/992/Recon/trab2.html
(consultado em 20 de março de 2007).
Disponível em: http://www.din.uem.br/ia/neurais/ (consultado em 20 de março de
2007).
Disponível em: http://www.icmc.usp.br/~andre/research/neural/ (consultado em 23 de
março de 2007).
Disponível em:http://www.lncc.br/~labinfo/tutorialRN/frm4_perceptronMultiCamadas.htm
– (consultado em 20 de março de 2007).
Disponível em: http://www.inf.ufrgs.br/procpar/disc/cmp135/trabs/mccera/t1/padroes.pdf
(consultado em 23 de março de 2007).
MEDEIROS, Luciano Frontino de. Redes Neurais em Delphi. Florianópolis: Editora
Visual Books, 2003.