480 likes | 614 Views
Davyd Bandeira de Melo. Um Sistema de Reconhecimento de Comandos de Voz Utilizando a Rede Neural ELM. Junho 2011. Aplicações do Processamento Digital de Voz Motivação Arquitetura de um Sistema de Reconhecimento de Voz Aquisição de Dados Pré-processamento Sistema de Recorte
E N D
Davyd Bandeira de Melo Um Sistema de Reconhecimento de Comandos de Voz Utilizando a Rede Neural ELM Junho 2011
Aplicações do Processamento Digital de Voz • Motivação • Arquitetura de um Sistema de Reconhecimento de Voz • Aquisição de Dados • Pré-processamento • Sistema de Recorte • Representação do Sinal de Voz • Reconhecimento de padrões • Tipos de problemas de interesse • Memória Associativa Linear Ótima (OLAM) • Máquinas de Aprendizagem Extrema (ELM) • SRCV – Sistema de Reconhecimento de Comandos de Voz • Simulações • Conclusões • Perspectivas Futuras Sumário
Interação homem-máquina em sistemas multimídias em alta • Maior naturalidade na comunicação com sistemas computacionais • Mobilidade do usuário melhorada através da interface de voz • Aplicações em Robótica Móvel • Acessibilidade Motivação
Estágios constituintes de um sistema de reconhecimento de voz Arquitetura de um Sistema de Reconhecimento de Voz
Responsável por capturar, amostrar e digitalizar as elocuções • O sinal capturado constitui de: • Períodos de silêncio • Períodos relevantes do sinal de voz • Ruído de fundo • Ex: Ar condicionado, chuva, imperfeições do equipamento de captura, dentre outros. Aquisição de Dados
Sistemas Detectores de Atividade de Voz (DAV) • Retira períodos de silêncio do início e do fim da elocução • Reduz a quantidade de dados a serem processados em estágios posteriores • Alguns algoritmos de DAV levam em consideração o ruído de fundo Sistema de Recorte
Filtro de pré-ênfase • Torna o sinal menos suscetível aos efeitos de precisão finita • Planifica o espectro Função de transferência do filtro de pré-ênfase Pré-processamento Equação temporal do filtro de pré-ênfase
Geração de características que forneçam maior eficiência no reconhecimento das elocuções • Reduz o espaço de dados sem perda de informação útil • Representação utilizada: coeficientes LPC Representação do Sinal de Voz
Consiste em representar o sinal através de suas amostras atrasadas no tempo: • Os coeficientes a1, a2, a3, ..., ap são chamados de coeficientes LPC • p é chamada ordem do preditor Representação do Sinal de Voz
Minimização de uma função custo • Resolvendo a equação acima obtemos os valores ótimos onde Representação do Sinal de Voz
Utiliza-se então o algoritmo de Levison-Durbin para resolver o sistema dos coeficientes LPC Representação do Sinal de Voz
Objetivo: encontrar regularidades nos dados de forma a separá-los em classes Reconhecimento de Padrões
Fase de treinamento e fase de generalização • Divide-se o conjunto de dados (N elementos) para treinamento e teste • Fase de treinamento • Conjunto de treinamento Xtrcom N1 elementos • Rótulos das classes de cada vetor de treinamento • Fase de teste • Conjunto de teste Xtestcom N2 elementos • Observa-se as saídas do classificador para verificar seu desempenho • Realimentação dos resultados e ajustes finos • Tipos de conjunto • Linearmente separáveis • Não-linearmente separáveis Reconhecimento de Padrões
Tipos de Problema de Interesse Problema não-linearmente separável Curva não-linear separando duas classes de dados Problema linearmente separável
Assume-se inicialmente um mapeamento linear W desconhecido entre vetores de entrada x e vetores de saída d: • Representando o mapeamento através de sistemas lineares: Memória Associativa Linear Ótima (OLAM)
Tem-se como objetivo descobrir uma matriz aproximada dos parâmetros do sistema a partir de pares entrada/saída • Onde yμ é a saída estimada do mapeamento, que deve ser próximo de dμ, cujo o erro é dado por • O OLAM consiste em estimar a matriz utilizando a técnica da pseudoinversa • Fase de treinamento: • Conjunto de dados com N vetores de entrada • Matrix com N1 (N1 < N) vetores de entrada • Matrix com N1 vetores de saídas desejadas Memória Associativa Linear Ótima (OLAM)
e são as concatenações dos vetores de entrada e saídas desejadas respectivamente, ou seja: • Construímos o mapeamento linear a partir de e • Onde cada vetor coluna de possui +1 na classe desejada e -1 nas outras classes, ou seja: Memória Associativa Linear Ótima (OLAM)
Multiplicamos pela direita e em seguida por também pela direita: • De onde obtemos: • Para verificarmos a generalização do modelo obtido fazemos: • Onde: • é um conjunto de teste com N2= N – N1 elementos • saída do novo modelo estimado Memória Associativa Linear Ótima (OLAM)
Obtém-se a classe inferida pela rede observando o índice do maior elemento de um vetor coluna de , ou seja: • Em que representa a classe inferida pelo classificador quando se aplica um vetor de entrada xμ Memória Associativa Linear Ótima (OLAM)
Mapeamento Aleatório (W) OLAM (M) u(i) z(i) tgh(.) x y Arquitetura da rede neural ELM Máquinas de Aprendizagem Extrema (ELM)
Máquinas de Aprendizagem Extrema (ELM) Neurônio da camada escondida Neurônio da camada de saída
Três fases a serem seguidas para realização do treinamento da rede ELM: • Fase 01: Inicialização Aleatória dos Pesos dos Neurônios Ocultos • Fase 02: Acúmulo das Saídas dos Neurônios Ocultos • Fase 03: Cálculo dos pesos dos neurônios de saída • O conjunto de dados possui N vetores de entrada. • N1 (N1 <N) vetores para treinamento • N2 = N - N1 vetores para teste Máquinas de Aprendizagem Extrema (ELM)
Fase 01: Inicialização Aleatória dos Pesos dos Neurônios Ocultos • Inicializa-se a matriz dos pesos W com valores aleatórios que podem ser distribuídos de forma uniforme ou normal • Onde W é Máquinas de Aprendizagem Extrema (ELM)
Fase 02: Acúmulo das Saídas dos Neurônios Ocultos • Calcula-se a matriz de ativação da camada oculta utilizando uma matriz de dados de treinamento (N1 vetores) • Realizando todas as computações matricialmente, temos: • Após isso se aplica a função de ativação tanh(.) para obter a saída da camada oculta Máquinas de Aprendizagem Extrema (ELM)
Fase 03: Cálculo dos pesos dos neurônios de saída • Tendo obtido Z, podemos enxergar a última camada como um modelo OLAM de entrada Z e saídas desejadas D • Podemos obter a matriz de pesos M da camada de saída aplicando o método da pseudoinversa • Teste de capacidade de generalização utilizando as matrizes W e M Máquinas de Aprendizagem Extrema (ELM)
SRCV – Sistema de Reconhecimento de Comandos de Voz • Características Proprostas • Gravação de elocuções • Cadastro de novos comandos de voz • Exibição de formas de onda • Gerenciamento completo das elocuções • Armazenamento dos parâmetros das redes neurais • Seleção do tipo de rede utilizado nas simulações • Log de atividades • Simulações através de arquivos de dados e bancos de dados relacionais SRCV
Modelos de Dados Modelos de dados utilizados no SRCV
Padrão de Projeto • Soluções que, no contexto das linguagens orientadas a objeto, proporcionem reuso, modularidade e uma maior separação entre camadas de software. • Padrões de Projeto utilizados no SRCV • Singleton: Acesso através de um único objeto à conexão com o banco de dados • Data Access Object: Acesso transparente aos meios persistentes Padrões de Projetos Utilizados
Padrões de Projetos Utilizados Diagrama de classe que representa o padrão DAO
Padrões de Projetos Utilizados Diagrama de classe que representa o padrão Singleton
Simulação 01: Utilização de um conjunto de dados pouco desafiador para validação das redes neurais desenvolvidas • Após os vetores de dados serem carregados eles são embaralhados e divididos • 80% dos dados para treinamento. N1 = 0,80 * N • 20% dos dados para teste. N2 = 0,20 * N • A rede é treinada 50 vezes e em cada vez um novo embaralhamento é realizado • Os melhores parâmetros das redes neurais são guardados e utilizados na fase de generalização • OLAM: Matriz W • ELM: Matriz W e M Simulações – Conjunto Wine
Resultados: • OLAM: 98% de acerto no treinamento • ELM: Simulações – Conjunto Wine Taxa de acerto da rede ELM no treinamento Tempo médio de execução da rede ELM (inicialização, treinamento e teste)
Simulação 02: Utilização de um conjunto de dados desafiador para validação das redes neurais desenvolvidas • Após os vetores de dados serem carregados eles são embaralhados e divididos • 80% dos dados para treinamento. N1 = 0,80 * N • 20% dos dados para teste. N2 = 0,20 * N • A rede é treinada 50 vezes e em cada vez um novo embaralhamento é realizado • Os melhores parâmetros das redes neurais são guardados e utilizados na fase de generalização • OLAM: Matriz W • ELM: Matriz W e M Simulações – Conjunto Wall-FollowingRobot
Resultados: • OLAM: 65,5% de acerto no treinamento • ELM: Simulações – Conjunto Wall-FollowingRobot Tempo médio de execução da rede ELM (inicialização, treinamento e teste) Taxa de acerto da rede ELM no treinamento
Simulação 03: Utilização do conjunto de dados para testar o reconhecimento de comandos • Após os vetores de dados serem carregados eles são embaralhados • 100% dos dados para treinamento. N1 = N • 7 elocuções para cada um dos comandos: frente, trás, esquerda e direita • A rede é treinada 50 vezes e em cada vez um novo embaralhamento é realizado • Os melhores parâmetros das redes neurais são guardados e utilizados na fase de generalização • OLAM: Matriz W • ELM: Matriz W e M • Para realização do teste uma nova elocução é gravada, representada através de coeficientes LPC e submetida às redes neurais Simulações – Conjunto das Elocuções
Os coeficientes LPC de cada frame de uma elocução são extraídos e a cada um deles é atribuído um rótulo • A matriz dos vetores de entrada tem a seguinte forma • Onde os rótulo R0, R1, R2,... RL-1 são os rótulos dos comandos dos quais cada coeficiente LPC pertence Simulações – Conjunto das Elocuções
A matriz dos vetores de entrada é submetida a rede neural • Para cada vetor dessa matriz a rede neural inferirá uma classe • Cada classe possui uma variável acumuladora que indica quantas vezes a rede identificou um dado comando • É feito o voto majoritário entre as variáveis acumuladoras para indicar qual comando foi emitido pelo usuário • Por exemplo, se a rede possuir as seguintes variáveis acumuladoras teremos como saída o comando frente: • Frente: 145 • Trás: 0 • Esquerda: 15 • Direita: 12 Simulações – Conjunto das Elocuções
Parâmetros de aquisição das elocuções: • Taxa de amostragem: 8KHz • Bits/amostra: 8 • Número de canais: 1 • Sinalização: Sim • Endianess: Big-endian • Parâmetros de pré-processamento • Coeficiente do filtro de pré-ênfase: 0,9 • Parâmetros de representação do sinal • Ordem de predição linear: 10 Simulações – Conjunto das Elocuções
Resultados: • OLAM: 55% de acerto no treinamento • ELM: Matriz de confusão para a rede neural ELM. Simulações – Conjunto das Elocuções Métrica m1 para a rede neural ELM. Taxa de acerto da rede ELM no treinamento
Matriz de confusão para a rede neural OLAM. Simulações – Conjunto das Elocuções Métrica m1 para a rede neural OLAM.
O uso de conjuntos de dados cuja complexidade é conhecida foi útil para validar as implementações das redes neurais • O classificador não-linear (ELM) se comportou melhor em relação ao classificador linear (OLAM) para os dados de voz • Melhor matriz de confusão • Maior precisão evidenciada através de uma métrica m1 • A taxa de acerto da rede ELM saturou a medida que se aumenta quantidade de neurônios da camada oculta • O tempo de execução da rede ELM apresentou um comportamento exponencial a medida que se aumenta quantidade de neurônios da camada oculta • O uso de padrões de Software adicionou modularidade e reuso à aplicação Conclusões
Correções de bugs conhecidos no simulador • Melhoria da usabilidade do simulador • Implementação da funcionalidade de reconhecimento de usuários • Criação de uma interface entre o software e as rotinas de movimentação do robô SCITOS G5 Perspectivas Futuras