• Nenhum resultado encontrado

UNIVERSIDADE FEDERAL DE SANTA CATARINA. Reconhecimento de Palavras. Usando Redes Neurais. Elton Vitor Seemann. Florianópolis SC 2006 / 1

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDADE FEDERAL DE SANTA CATARINA. Reconhecimento de Palavras. Usando Redes Neurais. Elton Vitor Seemann. Florianópolis SC 2006 / 1"

Copied!
93
0
0

Texto

(1)

Reconhecimento de Palavras

Usando Redes Neurais

Elton Vitor Seemann

Florianópolis – SC

2006 / 1

(2)

UNIVERSIDADE FEDERAL DE SANTA CATARINA

DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA

CURSO DE SISTEMAS DE INFORMAÇÃO

Reconhecimento de Palavras

Usando Redes Neurais

Elton Vitor Seemann

Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Sistemas de Informação.

Florianópolis – SC

2006 / 1

(3)

i

Elton Vitor Seemann

Reconhecimento de Palavras Usando Redes Neurais

Trabalho de conclusão de curso apresentado como parte dos requisitos

para obtenção do grau de Bacharel em Sistemas de Informação.

Orientador:

__________________________________

Prof. João Cândido Lima Dovicchi, Dr.

Coorientador:

__________________________________

Prof. Jovelino Falqueto, Dr.

Banca examinadora:

__________________________________

Prof. João Bosco da Mota Alves, Dr.

__________________________________

(4)

ii

Resumo

Neste trabalho são abordadas técnicas de processamento digital de sinais que permitem analisar o conteúdo do sinal de voz, mais especificamente a transformada de Fourier (Short-time Fourier Transform) e a transformada Wavelet (Wavelet Discrete Transform). Quatro diferentes métodos de extração de características do som de palavras são aplicados aos sinais e o resultado do reconhecimento usando uma rede neural e aprendizado supervisionado é apresentado. Também são discutidos detalhes da topologia e regra de aprendizado da rede para o problema do reconhecimento de palavras isoladas.

WAVELET, PROCESSAMENTO DIGITAL DE SINAIS, PROCESSAMENTO DE VOZ, REDES NEURAIS ARTIFICIAIS.

(5)

iii

Abstract

This work describes techniques for digital signal processing that allow voice signal analysis throuth its contents. These techniques use Short-time Fourier Transform (STFT) and discrete Wavelet Transform (DWT). Four different methods of features extraction were applied and results yielded were used in a supervisioned learning neural network for recognition of words. Details of network topology and learning rules are discussed to the problem.

(6)

iv

Sumário

LISTA DE FIGURAS...V LISTA DE TABELAS ...VII LISTA DE QUADROS... VIII

1 INTRODUÇÃO...9

1.1 APLICAÇÕES DIVERSAS...10

1.2 ESCOPO...11

2 REDES NEURAIS ARTIFICIAIS...14

2.1 CONCEITOS BÁSICOS...15

2.2 TOPOLOGIAS DE REDE...18

2.3 TREINAMENTO...19

2.3.1 A lei de aprendizado do Perceptron...20

2.3.2 Adaline (adaptative linear element) ...23

2.3.3 Problemas linearmente não-separáveis ...25

2.3.4 O Perceptron multicamadas...27

3 PROCESSAMENTO DIGITAL DE SINAIS...30

3.1 TRANSFORMADA DE FOURIER...30

3.2 SHORT-TIME FOURIER TRANSFORM (STFT) ...33

3.3 TRANSFORMADA WAVELET...37

4 METODOLOGIA...43

4.1 AQUISIÇÃO DOS SINAIS DE ÁUDIO...43

4.2 EXTRAÇÃO DE CARACTERÍSTICAS...45

4.2.1 Extração com STFT ...45

4.2.2 Extração com DWT ...48

4.3 O CLASSIFICADOR...51

5 RESULTADOS ...54

5.1 RESULTADO COM CÁLCULO DE CENTRÓIDES...54

5.2 RESULTADOS COM STFT...56

5.3 RESULTADOS COM DWT ...58

5.4 RESULTADOS COM DWT (MÉTODO B) ...60

5.5 COMPARATIVO ENTRE MÉTODOS DE EXTRAÇÃO...62

5.6 O SUPERTREINAMENTO...64

5.7 RESULTADOS UTILIZANDO SOFTWARE DE TERCEIROS...66

5.7.1 Multi Layer Perceptron ...68

6 CONCLUSÕES ...70

REFERÊNCIAS...72

APÊNDICE A – CÓDIGO FONTE DA REDE NEURAL USADA NOS EXPERIMENTOS ...76

APÊNDICE B – ALGORITMOS DE EXTRAÇÃO USANDO STFT ...81

APÊNDICE C – ALGORITMOS DE EXTRAÇÃO USANDO DWT ...85

ANEXO A – CÓDIGO FONTE DA FFT...87

(7)

v

Lista de Figuras

FIGURA 1.1 VISÃO SIMPLES DA PRODUÇÃO DA FALA (QUATIERI APUD (PARREIRA, 2005)) ... 12

FIGURA 1.2 ESPECTOGRAMA DA FALA, ADAPTADO DE (TRAUBE, 2006) ... 13

FIGURA 2.1 COMPONENTES BÁSICOS DE UMA REDE NEURAL ARTIFICIAL (KRÖSE & SMAGT, 1996)... 16

FIGURA 2.2 FUNÇÕES DE ATIVAÇÃO (KOVÁCS, 1996)... 18

FIGURA 2.3 REDE DE CAMADA ÚNICA COM DUAS ENTRADAS E UMA SAÍDA... 21

FIGURA 2.4 REPRESENTAÇÃO GEOMÉTRICA DA FUNÇÃO DISCRIMINANTE E DOS PESOS... 22

FIGURA 2.5 IMPLEMENTAÇÃO FÍSICA DO ADALINE... 23

FIGURA 2.6 REPRESENTAÇÃO GEOMÉTRICA DO ESPAÇO DAS ENTRADAS... 26

FIGURA 2.7 SOLUÇÃO DA FUNÇÃO XOR. ADAPTADO DE KRÖSE & SMAGT (1996) ... 26

FIGURA 2.8 REDE MLP E A RETRO-PROPAGAÇÃO DOS ERROS (PATTERSON, 1995) ... 28

FIGURA 3.1 AMOSTRAGEM EM FUNÇÃO DO TEMPO E SEU ESPECTRO (DOVICCHI 1999) ... 31

FIGURA 3.2 JANELAMENTO DO SINAL... 33

FIGURA 3.3 ELEMENTOS BASE DA STFT, ADAPTADO DE (CHAPLAIS, 1999). ... 34

FIGURA 3.4 EXEMPLO DE ELEMENTO BASE COM 10.5 PERÍODOS E JANELA DE HANNING... 35

FIGURA 3.5 ESPECTRO DO ELEMENTO BASE COM CORTE ABRUPTO (A) E JANELADO (B) POR FUNÇÃO DE HANNING... 35

FIGURA 3.6 ALGUMAS FUNÇÕES DE JANELAMENTO E SUAS TRANSFORMADAS COSSENO (WEISSTEIN, 2006A) ... 36

FIGURA 3.7 ELEMENTOS BASE DA TRANSFORMADA WAVELET, ADAPTADO DE (CHAPLAIS, 1999)... 38

FIGURA 3.8 WAVELET MÃE ψD12, WAVELET COM ESCALA j=−1 E À DIREITA COM ESCALA j=−2 ... 39

FIGURA 3.9 BANCO DE FILTROS DE 3 NÍVEIS... 41

FIGURA 3.10 REPRESENTAÇÃO DA DWT NO DOMÍNIO DAS FREQÜÊNCIAS... 41

FIGURA 3.11 ESTRUTURA LÓGICA DO RESULTADO DA DWT (KAPLAN, 2002) ... 42

FIGURA 4.1 GRAVADOR DIGITAL, A SETA VERMELHA INDICA O MICROFONE EMBUTIDO... 43

FIGURA 4.2 DIFERENTES FUNÇÕES DE JANELAMENTO... 45

FIGURA 4.3 ESPECTRO DE FREQÜÊNCIA DE 7 FRAMES CONSECUTIVOS, EM VERMELHO O MESMO FRAME... 46

FIGURA 4.4 VALORES DAS CENTRÓIDES PARA (A) REPETIÇÕES DE UMA MESMA PALAVRA E (B) PALAVRAS DIFERENTE... 46

FIGURA 4.5 ESPECTRO DE UM FRAME DIVIDIDO EM 5 REGIÕES... 47

FIGURA 4.6 PROCESSO DE EXTRAÇÃO... 47

FIGURA 4.7 FUNÇÃO WAVELET E FUNÇÃO ESCALONANTE DAUB4 ... 48

FIGURA 4.8 EXTRAÇÃO: CINCO REPETIÇÕES, MESMA PALAVRA... 49

FIGURA 4.9 EXTRAÇÃO: CINCO PALAVRAS DIFERENTES... 49

FIGURA 4.10 DIVISÃO DO PLANO TEMPO-FREQUENCIA RESULTANTE DA EXTRAÇÃO COM DWT ... 50

FIGURA 4.11 PROCESSO DE ORDENAÇÃO NO TEMPO PARA NÚMERO FIXO DE FRAMES POR SUB-BANDA... 50

FIGURA 4.12 TOPOLOGIA DO CLASSIFICADOR... 51

FIGURA 5.1CURVAS DE APRENDIZADO BASEADO NA EXTRAÇÃO DE CENTRÓIDES... 55

FIGURA 5.2 DISPERSÃO DOS VALORES DE SAÍDA DA REDE NO O CONJ. DE TESTE – EXTRAÇÃO DE CENTRÓIDES... 55

(8)

vi

FIGURA 5.4 DISPERSÃO DOS VALORES DE SAÍDA DA REDE NO CONJ. DE TESTE – EXTRAÇÃO STFT ... 57

FIGURA 5.5 CURVAS DE APRENDIZADO BASEADO NA EXTRAÇÃO DWT... 58

FIGURA 5.6 GRÁFICO DE DISPERSÃO DOS VALORES DE SAÍDA DA REDE NO CONJ. DE TESTE – EXTRAÇÃO DWT ... 59

FIGURA 5.7CURVAS DE APRENDIZADO BASEADO NA EXTRAÇÃO DWT (MÉTODO B)... 60

FIGURA 5.8 GRÁFICO DE DISPERSÃO DOS VALORES DE SAÍDA DA REDE NO CONJ. DE TESTE – EXTRAÇÃO DWT (MÉTODO B) ... 61

FIGURA 5.9 VALORES DE SAÍDA DA REDE NO CONJUNTO DE TESTE – EXTRAÇÃO COM MUITAS DIVISÕES... 62

FIGURA 5.10 VALORES DE SAÍDA DA REDE NO CONJ. DE TESTE – EXTRAÇÃO COM POUCAS DIVISÕES... 63

FIGURA 5.11 CURVAS DE APRENDIZADO PARA 10000 ÉPOCAS... 64

FIGURA 5.12 VALORES DE SAÍDA DA REDE NO CONJ. DE TESTE – DIFERENTES NÚMEROS DE ÉPOCAS... 64

FIGURA 5.13 CURVAS DE TREINAMENTO COM EXTRAÇÃO DWT ... 67

FIGURA 5.14 CURVAS DE TREINAMENTO COM EXTRAÇÃO DWT MÉTODO B ... 67

FIGURA 5.15 CURVAS DE TREINAMENTO COM EXTRAÇÃO STFT DE 155 DIVISÕES... 67

FIGURA 5.16 CURVAS DE TREINAMENTO COM EXTRAÇÃO STFT DE 35 DIVISÕES... 67

FIGURA 5.17 CURVAS DE TREINAMENTO COM EXTRAÇÃO DE 31 CENTRÓIDES... 68

FIGURA 5.18 CURVA DE APRENDIZADO DO MLP COM 3 NÓS NA CAMADA ESCONDIDA... 69

(9)

vii

Lista de tabelas

TABELA 1 TABELA VERDADE DO OU-EXCLUSIVO... 25

TABELA 2 ESQUEMA DE GRAVAÇÃO DAS AMOSTRAS DE TESTE... 44

TABELA 3 RESULTADOS DE CLASSIFICAÇÃO BASEADOS NO CÁLCULO DE CENTRÓIDES... 54

TABELA 4 3 RESULTADOS DE CLASSIFICAÇÃO BASEADOS NA STFT ... 56

TABELA 5 RESULTADOS DE CLASSIFICAÇÃO BASEADOS NA EXTRAÇÃO DWT... 58

TABELA 6 RESULTADOS DE CLASSIFICAÇÃO BASEADOS NA EXTRAÇÃO DWT (MÉTODO B) ... 60

TABELA 7 ESTATÍSTICAS DOS VALORES DE SAÍDA DA REDE NO CONJUNTO DE TESTE – EXTRAÇÃO COM MUITAS DIVISÕES... 62

TABELA 8 ESTATÍSTICAS DOS VALORES DE SAÍDA DA REDE NO CONJ. DE TESTE – EXTRAÇÃO COM POUCAS DIVISÕES... 63

TABELA 9 ESTATÍSTICAS DOS VALORES DE SAÍDA DA REDE NO CONJ. DE TESTE – DIFERENTES NÚMEROS DE ÉPOCAS... 65

(10)

viii

Lista de Quadros

(11)

1 INTRODUÇÃO

A área de Inteligência Artificial conhecida como processamento de voz teve seu surgimento com a idéia de emitir ordens para o computador usando a fala. Desde o final da década de 1950 instituições de pesquisa já estudavam meios de fazer com que a voz fosse processada pelo computador. E, antes mesmo da Internet ter alcançado popularidade, empresas já estavam comercializando programas para PC's com tecnologia de voz.

Corriqueiramente, a expressão “reconhecimento de voz” é utilizada com vários sentidos, que na verdade refere-se a tecnologias distintas. O processamento da voz pode ser aplicado em quatro áreas principais: comandos por voz, fala natural, síntese de voz e autenticação por voz.

O reconhecimento de palavras (ou comando de voz) processa um pequeno trecho de fala para identificar que tipo de ação o sistema deve tomar. Em uma central de atendimento telefônico, num palm, celular ou PC, o usuário pode usar a fala em vez de apertar botões.

O reconhecimento da fala natural envolve uma ou mais frases, ou seja, várias palavras que tenham um sentido semântico. Na síntese de voz, o sintetizador recebe um texto e o transforma em ondas sonoras, fazendo uma “leitura em voz alta”.

Já a autenticação se baseia no fato de que a voz é única para cada pessoa e pode ser utilizada para identificar alguém. Os sistemas de autenticação podem ser aplicados para permitir o acesso de uma pessoa a determinado recurso. Hoje vários sistemas estão sendo usados de maneira comercial onde a porcentagem de reconhecimento correto pode chegar a 99% (Peacocke & Graf apud (Parreira, 2005)).

(12)

Quadro 1 Histórico do desenvolvimento de software de processamento de voz

Final da década de 1950: Primeiras pesquisas tecnológicas para o reconhecimento de voz.

1964: IBM apresenta um sintetizador de voz para a fala de dígitos.

1978: A Texas Instruments lançou o primeiro chip dedicado à síntese de voz.

1993: IBM lança o primeiro software comercial para reconhecimento de voz, o IBM Personal Dictation System, para OS/2.

1993: Apple apresenta conjunto de rotinas para Mac, para reconhecimento e síntese de voz.

1993: Universidade Federal do Rio de Janeiro desenvolve Dosvox, com síntese de voz em português, para deficientes visuais usarem PC's com DOS.

1994: Dragon Systems apresenta o Dragon Dictate para ditados.

1996: IBM apresenta o MedSpeak/Radiology, primeiro produto para reconhecimento da fala contínua em tempo real.

1996: OS/2 Warp é o primeiro sistema a embutir comandos de voz.

1997: Dragon Systems lança o primeiro programa de uso geral para reconhecimento da fala contínua em inglês.

1997: IBM lança o ViaVoice, para fala contínua.

1998: IBM lança ViaVoice em português.

1998: MicroPower lança DeltaTalk, sintetizador de voz em português.

1999: Philips lança FreeSpeech 2000, com reconhecimento da fala em português.

1999: Lotus e Corel acrescentam recursos de voz a seus pacotes de aplicativos.

2000: L&H adquire Dragon Systems e lança L&H Dragon NaturallySpeaking 5.0.

2001: Telemar lança Vocall, primeiro serviço de voz aberto ao público, com síntese e reconhecimento da fala, para e-mails e agenda.

2001: L&H é colocada à venda, por se encontrar em grave crise financeira.

2001: Microsoft acrescenta recursos de voz (para ditados e comandos) ao Office XP. Na versão em português, essa facilidade está ausente.

Fonte: Revista PCWORD (Goya, 2002).

1.1 Aplicações diversas

Vários produtos podem ser encontrados no mercado de reconhecimento de voz, e novas aplicações, como os portais de voz e outras aplicações dentro do CRM1, surgem a partir do novo recurso de interface que a tecnologia de processamento de voz proporciona. A seguir, alguns dos softwares disponíveis no mercado:

• Philips FreeSpeech, em português, não comercializado isoladamente para o usuário final, mas apenas para parceiros que queiram integrar a solução a outros aplicativos;

(13)

• IBM ViaVoice em português, plataforma Windows. A versão Pro aceita ditados em qualquer aplicativo do Windows e reconhece comandos de voz para navegação no Windows e na Web. Faz ainda a conversão de texto em fala;

• IBM Home Page Reader, que faz a leitura de páginas da Web. Faz a leitura em voz alta de toda informação contida na página, incluindo links, tabelas, ocorrência de gráficos, texto em colunas, campos de entrada de dados e mapas clicáveis (IBM, 2006a);

• IBM Embedded ViaVoice Enterprise Edition Software Developers Kit, um midleware que permite: Reconhecimento de fala natural; Vocabulários independentes de locutor; Acesso ativo a bases de dados de voz de capacidade ilimitada; Síntese de voz; Alterna dinamicamente ente idiomas na síntese de voz. A IBM também oferece serviço de geração de bases de dados de voz (IBM, 2006b); • Sistema Telephony, da IBM, acoplado a centrais telefônicas, para atendimento

automatizado;

• Portais de voz, como o Vocall, lançado pela Telemar em 2001 em São Paulo e Rio de Janeiro. Permite ler e enviar e-mails, consultar agenda de endereços e compromissos, e outros conteúdos de voz, como informações sobre o tempo, temperatura e hora certa.

1.2 Escopo

Como vimos, a área de processamento de voz é bastante ampla, e soluções efetivas já se encontram disponíveis. O tema deste trabalho abrange o reconhecimento de palavras isoladas (ou comandos).

O problema de reconhecer palavras pode ser dividido em três partes: a aquisição do sinal, a extração de características e a classificação. A aquisição envolve simplesmente a captura do sinal sonoro e digitalização. A extração envolve o processamento digital do sinal a fim de

(14)

extrair parâmetros que o representem o melhor possível, ou seja, características necessárias e suficientes para o seu reconhecimento. A classificação consiste em fazer uso das informações quantizadas (padrões) na construção de um modelo capaz de reconhecer novas ocorrências de um conjunto pré-determinado de palavras, ou simplesmente classificar um sinal (quantizado) em uma destas classes.

Figura 1.1 Visão simples da produção da fala (Quatieri apud (Parreira, 2005))

Quando falamos em reconhecer comandos de voz, estamos falando em classificar sinais sonoros de diferentes palavras compostas por diferentes fonemas que, em nível mais básico, possuem diferentes formas de onda e conteúdo de freqüência. Veja a figura 1.1: a voz humana é produzida quando o ar expiratório (vindo dos pulmões) passa pelas pregas vocais, que por nosso comando neural, por meio de ajustes musculares, faz pressões de diferentes graus na região abaixo das pregas vocais, fazendo-as vibrarem.

Não podemos esquecer que voz é som, e som é igual à onda sonora. O ar expiratório, que fez as pregas vocais vibrarem vai sendo modificado e os sons vão sendo articulados (vogais e consoantes). Depois, emitidos pela boca e nariz, formam a onda sonora que vai atingir a

(15)

cóclea do ouvinte. Diferentes fonemas apresentam diferentes regiões formantes, como é mostrado na figura 1.2.

Figura 1.2 Espectograma da fala, adaptado de (Traube, 2006)

Neste trabalho abordaremos técnicas de processamento digital de sinais que permitem analisar o conteúdo do sinal de voz. Uma vez extraídas estas características, partiremos para a classificação (ou reconhecimento) usando redes neurais e aprendizado supervisionado. Objetivos principais:

• Estudar e aplicar técnicas de processamento digital de sinais na extração de parâmetros do sinal discreto de áudio; Avaliar diferentes técnicas;

• Avaliar o uso das redes neurais como classificador neste contexto; Escolher a melhor arquitetura; Avaliar o resultado do conjunto (rede neural e método de extração);

• Construção de um protótipo completo em linguagem Java (construído ao longo das etapas citadas acima).

(16)

2 REDES NEURAIS ARTIFICIAIS

A primeira onda de interesse nas redes neurais (também conhecidas por “modelos conexionistas”) surgiu após a introdução dos neurônios simplificados de McCulloch e Pitts em 1943 (McCulloch & Pitts, 1988). Estes neurônios foram apresentados como modelos do neurônio biológico e como componente conceitual para circuitos capazes de executar tarefas computacionais.

Em 1959 Frank Rosenblatt criou uma rede de múltiplos neurônios do tipo discriminadores lineares e a batizou de rede perceptron. Rosenblatt baseou-se nas linhas de pensamento de McCulloch e Pitts para desenvolver seu modelo.

Enquanto Rosenblatt trabalhava no perceptron, Bernard Widrow da Universidade de Stanford desenvolvia um novo modelo de processamento batizado de Adaline2 (Widrow & Hoff, 1988). As redes Adaline se destacavam pela poderosa lei de aprendizado, o princípio de treinamento que ficou conhecido como Regra Delta.

Quando Minsky e Papert publicaram seu livro Perceptrons em 1969 (Minsky & Papert, 1988) onde demonstravam as deficiências dos modelos perceptron, a maioria dos investimentos foi redirecionada e os pesquisadores abandonaram a área, com exceção de alguns poucos.

O interesse nas redes neurais reapareceu somente a partir de alguns resultados teóricos importantes alcançados no começo da década de oitenta (mais notoriamente a descoberta da retro-propagação dos erros ou backpropagation) e novos avanços no desenvolvimento do hardware que aumentaram a capacidade de processamento.

Redes neurais artificiais são caracterizadas mais adequadamente como “modelos computacionais” com propriedades particulares como capacidade de adaptação ou aprendizado, de generalização, ou de organização dos dados, e cuja operação é baseada em

(17)

processamento paralelo (Kröse & Smagt, 1996). No entanto, várias destas características estão presentes em outros tipos de modelos; a questão é até que ponto a abordagem neural prova ser mais adequada a determinadas aplicações que os modelos existentes.

Hoje em dia a maior parte dos pesquisadores concorda que as redes neurais são muito diferentes do cérebro em termos de estrutura. No entanto, como o cérebro, uma rede neural é uma coleção massivamente paralela de unidades de processamento pequenas e simples, onde as interligações formam a maior parte da inteligência da rede.

Principais características das Redes Neurais (Barone, 1999):

• capacidade de “aprender” através de exemplos e de generalizar este aprendizado de forma a reconhecer elementos similares não apresentados no conjunto de treinamento;

• bom desempenho em tarefas pouco ou mal definidas, onde falta o conhecimento explícito de como resolvê-las;

• robustez à presença de informações falsas ou ausentes; • tolerância à falha.

2.1 Conceitos básicos

Uma rede artificial consiste de um agrupamento de unidades simples de processamento que se comunicam enviando sinais uma para a outra a partir de um grande número de conexões e seus pesos.

Um conjunto de aspectos principais pode ser definido em um modelo neural (McClelland & Rumelhart (apud Kröse & Smagt, 1996, p.15)):

• um conjunto de unidades de processamento (“neurônios”, “células”);

(18)

• conexões entre as unidades. Geralmente cada conexão é definida por um peso

jk

w que determina o efeito que o sinal vindo da unidade j tem em k ;

• uma regra de propagação, que determina a entrada efetiva s de uma unidade a k partir de suas entradas externas;

• uma função de ativação F que determina o novo nível de ativação baseada na k entrada efetiva sk(t) e o estado de ativação atualyk(t);

• uma entrada externa (chamado de viés ou bias) θk para cada unidade; • um método para tratamento das informações (regra de treinamento);

• um ambiente com o qual o sistema interage, que fornece os sinais de entrada e – se necessário – sinais de erro.

Cada unidade faz um trabalho relativamente simples: recebe entrada dos vizinhos ou fonte externa e a usa para computar o sinal de saída propagado para as outras unidades. Independente desta primeira, uma segunda tarefa é o ajuste dos pesos das conexões. Segundo Kröse & Smagt (1996) trata-se de um sistema inerentemente paralelo no sentido de que muitas unidades podem fornecer o resultado de sua computação ao mesmo temo.

(19)

A figura 2.1 mostra os elementos de uma unidade de processamento. No caso, a regra de propagação usada é a soma ponderada pelos pesos.

Dentro de uma rede neural é interessante distinguir três tipos de unidades: as unidades de entrada (indicada pelo índice i) que recebem dados de fora da rede neural, unidades de saída (indicadas pelo índice o) que mandam o sinal pra fora da rede, e as unidades escondidas ou hidden (indicadas pelo índice h) das quais os sinais de entrada e saída continuam dentro da rede.

Cada unidade responde por uma parcela da entrada das unidades a ela conectadas. A entrada total para uma unidade k é simplesmente a soma ponderada das saídas vindas de cada unidade a ela conectada mais um termo de viés:

A contribuição no caso de um peso positivo é considerada como uma excitação e para um peso negativo como uma inibição. Unidades com esta regra de propagação são chamadas unidades sigma.

O efeito da entrada total sobre a ativação da unidade é determinado pela função de transferência F que toma o total de entrada k sk(t) e o estado de ativação corrente yk(t) e produz o novo valor de ativação da unidade k :

Freqüentemente, a função de ativação é uma função não-decrescente da entrada total da unidade:

Geralmente algum tipo de função de limiar é usado: função de limite ríspido, ou uma função linear ou semilinear, ou uma função mais suave como a sigmóide (formato de S).

(20)

Figura 2.2 Funções de ativação (Kovács, 1996)

Em certas aplicações a tangente hiperbólica é usada, o que permite valores de saída no intervalo [-1, . 1]

2.2 Topologias de rede

Quanto ao padrão de conexão entre as unidades e a propagação dos dados podemos distinguir dois tipos de rede (Kröse & Smagt, 1996 p.17):

• diretas (feed-forward) ou acíclicas, onde o fluxo de dados das unidades de entrada para as saídas é estritamente no sentido direto. O processamento dos dados pode se entender sobre múltiplas camadas de unidades, entretanto não estão presentes realimentações, ou seja, conexões partindo das saídas de unidades para a entrada de unidades de camadas anteriores ou da mesma camada;

• retro-alimentadas ou cíclicas contém conexões de realimentação. Ao contrário das redes acíclicas, as propriedades dinâmicas da rede são importantes. Em alguns casos, os valores de ativação das unidades causam um processo no qual a rede é levada a um estado estável, onde estes valores de ativação não mudam mais.

(21)

Podemos citar como exemplos de redes recorrentes as redes de Kohonen e Hopfield. Esta última também é conhecida como memória de Hopfield.

Uma aplicação típica das redes feed-forward consiste na construção de modelos para reconhecimento de padrões e classificação. Uma rede feed-forward pode ser vista como uma ferramenta que realiza a análise de regressão não linear (Nascimento, 1994). Exemplos clássicos de redes retroalimentadas são o Perceptron e o Adaline (ADAptive LInear Element).

2.3 Treinamento

Uma rede neural tem que ser configurada de maneira que a aplicação de um conjunto de entradas produza o conjunto de saídas desejado. Existem vários métodos para se definir a intensidade das conexões. Uma maneira seria atribuir os pesos explicitamente, usando um conhecimento a priori. A outra forma consiste em “treinar” a rede neural alimentando ela com padrões de treinamento e deixando-a mudar seus pesos internos de acordo com alguma regra de aprendizado.

Os métodos de aprendizado das redes neurais estão divididos em dois paradigmas principais:

• treinamento supervisionado ou associativo, onde a rede é treinada pelo fornecimento dos padrões de entrada e respectivas saídas desejadas. Estes pares entrada-saída (padrões) podem ser fornecidos por um agente externo, ou pelo próprio sistema que contém a rede (auto-supervisionado);

• treinamento não-supervisionado, onde uma unidade (de saída) é treinada para responder a clusters de padrões contidos na entrada. Neste paradigma o sistema tenta detectar características estatísticas salientes na população da entrada. Ao contrário do paradigma supervisionado, não existe um conjunto de categorias pré-definidas nas quais os padrões precisam ser classificados; ao invés disso o sistema tem que desenvolver sua própria representação.

(22)

Ambos os paradigmas resultam no ajuste dos pesos das conexões entre as unidades, de acordo com alguma regra de aprendizado. Virtualmente todas as regras de aprendizado para modelos deste tipo podem ser consideradas como uma variação da regra de treinamento sugerida em 1949 por Hebb em seu livro Organization of Behavior (Hebb, 1988). A idéia básica é que se duas unidades j e k são ativadas simultaneamente, então suas interconexões tem que ser reforçadas. Se j recebe estímulo de k , a mais simples versão da lei de Hebb manda atualizar o peso w com jk

onde γ é uma constante positiva de proporcionalidade que representa a taxa de treinamento. Uma outra regra, ao invés da atual ativação da unidade k, usa a diferença entre o valor atual e o desejado para ajustar os pesos:

onde d é a ativação desejada, fornecida pelo conjunto de treinamento. Esta regra de k treinamento é conhecida por regra de Widrow-Hoff ou regra delta.

Neste trabalho detalharemos apenas o paradigma de treinamento supervisionado das redes feed-forward.

2.3.1 A lei de aprendizado do Perceptron

Uma rede feed-forward de camada única consiste de um ou mais neurônios de saída o , cada qual conectado por um peso w a cada uma das entradas i . Na forma mais simples a io rede possui apenas duas entradas e saída única, conforme mostra a figura 1.3.

(23)

Figura 2.3 Rede de camada única com duas entradas e uma saída

A entrada do neurônio é a soma ponderada das entradas mais o termo de viés. A saída é formada pela ativação do neurônio de saída, que é alguma função da entrada:

A função de ativação pode ser linear de modo que teríamos uma rede linear, ou não-linear. Consideremos a função de limiar:

A saída da rede neural será então +1 ou -1 dependendo da entrada. A rede pode agora ser usada para uma tarefa de classificação: decidir se um padrão de entrada pertence a uma entre duas classes. Se a entrada total é positiva, a amostra será atribuída à classe +1, se a entrada total é negativa, a amostra será atribuída à classe -1. A separação entre estas duas classes neste caso é uma reta, dada pela equação:

Uma rede de camada única representa uma função discriminante linear (Kröse & Smagt, 1996). Isolando x e reescrevendo a equação: 2

podemos ver que os pesos determinam o ângulo da reta e o termo de viés θ define o quanto a reta fica afastada da origem. Os pesos também podem ser representados no espaço das entradas: o vetor de pesos é sempre uma reta perpendicular à função discriminante. Observe a representação no espaço das entradas (figura 2.4):

(24)

Figura 2.4 Representação geométrica da função discriminante e dos pesos

Suponhamos um conjunto de treinamento composto de vetores de entrada x e a saída desejada d(x). A regra de treinamento do perceptron é muito simples:

• Comece com valores randômicos para os pesos;

• Selecione um vetor de entrada x do conjunto de treinamento;

• Se y ≠d(x) (o perceptron errou a resposta), modifique todas as conexões w de i

acordo com ∆wi =d(x)×xi

• Volta ao passo 2 até o fim do conjunto de treinamento

Adicionalmente, precisamos ajustar o termo de viés θ. O valor de θ é considerado como uma conexão w entre o nó de saída e uma unidade que tem sempre valor de saída 0 x0 =1. Assim, este valor deve ser modificado de acordo com a mesma regra de treinamento:

Para a regra de treinamento do Perceptron existe um teorema da convergência, que afirma o seguinte:

Teorema 1: Se existe um conjunto de pesos de conexão w* capaz de realizar a transformação y =d(x), a regra de treinamento do perceptron irá convergir para alguma solução (que pode ser ou não a mesma que w*) num número finito de passos para qualquer conjunto inicial de pesos.

(25)

Rosenblatt (apud Kröse & Smagt, 1996, p.26) demonstrou a prova deste teorema em 1959, o que criou uma onda de otimismo e interesse no início dos anos sessenta. Essa euforia durou apenas até a publicação de Perceptrons em 1969, onde Minsky e Papert provaram as severas restrições no que os perceptrons são capazes de representar.

2.3.2 Adaline (adaptative linear element)

Uma generalização importante do algoritmo de treinamento do perceceptron foi apresentada por Widrow e Hoff com o nome de LMS (“least mean square”) também conhecida como regra delta. A grande diferença em relação à regra do perceptron está na forma como a saída é usada na lei de aprendizado. O perceptron usa a saída da função de ativação para aprender (ou 1 ou -1). A regra delta usa a entrada total da unidade, ou seja, sem mapear para os valores -1 ou 1.

A regra delta foi aplicada ao Adaline desenvolvido por Widrow. Numa implementação física simples, este dispositivo consistia de um conjunto de resistores reguláveis conectados a um circuito que somava as correntes causadas pelas tensões de entrada. Este bloco somador era seguido por um quantizador cuja saída era +1 ou -1 dependendo da polaridade da soma.

(26)

Considerando o esquema da figura, sendo as resistências de entrada denotadas por w , i n ..., 1 , 0

i = , o sinal de entrada por x e a saída y , então a saída no bloco somador é i

onde θ ≡w0. A regra delta de Widrow tenta ajustar os pesos w iterativamente de modo que i a média dos quadrados dos erros em relação a y seja minimizada. Aplicando a função de limiar a y temos a saída do Adaline.

Imaginemos agora uma rede como a anterior, porém com uma função de ativação linear. Uma rede tão simples é capaz de representar uma relação linear entre o valor da unidade de saída e os valores da unidade de entrada. No caso de duas unidades de entrada, o espaço de entrada será um plano. Se existirem mais do que duas entradas, a rede representará um hiperplano (Tafner, 1996) e é claro que múltiplas unidades de saída também podem ser definidas.

Suponha que precisamos treinar uma rede de tal forma que um hiperplano seja dividido tão bem quanto possível para um dado conjunto de padrões de treinamento formado por valores de entrada p

x e valores de saída desejadas d . Para cada padrão de treinamento, a p saída da rede difere do valor desejado d em p

(

d −p yp

)

, onde y é a saída da rede para o p

padrão de treinamento atual. A regra delta aplica uma função de erro baseada nessas diferenças para ajustar os pesos.

A função de erro, como indicado pelo nome do método least mean square, é a soma dos quadrados dos erros. O erro total é definido como:

onde o índice p varia dentro do conjunto dos padrões de treinamento e p

E representa o erro para o padrão p . O algoritmo LMS busca um conjunto de pesos que minimize a função de

(27)

erro por um método chamado gradiente descendente. O princípio é fazer o ajuste do peso proporcional ao valor da derivada parcial do erro com relação a cada peso:

onde γ é uma constante de proporcionalidade. A derivada é

Simplificando por causa da função de ativação linear:

e

logo

onde δp =d −p yp é a diferença entre a saída desejada e atual para o padrão p .

2.3.3 Problemas linearmente não-separáveis

Como já mencionado, Minsky e Papert provaram severas restrições no poder de representação das redes perceptron. Eles demonstraram que um perceptron de camada única não poderia representar uma simples função lógica XOR.

Tabela 1 Tabela verdade do ou-exclusivo

0 x x 1 d -1 -1 -1 -1 1 1 1 -1 1 1 1 -1

Numa rede com duas entradas e uma saída, a entrada da rede equivale a:

(28)

Então a saída do perceptron será definida por uma linha que divide o plano em duas regiões. Para um valor fixo de θ, a saída do perceptron será igual a “um” de um lado da reta definida por:

e igual a “zero” do outro lado da reta.

Figura 2.6 Representação geométrica do espaço das entradas

Como podemos ver na figura 2.6 os dois pontos em (1,-1) e (-1,1) não podem ser separados dos pontos (-1,-1) e (1,1) por uma linha reta. Minsky e Papert provaram que para entradas binárias, qualquer transformação pode ser realizada adicionando uma camada escondida conectada a todas as entradas.

(29)

Os valores de pesos (ao lado de cada linha) e de limiar (dentro do círculo) indicados na figura 2.7a são um exemplo de solução da função XOR. O espaço das entradas agora possui três dimensões, definidas pelas duas entradas da rede mais a saída da unidade escondida. Como mostra a figura 2.7b, a rede agora representa um plano que separa o espaço das entradas, e a distinção nos dois grupos desejados passa a ser possível.

Minsky e Papert mostraram que a adição de unidades escondidas aumenta a classe de problemas solucionada pelas redes feed-forward do tipo perceptron. Entretanto uma solução para o problema de como ajustar os pesos entre as entradas e unidades escondidas só foi apresentada bem mais tarde.

2.3.4 O Perceptron multicamadas

A solução para o problema do ajuste dos pesos em redes feed-forward multicamadas foi apresentada por Rumelhart, Hinton e William em 1986 (apud Kröse & Smagt, 1996, p.33), e soluções similares parecem ter sido publicadas antes, como a apresentada por Werbos em 1974 em sua tese de doutorado “Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences”.

A idéia central da solução é que os erros nas unidades da camada escondida são determinados pela retro-propagação dos erros nas unidades da camada de saída, motivo pelo qual este método recebe o nome de back-propagation. O algoritmo back-propagation também pode ser considerado como uma generalização da regra delta para funções de ativação não-lineares e redes multicamadas.

Durante a fase de treinamento, os padrões do conjunto de treinamento são apresentados à rede em uma ordem qualquer. Quando um padrão de treinamento é aplicado, os valores de ativação são propagados, camada após camada, em direção às unidades de saída, e a saída calculada pela rede é então comparada com a saída desejada. Temos então um valor de erro

(30)

para cada unidade de saída, que chamaremos de e para uma determinada unidade de saída o . 0 O objetivo é fazer com que e se aproxime de zero. 0

Figura 2.8 Rede MLP e a retro-propagação dos erros (Patterson, 1995)

A maneira mais simples de conseguir minimizar e é ajustando os pesos de forma que 0 numa próxima iteração, e seja nulo para aquele padrão de treinamento. Sabemos pela regra 0 delta que para reduzir o erro de uma unidade, precisamos ajustar suas conexões de entrada de acordo com:

Isto corrige os pesos das conexões com as unidades de saída. Para corrigir os pesos da entrada para as camadas escondidas, precisamos aplicar novamente a regra delta. Entretanto não temos um valor de erroδ para as unidades escondidas. Isto é resolvido pela derivada das funções em cadeia, fazendo o seguinte: distribuir o erro de uma unidade de saída o por todas as unidades escondidas a ela conectadas, ponderado pelo peso desta conexão. Em outras palavras, uma unidade escondida h recebe um delta de cada unidade de saída o igual ao delta desta unidade de saída (fator de correção do peso entre a unidade escondida h e a unidade

(31)

escondida o ) ponderado pelo peso de conexão destas unidades. Matematicamente, o sinal de erro δh é ho

o o h =

δ w

δ . Para que a fórmula fique correta precisamos aplicar a derivada da

função de ativação da unidade escondida, 'F . A generalização da regra delta para funções de ativação não-lineares pode ser vista em Kröse & Smagt (1996, p34-35). Com a função de ativação sigmóide, temos o seguinte:

) y 1 ( y ) y d ( o o o o o = − − δ ho o o h h h =y (1−y )

δ w δ

O ajuste de cada peso de conexão da rede, para um padrão de treinamento p pode ser calculado por: p j p k jk pw =γδ y ∆

Kröse & Smagt (1996, p.37) fazem uma observação importante a respeito do treinamento por padrões:

Embora, teoricamente, o algoritmo back-propagation aplique o gradiente descendente no erro total somente se os pesos forem ajustados após a apresentação de todo o conjunto de padrões, ou seja, não é aplicada a regra de aprendizado para cada padrão separadamente, existe uma indicação empírica de que isto resultaria numa convergência mais rápida. No entanto, temos que tomar cuidado com a ordem em que os padrões são apresentados. Por exemplo, quando usamos a mesma seqüência durante todas as épocas do treinamento a rede acaba se focando nos primeiros padrões. Este problema pode ser evitado usando um método de treinamento com permutação.

(32)

3 PROCESSAMENTO DIGITAL DE SINAIS

3.1 Transformada de Fourier

A transformada de Fourier, batizada em homenagem a Jean-Baptist Joseph Fourier, é uma transformada integral que expressa uma função em termos de funções de base senoidal, ou seja, como soma ou integral de funções senoidais multiplicadas por coeficientes (“amplitudes”).

Geralmente, a denominação “Transformada de Fourier” refere-se à esta transformada para funções contínuas, que representa qualquer função integrável f(t) como a soma de exponenciais complexas com freqüência angular w e amplitude complexa F(w):

dt e t f w F

∞ iwt ∞ − − ⋅ = ( ) ) (

Entretanto, para processamento digital de sinais, é preciso ter valores x(n) discretos, resultantes do processo de amostragem3 do sinal contínuo. Neste caso usa-se a versão da transformada para funções discretas:

, ) ( 1 ) ( 1 0 2

− = − ⋅ = N n N mn i e n x N m f π m=0,...,N−1

A transformada discreta de Fourier (DFT4) nos retorna um conjunto de m valores no domínio da freqüência a partir de n amostras no domínio do tempo:

3 amostragem é o processo de discretização temporal de um sinal contínuo 4 Discrete Fourier Transform

(33)

Figura 3.1 Amostragem em função do tempo e seu espectro (Dovicchi 1999)

Algumas observações importantes:

• Considerando o período de amostragem T em segundos, a freqüência de amostragem será fa =1/T em Hertz. Os valores | mx( )| resultantes da DFT representam as freqüências do espectro do sinal, variando entre zero e fa/2, em incrementos de

N f

F= a/ .

• De acordo com o teorema de Niquist (apud Dovicchi 1999) para se evitar a sobreposição espectral, a taxa de amostragem f deve ser maior ou igual ao dobro da a maior freqüência presente no sinal, ou seja, se a maior freqüência for f , o intervalo m de amostragem deve satisfazer:

m f T ⋅ < 2 1

• Apenas N/2componentes espectrais complexos são significativos, acima de 2

/

N temos os componentes espectrais complexos negativos, que em módulo são uma cópia espelhada dos valores abaixo de N/2

(34)

Um método largamente utilizado para o cálculo computacional da DFT é o algoritmo FFT (Fast Fourier Transform) cuja complexidade, para N amostras, é da ordem de

)) N ( log N ( O ⋅ 2 operações contra O(N )

2 operações para o cálculo pela definição. Este

método foi demonstrado por Cooley & Tukey em 1965 (apud Dovicchi 1999 p.14).

A determinação de cada componente espectral da DFT pode ser entendida como uma convolução entre as amostras no tempo e a função de base senoidal X(m) que completa m períodos dentro do intervalo tp=T⋅N. Assim, as partes real e imaginária de cada

componente de freqüência X(m) é:

− = ⋅ = 1 0 ) / 2 cos( ) ( )} ( Re{ N n N mn n x m X π

− = ⋅ − = 1 0 ) / 2 ( ) ( )} ( Im{ N n N mn sen n x m X π

Esta notação é também conhecida como notação retangular. A amplitude complexa pode ser obtida por:

2 2 Im{ ( )} )} ( Re{ )} ( {X m X m X m Mag = + E a fase por:       = )} ( Re{ )} ( Im{ )} ( { m X m X arctg m X Fase

Figura 3.2 Representação polar versus retangular

(35)

3.2 Short-Time Fourier Transform (STFT)

A DFT nos fornece uma representação global do sinal em termos de seus componentes de freqüência. No entanto podemos estar interessados no conteúdo local de freqüências, ou seja, que características espectrais o sinal possui nas redondezas de um determinado instante de tempo. Um meio de conseguir com que as informações estejam localizadas em ambos os domínios, tempo e freqüência, é aplicarmos a STFT, também chamada de Transformada de Fourier Janelada.

A STFT é definida por (Schniter, 2005):

dt e u t g t f u F

∞ it ∞ − − ⋅ − ⋅ = ξ ξ, ) ( ) ( ) (

A STFT pode ser interpretada como a Transformada de Fourier de uma janela deslizante: para calcular F(ξ,u), desloque o centro da janela g(t) para o instante u , aplique a janela ao sinal de entrada e então calcule a FT do resultado.

Figura 3.3 Janelamento do sinal

A idéia é isolar o sinal nas vizinhanças do instante u , então aplicar a Transformada de Fourier afim de estimar o conteúdo “local” de freqüência no instante u .

Essencialmente, a STFT usa elementos base it u (t) g(t u) e

g ξ = − ⋅ ξ . Estes elementos são o

produto de uma senóide por uma janela simétrica e de energia finita g(t) . A família de elementos base é obtida pelo deslocamento no tempo e modulação na freqüência do elemento

(36)

original guξ(t). Estes átomos tem freqüência central ξ e são simétricos em relação a u (Chaplais, 1999), como mostra a figura 3.4:

Figura 3.4 Elementos base da STFT, adaptado de (Chaplais, 1999).

A STFT possui resolução constante no tempo e freqüência. Esta resolução pode ser alterada redimensionando a janela g(t). O uso de uma janela larga resulta em boa resolução na freqüência, porém resolução baixa no tempo ao passo que o uso de uma janela estreita nos dará uma boa resolução no tempo e baixa resolução na freqüência (Schniter, 2005).

(37)

Figura 3.5 Exemplo de elemento base com 10.5 períodos e janela de Hanning

Figura 3.6 Espectro do elemento base com corte abrupto (a) e janelado (b) por função de Hanning

As propriedades da STFT são determinadas pela janela escolhida e a forma como a energia esta concentrada ao redor do seu centro. Observe as figuras 3.5 e 3.6.

O uso da função de janelamento evita a introdução de alguns fenômenos indesejados, como o fenômeno de Gibbs (Weisstein, 2006b), causados pelo corte abrupto do sinal (caso de uma janela uniforme ou retangular). A figura 3.7 mostra algumas das funções de janelamento mais usadas. u t t t f f

ξ

(38)

Figura 3.7 Algumas funções de janelamento e suas transformadas cosseno5 (Weisstein, 2006a)

A transformada discreta STFT é calculada por:

, ) ( ) ( ) , ( 1 0 2

− = − ⋅ − ⋅ = N n N mn i e u t g n x u m f π m=0,...,N−1

Para um valor fixo de u , a fórmula é a da transformada discreta de Fourier, que pode ser computada pelo algoritmo FFT aplicado a cada janelamento do sinal original.

5

(39)

3.3 Transformada Wavelet

A análise de sinais de acordo com escalas variáveis no domínio do tempo e da freqüência é a idéia básica da utilização da teoria das Wavelets. Wavelets são funções matemáticas que ampliam intervalos de dados, separando-os em diferentes componentes de freqüência, permitindo a análise de cada componente em sua escala correspondente (Dovicchi, 1999).

As funções Wavelet podem ser usadas não apenas para analisar sinais estacionários, mas também para decompor sinais não-estacionários, variantes no tempo ou de características transientes.

A transformada Wavelet substitui as funções base senoidais da transformada de Fourier por uma família gerada pela translação6 e dilação7 de uma função ψ(t) chamada wavelet mãe:

, s u t s 1 ) t ( u , s      − ⋅ = ψ ψ s >0, u∈ℜ

A função anterior é centralizada ao redor de u , tal como um átomo da STFT. Se a freqüência central de ψ é η, então a freqüência central da função resultante da dilação de ψ

é η /s. Sua distribuição no tempo é proporcional ao fator de escala s . Sua distribuição na freqüência é inversamente proporcional a s (figura 3.7).

6 Função que toma um vetor e retorna outro vetor, múltiplo do vetor dado: vrλvr, onde λ é um escalar

qualquer e vr um vetor de qualquer espaço vetorial.

7 Função que soma um vetor constante ka um vetor dado: vrkr+vr, onde vr e kr são vetores de qualquer

(40)

Figura 3.8 Elementos base da transformada Wavelet, adaptado de (Chaplais, 1999).

Assim, a transformada wavelet tem uma resolução no tempo e freqüência que depende do fator de escala s de cada janela.

As Wavelets devem satisfazer certas propriedades específicas. Uma delas é a propriedade de integrar a zero, ondulando acima e abaixo do eixo x ; outras são propriedades técnicas que asseguram o cálculo rápido e fácil da transformada direta e inversa. Assim como senos e cossenos são bases na análise de Fourier, as Wavelets são usadas como bases na representação de outras funções (Wickerhauser apud (Dovicchi, 1999)).

Uma vez estabelecida uma base Wavelet ψ(t), chamada Wavelet mãe, pode-se estabelecer bases de translação e dilação da Wavelet mãe, tal que:

   ℜ × ℜ ∈          − + ) , ( , s u s u t ψ ,

onde os valores de s e u devem ser selecionados convenientemente tal que: s 2−j

= e

j

2 k

(41)

além disso, possibilitará a análise com múltiplas resoluções no processamento de sinais (Dovicchi, 1999). Se a escala e a translação são diádicas8 as bases Wavelet são obtidas por:

(

t k

)

t j j k j ( )=2 2 − 2 / , ψ ψ

O Inteiro k representa a translação da função wavelet e o inteiro j é uma indicação da freqüência da wavelet ou posicionamento no espectro e geralmente é referido como escala (Reza, 1999).

Figura 3.9 Wavelet mãe ψD12, Wavelet com escala j=−1 e à direita com escala j=−2 Como fica evidente na figura 3.8, escalas diferentes correspondem a diferentes espectros de freqüência. A freqüência central de cada espectro é multiplicada ou dividida por 2 a cada incremento ou decremento de j . Outro aspecto da transformada wavelet é que a localização temporal (quão compacta no tempo) aumenta junto com a freqüência ou escala. Em outras palavras, escalas maiores correspondem à localização mais precisa e vice-versa (Reza, 1999).

A análise multiresolução precisa de duas funções básicas estreitamente relacionadas. Além da função wavelet ψ(t), precisamos de outra função básica chamada função escalonante, denotada por ϕ(t). A translação e dilação de ϕ(t) é similar a de ψ(t).

A expansão wavelet para o sinal x(t) é dada pela seguinte série de decomposição (Burrus (apud Reza, 1999 p.3)): ) ( ) ( ) ( , , , 0 0 t d t c t x jk k j j k j k j k kϕ

∑ ∑

ψ

∞ = + = 8 j

s= 2− é chamada dilação diádica, and j

k

(42)

Nesta expansão, os coeficientes c são chamados de coeficientes de aproximação na k escala j . O conjuntos de coeficientes 0 dj,k representam detalhes do sinal em diferentes escalas. A transformada wavelet discreta (DWT9) consiste de ambos. Para sinais contínuos, o limite superior para as escalas de detalhes segue para o infinito; entretanto, para sinais discretos, ele está limitado ao detalhe máximo disponível no sinal.

A relação dos coeficientes wavelet10 com o sinal original é: dt t t x dj,k = ( )ψj,k( ) dt t t x ck = ( )ϕj0,k( )

O cálculo dos coeficientes DWT é geralmente formulado em termos de um conjunto de filtros multirate. Os coeficientes destes filtros, que geralmente são FIR11, são obtidos pelo conhecimento da wavelet mãe e função escalonante.

A DWT de um sinal x é calculada pela passagem em série deste conjunto de filtros. Primeiramente, o sinal passa por um filtro passa-baixa g , sendo o resultado a convolução do sinal com o filtro:

O sinal é decomposto simultaneamente usando um filtro passa-alta h . As saídas são os coeficientes de detalhes dj,k e coeficientes de aproximação c (saída do filtro passa-baixa). k

Entretanto, como metade das freqüências foi removida, metade dos coeficientes de saída pode ser descartada, conforme a regra de Nyquist. As saídas dos filtros são então dimidiadas por um fator de dois:

9 discrete wavelet transform.

10 Para wavelets ortogonais e reais. Wavelets biortogonais precisam de filtros diferentes para análise e síntese. 11 Finite Impulse Response

(43)

Esta decomposição diminuiu pela metade a resolução no tempo já que apenas metade dos coeficientes de saída dos filtros caracteriza o sinal. Em compensação cada saída tem metade da banda de freqüências da entrada, ou seja, a resolução na freqüência foi dobrada.

A decomposição é reaplicada nos coeficientes de aproximação, que passam pelos filtros passa-alta e passa-baixa e são então dimidiados por dois (figura 3.10). Isto resultando em mais um nível de coeficientes de detalhes e aproximação, cada qual representando metade da banda de freqüência dos coeficientes do nível anterior. Esta operação pode ser repetida até que reste apenas um único coeficiente de aproximação. Como a cada decomposição as saídas dos filtros são dimidiadas por dois, o número total de coeficientes se mantém igual.

Figura 3.10 Banco de filtros de 3 níveis

Por exemplo, para um sinal com dezesseis amostras, freqüência variando entre zero e f , n e três níveis de decomposição, quatro escalas de saída são produzidas:

Figura 3.11 Representação da DWT no domínio das freqüências

A transformada pode ser revertida, reconstruindo os coeficientes de aproximação de um nível anterior, a partir dos coeficientes de detalhe e aproximação de mesmo nível.

(44)

Kaplan (2002) mostra como calcular um espectro de potência a partir de um vetor de coeficientes resultantes da DWT de um sinal, no exemplo, de 16 amostras:

Figura 3.12 Estrutura lógica do resultado da DWT (Kaplan, 2002)

Se o vetor consiste de N elementos, onde N é uma potência de dois, então teremos (N)

log2 bandas de coeficientes e 1 valor de aproximação. No exemplo da figura 3.11, o

resultado de uma DWT de 16 elementos tem 4 sub-bandas (log2(16)= ). O espectro de 4 potências wavelet é calculado somando-se os quadrados dos coeficientes de cada sub-banda (Kaplan, 2002):

− = = 1 2 0 k 2 k , j j c ] j [ spectrum

(45)

4 METODOLOGIA

O problema de reconhecer palavras se subdivide em três partes: a aquisição do sinal, a extração de características e a classificação. A aquisição envolve simplesmente a gravação e digitalização do comando de voz. A extração envolve o processamento digital do sinal a fim de extrair parâmetros que melhor o representem, ou seja, características necessárias e suficientes para o seu reconhecimento. A classificação consiste em fazer uso das informações quantizadas (padrões) na construção de um modelo capaz de reconhecer novas ocorrências de um conjunto pré-determinado de palavras, ou simplesmente classificar um sinal apresentado em uma destas classes.

Basicamente, os métodos de extração apresentados a seguir buscam determinar informações de tempo-freqüência dos sinais. Estas são usadas para treinamento (formam o conjunto de treinamento) ou reconhecimento por uma rede neural.

4.1 Aquisição dos sinais de áudio

Todas as amostras de áudio utilizadas para fins de avaliação do modelo e cujo resultados estão contidos neste trabalho foram tomadas usando gravador digital portátil modelo: X-MICRO Video MP3 400.

(46)

O aparelho amostra numa taxa de 8KHz com codificação IMA ADPCM12 de quatro bits por amostrao. Os arquivos decodificados no computador em formato PCM13 apresentam resolução de oito bits por amostra.

As gravações utilizadas no experimento foram tomadas em conjuntos de dez palavras, sendo cada uma repetida seis vezes consecutivas. Foram feitas seis tomadas de gravações para um primeiro conjunto de palavras. Mais tarde foram feitas mais seis tomadas de gravação para dez novas palavras.

Tabela 2 Esquema de gravação das amostras de teste

Grupo Tomadas Palavra Repetições por tomada Total

amarelo 6 36 verde 6 36 azul 6 36 branco 6 36 vermelho 6 36 um 6 36 dois 6 36 três 6 36 quatro 6 36 1 6 cinco 6 36 seis 6 36 sete 6 36 oito 6 36 nove 6 36 zero 6 36 rosa 6 36 laranja 6 36 preto 6 36 marrom 6 36 2 6 roxo 6 36 TOTAL 12 20 120 720

12 Adaptative Differential Pulse Code Modulation 13 Pulse Code Modulation

(47)

4.2 Extração de características

Duas classes de extratores foram implementadas, uma utilizando STFT (cf. seção 3.3.1) e outra utilizando DWT (cf. seção 3.4). Para cada palavra, o número de amostras lidas foi fixado em 8192, pouco mais de um segundo para taxa de amostragem de 8000Hz. Fixar o número de amostras neste valor traz uma vantagem já que as transformadas usadas exigem que o número de amostras seja uma potência de dois.

O início do comando foi detectado a partir de uma amplitude maior que 5% da amplitude máxima possível (nível seguramente alcançado pela pronúncia de uma vogal) e um recuo de 100ms foi aplicado (para incluir qualquer som de consoante não detectado). A mesma técnica pode ser aplicada caso as amostras de som sejam obtidas diretamente do microfone do computador.

4.2.1 Extração com STFT

Para estimar o conteúdo de freqüências ao longo do período de pronúncia da palavra, a transformada FFT foi aplicada a vários frames14, cada um contendo um instante diferente de tempo do sinal original. A janela de Hanning foi aplicada a fim de evitar fenômenos indesejados causados pelo seccionamento abrupto do sinal. Algum grau de superposição entre frames foi adotado (normalmente 50%).

0 0.2 0.4 0.6 0.8 1 1.2 -1 -0 .9 -0 .9 -0 .8 -0 .7 -0 .6 -0 .5 -0 .4 -0 .4 -0 .3 -0 .2 -0 .1 -0 0 .0 6 0 .1 4 0 .2 2 0 .3 0 .3 9 0 .4 7 0 .5 5 0 .6 3 0 .7 2 0 .8 0 .8 8 0 .9 6

Gaussian Hann Hann adjacentes Soma das Hann Blackman

Figura 4.2 Diferentes funções de janelamento

(48)

Desta forma, para cada frame temos o cálculo de um espectro de freqüências.

Figura 4.3 Espectro de freqüência de 7 frames consecutivos, em vermelho o mesmo frame

A figura 4.3 mostra o resultado para frames de 512 amostras. Neste caso, o sinal é dividido em 32 frames, e cada espectro resultante é composto de 256 pontos no domínio da freqüência.

Para cada espectro, algum tipo de resumo das informações das freqüências presentes precisa ser feito. Uma primeira tentativa foi o cálculo do centróide espectral de Sandel (apud Dovicchi, sem data p.2):

= = ⋅ = i 1 n n i 1 n n n p I I F C

Desta forma, no caso de 32 frames, teremos 32 valores de centróides:

(49)

A segunda maneira de resumir o conteúdo local de freqüência foi definindo sub-bandas no espectro e calculando a soma das intensidades para cada sub-banda. A divisão em 5 regiões mostrou bons resultados.

Figura 4.5 Espectro de um frame dividido em 5 regiões

Para 32 frames, temos 160 divisões por sinal analisado, já que são 5 sub-bandas por frame. A figura 4.6 exemplifica o processo para frames de 512 amostras:

(50)

4.2.2 Extração com DWT

A transformada wavelet discreta oferece uma excelente ferramenta para decomposição do sinal em seus diferentes componentes de freqüência, com a vantagem de que o resultado da transformada permanece no domínio do tempo. Os coeficientes usados na transformada foram os de Daubechies ordem 4 (figura 4.7). Este tipo de wavelet é usada no processamento de fonemas devido ao seu bom comportamento na modelagem de sinais de alta freqüência e características ruidosas (Long & Datta, 1996).

Figura 4.7 Função Wavelet e função escalonante Daub4

Uma vez que todos os sinais possuem 8192 amostras, o resultado da DWT de cada um contem 13 bandas (213 =8192). Um espectro de potência com 13 componentes de freqüência pode ser calculado (cf. Seção 3.4). Entretanto uma representação global do sinal não traz informação suficiente para a classificação das palavras – é preciso determinar informações de tempo-freqüência.

Para tal, cada sub-banda é dividida em segmentos iguais (aqui chamados de sub-frames) e o espectro de potência é calculado. Desta forma, temos uma indicação de como a energia em cada banda variou ao longo do tempo de pronuncia da palavra. Testes preliminares mostraram que as primeiras quatro bandas dos coeficientes de detalhes trazem praticamente toda a informação relevante acerca do sinal. Estes coeficientes cobrem quase toda faixa do espectro

(51)

onde a voz humana está localizada. O primeiro passa-alta possui 4096 coeficientes e contém teoricamente as freqüências entre 2KHz e 4Khz (maior freqüência possível), o segundo 2048 coeficientes e freqüências entre 1KHz e 2Khz, o terceiro 1024 coeficientes e freqüências entre 500Hz e 1Khz e o quarto 512 coeficientes de detalhes e as freqüências entre 250Hz e 500Hz.

Para um tamanho de frame de 64 coeficientes, a primeira sub-banda é dividida em 64 subframes, a segunda em 32 subframes, a terceira em 16 subframes e a quarta em 8, o que resulta num total de 120 divisões para cada sinal. Cada subframe representa um bloco no plano do tempo-freqüência (veja figura 4.10) e a parcela de potência presente nele é calculada a partir da soma dos quadrados dos coeficientes. Observe a figura 4.8, onde cada barra representa um subframe, e cada cor simboliza uma sub-banda diferente.

Figura 4.8 Extração: cinco repetições, mesma palavra

(52)

Figura 4.10 Divisão do plano tempo-frequencia resultante da extração com DWT

Uma segunda maneira de proceder à divisão em frames é adotar um número fixo de divisões, por exemplo, 32 divisões por sub-banda, o que resulta em 128 divisões por sinal analisado. Os valores podem ser reagrupados para que fiquem na ordem do tempo e não por banda. Assim o resultado é parecido com a análise STFT, onde se tem um resumo dos componentes de freqüência num determinado instante (correspondente a cinco sub-bandas do espectro de um frame).

(53)

A primeira forma de divisão (tamanho fixo) é conceitualmente mais adequada, já que a primeira sub-banda possui a maior resolução no tempo (e a menor resolução na frequência, ou seja, muitos componentes misturados) e a quarta sub-banda possui a maior resolução na freqüência dentre as avaliadas (em compensação possui a pior resolução no tempo, ou seja, tem poucos coeficientes).

4.3 O Classificador

Para a tarefa de classificação uma rede neural foi implementada em linguagem Java. Tentamos utilizar uma rede Multi-Layer Perceptron, mas a mesma não apresentou bom desempenho, então partimos para uma solução que se mostrou simples e eficaz. A rede possui camada única e aplica regra de aprendizado baseada na função de erro de Bernoulli. A função de ativação de cada unidade é a multi-logística.

O número de saídas depende do tamanho do vocabulário da rede, ou seja, quantas palavras ela precisa reconhecer. Cada palavra possui uma saída correspondente, e a rede é treinada para elevar seu valor a um (1,0) quando sua entrada caracterize aquela palavra. As demais entradas devem estar o mais próximo possível de zero. O número de entradas depende da técnica de extração escolhida. O número de pesos é o produto das saídas pelas entradas.

(54)

Os nós de entrada simbolizam simplesmente que cada entrada é conectada a todas as unidades da rede. A regra de propagação usada foi o somatório ponderado pelos pesos. Cada unidade de saída possui uma entrada de viés. Assim, a entrada total sk(t) de cada unidade da rede é dada por:

O estado de ativação de cada unidade depende da função de ativação F . Como queremos k classificar uma dada ocorrência em uma de N classes (nossa variável objetivo – qual a palavra – é uma variável categorizada), torna-se útil que as saídas da rede variem entre zero e um, e que todas somadas resultem em um. Assim, cada valor de saída representa uma probabilidade. Para tal, existe a função de ativação Softmax (Sarle, 2004) também chamada de função multi-logistica, que para N unidades de saída é definida por:

= = N 1 n ) t ( s ) t ( s k n k e e ) t ( F ,

ou seja, o valor de saída é calculado dividindo-se o valor da exponencial do total de entrada na unidade pela soma das exponenciais do total de entrada em cada uma das unidades de saída. Esta função se reduz à função logística (sigmóide) quando temos apenas duas categorias (ou saídas).

Como vimos na seção 2.3.4, para função de ativação sigmóide, o cálculo do erro nas unidades de saída é: ' F y E P P o ⋅ ∂ ∂ − = δ ) y d ( y E p p P P − − = ∂ ∂ ) y 1 ( y ) y d ( o o o o o = − − δ

Isto de acordo com o cálculo de erro do método LMS. Entretanto, para o caso de problemas de classificação, existe uma função de erro específica – a função de erro de Bernoulli (Chow & Goode, 1994):

(55)

{

}

⋅ + − ⋅ − − = j P j P j P j P j P y d y d E log( ) (1 ) log(1 ) assim, o termo EP /yP é: p p p p P P y d ) y 1 ( ) d 1 ( y E − − − = ∂ ∂

e o cálculo do erro para função de ativação sigmoide:

) y d ( ) y 1 ( y y d ) y 1 ( ) d 1 ( p p o o p p p p o − ⋅ − = − − − = δ

O uso da função de erro de Bernoulli ao invés do método LMS resulta num aumento significativo da velocidade do treinamento (Chow & Goode, 1994).

(56)

5 Resultados

Um conjunto de treinamento usando seis repetições de cada palavra foi montado, resultando em 120 padrões de treinamento. As 600 gravações restantes, ou seja, trinta repetições de cada palavra, compuseram o conjunto do teste. O vocabulário consiste das vinte palavras dispostas na tabela 2. O treinamento foi fixado em 500 épocas com taxa de aprendizado de 0,25. Cada teste foi executado três vezes.

5.1 Resultado com cálculo de centróides

Tabela 3 Resultados de classificação baseados no cálculo de centróides Número de centróides15 Acertos no conj. de treinamento Acertos no

conj. de teste média de acertos taxa de acerto

118 516 120 522 16 120 523 520.3 86.72% 120 527 120 524 31 120 526 525.7 87.61% 120 524 120 524 62 120 523 523.7 87.28%

Referências

Documentos relacionados

Resultado: Ranking de Educação conforme pesquisa do Observatório Social do Brasil.. Ranking- EDUCAÇÃO

In the current study, in accordance with Hogarth (2001), we manipulated the possibility to generate a learning environment (learning environment manipulation from now on)

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

A Comissão Examinadora, abaixo assinada, aprova a Monografia de Especialização A EXPERIÊNCIA DO GRUPO DE COOPERAÇÃO E PRODUÇÃO RAÍZES DA TERRA COM INSTRUMENTO DE PLANEJAMENTO:

Os resultados revelam que os estudantes apresentaram dificuldades na elaboração dos mapas conceituais devido a não utilização deste instrumento no processo de ensino, porém

A presente dissertação é desenvolvida no âmbito do Mestrado Profissional em Gestão e Avaliação da Educação (PPGP) do Centro de Políticas Públicas e Avaliação

Dessa forma, diante das questões apontadas no segundo capítulo, com os entraves enfrentados pela Gerência de Pós-compra da UFJF, como a falta de aplicação de