TCC - Thiago Kramer

Propaganda
UNIVERSIDADE DO PLANALTO CATARINENSE
DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CURSO DE SISTEMAS DE INFORMAÇÃO
(BACHARELADO)
THIAGO KRAMER FERTIG
AUTENTICAÇÃO DE USUÁRIOS ATRAVÉS DO RECONHECIMENTO
DE VOZ
LAGES (SC)
2011
THIAGO KRAMER FERTIG
AUTENTICAÇÃO DE USUÁRIOS ATRAVÉS DO RECONHECIMENTO
DE VOZ
Trabalho de Conclusão de Curso
submetido à Universidade do Planalto
Catarinense para obtenção dos créditos
de disciplina com nome equivalente no
curso de Sistemas de Informação Bacharelado.
Orientação: Prof(ª). Daiana Petry Leite,
M.Sc.
LAGES (SC)
2011
THIAGO KRAMER FERTIG
AUTENTICAÇÃO DE USUÁRIOS ATRAVÉS DO RECONHECIMENTO
DE VOZ
ESTE RELATÓRIO, DO TRABALHO
DE CONCLUSÃO DE CURSO, FOI
JULGADO
ADEQUADO
PARA
OBTENÇÃO DOS CRÉDITOS DA
DISCIPLINA DE TRABALHO DE
CONCLUSÃO DE CURSO, DO 8º.
SEMESTRE, OBRIGATÓRIA PARA
OBTENÇÃO DO TÍTULO DE:
BACHAREL EM
INFORMAÇÃO
SISTEMAS
DE
Lages (SC), 09 de Dezembro de 2011
Prof. Daiana Petry Leite, M.Sc.
Orientador
BANCA EXAMINADORA:
Prof. Sérgio Murilo Schütz, M.Sc.
UNIPLAC
Prof. Madalena Pereira da Silva, M.Sc.
UNIPLAC
Prof. Sabrina Bet Koerich, M.Sc.
Professor de TCC
Prof. Sabrina Bet Koerich, M.Sc.
Coordenador de Curso
LISTA DE ILUSTRAÇÕES
FIGURA 1 FIGURA 2 FIGURA 3 FIGURA 4 FIGURA 5 FIGURA 6 FIGURA 7 FIGURA 8 FIGURA 9 FIGURA 10 FIGURA 11 FIGURA 12 FIGURA 13 FIGURA 14 FIGURA 15 FIGURA 16 FIGURA 17 FIGURA 18 FIGURA 19 FIGURA 20 FIGURA 21 FIGURA 22 FIGURA 23 FIGURA 24 -
Imagem da composição de um neurônio. .............................................17
Modelo do neurônio artificial proposto por McCulloch. ......................19
Neurônio artificial. ................................................................................19
Superfície de erro quadrática para neurônios de função linear. ............24
Superfície de erro para neurônios com funções de ativação nãolineares. .................................................................................................24
Grafo arquitetural de um perceptron de múltiplas camadas. ................26
Representação geral do sistema ............................................................33
Modelagem do banco de dados. ............................................................36
Diagrama das classes Usuario e SinalVoz ............................................37
Diagrama das classes de interface do usuário.......................................38
Diagrama das classes de gerenciamento de camada da MLP ...............38
Diagrama das classes de treinamento e utilização da fft ......................39
Diagrama das classes de gerenciamento dos neurônios da rede MLP .40
Diagrama de classe central da MLP .....................................................41
Configuração de variáveis da rede. .......................................................44
Inserção de um áudio. ...........................................................................45
Método de treinamento. ........................................................................46
Método treinar.......................................................................................46
Inicialização de variáveis do backpropagation. ....................................46
Tela inicial do protótipo. .......................................................................47
Inicializa a captura. ...............................................................................48
Interrompendo a captura. ......................................................................48
Gráfico gerado da palavra casa. ............................................................49
Autenticação realizada. .........................................................................50
QUADRO 1 QUADRO 2 QUADRO 3 QUADRO 4 QUADRO 5 QUADRO 6 QUADRO 7 QUADRO 8 -
Requisito funcional – manter informações do usuário .......................31
Requisito funcional – treinamento do sinal. .......................................31
Requisito funcional – verificar compatibilidade. ................................32
Requisito funcional – realizar login ....................................................32
Requisitos suplementares ....................................................................33
Casos de uso ........................................................................................34
Caso de uso – gravar sinais de voz .....................................................34
Caso de uso – informar dados ao administrador .................................34
QUADRO 9 QUADRO 10 QUADRO 11 QUADRO 12 QUADRO 13 QUADRO 14 QUADRO 15 -
Caso de uso – cadastrar usuário ..........................................................35
Exceção caso de uso – cadastrar usuário ............................................35
Exceção caso de uso – cadastrar usuário ............................................35
Caso de uso – treinamento da rede MLP ............................................35
Exceção caso de uso – treinamento da rede MLP ..............................35
Exceção caso de uso – realizar autenticação ......................................36
Caso de uso – realizar autenticação ....................................................36
TABELA 1 TABELA 2 TABELA 3 TABELA 4 TABELA 5 TABELA 6 TABELA 7 TABELA 8 TABELA 9 TABELA 10 TABELA 11 TABELA 12 TABELA 13 TABELA 14 TABELA 15 -
Modelo da tabela de testes. ..................................................................52
Teste número um. .................................................................................52
Teste número dois. ...............................................................................53
Teste número três. ................................................................................53
Teste número quatro. ............................................................................53
Teste número cinco ..............................................................................53
Teste número seis. ................................................................................54
Teste número sete. ................................................................................54
Teste número oito. ................................................................................54
Teste número nove. ..............................................................................55
Teste número dez. ................................................................................55
Teste do método FFT número um. .......................................................56
Teste do método FFT número dois. .....................................................56
Teste com dupla camada intermediária número um. ...........................56
Teste com dupla camada intermediária número dois. ..........................56
LISTA DE ABREVIATURAS E SIGLAS
FFT
GMMs
HMMs
MCP
MFC
MFCCs
MLP
NCI
NNE
NNI
NNS
QTD
RAL
RNA
SGBD
SOM
WIMP
- Fast Fourrier Transform
- Gaussian Mixture Models
- Markov Models
- McCulloch e Pitts
- Mel-frequency Cepstrum
- Mel-frequency Cepstral Coefficients
- Multilayer Perceptron
- Número de camadas intermediárias
- Número de neurônios na camada de entrada
- Número de neurônios na camada intermediária
- Número de neurônios na camada de saída
- Quantidade de sinais de audio utilizados para cada locator
- Reconhecimento Automático de Locutor
- Rede Neurais Artificial
- Sistema Gerenciador de Banco de Dados
- Self-Organizing Maps
- Window, icon, menu and pointig devices
RESUMO
A grande demanda por uma dita portabilidade, onde cada vez mais tarefas rotineiras da
população são transferidas para a máquina, vem de encontro ao paradigma da
segurança de dados, pois todo dia tem-se buscado métodos de proteger a informação
que é vinculada aos softwares, considerando a precariedade dos métodos mais
utilizados para a autenticação de usuário, os quais são suscetíveis a diversos
problemas. Para buscar uma possível solução a esta adversidade é que o principal
objetivo deste trabalho é proposto, aplicar os conhecimentos de Redes Neurais
Artificiais no reconhecimento de locutor para desenvolver um protótipo que realize a
autenticação de usuários. A técnica utilizada no treinamento da rede e no
reconhecimento dos sinais de áudio foi a MLP (Perceptron de Múltiplas Camadas).
Durante a etapa de teste foram utilizadas três alternativas a rede, treinando-a com uma
simples camada intermediária, configurando a primeira amostragem de maneira
aleatória para posteriormente comparar resultados com outros treinamentos realizados
com parâmetros de configuração diferentes. A utilização de duas camadas
intermediárias também foi desconsiderada, já que nos testes realizados não se notou
melhora no resultado, posteriormente a técnica FFT (Transformada Rápida de Fourier)
foi adotada para tentar extrair algumas características nos sinais de voz. O modelo
proposto cumpriu com o seu objetivo principal que visava realizar a autenticação de
usuário corretamente através do reconhecimento de sua voz, porém a limitação da
linguagem java para trabalhar com valores double impediu que os resultados fossem
mais expressivos.
Palavras-chave:
Inteligência Artificial; MLP; reconhecimento de locutor; Redes Neurais Artificiais;
Autenticação de Usuário.
ABSTRACT
The great demand for a so-called portability, where more and more population`s
routine tasks are transferred to the machine, comes against of data security paradigm,
because every day people have sought methods to protect personal information that are
used in software. Given the user authentication methods`s precariousness, which are
susceptible to various problems. Searching for a possible solution to this adversity, the
project main objective is to apply all the knowledge of neural networks in speaker
recognition to develop a prototype that performs an user authentication. The technique
used on the network training and the audio signals recognition was the MLP
(multilayer perceptron). During the test phase we used three alternative ways of
network setup, training it with a simple intermediate layer, setting randomly the first
sample and compare later the results with other training conducted with different setup
parameters. The use of two hidden layers was also disregarded, as in the tests wasnt
noted improvement on the result, then the Fast Fourier Transform`s technique is
adopted to extract some speech signals features. The proposed model achieved its
main objective which was authenticate the user correctly by recognizing his voice, but
the limitation of Java language to work with double values does not allow the network
to achieve better results
Keywords:
Artificial Intelligence,
Authentication.
MLP,
Speaker Recognition,
Neural
Networks,
User
SUMÁRIO
1 INTRODUÇÃO ..........................................................................................................6
1.1 Apresentação .............................................................................................................6
1.2 Descrição do problema ..............................................................................................8
1.3 Justificativa ................................................................................................................8
1.4 Objetivo geral ............................................................................................................9
1.5 Objetivos específicos .................................................................................................9
1.6 Metodologia ...............................................................................................................9
2 RNAs e autenticação de usuários ............................................................................11
2.1 Introdução à autenticação de usuários .....................................................................11
2.1.1 Métodos de autenticação ................................................................................................. 12
2.1.2 Métodos de autenticação biométricos ............................................................................. 12
2.2 Introdução a RNA....................................................................................................13
2.2.1 Surgimento RNAs............................................................................................................. 14
2.2.2 Histórico .......................................................................................................................... 14
2.2.3 Redes biológicas .............................................................................................................. 16
2.2.4 Neurônios artificiais ........................................................................................................ 18
2.2.5 Principais arquiteturas .................................................................................................... 20
2.2.6 Aprendizado ..................................................................................................................... 21
2.2.7 Aprendizado supervisionado ........................................................................................... 22
2.2.8 Correções de erros .......................................................................................................... 23
2.2.9 Aprendizado não supervisionado .................................................................................... 25
2.2.10 Redes perceptron de múltiplas camadas ....................................................................... 25
2.2.11 Algoritmo de Back-Propagation .................................................................................... 25
2.2.12 Arquitetura MLP ........................................................................................................... 26
2.3 Outros trabalhos similares .......................................................................................28
2.4 Conclusão ................................................................................................................29
3 MODELAGEM DO PROTÓTIPO.........................................................................30
3.1 Sumário executivo ...................................................................................................30
3.2 Requisitos funcionais...............................................................................................30
3.3 Requisitos suplementares ........................................................................................32
3.4 Casos de uso ............................................................................................................33
3.5 Expansão de caso de uso .........................................................................................34
3.6 Modelagem banco de dados ....................................................................................36
3.7 Diagrama de classes do protótipo ............................................................................37
3.8 Conclusão ................................................................................................................41
4 IMPLEMENTAÇÃO DO PROTÓTIPO ...............................................................43
4.1 Captura do áudio......................................................................................................43
4.2 Conversão do sinal captado .....................................................................................43
4.3 Configurando a rede MLP .......................................................................................44
4.4 Treinamento da rede MLP .......................................................................................44
4.5 Treinamento em backpropagation ...........................................................................46
4.6 Apresentando a ferramenta ......................................................................................47
5 TESTES .....................................................................................................................51
5.1 Apresentação do modelo de testes ...........................................................................51
5.2 Primeira bateria de testes .........................................................................................52
5.3 Fast Fourier Transform (FFT) .................................................................................55
5.4 Testes com dupla camada intermediária..................................................................56
5.5 Conclusão ................................................................................................................56
6 CONSIDERAÇÕES FINAIS ...................................................................................58
REFERÊNCIAS BIBLIOGRÁFICAS ......................................................................60
APÊNDICES ................................................................................................................62
6
1 INTRODUÇÃO
1.1 Apresentação
Em consequência da constante evolução tecnológica, a sociedade utiliza-se
de ferramentas que cada vez mais auxiliam as pessoas a realizarem tarefas simples do
cotidiano. Proposto por Charles Babbage no século XVII, o computador é uma destas
ferramentas, se não a principal entre elas (PAULA, 2000).
De certa forma, cresce também de maneira semelhante a busca pela
confiabilidade da informação, não só computacionalmente falando, pois sempre foi do
interesse de muitos que certos dados importantes fossem mantidos em sigilo.
Antigamente usavam-se cofres para armazenamento de documentos importantes,
porém hoje em dia isso não é mais necessário.
A evolução tecnológica chegou a tal ponto em que não se fazem mais
necessários cofres para armazenar qualquer informação, podendo armazená-las
digitalmente na memória de um computador.
Nenhum método até hoje mostrou-se perfeitamente seguro, já que qualquer
maneira de armazenamento digital não está livre de “brechas” e “bugs”. Porém a
chance de falha vem diminuindo drasticamente durante os anos.
Alguns anos atrás, Dam (1997), já propunha que fosse adotada uma quarta
geração de interfaces, que ele chama de interfaces pós-WIMP (window, icon, menu
and pointig device), que basicamente são interfaces que utilizam-se da interação do
usuário (gestos e reconhecimento de voz).
Com a adoção deste novo paradigma de interfaces, começa a ser cogitada a
possibilidade de fazer com que a máquina reconheça seu usuário e para isso são
7
utilizados os métodos biométricos de reconhecimento humano, onde o usuário pode
ser reconhecido através de suas caracteríscticas únicas, como a impressão digital, sua
voz ou até mesmo a íris de seu olho.
A identificação do usuário através do reconhecimento de sua própria voz
passa a ser um recurso amplamente desenvolvido, mesmo que pouco disseminado na
sociedade, pois através da voz a agilidade e confiabilidade na busca e armazenamento
desses dados aumentam drasticamente.
Atualmente os métodos mais utilizados para o reconhecimento de locutor são
baseados na extração de coeficientes mel-ceptrais (MFCCs) 1das locuções, seguidos da
identificação do locutor através da Hidden Markov Models (HMMs)2 ou quantização
vetorial3. Esta preferência se deve à qualidade dos resultados obtidos, (MAFRA,
2002).
Neste trabalho é proposta uma metodologia para a implementação de um
sistema de Reconhecimento de Locutor, fazendo assim a distinção e reconhecimento
de diferentes usuários rapidamente e minimizando possíveis problemas em relação a
ambientes com ruídos e utilização de diferentes tipos de microfone.
O presente trabalho apresenta-se dividido em 6 capítulos. No capítulo 1 é
abordada a problemática do projeto, seus objetivos, sua justificativa e também a
metodologia empregada no mesmo. O capítulo 2 mostra as redes neurais artificiais e
também e técnicas de pré-processamento de voz. A modelagem do protótipo, assim
como a especificação das técnicas escolhidas são demostradas no capítulo 3. No
capítulo 4 é apresentado o sistema junto com sua implementação devidamente
detalhada no capítulo 5, apresenta-se o protótipo e os resultados obtidos. Por fim, as
considerações finais são registradas no capítulo 6.
1
Coeficientes que formam um mel-frequency cepstrum (MFC), que por sua vez pode ser considerado como uma
representação do espectro de potência à curto prazo de um som.
2
Modelo estatístico de Markov considerado como a mais simples rede bayesiana dinâmica. (Modelo gráfico
probabilístico que representa um conjunto de variáveis aleatórias e suas dependências.
3
Originalmente usado para compreção de dados, é uma técnica de quantização clássica que utiliza o
processamento do sinal permitindo a modelagem de funções probabilísticas através da distribuição dos vetores
do protótipo.
8
1.2 Descrição do problema
A crescente inserção no mercado de sistemas que armazenam informações
pessoais e dados bancários de usuários vem acompanhada de uma grande preocupação
que consiste na confidencialidade destas informações. Ao mesmo passo em que a
tecnologia ajuda-nos nas tarefas mais triviais do dia-a-dia, ela pode ser a causadora de
grandes problemas já que dados pessoais estarão contidos ali. Com isso
constantemente vê-se aumentar a demanda por softwares que priorizem a segurança da
informação.
1.3 Justificativa
Atualmente, a parte gráfica é crucial de um sistema computacional. Para que
ela atenda devidamente as necessidades do usuário, deve ser extremamente usual,
prática e visualmente interessante para assim ajudar na construção da imagem do
produto, o que auxilia tanto nas vendas quanto na redução de custos (BIAS e
MAYHEW, 2008).
Ao mesmo passo em que as interfaces vão se aprimorando, vê-se uma busca
incessante por praticidade e segurança nos dados veiculados no sistema.
Para tal, a identificação do usuário torna-se um problema comum a projetos
de engenharia. Várias formas de identificação pessoal são visíveis no cotidiano:
documentos, chaves, cartões, códigos e até mesmo senhas de acesso. Todas essas
maneiras citadas possuem algo em comum: a identificação da pessoa através de algo
que só ela possua ou saiba, fazendo assim, que a mesma tenha que carregar objetos ou
decorar códigos (MAFRA, 2002).
Toda essa dependência gerada em torno do sigilo da informação acarreta em
certos problemas, pois senhas podem ser esquecidas, assim como objetos podem ser
perdidos ou até mesmo burlados.
É devido a esses problemas e a essas falhas que a utilização de métodos de
leitura biométricos, para reconhecimento do usuário, é cada vez mais constante. O
9
reconhecimento de características únicas das pessoas como: impressão digital, voz, íris
do olho, entre outras, parece ser uma maneira de se evitar fraudes e conseqüentemente
o uso incorreto das informações sigilosas armazenadas no sistema.
Segundo Mafra (2002), dentre os métodos biométricos de identificação, a
voz recebe bastante atenção dos pesquisadores da área. Esta atenção se deve
principalmente à facilidade com que é produzida, capturada, processada e transmitida
no estado tecnológico atual.
1.4 Objetivo geral
Desenvolver uma aplicação baseada em redes neurais artificiais, para realizar
a autenticação de usuários pelo reconhecimento de voz.
1.5 Objetivos específicos
a) Apresentar a RNA e alguns métodos utilizados na autenticação de
usuários;
b) Identificar um modelo de rede neural que solucione o problema proposto
no projeto;
c) Desenvolver um protótipo para autenticação de usuários utilizando a
RNA identificada.
1.6 Metodologia
Este trabalho foi iniciado com o desenvolvimento do projeto, que consiste na
redação do primeiro capítulo.
A próxima etapa foi o desenvolvimento do capítulo 2 – O Reconhecimento
de Locutor (padrões para identificação de locutor), que engloba o levantamento
bibliográfico necessário para estudar e compreender o processamento de voz e as redes
neurais artificiais. Nesta etapa foi realizado o estudo de trabalhos relacionados,
10
objetivando o conhecimento de o que já foi feito na área, para que assim, possa-se
evitar a escolha de metodologias comprovadamente ineficazes para este propósito.
Após o estudo das metodologias existentes, foram definidas algumas para
usar no desenvolvimento do projeto, tais como linguagem de programação que será
utilizada para o desenvolvimento do protótipo, técnica de pré-processamento de voz,
Rede Neural mais eficaz, entre outras.
A partir das especificações do protótipo foi desenvolvido o capítulo três, que
consiste na modelagem e implementação do Protótipo.
No capítulo quatro foi feita a apresentação do Protótipo, onde foi descrito o
processo de implementação realizado. Com a conclusão do capítulo quatro, foi
iniciada a etapa de testes, prevista no capítulo cinco, a qual contém a descrição de todo
o processo de testes e resultados obtidos. Ao final (capítulo seis) são colocadas as
considerações finais, incluindo sugestões para futuros trabalhos.
11
2 RNAs e autenticação de usuários
Este capítulo aborda um estudo feito em volta das Redes Neurais Artificiais
(RNA), com enfoque na técnica MLP (Multi-Layer Perceptron) e também sobre
segurança de dados de autenticação e técnicas de autenticação de usuários. Foi feito
também um estudo em cima do reconhecimento de palavras faladas e trabalhos
realizados na área.
2.1 Introdução à autenticação de usuários
Um dos grandes problemas que se tem hoje no quesito de segurança de
dados é relativo à autenticação de usuários. Para que se entenda o conceito da
autenticação de usuários, primeiramente deve-se entender o significado da expressão.
De forma resumida, autenticação de usuário significa verificar se o usuário é autêntico,
legítimo, se ele é realmente quem diz ser, ou seja, realizar um simples “login” é
autenticar um usuário.
A autenticação de usuário feita da maneira correta interessa diretamente não
somente o usuário, mas também ao criador do programa. Qualquer sistema
proprietário atualmente faz uso de uma ferramenta de autenticação de usuário, por
mais simples que seja, pois é necessário que o cliente realize a autenticação para que
seja comprovado que a cópia utilizada é original, obtendo assim um controle contra a
pirataria do sistema.
12
2.1.1 Métodos de autenticação
Em grande parte dos sistemas a autenticidade do usuário é verificada através
de uma seqüência de caracteres alfanuméricos (senhas), que devem ser memorizada
pelo usuário e depende do sigilo do mesmo para que a autenticação não seja burlada.
(HEINEN, 2004).
Outro método comum para autenticar um usuário é a utilização de objetos
que contenham características únicas como: chaves, cartões com leitores magnéticos,
entre outros. Porém este caso também não tem um nível de segurança elevado,
expondo assim os dados confidenciais do usuário.
Os maiores problemas com relação a esses métodos descritos acima é a
facilidade com que podem ser burlados, pois senhas podem ser descobertas ou até
mesmo esquecidas e os objetos podem ser perdidos, comprometendo assim todo o
sistema, que depende diretamente da confidencialidade dessas informações.
Segundo Petry et al (2004), existem alguns meios de reforçar a segurança
dos dados, garantindo assim um crescimento na taxa de confiabilidade de um sistema.
O uso da criptografia em dados importantes como senhas, informações bancárias e
pessoais possibilita uma troca/transação segura de dados; a criação de senhas
complexas também auxilia na proteção dessas informações, evitando que sejam
facilmente descobertas.
2.1.2 Métodos de autenticação biométricos
Devido aos problemas citados no parágrafo anterior, técnicas de autenticação
baseadas em características biométricas físicas, como impressões digitais, voz, exames
de retina e da palma das mãos vêm sendo utilizadas para se garantir a autenticidade
dos usuários.
Essas medidas biométricas atreladas ao usuário para sua autenticação surgem
como uma maneira alternativa de diminuir as chances de erro. “A análise biométrica
sem intervenção humana (automática) pode ser utilizada junto com os métodos já
empregados ou até mesmo substituindo-os” (PETRY et al, 2004).
13
Ainda segundo Petry et al, (2004), a utilização da voz como característica
biométrica marcante para a autenticação, também conhecida como reconhecimento
automático de locutor (RAL), possui algumas vantagens notáveis quando comparado
aos outros métodos de reconhecimento biométrico, tais como:
• Hardware de baixo custo;
• Facilidade de captura da voz;
• Praticidade na aquisição do sinal (método pouco intrusivo);
• Inexistência de treinamento prévio.
Mesmo apresentando essas vantagens, o RAL possui problemas técnicos que
precisam ser contornados para que se tenha um resultado adequado. A adequação do
ambiente de captura (ruído externos), qualidade de captação do dispositivo utilizado
(microfone), mudanças de estado emocional do usuário (entonação) e também sinais
de patologia do aparelho vocal do usuário (usuário rouco, gripado, etc.).
2.2 Introdução a RNA
A grande diferença entre o cérebro humano e a máquina, pode ser descrita
pela capacidade cognitiva que o ser humano tem de detectar informações através da
fala, tais como, sentimento, locutor, estado emocional entre outros. Até o momento a
máquina consegue contornar esse problema através de periféricos, que não são a
melhor solução no quesito velocidade (LOUZADA, 2010).
RNAs são sistemas paralelos distribuídos compostos por unidades de
processamento simples (neurônios artificiais) que calculam determinadas funções
matemáticas (normalmente não-lineares). Tais unidades são dispostas em uma ou mais
camadas e integradas por um grande número de conexões geralmente unidirecionais.
Na maioria dos modelos essas conexões estão associadas a pesos, os quais armazenam
o conhecimento adquirido pelo modelo e servem para ponderar a entrada recebida por
cada neurônio da rede (BRAGA, 2007).
14
2.2.1 Surgimento RNAs
As Redes Neurais Artificiais (RNA) tiveram seus primeiros estudos por volta
do ano de 1943, porém foram somente com o avanço da computação que em 1980
foram retomados os conceitos de RNA e é por isso que essa década de 80 foi marcada
pelo “ressurgimento” dessa área hoje amplamente difundida (BRAGA, 2007).
Segundo Braga (2007) as RNAs são conhecidas também como conexionismo
ou então sistemas de processamento paralelo e distribuído. Resumidamente é uma
forma de computação inusitada (não-algoritmica) e tem como objetivo simular a
estrutura neural humana, através de sistemas paralelos distribuídos, constituídos por
neurônios artificiais os quais são encarregados de calcular certas funções matemáticas
em sua maioria não lineares. Esses neurônios artificiais fazem parte de uma rede onde
uma cadeia de conexões de sentido único interliga-os formando assim a chamada rede
neural artificial, cada parte integrante dessa rede (neurônio) recebe um peso através
das conexões equivalentes ao mesmo, possibilitando assim o armazenamento das
informações pertinentes.
O funcionamento padrão de uma rede neural passa por uma série de fases,
iniciando pela parte da aprendizagem, onde um montante de dados é apresentado à
rede que tem como objetivo retirar o máximo de informações úteis que posteriormente
serão utilizadas na resolução do problema. Esse “sistema” disposto na solução de
problemas utilizando uma RNA tem como diferencial o modo como a rede é treinada,
na fase de aprendizagem, e como a mesma interpreta e apresenta as informações
submetidas a ela. Outro fator importante na utilização de uma RNA é o modo como a
informação é analisada, permitindo que a mesma apresente respostas às questões que
não estavam explícitas nas informações de entrada (BRAGA, 2007).
2.2.2 Histórico
No início da década de 40, mais precisamente no ano de 1943 surgiu o
primeiro modelo artificial de um neurônio biológico, obra conjunta de Warren
McCulloch e Walter Pitts, entitulada “A Logical Calculus of the Ideas Immament in
15
Nervous Activity” onde é feito um grande debate sobre as redes lógicas de neurônios
artificiais, os quais foram chamados de neurônios de MCP, devido ao nome de seus
criadores McCulloch e Pitts. A obra de ambos os pesquisadores focava na descrição do
modelo de um neurônio artificial e qual a sua real capacidade computacional
(MCCULLOCH 19434, apud BRAGA 2007).
Somente alguns anos depois da pesquisa de McCulloch e Pitts é que se
voltou a estudar sobre as redes biológicas e as possíveis redes neurais representadas.
Donald Hebb em 1949 mostrou como a variação na fase de aprendizagem das redes
neurais pode ser resultante da alteração dos pesos de entrada dos neurônios. A teoria
de Hebb ficou conhecida como “regra de Hebb” e se baseia na variação das ligações
sinápticas dos neurônios biológicos excitados e como elas influenciam diretamente no
aprendizado do mesmo. Tendo uma interpretação puramente matemática a regra de
Hebb é utilizada atualmente em muitos algoritmos de aprendizagem (BRAGA, 2007).
Já em 1958 Frank Rosenblatt utilizou-se da RNA com neurônios MCP e
provou que se utilizadas sinapses ajustáveis, seguindo a regra de Hebb, a RNA
resultante poderia ser treinada a identificar certos tipos de padrões dentro das
informações de entrada, este modelo ficou conhecido como perceptron. O perceptron
é basicamente constituído por três camadas: a primeira é a camada de entrada, ela é
fixa e fica responsável pela recepção dos estímulos, a segunda é a camada oculta ou
camada de transição, ela recebe os impulsos da primeira camada através de sinapses
(ligações) que podem ter seus pesos variados, e a terceira é a camada de saída, a qual
combina as informações recebidas pela camada anterior e define o espaço de saída da
rede (BRAGA, 2007).
Após pesquisas aprofundadas, em 1969, Minsky e Papert perceberam
algumas tarefas que o perceptron de uma única camada não era capaz de executar,
como detecção de paridade, conectividade e simetria que são problemas nãolinearmente separáveis, que são exemplos de “problemas difíceis de aprender” (hard
learning problems) (BRAGA, 2007).
Em meados de 1970 devido aos resultados obtidos com o trabalho de Minsky
4
MCCULLOCH, W. S.; PITS, W. A logical calculus of the ideas immanent in nervous activity. Bull. Math.
Biophysics, 5:115-133.
16
e Papert, a abordagem até então conexionista foi deixada de lado por grande parte dos
pesquisadores, apesar de alguns nomes como Igor Aleksander, Kunihiko Fukushima e
Teuvo Konohen darem continuidade a área (BRAGA, 2007).
Em 1982 John Hopfield mostrou uma relação entre redes recorrentes autoassociativas e sistemas físicos, abrindo caminho para a utilização de correntes da física
no estudo do modelo. Também foi constatado que a visão de Minsky e Papert sobre a
abordagem conexionista era falha e as RNAs podem sim resolver os “hard learning
problems”, essa análise só foi possível através da análise do algoritmo de backpropagation (BRAGA, 2007).
A disseminação do interesse por RNAs só teve seu ápice a partir de 1980,
quando a comunidade internacional despertou amplo fascínio sobre o assunto, Tal
interesse cresce desde então, e tudo isso se deve a dois principais fatores: inicialmente
o avanço da tecnologia em geral, principalmente a parte que abrange a
microeletrônica, a qual permitiu a criação física de modelos de neurônios e suas
sinapses (conexões), seguido do sucesso da escola de IA simbólica na solução de
determinados tipos de problemas (BRAGA, 2007).
2.2.3 Redes biológicas
Sabe-se que o cérebro humano possui cerca de 1011 neurônios e que cada um
desses se comunica com milhares de outros neurônios de uma forma continua e
paralela. É ai que fica a base de estudo das RNA, as quais tentam simular a estrutura
organizacional de uma rede biológica (topologia, conexões e comportamento). O
conjunto de neurônios biológicos é parte integrante do cérebro humano, compondo a
parte responsável por armazenar informações (memória), interpretá-las e até mesmo
reconhecer padrões não explícitos, tudo isso por experiência (KOVÁCS, 2006).
Segundo Kovács (2006) a composição de um neurônio biológico, figura 1
em suma é baseada em três partes principais (seções), são elas: o corpo celular, que
mede apenas alguns milésimos de milímetros e é responsável pelo processamento da
informação e a partir daí gera novos impulsos que são transmitidos ao axônio e então
aos dentritos, para assim chegar ao neurônio seguinte, o axônio compõe grande parte
17
de um neurônio e geralmente possuem calibre uniforme, por fim existem também os
dentritos, que apresentam poucos milímetros de comprimento e tem como única
função receber ou transmitir os impulsos nervosos para o corpo celular.
A área situada entre os dentritos e a terminação axônica de outro neurônio é
conhecida como sinapse, essa área sináptica é responsável pela união funcional de
todos os neurônios, formando assim a rede biológica, funcionam também como
controles de transmissão de impulsos nervosos dentre os neurônios (HAYKIN, 2001).
FIGURA 1 - Imagem da composição de um neurônio.
Fonte: BRAGA, 2000.
Os impulsos gerados pelo corpo celular pré-sináptico são transmitidos para o
neurônio pós-sináptico através dos dentritos, o corpo do neuronio pós-sinaptico analisa
e compara a carga gerada pelo impulso e por todos os outros impulsos recebidos pelo
corpo celular, caso o sinal de excitação do neurônio seja suficientemente alto a célula é
ativada e propaga um impulso para os próximos neurônios. Todo esse sistema
conjunto dos neurônios é o principal responsável pelas funções realizadas pelo nosso
cérebro (HAYKIN, 2001).
A comunicação entre os neurônios funciona de forma continua, onde o corpo
celular recebe impulsos dos neurônios pré-sinápticos e os combina, caso essa carga
combinada extrapole o limiar de excitação da célula, a mesma produz um impulso
elétrico que é transmitido até as áreas sinápticas através do axônio, alcançando assim o
próximo neurônio, que executa a mesma função de forma continua. Esse fenômeno
deve-se ao fato de existirem diferentes níveis de potássio e sódio (interno e externo a
célula respectivamente), e dessa forma sempre será mantida uma diferença de
18
potencial entre as duas partes. Quando a soma recebe os sinais elétricos dos neurônios
pré-sinápticos e o limiar de excitação é atingido o fluxo de sódio e potássio da célula é
invertido, é ai que a parte interna do neurônio se torna positiva em relação ao exterior,
essa mudança súbita de polaridade é responsável pela propagação do sinal elétrico até
o axônio, ao chegar na parte terminal do axônio os canais são abertos, liberando assim
as moléculas neurotransmissoras até a clave sináptica, o tipo de molécula
neurotransmissora é o que ira determinar a polarização do neurônio pós-sináptico,
podendo tanto inibir quanto excitar (BRAGA, 2007 e KOVACS, 2006).
Logo após ter disparado um impulso elétrico o axônio entra em estado de
repouso, portanto ele leva um tempo até que consiga reestabilizar a polaridade da
célula. Em suma o neurônio biológico funciona através de uma serie de entradas
(impulsos), tanto excitatorios quanto inibitórios e quando toda essa carga acumulada
no corpo celular ultrapassa seu limite de limiar um impulso é gerado para os neurônios
subseqüentes (BRAGA, 2007 e KOVACS, 2006).
2.2.4 Neurônios artificiais
A proposta de um neurônio artificial MCP feita por McCulloch e Pitts
representado aqui na figura 2 é baseada na formação da cadeia de neurônios
biológicos. Em sua composição podemos identificar várias ramificações de entrada
que representam os dentritos, o núcleo, onde é realizada a soma dos pesos recebidos
através das ramificações e faz-se o calculo da função de ativação. Cada terminal de
entrada possui um peso “w” que substitui a carga da sinapse e por fim existe também
uma única saída a qual assume o papel do axônio e transmite a nova carga para os
neurônios artificiais subseqüentes, cargas essas que podem ser tanto inibitórias quanto
excitatórias (negativa ou positiva). A descrição desse modelo está retratada na figura 3
(REZENDE, 2004 e KOVACS, 2006).
19
FIGURA 2 - Modelo do neurônio artificial proposto por McCulloch.
Fonte: PAULA, 2000.
FIGURA 3 - Neurônio artificial.
Fonte: TAFNER, 1998.
Em um neurônio biológico, todos os sinais pré-sinápticos são acumulados
dentro do corpo celular e o mesmo só dispara quando atinge seu limiar de ativação.
Algo similar acontece em um modelo MCP, onde todos os sinais de entrada são
somados dentro neurônio (soma ponderada), feito isso decide-se se o neurônio deve ou
não disparar um novo sinal baseado no limiar de ativação (threshold), que quando for
20
ultrapassado libera o impulso para o neurônio pós-sináptico (REZENDE, 2004 e
KOVACS 2006).
2.2.5 Principais arquiteturas
Os neurônios artificiais se analisados singularmente, possuem uma
capacidade computacional extremamente limitada. A força computacional desses
neurônios está justamente na rede neural formada por suas interconexões, esta rede
sim é capaz de resolver problemas de alta complexidade (BRAGA, 2007).
Ainda segundo Braga (2007) e Haykin (2001) indiferente a função de
ativação utilizada, deve-se também escolher cautelosamente qual arquitetura será
utilizada, pois cada tipo de arquitetura de rede serve a diferentes problemas. Dentre as
principais arquiteturas de RNA encontramos:
a) Rede feedfoward de uma única camada;
b) Rede feedfoward de duas camadas;
c) Rede com recorrência entre saídas e camada intermediária;
d) Rede com recorrência auto-associativa.
Primeiramente (representado em A) temos uma RNA de camada única que é
alimentada para frente (feedfoward) e são ideais para resolver problemas de funções
acopladas e multivalorados, porém existem certos empecilhos devido a sua única
camada. A seguir em B temos que é uma melhoria da rede anterior, já que agora a rede
possui uma segunda camada, permitindo assim uma aproximação das funções
contínuas, porém ainda há uma persistência em sua arquitetura estática, a qual
inviabiliza a recorrência na rede (BRAGA, 2007 e HAYKIN, 2001).
Diferente das anteriores, as estruturas C e D possuem recorrência entre os
neurônios. Em C, o valor resultante depende somente dos valores de chegada, mas
também de seu valor atual já que as ligações entre camadas de níveis diferentes estão
presentes, portanto essa arquitetura é utilizada na resolução de problemas temporais. Já
em D temos uma estrutura típica de uma rede de Hopfield, já que há apenas uma
camada de neurônios e entradas externas são inexistentes, pois cada neurônio é
conectado diretamente a entrada de todos os outros presentes, resultando em uma
21
operação baseada na dinâmica da mudança de estados dos mesmos (BRAGA, 2007 e
HAYKIN, 2001).
De acordo com Braga (2007) basicamente a escolha da estrutura de RNA
mais adequada para cada situação depende de uma série de fatores, onde podemos
destacar:
• Complexidade do problema;
• Dimensionalidade do espaço de entrada;
• Características dinâmicas ou estáticas;
• Conhecimento sobre o problema;
• Representatividade dos dados.
2.2.6 Aprendizado
Uma parte vital na construção de uma RNA é a etapa de aprendizado, na
qual a rede é submetida a uma carga de informações que tem por objetivo final treinar
e capacitar a rede a realizar as tarefas que lhe foram incumbidas. Diferente da
abordagem conexionista, não se treina uma RNA através de regras explícitas, o
processo de aprendizado consiste em uma série de ajustes de alguns parâmetros
importantes como o peso das conexões que ao final do processo irá armazenar todo
conhecimento que a rede adquiriu. Segundo Mendel 19705, apud Braga 2007, o
aprendizado de uma rede pode ser considerado da seguinte forma:
“Aprendizado é o processo pelo qual os parâmetros livres de uma rede
neural são ajustados por meio de uma forma continuada de estímulo pelo
ambiente externo, sendo-o tipo específico de aprendizado definido pela
maneira particular como ocorrem os ajustes dos parâmetros livres.”
Um ponto importante de se enfatizar é o conceito de aprendizado, que está
diretamente relacionado com a medida na qual melhora o desempenho da rede em
questão, tudo seguindo critérios antes estabelecidos. Existem algoritmos na área de
RNA que buscam calcular a taxa de erro quadrático médio e quando aplicados a uma
5
Mendel, J.M., and R. W. McLaren, 1970. “Reinforcement-learning control and pattern recognition systems,” in
Adaptive, Learning, and Pattern Recognition Systems: Theory and Applications, vol. 66, J.M. Mendel and K.S.
Fu, eds., pp.287-318, New York: Academic Press
22
rede, a tendência é que a incidência de erros diminua a cada ciclo de treinamento
(HAYKIN, 2001).
A fórmula genérica usada para calcular a taxa de erro é apresentada na
equação 1.0, obtida através da variação de resultado do pulso da rede em relação ao
resultado desejado, a carga faz diversas iterações na rede (vai e volta) e a cada ciclo
desses um valor de variação é obtido, representado na fórmula por ” ∆w ” em função do
tempo “t” que somado ao valor do peso de entrada “w(t)” resultará em um novo valor,
que representará o peso “w” na próxima iteração da rede (t+1). Os algoritmos de
aprendizado normalmente diferem somente quanto a maneira como se calcula a taxa
variação do peso( ∆w ), dentre essas maneiras, vários algoritmos podem ser usados,
sendo eles classificados como aprendizado supervisionado e aprendizado nãosupervisionado (BRAGA, 2007).
w(t + 1) = w(t ) + ∆w(t )
(1.0)
2.2.7 Aprendizado supervisionado
No caso do aprendizado supervisionado, a rede neural aplicada é dependente
de um supervisor (professor), que tem por objetivo lançar os dados de entrada
adaptados através da comparação entre a saída calculada pela rede e a saída desejada.
Já que a resposta gerada pela rede é resultante de um calculo baseado nos pesos de
entrada, o “professor” deve ajustar os novos valores de entrada de forma a aprimorar a
rede a cada novo ciclo, até chegar ao valor mais próximo possível do desejável. A
aproximação desse valor é incremental já que são feitos de pequenas modificações a
cada iteração (REZENDE, 2005 e HAYKIN, 2001).
Os modelos de aprendizado supervisionado mais conhecidos são: regra delta
e sua fórmula adaptada para redes de múltiplas camadas, o algoritmo backpropagation. Ambos podem ser implementados de duas maneiras distintas: off-line e
on-line. (BRAGA, 2007).
Durante o treinamento off-line os dados obtidos através da resposta da rede
são armazenados, portanto não mudam, caso seja necessário um novo treinamento
esses dados não são sobrepostos, é iniciado um novo treinamento levando em conta os
23
dados obtidos anteriormente, mantendo assim a integridade dos dados em ambos os
casos. Já no aprendizado on-line nada é mantido e a rede vive sobre constantes
modificações (BRAGA, 2007).
2.2.8 Correções de erros
O algoritmo baseado na correção de erros é uma base de tudo que foi
descrito anteriormente, um método supervisionado que é alimentado através da taxa de
erro calculada junto á variação de valores da rede (REZENDE, 2005).
As equações de ajuste presentes nesse método são obtidas a partir da
minimização da soma dos erros quadráticos das saídas e através dessas equações é que
obtemos o erro mínimo global para cada conjunto de dados. Diretamente ligados ao
tipo de unidade de processamento utilizado (lineares ou não-lineares), podemos obter
formas diferentes de superfície de erros (REZENDE 2005 e HAYKIN 2001).
• “No caso de a rede ser formada inteiramente por unidades de
processamento lineares a superfície de erro é dada por uma função
quadrática dos pesos da rede, podendo a mesma possuir um único
mínimo, como mostrado na figura 4” (BRAGA, 2007);
•
“Para o caso de a rede ser formada por unidades de processamento nãolineares, a superfície de erro poderá ter uma forma irregular e vários
mínimos locais, além do mínimo global. A figura 5 é um exemplo de
superfície de erro irregular formada como conseqüência da utilização de
funções de ativação não-lineares” (BRAGA, 2007);
24
FIGURA 4 - Superfície de erro quadrática para neurônios de função linear.
Fonte: BRAGA, 2007.
FIGURA 5 - Superfície de erro para neurônios com funções de ativação não-lineares.
Fonte: BRAGA, 2007.
Em ambos os casos, alcançar o mínimo global é o objetivo principal dos dois
métodos de aprendizado, que são baseados no ponto arbitrário da superfície de erro.
25
No caso da função de ativação linear, essa é uma tarefa consideravelmente fácil de
atingir, já que se trata de uma função quadrática sendo assim o mínimo global é
facilmente atingido. Já no segundo caso, onde a função de ativação é não-regular,
existem várias inconsistências na superfície de erro, tornando-as irregulares, fazendo a
rede alcançar um mínimo local inadequado (BRAGA, 2007).
2.2.9 Aprendizado não supervisionado
No esquema de aprendizado não supervisionado como o próprio nome
sugere não se faz necessária a presença de um supervisor (professor) para acompanhar
todo o processo. Neste caso o aprendizado se dá por uma seqüência de valores de
entrada introduzidas a rede, o papel da rede é identificar padrões e similaridades dentre
os dados coletados, e a existência dos mesmos torna o aprendizado possível. Esse tipo
de aprendizado é aplicado ao reconhecimento de padrões de dados estatísticos de
entrada relevantes como, por exemplo, em descoberta de classes, agrupamento de
dados, datamining, entre outros. Os modelos mais conhecidos são os mapas autoorganizáveis de Kohonen e os modelos ART (BRAGA, 2007 e BARRETO, 2002).
2.2.10 Redes perceptron de múltiplas camadas
A técnica de treinamento de redes neurais de uma única camada por meio de
aprendizado supervisionado e correção de erros, realizado através da taxa de diferença
entre a saída obtida e a saída desejada, porém para redes de múltiplas camadas, esse
método pode ser aplicado somente às camadas de saída, pois as camadas
intermediárias não possuem uma variável de comparação (saída desejada). Uma
solução para esse problema surgiu com o algoritmo de “back-propagation”,
resolvendo assim o problema do treinamento das MLPs (HAYKIN 2001).
2.2.11 Algoritmo de Back-Propagation
A idéia principal por trás do algoritmo de retropropagação é a estimativa de
erro das camadas intermediarias de uma MLP, este erro pode ser calculado através de
26
estimativas de efeito que elas causam na camada de saída. Uma vez obtido o erro da
saída da rede, é lançado uma carga de informações de volta para a camada
intermediária, a qual é ajustada de acordo com os valores das conexões entre camadas.
Essa taxa de erro reajustada é chamada de gradiente descendente. Estas seqüências de
camadas intermediariam da MLP tem por objetivo transformar de maneira sucessiva o
problema em uma representação tratável para a camada de saída da rede (HAYKIN,
2001).
2.2.12 Arquitetura MLP
As redes MLP, por possuírem uma camada intermediária, apresentam um
poder computacional superior às redes de uma única camada. A qualidade de
aproximação obtida por uma MLP está diretamente relacionada com a complexidade
da rede em questão, ou seja, quanto mais neurônios forem utilizados nas camadas
intermediárias maior será a capacidade de resolução da rede. A figura 6 apresenta um
modelo típico de MLP (HAYKIN, 2001 e BRAGA, 2007).
FIGURA 6 - Grafo arquitetural de um perceptron de múltiplas camadas.
Fonte: HAYKIN, 2001.
27
2.2.12.1 Número de camadas
Conforme foi descrito anteriormente, todo processo que ocorre nos neurônios
de uma camada X é calculado pela combinação dos processamentos realizados por
neurônios de camadas anteriores, conectados diretamente a ele. A cada camada que se
segue em direção a saída, a dificuldade das funções utilizadas aumenta e a divisão do
espaço de decisão torna-se mais complexa (BRAGA, 2007).
A partir de um grande número de unidades intermediárias, qualquer conjunto
de padrões de entrada pode ser representado, sendo que segundo Cybenko 19896, apud
Braga 2007, “uma camada intermediária é suficiente para aproximar qualquer função
continua, e duas camadas são suficientes para aproximar qualquer função”.
Na prática, a utilização de uma única camada intermediária é suficiente para
resolver a grande maioria dos problemas, e a utilização de camadas adicionais se faz
necessário somente quando a função a ser aproximada possuir descontinuidades. Dessa
forma, a utilização de camadas desnecessárias só atrapalhará o desempenho da rede
(BRAGA, 2007).
2.2.12.2 Função de ativação
Uma vez determinado a utilização de uma MLP, é necessário também que se
resolva o número de neurônios e as funções de ativação de cada camada. Comumente
utilizam-se funções de ativação lineares para as camadas de saída e sigmoidais para as
camadas intermediarias (HAYKIN, 2001).
2.2.12.3 Treinamento de redes MLP
O treinamento mais utilizado em redes MLP é o “back-propagation”, que já
foi anteriormente descrito. Tal algoritmo e dividido em duas etapas: “foward” e
“backward”.
6
Cybenko, G. (1989). Approximations by superpositions of sigmoidal functions. Math. Control, Signals,
Systems, 2:303--314.
28
Durante a etapa foward, as entradas da rede são apresentadas aos neurônios
da primeira camada escondida (intermediária), onde serão calculados os valores de
saída da primeira camada, que será enviada a próxima camada intermediária (caso
exista) (BRAGA, 2007).
Ainda segundo Braga (2007) os valores de saída de primeira camada servirão
de variáveis de calculo da saída da camada subseqüente, a qual após ter feito o calculo
envia o impulso para a próxima camada e assim sucessivamente ate que a camada de
saída seja atingida.
Dentro da camada de saída, os valores recebidos são analisados e
comparados com a saída desejada para a carga de entrada em questão e a partir desta
comparação a taxa de erro correspondendo e calculada (HAYKIN, 2001).
Já na etapa backward a taxa de erro obtida na camada de saída é utilizada
para ajustar os pesos da camada anterior, os pesos de conexão entre as camadas são
multiplicados pela taxa de erro, descobrindo assim um valor de erro estimado para
cada neurônio da camada intermediaria que representa a medida de influência do
neurônio atual em relação ao seu superior. Ao ajustar os pesos o sinal se propaga para
a camada anterior a ele, na qual o mesmo processo é realizado sucessivamente até que
a primeira camada escondida seja atingida e todos os neurônios sejam ajustados com
base no vetor de entrada e na saída desejada (BRAGA, 2007 e HAYKIN, 2001).
A mudança nos pesos realizada pelo algoritmo de back-propagation é
utilizada no treinamento de redes Adaline que é baseada na regra delta proposta por
Windrow e Hoff.
2.3 Outros trabalhos similares
Após detalhado de maneira básica o funcionamento de redes neurais,
enfatizando a implementação de uma MLP, foi realizado também um estudo de outros
trabalhos na área do reconhecimento de palavras faladas e seus locutores. Resultantes
dessa pesquisa foram consideradas as redes MLP e Kohonen ou SOM (SelfOrganizing Maps).
29
O trabalho baseado na rede de Kohonen foi desenvolvido por Petrônio de
Luna Braga (BRAGA, 2006), cujo objetivo principal era construir um sistema que
trabalhe no reconhecimento de fala baseado na fonética, ou seja, dada uma frase o
programa seria capaz de reconhecer os fonemas contidos no mesmo. O protótipo de
reconhecimento de fonemas teve uma taxa de acerto de 68%.
Já na pesquisa desenvolvida por Ariane Luiza Fossatti Zancan (ZANCAN,
2010), foi desenvolvida em cima da linguagem de programação paschal, uma espécie
de “quiz” a qual aceita somente respostas positivas e negativas, “sim” ou “não”.
Obteve-se um resultado de 90% de acerto.
Outro protótipo implementado com a MLP e de autoria de Elton Vitor
Seemann (SEEMANN, 2006), é utilizado no reconhecimento de palavras através do
processamento digital dos sinais de áudio discreto e classificação por uma MLP. O
mesmo teve uma taxa de acerto de aproximadamente 95%.
2.4 Conclusão
Neste capítulo foi apresentada uma explicação geral sobre o funcionamento
das redes neurais, tanto biológicas quanto artificiais, foi colocado também um breve
histórico sobre o desenvolvimento da RNA ao longo dos anos, assim como a
explicação mais aprofundada da MLP, que foi o método escolhido para o
desenvolvimento do protótipo, escolha essa baseada nos estudos realizados sobre
outros trabalhos feitos na área do reconhecimento de palavras faladas e também o
reconhecimento de locutor, os quais apresentaram taxas de acerto superiores a 90%
mostrando assim a aplicabilidade da MLP para a resolução desse tipo de problema.
Uma introdução sobre autenticação de usuários também foi incluído neste
capítulo, onde apresentamos problemas de segurança e confiabilidade dos dados e
métodos de autenticação utilizados com o decorrer dos anos.
O estudo de RNA e suas aplicações são recorrentes, já que sempre houve a
busca da representação matemática perfeita de um neurônio biológico e o
desenvolvimento da IA nessa área específica busca o aperfeiçoamento desta prática.
30
3 MODELAGEM DO PROTÓTIPO
Neste capítulo é descrita a modelagem do protótipo, juntamente com seus
casos de uso, requisitos funcionais e suplementares, ou seja, um estudo de caso.
3.1 Sumário executivo
Para o estudo de caso foi definido um sistema que tem como objetivo captar
sinais sonoros (voz) através de um microfone, para então realizar a autenticação do
usuário em questão.
O sistema estará apto a ler o sinal produzido pelo usuário, comparar o
resultado obtido por esse sinal ao índice cadastrado anteriormente no banco de dados,
o qual foi obtido através do treinamento da rede MLP. Se os índices forem idênticos o
usuário terá acesso liberado, caso contrário o mesmo lhe será negado.
3.2 Requisitos funcionais
A extração dos requisitos e funcionalidades do sistema foi realizada através
da análise das necessidades do mesmo. Os quadros 1 a 4 detalham os requisitos com
suas respectivas restrições associadas.
31
QUADRO 1 - Requisito funcional – manter informações do usuário
F1 Manter Informações do Usuário
( ) Oculto
Descrição: O sistema deve permitir a inserção e exclusão de um usuário no banco de dados. Para isso deve-ser
informar: nome, senha e amostras de áudio previamente gravadas.
Requisitos Não-Funcionais
Nome
Descrição
Categoria
Obrigatór Permanente/
io/
Temporário
Desejável
NF
1.1 O usuário deve ser identificado pelo Interface
O
P
Identificação do seu nome completo e sua senha.
usuário.
NF
1.2 Após o usuário passar as amostras de Implementação
O
P
Armazenamento
sinais vocais o administrador do
do índice do sinal sistema deve gerar um índice vocal
vocal.
para o usuário.
NF 1.3 Detalhes O campo nome deve ser composto Especificação
O
P
do nome
somente por letras e deve ter um
limite de 50 caracteres
NF 1.4 Detalhes O campo senha deve ser composto Especificação
O
P
da senha
por qualquer tipo de caractere, e
deve possuir no mínimo 6 dígitos.
NF 1.5 Detalhes O campo do índice vocal deve ser Especificação
O
P
do índice vocal
chamado de “sinal_voz” permitir
qualquer tipo de caractere e deve
permitir até 100 dígitos.
QUADRO 2 - Requisito funcional – treinamento do sinal.
F2 Gravação da voz
( ) Oculto
Descrição: O sistema deve permitir ao administrador do mesmo realizar o treinamento da rede a partir das
amostras de sinal vocal enviada pelo usuário.
Requisitos Não-Funcionais
Nome
Descrição
Categoria
Obrigatór Permanente/
io/
Temporário
Desejável
NF
2.1 O sistema deve identificar o usuário Interface
O
P
Identificação do através de seu índice vocal
Usuário
anteriormente cadastrado no banco
de dados e configurar o índice de
acordo com a variável de saída
desejada.
NF
2.2 O
sistema
deve
selecionar Implementação
O
P
Treinamento dos automaticamente os sinais vocais do
Sinais Vocais.
usuário para que possa utilizá-los no
treinamento.
NF 2.3 Detalhes O usuário deverá enviar uma série de Especificação
O
P
da Amostra Vocal arquivos de áudio captados de sua
própria voz falando a palavra
selecionada.
32
QUADRO 3 - Requisito funcional – verificar compatibilidade.
F3 Verificar Compatibilidade
( ) Oculto
Descrição: O usuário deve falar a palavra “casa”, pré-determinada a ser a palavra de teste, uma vez. O sistema
processa o sinal e compara o resultado com os índices existentes no banco de dados, caso haja algum
compatível, ele retorna os dados de login do usuário, caso contrario ele impede a ação.
Requisitos Não-Funcionais
Nome
Descrição
Categoria
Obrigatório Permanente/
/ Desejável
Temporário
NF 3.1 Capturar O usuário deve falar a palavra Especificação
O
P
Sinal
“CASA” uma vez junto ao
microfone, após selecionar o botão
de captura de áudio.
NF 3.2 Comparar O sistema deve comparar o resultado Especificação
O
P
sinal
com os índices vocais cadastrados no
banco de dados.
NF 3.3 Informar O sistema deve retornar os dados do Interface
O
P
resultado
usuário caso algum dos índices
vocais cadastrados no banco seja
compatível, caso contrario devera
impedir a autenticação.
QUADRO 4 - Requisito funcional – realizar login
F4 Verificar Compatibilidade
( ) Oculto
Descrição: Após o sistema retornar os dados de login do usuário o sistema deve permitir o usuário verificar o
gráfico da freqüência do sinal vocal emitido e também permitir que o mesmo realize o login no protótipo.
Requisitos Não-Funcionais
Nome
Descrição
Categoria
Obrigatório Permanente/
/ Desejável
Temporário
NF 4.1 Gerar Após os dados de login aparecerem Interface
O
P
Gráfico
da na tela da aplicação o usuário deve
Freqüência Vocal. ser capaz de visualizar o gráfico da
freqüência do sinal emitido.
NF 4.2 Realizar Após os dados de login aparecerem Interface
O
P
Login
na tela o usuário deve ser capaz de
selecionar a validação do seu login e
requisitar o acesso ao sistema.
3.3 Requisitos suplementares
Os requisitos suplementares foram identificados baseados nas características
estabelecidas pelos atributos do sistema, tais como desempenho, usabilidade e
confiabilidade. Segue abaixo o quadro 5 com a lista dos requisitos suplementares.
33
QUADRO 5 - Requisitos suplementares
Nome
Restrição
Categoria
S2. Tipos de Interface
As interfaces devem ser
desenvolvidas
no
padrão
Windows, para computadores
com resolução de 1024 X 768.
O
sistema
deve
ser
desenvolvido
através
do
ambiente Netbeans 6.91
O
protótipo
deve
ser
desenvolvido na linguagem
java.
Os
dados
devem
ser
armazenados no banco de dados
PostgreSQL
O banco de dados deve ser
gerenciado através do programa
PgAdmin.
S3. Tecnologia para
Desenvolvimento
S3. Linguagem
Programação
de
S5. Banco de Dados
S6.SGBD
(Sistema
Gerenciador de Banco
de Dados)
Interface
Obrigatór
io/
Desejável
D
Permanente/
Temporário
P
Implementação
O
P
Implementação
O
P
Armazenamento
O
P
Armazenamento
O
P
3.4 Casos de uso
O quadro 6 lista os processos de negócios identificados para o
desenvolvimento do sistema, assim como apresenta a representação geral do mesmo na
figura 7. Onde a tarefa “Utiliza programa treinado” é a representação do protótipo
desenvolvido, os demais passos representam tarefas desenvolvidas separadamente do
protótipo.
FIGURA 7 - Representação geral do sistema
34
QUADRO 6 - Casos de uso
Nome
Atores
Descrição
UC 1. Gravar Sinais de Voz
Usuário
UC 2. Informar Dados ao
Administrador
Usuário
UC 3. Cadastrar Usuário
Administrador
UC 4. Treinamento da rede
MLP
Administrador
UC 5. Realizar Autenticação
Usuário
O usuário deve utilizar gravar sua voz ao
pronunciar a palavra “CASA” e enviar ao
administrador. É recomendado que se utilize o
software TeamSpeak 3 para a gravação dos sinais
e também são aconselháveis a gravação de 40
sinais de áudio.
O usuário deve repassar ao administrador seu
nome completo para ser usado como login, uma
senha e fornecer os sinais vocais gravados
anteriormente.
O administrador deve realizar o cadastro do
usuário no banco de dados do protótipo, gerando
um índice vocal para ele.
O administrador deve realizar o treinamento da
rede através dos sinais vocais fornecidos pelo
usuário e do índice vocal gerado anteriormente
no banco de dados.
O usuário seleciona o inicio da captura e fala a
palavra “CASA” junto ao microfone e o sistema
compara o sinal capturado com o sinal
armazenado no banco de dados. Caso sejam
correspondentes, o sistema libera o acesso ao
usuário.
Referências
Cruzadas
F1
F1
F1
F1, F2
F1, F2, F3, F4
3.5 Expansão de caso de uso
Segue abaixo os quadros 7 a 15 com a expansão de cada caso de uso citado
no quadro 6.
QUADRO 7 - Caso de uso – gravar sinais de voz
Caso de Uso: Gravar sinais de voz
Autor: Usuário
Fluxo Principal
Passo
Descrição
O usuário realiza a gravação de 40 sinais vocais
pronunciando a palavra “CASA” junto ao microfone,
utilizando o software recomendado TeamSpeak 3.
1 [EV]
QUADRO 8 - Caso de uso – informar dados ao administrador
Caso de Uso: Informar dados ao administrador
Autor: Usuário
Fluxo Principal
Passo
1 [EV]
Descrição
O usuário repassa ao administrador os 40 sinais vocais
gravados junto ao seu nome completo, para ser usado como
login do protótipo e uma senha de sua preferência.
35
QUADRO 9 - Caso de uso – cadastrar usuário
Caso de Uso: Cadastrar usuário
Autor: Administrador
Fluxo Principal
Passo
Descrição
O administrador cadastra o usuário no banco de dados do
protótipo, gerando ao mesmo um índice vocal que também
é inserido no registro do usuário.
1 [EV]
QUADRO 10 - Exceção caso de uso – cadastrar usuário
Exceções
Passo
Descrição
1.1
Nome de Usuário já existe
1.2
Requisita ao usuário se o nome informado está correto?
1.3
Requisita ao usuário que informe o nome corretamente.
1.4
Vai para o passo 1.
QUADRO 11 - Exceção caso de uso – cadastrar usuário
Exceções
Passo
Descrição
1.2.1
Nome de usuário está correto.
1.2.2
Administrador apaga o registro vinculado ao nome.
1.2.3
Vai para o passo 1.
QUADRO 12 - Caso de uso – treinamento da rede MLP
Caso de Uso: Cadastrar Questões
Autor: Administrador
Fluxo Principal
Passo
1 [EV]
2 [RS]
3 [EV]
4 [RS]
Descrição
O administrador configura os valores de entrada da rede
(sinais de áudio do usuário) e executa o programa.
O sistema apresenta um botão para que seja iniciado o
treinamento.
O confirma o inicio do treinamento.
O sistema treina a rede e apresenta um arquivo de texto
no qual ficam armazenados os pesos da rede.
QUADRO 13 - Exceção caso de uso – treinamento da rede MLP
Exceções
Passo
1.1
1.2
Descrição
Os sinais de áudio não foram gravados.
Vai para o passo 1 (Caso de Uso: Gravar sinais de voz)
36
QUADRO 14 - Exceção caso de uso – realizar autenticação
Exceções
Passo
4.1
4.2
Descrição
O índice vocal não é compatível.
O sistema envia uma mensagem de erro e impede a
autenticação.
Vai para o passo 1.
4.3
QUADRO 15 - Caso de uso – realizar autenticação
Caso de Uso: Cadastrar Questões
Autor: Usuário
Fluxo Principal
Passo
1 [EV]
Descrição
O usuário seleciona o botão para iniciar a captura do
áudio.
O sistema marca o botão de captura e começa a receber
os sinais captados pelo microfone.
O usuário fala a palavra “CASA” de forma clara junto ao
microfone.
O usuário interrompe a captura clicando no botão “Parar
Captura”.
O sistema armazena o áudio captado, submete à rede
treinada, compara o índice vocal resultante junto ao
banco de dados e caso exista algum índice compatível,
retorna os dados de login do usuário em questão.
O usuário valida o seu login selecionando o botão
indicado pelo programa.
2 [RS]
3 [EV]
4. [EV]
4 [RS]
5 [EV]
3.6 Modelagem banco de dados
A figura 8 apresenta o diagrama de entidade e relacionamento composto
pelas classes Usuário e SinalVoz, representando a modelagem do banco de dados do
protótipo.
FIGURA 8 - Modelagem do banco de dados.
37
3.7 Diagrama de classes do protótipo
Logo abaixo segue um demonstrativo do diagrama de classes do protótipo a
ser desenvolvido. Os objetos de representação do sistema são demonstrados na figura
9, na figura 10 é representado o diagrama das interfaces gráficas e por fim nas figuras
11, 12, 13 e 14 é demonstrado a lógica de implementação da rede MLP.
FIGURA 9 - Diagrama das classes Usuario e SinalVoz
38
FIGURA 10 - Diagrama das classes de interface do usuário
FIGURA 11 - Diagrama das classes de gerenciamento de camada da MLP
39
FIGURA 12 - Diagrama das classes de treinamento e utilização da fft
40
FIGURA 13 - Diagrama das classes de gerenciamento dos neurônios da rede MLP
41
FIGURA 14 - Diagrama de classe central da MLP
3.8 Conclusão
Neste capítulo foi apresentada a modelagem do protótipo desenvolvido para
reconhecer o locutor (usuário) e fazer a autenticação do mesmo no protótipo.
Na etapa do levantamento de requisitos e modelagem do sistema não foram
encontradas maiores dificuldades, em virtude de o sistema ser simples e objetivar a
42
demonstração de rede neural em questão para o reconhecimento de locutor.
O protótipo do sistema foi desenvolvido de maneira que possa ser
manipulado por pessoas com pouco conhecimento de sistema computacionais.
43
4 IMPLEMENTAÇÃO DO PROTÓTIPO
Neste capítulo é apresentado à implementação do protótipo, exemplificada
através de partes da codificação presente no programa, separado por etapas.
4.1 Captura do áudio
Para realizar o treinamento da rede MLP, é necessário que se capture alguns
sinais de áudio para submeter à rede. Tais áudios devem ter um nível de qualidade
considerável, pois a existência de ruídos no sinal tratado pode influenciar diretamente
o resultado do reconhecimento. Para tal, foram usados alguns softwares já existentes
para realizar essa captura, foram eles o Gravador de Áudio, programa nativo do
Windows Seven Ultimate e também o TeamSpeak 3, software livre disponível para
download no site da fabricante.
4.2 Conversão do sinal captado
Para fazer o tratamento do sinal capturado é necessário que o mesmo esteja
em um padrão aceitável e compatível com o reconhecido pelo protótipo, portanto para
enquadrar o sinal captado nesses padrões foi usado o software “GoldWave7”. O áudio
deve ser transformado na extensão wave (.wav) e deve seguir o formato de
compactação PCM unsigned 8 bit, mono8.
7
O software GoldWave é desenvolvido pela organização GoldWave Inc.
Formato de compactação desenvolvido pela empresa Microsoft, muito utilização na compactação de arquivos
de extensão wave.
8
44
4.3 Configurando a rede MLP
Tendo como base de códigos uma rede MLP adaptada, gerada para um
trabalho em grupo referente a matéria de Inteligência Artificial do sétimo semestre do
curso de Sistemas de Informação da UNIPLAC. Para realizar o treinamento da rede
MLP, é necessário que antes sejam configuradas algumas variáveis importantes
relacionadas ao funcionamento da rede. Localizadas na classe mlp, proveniente dos
códigos previamente implementado para a confecção de uma rede MLP, é necessário
que
se
de
valor
a
uma
taxaDeAprendizado,
erroMinimo,
numeroMaximoDeCiclos. Porém a parte mais importante para o funcionamento
correto da rede é a configuração das camadas de neurônios. Na linha 18 temos a
inicialização da camada de entrada a qual possui 10000 neurônios, referentes à
freqüência máxima do áudio que será capturado. Já na linha 19 temos a camada
intermediária que nesse caso está com 40 neurônios, porém esse número varia bastante
durante os testes que foram feitos no decorrer da implementação e serão tratados mais
tarde no capitulo referente aos testes. Por fim temos na linha 21 da figura 15 a criação
da camada de saída, a qual nesse caso contem 2 neurônios pois o treinamento contou
com áudios de 2 locutores diferentes.
FIGURA 15 - Configuração de variáveis da rede.
4.4 Treinamento da rede MLP
Uma vez que os sinais de áudio já foram capturados e devidamente tratados,
é à hora de treinar a rede. A classe responsável pelo treinamento se chama
45
TreinamentoMLP. Para que tal classe tenha seu funcionamento adequado
inicializamos um vetor de inteiros na linha 26 o qual chamaremos de freqüência,
que servirá para receber a freqüência dos sinais de áudio, que nada mais é do que um
vetor de valores simples os quais representam a variação da onda sonora. Será
instanciada também na linha 27 uma classe para armazenar a cópia da freqüência, a
qual é denominada Representação, e terá a capacidade de gerar uma freqüência em
modo texto através do sinal de entrada inicial. Uma instância da classe MLP na linha
28 também é criada já que usaremos a mesma mais tarde.
Para incorporarmos o sinal de áudio na execução é necessário a utilização do
método abrirArquivo, que nada mais é do que uma instância do áudio capturado
no vetor que representa a freqüência, o qual foi ajustado para 10000 posições, para
realizar esse procedimento foi passado como parâmetro na linha 29 o diretório onde se
encontra o áudio que se deseja treinar.
Feito isso, a freqüência retornada pelo método anterior é armazenada na
variável freqüência anteriormente citada, uma nova representação desta freqüência
deve ser criada na linha 30 e instanciada na variável r, para por fim adicionar a
representação a rede mlp através do método adicionarPadrao, encontrado na
linha 31, o qual recebe como parâmetro a variável contendo a representação de qual
locutor está sendo inserido, a representação da freqüência armazenada em r e a
variável de indicação de pesos desejados.
FIGURA 16 - Inserção de um áudio.
Após ter adicionado todos os áudios ao programa, deve-se executar o método
treinar, o qual terá seu processo explicado mais tarde. O resultado do treinamento é
armazenado em uma variável de texto chamada de resultado.
46
Ao final do treinamento, se faz necessário o armazenamento dos pesos
adquiridos através do mesmo. É para isso que utilizamos o método gravarPesos,
da classe mlp, passando por paramento o nome do arquivo onde será armazenado o
resultado.
FIGURA 17 - Método de treinamento.
4.5 Treinamento em backpropagation
Como dito anteriormente, durante o treinamento da rede MLP, foi utilizado o
método de backpropagation, ao entrar no método treinar da classe mlp, como
mostra a linha 35 da figura 18, a mesma nos redireciona para o método onde é feito o
backpropagation.
FIGURA 18 - Método treinar.
Dentro do método de retropropagação, foram inicializadas algumas variáveis
que
irão
armazenar
o
número
de
ciclos
da
rede
e
também
a
somaErroMedioQuadratico e mediaErroMedioQuadratico, que visam
armazenar a variável que leva o mesmo nome como consta na figura 19. Na linha 54
ainda da figura 19, tem-se a inicialização dos pesos randômicos que darão inicio ao
treinamento.
FIGURA 19 - Inicialização de variáveis do backpropagation.
47
Tendo feito a inicialização de variáveis o método entra em um laço de
repetição, onde executará até que a media do erro quadrático seja maior que o erro
mínimo ou então que o número de ciclos ultrapasse o limite máximo que é configurado
à rede. Dentro desse laço de repetição todas as fases da backpropagation são
simuladas, desde a configuração dos valores com base nos resultados desejados como
a parte do calculo da margem de erro da rede. Todo esse processo de treinamento é
transcrito em uma variável de texto a qual será gerada como resultado após o
treinamento.
4.6 Apresentando a ferramenta
A ferramenta utilizada para empregar o reconhecimento de locutor é um
protótipo que simula a autenticação de usuário de uma forma simples como pode ser
visto na tela inicial junto à figura 20.
FIGURA 20 - Tela inicial do protótipo.
48
Como se pode perceber na figura 21 temos os campos de login e senha os
quais encontram-se desabilitados, o usuário deve clicar no botão Capturar Áudio para
que seja iniciado a captura do som. Ao clicar no botão, a variável freqüência é
zerada para que possa receber uma nova carga de áudio, variáveis referente a sinais de
áudio nativas do Java também são instanciadas e por fim uma thread é iniciada para
que se possa receber o sinal de áudio.
FIGURA 21 - Inicializa a captura.
Ao ter clicado no botão Capturar Áudio o mesmo permanece pressionado até
que o usuário termine de gravar a palavra desejada para então clicar novamente no
botão que conforme a figura 22 recebeu o nome de Parar Gravação, para que a
variável booleana stopCapture receba um verdadeiro e encerre a captura do áudio.
FIGURA 22 - Interrompendo a captura.
49
Uma vez realizado a captura do áudio o gráfico da frequencia deve ser
gerado clicando no botão Gerar Gráfico indicado anteriormente na figura 23. Para
gerar o gráfico o sistema trata o áudio capturado considerando como marco 0 do
gráfico a freqüência 128 bytes, a partir daí tudo que for diferente de 128 bytes é
decrescido desse mesmo valor formando assim um gráfico com valores positivos e
negativos para a freqüência capturada. Para o auxílio na criação do gráfico foi
utilizado um framework abeto do Java chamado jFreeChart, o qual facilita a criação
de gráficos passando simples parâmetros de referência. Ao clicar portanto no botão
Gerar Gráfico uma janela de dialogo modal é aberta e vinculada a MainFrame com
o gráfico resultante do tratamento da freqüência do áudio capturado.
FIGURA 23 - Gráfico gerado da palavra casa.
Gerado o gráfico basta que o usuário clique na imagem que pode ser
encontrada na figura 24 para que o programa realize a autenticação do usuário. O
reconhecimento é baseado nos pesos anteriormente obtidos através do treinamento da
50
rede. O arquivo de texto com os pesos é inicializado e utilizamos a etapa foward do
método de backpropagation para fazer a comparação entre o sinal enviado com
os pesos obtidos, caso o resultado obtido seja reconhecido o mesmo enviará uma
requisição ao banco de dados PostgreSQL através do framework Hibernate9, que de
acordo com os registros cadastrados previamente na tabela usuário retornará o login e
a senha do usuário em questão que serão inseridos na tela do programa realizando
assim a autenticação.
FIGURA 24 - Autenticação realizada.
9
Framework desenvolvido pela JBoss Community para realizar a parte de persistência dos dados para aplicações
Java e .NET.
51
5 TESTES
Neste capítulo é apresentada à seqüência de testes a qual o protótipo foi
submetido, uma explicação geral sobre as mudanças de variáveis, os métodos
utilizados e os resultados obtidos pelo mesmo.
5.1 Apresentação do modelo de testes
Para facilitar os testes feitos no protótipo foram definidas algumas variáveis
as quais serão alteradas a cada novo teste realizado, para que assim possamos
comparar os resultados obtidos pelo protótipo. As variáveis escolhidas para a análise
são:
• Variáveis Editadas:
• Quantidade de sinais de áudio utilizados para cada locutor (QTD);
• Número de neurônios na camada de entrada (NNE);
• Número de neurônios na camada intermediária (NNI);
• Número de neurônios na camada de saída (NNS);
• Número de camadas intermediárias (NCI);
• Variáveis de Resultado:
• Menor erro médio quadrático (MEMQ);
• Tempo de treinamento (Temp);
• Porcentagem de sinais de áudio reconhecidos corretamente para a
locutora Raruana Macedo (%R0);
• Porcentagem de sinais de áudio reconhecidos para o locutor Thiago
Kramer (%T1).
52
QTD
40
NNE
1
NNI
1
NNS
2
NCI
1
MEMQ
0.01
Temp
10 min 20 seg
%R0
32,5% ~ 50%
%T1
5% ~ 25%
TABELA 1 - Modelo da tabela de testes.
5.2 Primeira bateria de testes
Para começar a bateria de testes foram coletados 40 sinais de áudio dos
locutores Thiago Kramer e Raruana Macedo, para tal foi utilizado o software
TeamSpeak 3.0, posteriormente os sinais de áudio foram convertidos para o formato
correto aceito pela rede neural utilizando o software da organização GoldWave Inc,
chamado GoldWave.
Uma vez que todos os dados necessários haviam sido capturados foi
configurada para a rede uma carga de 20.000 neurônios em sua camada de entrada, 12
neurônios na sua camada intermediária e por fim 2 neurônios na camada de saída, pois
espera-se dois resultados que diferenciem os locutores em questão. Configurada a
rede, a mesma é posta a treinar, levando 89 minutos e 20 segundos para realizar o
processo.
Para a etapa de reconhecimento foram submetidos ao protótipo os mesmos
80 sinais de áudio utilizados no treinamento, sendo 40 sinais de cada locutor, o
protótipo reconheceu, segundo a tabela 2, 50% dos sinais gravados pela locutora
Raruana Macedo sendo que e 65% dos sinais reconhecidos geraram um resultado
correto, ou seja, 32,5% de reconhecimento correto. Já para o locutor Thiago Kramer o
protótipo reconheceu 25% dos sinais de áudio enviados a ele, dos quais apenas 20%
estavam corretos, resultando em baixos 5% de reconhecimento devido da rede.
QTD
40
NNE
20000
NNI
12
NNS
2
NCI
1
MEMQ
1.138
Temp
89 min 20 seg
%R0
32,5%
%T1
5%
TABELA 2 - Teste número um.
Devido ao resultado inadequado os parâmetros citados anteriormente foram
alterados e uma nova bateria de testes foi iniciada. Mantiveram-se os 40 sinais de
áudio, porém o número de neurônios na camada intermediária foi alterado para 9 como
53
constatado na tabela 3, porém o resultado continuou o mesmo.
QTD
40
NNE
20000
NNI
9
NNS
2
NCI
1
MEMQ
1.141
Temp
64 min 16 seg
%R0
32,5%
%T1
5%
TABELA 3 - Teste número dois.
Após constatar que a mudança pequena de neurônios na camada
intermediária não gerou mudanças no resultado do reconhecimento, o NNI voltou a ser
12 e a quantidade de sinais de áudio passou para 30. O resultado como pode ser visto
na tabela 4 foi negativo e nenhum sinal foi reconhecido, porém o valor do MEMQ
diminuiu.
QTD
30
NNE
20000
NNI
12
NNS
2
NCI
1
MEMQ
1.053
Temp
64 min 28 seg
%R0
0%
%T1
0%
TABELA 4 - Teste número três.
Posteriormente o número de sinais de áudio foi reduzido novamente tabela 5,
e mais uma vez o valor do MEMQ caiu, o que pode ser considerado algo positivo,
porém o resultado do reconhecimento continuou zerado.
QTD
20
NNE
20000
NNI
12
NNS
2
NCI
1
MEMQ
1.009
Temp
42 min 45 seg
%R0
0%
%T1
0%
TABELA 5 - Teste número quatro.
Como a redução do número de sinais de áudio não surtia efeito diante do
resultado do reconhecimento, voltou-se aos 40 sinais de áudio anteriormente
utilizados. Outra mudança foi do número de neurônios na camada intermediária que
passou a ser 15. O resultado gerado por esses parâmetros foi o melhor até então, já que
o valor do MEMQ foi para 1.101 e o resultado do reconhecimento voltou para
respectivos 32,5% e 5% conforme a tabela 6.
QTD
40
NNE
20000
NNI
15
NNS
2
NCI
1
MEMQ
1.101
Temp
108 min 51 seg
TABELA 6 - Teste número cinco
%R0
32,5%
%T1
5%
54
Após ter notado que o aumento de neurônios na camada intermediária teve
resultado positivo, o valor de NNI foi alterado para 30 e os demais parâmetros
continuaram estáticos. O resultado foi relativamente inadequado, conforme conferido
na tabela 7.
QTD
40
NNE
20000
NNI
30
NNS
2
NCI
1
MEMQ
1.135
Temp
229 min 40 seg
%R0
0%
%T1
0%
TABELA 7 - Teste número seis.
Constatado através do último teste que o aumento do NNI não alterou o
resultado final, resolveu-se alterar radicalmente os parâmetros. A quantidade de sinais
de áudio foi limitada a 3 e voltou-se a usar 12 neurônios na camada intermediária.
Uma linha do código a qual limitava o número de casas decimais do valor do MEMQ
também foi alterada. O resultado obtido foi interessante, chegando a um valor de
MEMQ de 0.833 o menor até então. O resultado real do reconhecimento gerou número
interessantes, somente 10% dos sinais de áudio da locutora Raruana Macedo foram
interpretados pelo protótipo, porém 75% destes geraram resultados corretos. Já do
locutor Thiago Kramer a quantidade de sinais de áudio interpretados foi de 20%, dos
quais 50% obtiveram valores corretos como pode ser conferido na tabela 8.
QTD
3
NNE
20000
NNI
12
NNS
2
NCI
1
MEMQ
0.833
Temp
3 min 47 seg
%R0
7,5%
%T1
10%
TABELA 8 - Teste número sete.
Na tabela 9 devido aos resultados obtidos no teste com 3 sinais de áudio de
cada locutor, resolveu-se manter este valor alterando somente o valor do NNI. Outra
vez o resultado final foi negativo.
QTD
3
NNE
20000
NNI
30
NNS
2
NCI
1
MEMQ
1.166
Temp
9 min 32 seg
TABELA 9 - Teste número oito.
%R0
0%
%T1
0%
55
Tentando achar um meio termo o número de neurônios na camada
intermediária foi reduzido a 20, porém os resultados continuaram identicos ao teste
anterior, verificado na tabela 10.
QTD
3
NNE
20000
NNI
20
NNS
2
NCI
1
MEMQ
1.166
Temp
5 min 58 seg
%R0
0%
%T1
0%
TABELA 10 - Teste número nove.
Devido a ter sido o melhor desempenho até o momento, os parâmetros do
teste número cinco foram replicados ao décimo teste tabela 11, porém reduzindo o
número de posições do array da freqüência para 10000, conseqüentemente o número
de neurônios na camada de entrada, porém o resultado não foi adequado.
QTD
40
NNE
10000
NNI
15
NNS
2
NCI
1
MEMQ
1.087
Temp
50 min 1 seg
%R0
0%
%T1
0%
TABELA 11 - Teste número dez.
5.3 Fast Fourier Transform (FFT)
Após a bateria de dez testes a qual foi submetida a rede, obteve-se como
melhores resultados os testes de número cinco e sete, mas nenhum dos dois chegou
perto do resultado esperado.
Uma vez que nenhum dos resultados foi adequado, resolveu-se implementar
o método de Fast Fourier Transform (FFT), que é amplamente utilizado para a área de
processamento digital de sinais. A freqüência que era tratada como um vetor de
inteiros passou a ser utilizada como um vetor de valores de ponto flutuante (double) e
a rede foi adaptada ao método de FFT.
Foi realizada uma bateria com dois testes considerando os parâmetros
utilizados no teste número cinco e no teste número sete. As entradas continuaram as
mesma porém o resultado não foi o esperado, tendo o valor de MEMQ aumentado e
nenhum sinal de voz pode ser realmente reconhecido como pode-se conferir na tabela.
12 e na tabela 13.
56
QTD
40
NNE
20000
NNI
15
NNS
2
NCI
1
MEMQ
1.292
Temp
122 min 23 seg
%R0
0%
%T1
0%
TABELA 12 - Teste do método FFT número um.
QTD
3
NNE
20000
NNI
12
NNS
2
NCI
1
MEMQ
1.033
Temp
4 min 32 seg
%R0
0%
%T1
0%
TABELA 13 - Teste do método FFT número dois.
5.4 Testes com dupla camada intermediária
Devido ao fraco resultado da implementação do método FFT, resolveu-se
retornar ao modelo de teste anterior, porém com a adição de uma nova camada
intermediária.
O processo de treinamento da rede foi alterado para que o algoritmo fizesse a
ligação entre as camadas intermediárias e a saída corretamente, alguns métodos foram
acrescentados para que isso fosse possível. O treinamento durou mais que o esperado
devido a transição de camadas, mas o resultado continuo sendo não satisfatório e o
protótipo não conseguiu diferenciar os sinais, entendendo uma parte dos áudios
submetidos ao reconhecimento como ambíguos, ou seja, pode ser referente ao locutor
1 ou ao locutor 2. Os testes podem ser conferidos na tabela 14 e na tabela 15.
QTD
40
NNE
20000
NNI
15
NNS
2
NCI
2
MEMQ
1.193
Temp
202 min 23 seg
%R0
0%
%T1
0%
TABELA 14 - Teste com dupla camada intermediária número um.
QTD
3
NNE
20000
NNI
12
NNS
2
NCI
2
MEMQ
0.983
Temp
7 min 12 seg
%R0
0%
%T1
0%
TABELA 15 - Teste com dupla camada intermediária número dois.
5.5 Conclusão
Uma vez que todos esses testes foram feitos, conclui-se que a rede MLP da
maneira como está configurada não consegue diferenciar os sinais sonoros
característicos de cada locutor, levando em conta mais a palavra que estava sendo
falada, sendo assim confundia os dois sinais de áudio como sendo da mesma pessoa.
57
Em outra grande parte dos áudios submetidos ao reconhecimento o protótipo
interpretou como valores ambíguos, que pudessem ser tanto do locutor 1 como do
locutor 2 e o restante dos sinais não foram interpretados, tendo seu reconhecimento
nulo.
Portanto o grande problema desta implementação da MLP, da maneira que
está configurada foi extrair as características marcantes dos sinais de áudio, gerando
assim uma diferenciação entre ambos para que pudesse fazer a autenticação do usuário
com taxas de erro aceitáveis evitando assim que a rede encontrasse uma taxa de erro
mínimo local e pudesse chegar a taxa de erro mínimo global da rede, gerando assim
resultados mais adequados.
58
6 CONSIDERAÇÕES FINAIS
Para as considerações finais do projeto, será apresentado neste capítulo um
apanhado geral de como transcorreu o desenvolvimento do mesmo, confrontando os
objetivos iniciais com os resultados obtidos através do protótipo.
Durante o processo de desenvolvimento do TCC houveram uma série de
dificuldades que tiveram de ser contornadas, na etapa inicial da adaptação da rede para
sua utilização no protótipo ocorreram problemas relacionados ao tempo de treinamento
da mesma, o qual era realizado em um notebook com um processador core 2 duo, para
resolver esse problema passou a ser usado um computador desktop que possuía um
processador mais eficiente core i7, o que possibilitava um ganho de tempo na parte do
treinamento.
Outro entrave que atrapalhou o projeto foi à utilização do software de
captura de voz nativo do Windows, que em conjunto com o microfone de baixa
qualidade geravam sinais de áudio com muito ruído e quase imperceptíveis. Para
contornar esse problema foi utilizado um software específico para comunicação VOIP
chamado TeamSpeak 3 que possibilitou trabalhar com sinais de áudio sem ruído.
Por fim, já na etapa de testes do protótipo, a necessidade da utilização de um
novo método de tratamento de sinais digitais se fez presente, a adequação do método
de FFT gerou mais problemas, os quais foram contornados através da adaptação de
grande parte da rede para a entrada de valores de ponto flutuante.
Frente aos objetivos traçados na etapa de projeto do protótipo, pode-se dizer
que os mesmos foram cumpridos, porém devido a problemas descritos anteriormente a
solução ideal para o projeto não foi encontrada.
Ao propor um levantamento bibliográfico sobre RNA e sua aplicação na
59
autenticação de usuários como o primeiro objetivo específico do projeto, o mesmo foi
alcançado através da pesquisa de artigos e livros que abordassem o tema proposto, e o
resultado do mesmo pode ser visto no capítulo 2 deste trabalho.
Como segundo objetivo específico foi proposto a identificação de uma rede
neural que solucionasse o problema. Pode-se considerar que o objetivo foi cumprido
porém não demonstrado, pois através de teses encontradas na internet está provado a
boa utilização da MLP para o reconhecimento de locutor, porém para este trabalho a
configuração da rede não foi feita da maneira ideal, o que impediu que o problema
fosse resolvido como pode ser conferido no capítulo de testes.
Por fim, foi proposto o desenvolvimento de um protótipo que realizasse a
autenticação do usuário através do reconhecimento de voz utilizando a RNA
identificada, o qual foi realizado corretamente, porém a taxa de acerto da rede foi
baixa e tratando-se de uma ferramenta de segurança, os níveis de reconhecimento
devem superar 90%. O protótipo foi desenvolvido e testado como pode ser conferido
nos capítulos 4 e 5.
Diante dos resultados obtidos através do protótipo, pode-se considerar que o
projeto é de grande valia para o entendimento do processo executado pela MLP
relacionada ao reconhecimento de locutor, devido a limitações da linguagem java em
relação a valores double e a não utilização de um método característico de extração de
características resultaram em uma taxa de acerto inferior a 90%, que é a taxa adequada
para projetos relacionados a segurança da informação.
Para possíveis trabalhos futuros sugere-se o estudo e aplicação de métodos
de extração de características de sinais de áudio, pois o fator preponderante para a não
distinção das entradas sonoras foi o a falta de uma característica marcante que
diferenciasse a freqüência e o timbre de cada locutor. Um processo sugerido é o MelFrequency Cepstral Coefficients, geralmente utilizado para o reconhecimento de
palavras faladas ou também a Transformada de Wavelet Packet que foi uma adaptação
da FFT para trabalhar com sinais sonoros.
60
REFERÊNCIAS BIBLIOGRÁFICAS
BARRETO, J. M. Introdução às Redes Neurais Artificiais. Florianópolis: [s.n.],
2002.
57
p.
Disponível
em:http://www.educaonline.eng.br/UNISANTA/HTML/DOWNLOAD/AULAS/RNA.
pdf>. Acesso em: 13 maio 2011.
BIAS, R. G.; MAYHEW, D. J. Cost-Justifying usability. San Francisco: Morgan
Kaufmann Publishers, 1994.
BRAGA, A. de P.; CARVALHO, André Ponce de Leon F. de; LUDEMIR, Teresa
Bernarda. Redes neurais artificiais:Teoria e Aplicações. 2. ed. Rio de Janeiro: Ltc,
2007. 226 p.
BRAGA, A. P. et al. Redes Neurais Artificiais: Teoria e Aplicação. Rio de Janeiro:
LTC, 2000. 262 p.
BRAGA, P. de L. Reconhecimento de voz dependente de locutor utilizando Redes
Neurais Artificiais. 2006. 85 f. Monografia (Bacharelado) - Curso de Engenharia da
Computação, Departamento de Sistemas Computacionais, Escola Politécnica de
Pernambuco – Universidade de Pernambuco, Recife, 2006.
DAM, A. V. Post-WIMP User Interface. Communications of the ACM. V. 40, n. 2,
p. 63-67, 1997.
HAYKIN, S. Redes Neurais: Princípios e Prática. 2. ed. Porto Alegre: Bookman, 2001.
900 p.
HEINEN, M. R.; OSÓRIO, F. S. Biometria comportamental: Pesquisa e
desenvolvimento de um sistema de autenticação de usuários utilizando assinaturas
manuscritas. Infocomp: Journal of Computer Science. São Leopoldo, p. 32. 01 nov.
2004.
Disponível
em:
<http://osorio.wait4.org/Signatures/Heinen-OsorioInfocomp2004.pdf>. Acesso em: 04 jun. 2011.
KOVÁCS, Z. L. Redes Neurais Artificiais: Fundamentos e Aplicações. 4. ed. São
Paulo:
Livraria
da
Física,
2006.
174
p.
Disponível
em:
<http://books.google.com.br/books?id=O0nLxR67wmUC&printsec=copyright#v=one
page&q&f=false>. Acesso em: 07 maio 2011.
LOUZADA, J. A. Reconhecimento de palavras faladas utilizando Redes Neurais
Artificiais. 2000. 67 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da
Computação) – Departamento de Computação, Pontifícia Universidade Católica de
61
Goiás, Goiânia.
MAFRA, A. T. Reconhecimento automatico de locator em modo independente de
texto por seld-organizing maps. 2002. 80 f. Tese (Mestrado) – Departamento de
Engenharia, Universidade de São Paulo, São Paulo, 2002.
PAULA, M. B. Reconhecimento automático de fala por computador. 2010. 108 f.
Monografia (Bacharelado em Informática) – Instituto de Física e Matemática,
Universidade Federal de Pelotas, Pelotas.
PETRY, A.; SOARES, S. da S.; BARONE, D. A. C. Sistema para autenticação de
usuários por voz em redes de computadores. In: WORKSHOP EM SEGURANÇA
DE
SISTEMAS
COMPUTACIONAIS,
IV.,
2004,
Gramado. [trabalhos
apresentados]. [S.l.]:
[s.n.],
2004.
p.263-272.
Disponível
em:
<http://www.ppgia.pucpr.br/~maziero/static/ceseg/wseg04/2610.pdf>. Acesso em: 05
jun. 2011.
REZENDE, S. O. Sistemas Inteligêntes: Fundamentos e Aplicações. Barueri: Manole
Ltda,
2005.
550
p.
Disponível
em:
<http://books.google.com.br/books?id=UsJe_PlbnWcC&printsec=frontcover#v=onepa
ge&q&f=false>. Acesso em: 15 maio 2011.
SEEMAN, E. V. Reconhecimento de palavras usando redes neurais. 2006. 93 f.
Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) –
Departamento de Informática e Estatística, Universidade Federal de Santa Catarina,
Florianópolis.
TAFNER, M. A. Reconhecimento de palavras faladas isoladas utilizando redes
neurais artificiais. 1996. 102 f. Dissertação (Mestrado em Engenharia de Produção),
Universidade Federal de Santa Catarina, Florianópolis.
ZANCAN, A. L. F. Protótipo de um sistema de reconhecimento de palavras
faladas utilizando redes neurais artificiais. 2010. 69 f. Trabalho de Conclusão de
Curso (Bacharelado em Sistemas de Informação) – Departamento de Ciências Exatas e
Tecnológicas,
Universidade
do
Planalto
Catarinense,
Lages.
APÊNDICES
APÊNDICE A - ARTIGO ...........................................................................................63
APÊNDICE A - ARTIGO
Autenticação de Usuários Através do Reconhecimento de Voz
Thiago Kramer Fertig, Daiana Petry Leite
Departamento de Ciências Exatas – Curso de Sistemas de Informação – Universidade do
Planalto Catarinense (UNIPLAC) – Lages – SC – Brasil
[email protected], [email protected]
Abstract. This article describes the question of the users authentication performed
by the speaker recognition through the use of Artificial Neural Networks. The
development of a prototype that performs user authentication will bring a greater
level of security than the current user’s authentication models have to protect the
user confidential information.
Resumo. Este artigo aborda a questão do reconhecimento de locutor para realizar
a autenticação de usuários através do uso de Redes Neurais Artificiais. O
desenvolvimento de um protótipo que realize a autenticação de usuário trará um
nível de segurança maior do que possuem os modelos atuais de autenticação para
com as informações sigilosas do usuário.
1. Introdução
Na medida em que a sociedade evolui, cresce também de maneira semelhante à
busca pela confiabilidade da informação, não só computacionalmente falando, pois sempre foi
do interesse de muitos que certos dados importantes fossem mantidos em sigilo. A evolução
tecnológica chegou a tal ponto em que não se fazem mais necessários cofres para armazenar
qualquer informação, podendo armazená-las digitalmente na memória de um computador.
Nenhum método até hoje mostrou-se perfeitamente seguro, já que qualquer maneira
de armazenamento digital não está livre de “brechas” e “bugs”. Porém a chance de falha
diminui drasticamente com o passar dos anos.
Com a adoção da nova geração de interfaces WIMP, proposta por Van Dam (1997)
começa a ser cogitada a possibilidade de fazer com que a máquina reconheça seu usuário e
para isso são utilizados os métodos biométricos de reconhecimento humano, onde o usuário
pode ser reconhecido através de suas características únicas, como a impressão digital, sua voz
ou até mesmo a íris de seu olho.
Portanto, neste trabalho é proposta uma metodologia para a implementação de um
sistema de Reconhecimento de Locutor, fazendo assim a distinção e reconhecimento de
diferentes usuários minimizando possíveis problemas em relação a ambientes com ruídos e
utilização de diferentes tipos de microfone. Tendo como objetivo principal o estudo de
modelos de redes neurais artificiais para que seja escolhido um que consiga se adequar aos
requisitos criando assim um protótipo que realize a autenticação de um usuário através do
reconhecimento do locutor.
Atualmente, a parte gráfica é essencial em um sistema computacional. Para que ela
atenda devidamente as necessidades do usuário, deve ser extremamente usual, prática e
visualmente interessante para assim ajudar na construção da imagem do produto, o que auxilia
tanto nas vendas quanto na redução de custos (BIAS, 2008).
A identificação do usuário torna-se um problema comum a projetos de engenharia.
Várias formas de identificação pessoal são visíveis no cotidiano: documentos, chaves, cartões,
códigos e até mesmo senhas de acesso. Todas essas maneiras citadas possuem algo em
comum: a identificação da pessoa através de algo que só ela possua ou saiba, fazendo assim,
que a mesma tenha que carregar objetos ou decorar códigos (MAFRA, 2002).
Toda essa dependência gerada em torno do sigilo da informação acarreta em certos
problemas, pois senhas podem ser esquecidas, assim como objetos podem ser perdidos ou até
mesmo burlados. É devido a esses problemas e a essas falhas que a utilização de métodos de
leitura biométricos, para reconhecimento do usuário, é cada vez mais recorrente. O
reconhecimento de características únicas das pessoas como: impressão digital, voz, íris do
olho, entre outras, parece ser uma maneira de se evitar fraudes e conseqüentemente o uso
incorreto das informações sigilosas armazenadas no sistema.
A grande diferença entre o cérebro humano e a máquina, pode ser descrita pela
capacidade cognitiva que o ser humano tem de detectar informações através da fala, tais
como, sentimento, locutor, estado emocional entre outros. Até o momento a máquina
consegue contornar esse problema através de periféricos, que não são a melhor solução no
quesito velocidade. (LOUZADA, 2010).
Segundo Braga (2007) as RNAs são sistemas paralelos distribuídos compostos por
unidades de processamento simples (neurônios artificiais) que calculam determinadas funções
matemáticas (normalmente não-lineares). Conhecidas também como conexionismo ou então
sistemas de processamento paralelo e distribuído. Resumidamente é uma forma de
computação inusitada (não-algoritmica) e tem como objetivo simular a estrutura neural
humana, através de sistemas paralelos distribuídos, constituídos por neurônios artificiais os
quais são encarregados de calcular certas funções matemáticas em sua maioria não lineares.
Esses neurônios artificiais fazem parte de uma rede onde uma cadeia de conexões de sentido
único interliga-os formando assim a chamada rede neural artificial.
Ainda de acordo com Braga (2007) o funcionamento padrão de uma rede neural
passa por uma série de fases, iniciando pela parte da aprendizagem, onde um montante de
dados é apresentado à rede que tem como objetivo retirar o máximo de informações úteis que
posteriormente serão utilizadas na resolução do problema. Esse “sistema” disposto na solução
de problemas utilizando uma RNA tem como diferencial o modo como a rede é treinada, na
fase de aprendizagem, e como a mesma interpreta e apresenta as informações submetidas a
ela. Outro fator importante na utilização de uma RNA é o modo como a informação é
analisada, permitindo que a mesma apresente respostas às questões que não estavam explícitas
nas informações de entrada.
1.1 Neurônio biológico
11
O que se sabe é que o cérebro humano possui cerca de 10 neurônios e que cada
um desses se comunica com milhares de outros neurônios de uma forma continua e paralela.
É ai que fica a base de estudo das RNA, as quais tentam simular a estrutura organizacional de
uma rede biológica (topologia, conexões e comportamento). O conjunto de neurônios
biológicos é parte integrante do cérebro humano, compondo a parte responsável por
armazenar informações (memória), interpretá-las e até mesmo reconhecer padrões não
explícitos, tudo isso por experiência (KOVÁCS, 2006)
Ainda segundo Kovács (2006) a composição de um neurônio biológico em suma é
baseada em três partes principais (seções), são elas: o corpo celular, que mede apenas alguns
milésimos de milímetros e é responsável pelo processamento da informação e a partir daí gera
novos impulsos que são transmitidos ao axônio e então aos dentritos, para assim chegar ao
neurônio seguinte, o axônio compõe grande parte de um neurônio e geralmente possuem
calibre uniforme, por fim existem também os dentritos, que apresentam poucos milímetros de
comprimento e tem como única função receber ou transmitir os impulsos nervosos para o
corpo celular.
A comunicação entre os neurônios funciona de forma continua, onde o corpo
celular recebe impulsos dos neurônios pré-sinápticos e os combina, caso essa carga
combinada extrapole o limiar de excitação da célula, a mesma produz um impulso elétrico que
é transmitido até as áreas sinápticas através do axônio, alcançando assim o próximo neurônio,
que executa a mesma função de forma continua.
1.2 Neurônio artificial
A proposta de um neurônio artificial MCP feita por McCulloch e Pitts representado
é baseada na formação da cadeia de neurônios biológicos. Em sua composição podemos
identificar várias ramificações de entrada que representam os dentritos, o núcleo, onde é
realizada a soma dos pesos recebidos através das ramificações e faz-se o calculo da função de
ativação. Cada terminal de entrada possui um peso “w” que substitui a carga da sinapse e por
fim existe também uma única saída a qual assume o papel do axônio e transmite a nova carga
para os neurônios artificiais subseqüentes, cargas essas que podem ser tanto inibitórias quanto
excitatórias (negativa ou positiva). A descrição desse modelo está retratada na figura 1
(REZENDE, 2004 e KOVACS, 2006).
Figura 1. Neurônio artificial.
Fonte: TAFNER, 1998.
Em um neurônio biológico, todos os sinais pré-sinápticos são acumulados dentro
do corpo celular e o mesmo só dispara quando atinge seu limiar de ativação. Algo similar
acontece em um modelo MCP, onde todos os sinais de entrada são somados dentro neurônio
(soma ponderada), feito isso decide-se se o neurônio deve ou não disparar um novo sinal
baseado no limiar de ativação (threshold), que quando for ultrapassado libera o impulso para o
neurônio pós-sináptico (REZENDE, 2004 e KOVACS 2006).
1.3 Redes perceptron de múltiplas camadas
Após um estudo detalhado sobre o funcionamento do neurônio artificial e como
funciona a sua representação do neurônio biológico, um estudo aprofundado da rede MLP foi
necessário. Em um primeiro momento foi estudado as especificações do perceptron de
múltiplas camadas e suas características, para então aprofundar os estudos na técnica de backpropagation, que foi identificada como uma possível solução para o problema inicial.
As camadas intermediárias não possuem uma variável de comparação (saída
desejada), por isso a técnica de treinamento de redes neurais por meio do aprendizado
supervisionado e correção de erros, a qual é realizada através da taxa de diferença entre a
saída obtida e a saída desejada não pode ser aplicada. Uma solução para esse problema surgiu
com o algoritmo de “back-propagation”, resolvendo assim o problema do treinamento das
MLPs. Este modelo de rede por possuír uma camada intermediária, apresentam um poder
computacional superior às redes de uma única camada. A qualidade de aproximação obtida
por uma MLP está diretamente relacionada com a complexidade da rede em questão, ou seja,
quanto mais neurônios forem utilizados nas camadas intermediárias maior será a capacidade
de resolução da rede. (HAYKIN 2001).
A partir de um grande número de unidades intermediárias, qualquer conjunto de
padrões de entrada pode ser representado, sendo que segundo Cybenko 19891, apud Braga
2007, “uma camada intermediária é suficiente para aproximar qualquer função continua, e
duas camadas são suficientes para aproximar qualquer função”.
1.3.1 Algoritmo Back-Propagation
Segundo Haykin (2001) a idéia principal por trás do algoritmo de retropropagação
é a estimativa de erro das camadas intermediarias de uma MLP, este erro pode ser calculado
através de estimativas de efeito que elas causam na camada de saída. Uma vez obtido o erro
da saída da rede, é lançado uma carga de informações de volta para a camada intermediária, a
qual é ajustada de acordo com os valores das conexões entre camadas.
2. Materiais e métodos
Para o estudo de caso do projeto foi definido um sistema que tem como objetivo
captar sinais sonoros (voz) através de um microfone, para então realizar a autenticação do
usuário em questão.
O sistema estará apto a ler o sinal produzido pelo usuário, comparar esse sinal ao
cadastrado anteriormente no banco de dados. Se os padrões de voz forem o mesmo o usuário
terá acesso liberado, caso contrário lhe será negado acesso. Segue abaixo na figura 2 o
diagrama de casos de uso para exemplificar a utilização do sistema.
1
Cybenko, G. (1989). Approximations by superpositions of sigmoidal functions. Math. Control, Signals,
Systems, 2:303--314.
Figura 2. Representação geral do sistema
A figura 3 apresenta o diagrama de classe composto pelas classes Usuário e
SinalVoz, representando o modelo de entidade e relacionamento (ER) do banco de dados do
protótipo.
Figura 3. Modelo ER do banco de dados do protótipo
Para realizar o treinamento da rede MLP foi necessário preparar primeiramente
alguns requisitos necessários. A captura dos sinais vocais para o treinamento foi feita através
do programa TeamSpeak 3 e o tratamento e conversão do áudio para o padrão desejado foi
realizado no software GoldWave.
Para verificar a diversificação dos resultados obtidos foi necessária a configuração
correta de uma seqüência de parâmetros referentes ao treinamento, os quais podem ser
encontrados no bloco de código representado na figura 4. Na Lina 18 é instanciado a camada
de entrada que segue com 10000 neurônios, seguido da camada intermediária na linha 19 que
possui 40 neurônios e por fim na linha 21 temos a saída dupla representando os dois locutores
da fase de testes do protótipo.
Figura 4. Configuração de variáveis da rede
A ferramenta utilizada para empregar o reconhecimento de locutor é um protótipo
que simula a autenticação de usuário de uma forma simples como pode ser visto na tela inicial
junto a figura 5.
Figura 5. Tela inicial do protótipo
A captura do áudio e a geração do gráfico representante da freqüência do sinal são
representados nas figuras 6, 7 e 8.
Figura 6. Captura do sinal de áudio
Figura 7. Término da captura do sinal de áudio
Figura 8. Gráfico da freqüência do áudio
O usuário seleciona o botão de captura do áudio, em seguida fala a palavra
designada junto ao microfone e então termina a captura do sinal utilizando o botão de parar a
captura. Para gerar o gráfico da freqüência basta selecionar o botão de mesmo nome após ter
interrompido a captura. O protótipo fará a comparação do áudio que acabara de submeter com
o resultado previamente cadastrado no banco de dados através do treinamento da rede. Caso
os resultados sejam equivalentes ele autorizará o login do usuário que só precisa confirmar
selecionando o botão equivalente como demonstrado na figura 9.
Figura 9. Autenticação confirmada.
3. Resultados
Após a bateria de dez testes a qual foi submetida à rede, obteve-se como melhores
resultados os testes representados nas tabelas 1 e 2 encontradas abaixo, porém nenhum dos
dois obteve um resultado satisfatório, visto que a taxa de erro ficou elevada.
QTD
40
NNE
20000
NNI
15
NNS
NCI
MEMQ
Temp
%R0
2
1
1.101
108 min 51 seg 32,5%
Tabela 1. Resultado do protótipo número um
%T1
5%
QTD
3
NNE
20000
NNI
12
NNS
NCI
MEMQ
Temp
%R0
2
1
0.833
3 min 47 seg
7,5%
Tabela 2. Resultado do protótipo número dois.
%T1
10%
4. Discussão e conclusão
Frente aos objetivos traçados na etapa de projeto do protótipo, pode-se dizer que
eles foram cumpridos quase que em sua totalidade, porém devido a alguns problemas que
serão descritos a seguir, a solução ideal para o projeto não foi encontrada.
O propósito do projeto estava focado na implementação de um protótipo que
através da utilização de uma rede neural artificial pudesse realizar corretamente a autenticação
de usuários. Para tal a rede que foi escolhida foi a MLP, que possibilitou que o protótipo fosse
desenvolvido e obtivesse resultados inadequados.
Durante a etapa de levantamento bibliográfico teve-se de teve-se de fazer uma
busca em livrarias fora da cidade e pesquisas na internet por artigos da área para que o
aprendizado básico sobre inteligência artificial fosse adquirido.
Logo ao iniciar o processo de adaptação da rede neural, ocorreram problemas
relacionados ao tempo de treinamento da mesma, o qual era demasiadamente lento e atrasava
o processo de desenvolvimento e adequação da rede. Tal problema foi contornado com a
utilização de uma máquina com poder de processamento maior, diminuindo assim
consideravelmente o tempo de treinamento da rede.
Por fim, já na etapa de testes do protótipo, a necessidade da utilização de um novo
método de tratamento de sinais digitais se fez presente, a adequação do método de FFT gerou
mais problemas, os quais foram contornados através da adaptação de grande parte da rede
para a entrada de valores de ponto flutuante.
Para possíveis trabalhos futuros sugere-se o estudo e aplicação de métodos de
extração de características de sinais de áudio, pois o fator preponderante para a não distinção
das entradas sonoras foi o a falta de uma característica marcante que diferenciasse a
freqüência e o timbre de cada locutor. Um processo sugerido é o Mel-Frequency Cepstral
Coeffcients2, geralmente utilizado para o reconhecimento de palavras faladas ou também a
Transformada de Wavelet Packet que é como uma adaptação da FFT para trabalhar com
sinais sonoros.
Referencias bibliográficas
BIAS, R. G.; MAYHEW, D. J. Cost-Justifying usability. San Francisco: Morgan Kaufmann
Publishers, 1994.
BRAGA, Antônio de Pádua; CARVALHO, André Ponce de Leon F. de; LUDEMIR, Teresa
Bernarda. Redes neurais artificiais:Teoria e Aplicações. 2. ed. Rio de Janeiro: Ltc, 2007.
226 p.
DAM, A. V. Post-WIMP User Interface. Communications of the ACM. V. 40, n. 2, p. 6367, 1997.
HAYKIN, S. Redes Neurais: Princípios e Prática. 2. ed. Porto Alegre: Bookman, 2001. 900
p.
KOVÁCS, Zsolt László. Redes Neurais Artificiais: Fundamentos e Aplicações. 4. ed. São
Paulo:
Livraria
da
Física,
2006.
174
p.
Disponível
em:
<http://books.google.com.br/books?id=O0nLxR67wmUC&printsec=copyright#v=onepage
&q&f=false>. Acesso em: 07 maio 2011.
LOUZADA, Jailton Alkimin. Reconhecimento de palavras faladas utilizando Redes
Neurais Artificiais. 2000. 67 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência
da Computação) – Departamento de Computação, Pontifícia Universidade Católica de
Goiás, Goiânia.
MAFRA, Alexandre Teixeira. Reconhecimento automatico de locutor em modo
independente de texto por seld-organizing maps. 2002. 80 f. Tese (Mestrado) –
Departamento de Engenharia, Universidade de São Paulo, São Paulo, 2002.
REZENDE, Solange Oliveira. Sistemas Inteligêntes: Fundamentos e Aplicações. Barueri:
Manole
Ltda,
2005.
550
p.
Disponível
em:
<http://books.google.com.br/books?id=UsJe_PlbnWcC&printsec=frontcover#v=onepage&
q&f=false>. Acesso em: 15 maio 2011.
SEEMAN, Elton Vitor. Reconhecimento de palavras usando redes neurais. 2006. 93 f.
Trabalho de Conclusão de Curso (Bacharelado em Sistemas de Informação) –
2
Coeficientes que formam um mel-frequency cepstrum (MFC), que por sua vez pode ser considerado como uma
representação do espectro de potência à curto prazo de um som.
Departamento de Informática e Estatística, Universidade Federal de Santa Catarina,
Florianópolis.
TAFNER, M. A. Reconhecimento de palavras faladas isoladas utilizando redes neurais
artificiais. 1996. 102 f. Dissertação (Mestrado em Engenharia de Produção), Universidade
Federal de Santa Catarina, Florianópolis.
Download