PSI2533 - Modelagem em Processamento de Sinais

(2o módulo - redes neurais e aprendizado)
edição 2008

Cronograma

Solicitado Entrega Referência
Exercício 1 Professor Miguel
Exercício 2 Professor Miguel
PROVA 1 Professor Miguel
Início do Módulo 25/02/2008 Professor Emílio
Exercício 3 11/04/2008 18/04/2008 PrimeiroExercício_RNAs_2008.pdf
Exercício 4 18/04/2008 25/04/2008 SegundoExercício_RNAs_2008.pdf (ler "requisitos e dicas", nesta página)
Exercício 5 25/04/2008 07/05/2008
09/05/2008
Predição de séries temporais, o exercício está abaixo.
Exercício 6 07/05/2008 16/05/2008
21/05/2008
Classificação de padrões, o exercício está abaixo.
PROVA 2 14/05/2008 Professor Emilio - notas estão abaixo.

Exercício 5 - predição de séries temporais

TerceiroExercício_RNAs_2008.pdf


ERRATA: na solução foi utilizado como um dos critérios de parada a raiz quadrada do erro quadrático médio de 0,05 (equação 5.1) sobre o conjunto de treinamento, ou seja, o erro quadrático médio (Eqm) de 0,0025 (equação 5.2). Se o exercício já foi feito com Eqm=0,05 de erro quadrático médio, é importante notar que a série estimada, usando Eqm=0,0025 (conforme esta errata) ficará muito mais próxima da série original.

(5.1)

(5.2)


Sinais foram adquiridos de uma fonte geradora desconhecida. É desejado construir um estimador neural capaz de predizer os valores do sinal no instante posterior, isto é, dado o valor do sinal nos instantes n e anteriores (ex.: n-1, n-2, ...), o estimador deve dizer o valor para o instante n+1. O erro quadrático médio tolerável para o preditor é de 5% sobre o conjunto de treinamento. ERRATA: A raiz quadrada do erro quadrático médio (equação 5.1) tolerável para o preditor é de 0,05 sobre o conjunto de treinamento. Para resolver esse problema, é proposto o uso de uma rede neural capaz de estimar funções.

Dica, o exercício já foi resolvido pelo monitor, com sucesso, utilizando a seguinte configuração:
  • uma rede neural do tipo MLP com 2 camadas;
  • 1 camada oculta com 25 neurônios;
  • 15 dimensões de entrada (não implica que a ordem do gerador seja 15, pois é desconhecida);
  • uma função sigmóide do tipo tangente hiperbólica;
  • erro quadrático médio foi inferior a 5% sobre o conjunto de treinamento;
    novo texto (vide comentários da errata): na solução foi utilizado como um dos critérios de parada a raiz quadrada do erro quadrático médio de 0,05 (equação 5.1) sobre o conjunto de treinamento, ou seja, o erro quadrático médio (Eqm) de 0,0025 (equação 5.2). Se o exercício já foi feito com Eqm=0,05 de erro quadrático médio, é importante notar que a série estimada, usando Eqm=0,0025 (conforme esta errata) ficará muito mais próxima da série original.
  • número máximo de 100.000 iterações para aprendizado (apenas sugestão, para não gastar muito tempo);
  • taxa de aprendizagem (eta) de 0,9;
  • atualização dos pesos em batelada (em batch);
  • normalização dos valores de entrada e saída. Para isso foi observado que todos os sinais adquiridos estão no domínio [5; 115], logo, foi utilizado o conjunto de [0; 120] como domínio da função para normalização no conjunto [-0,5; +0,5]. Note que esta normalização sugerida é adequada a todos os sinais adquiridos, e esta levando em conta que todos os sinais são provenientes de uma mesma fonte geradora;
  • inicialização dos pesos de forma aleatória, no conjunto [-0,5; 0,5];
  • conjunto de treinamento com 7.000 exemplares, sendo cada exemplar uma janela formada por 15 amostras de entrada e 1 de saída. Por exemplo, entrada: n, n-1, n-2, ..., n-14; saída: n+1;
  • conjunto de testes com os 3.000 exemplares restantes, sendo organizados da mesma forma que o conjunto de treinamento.
É pedido um relatório de ensaios com os seguintes conteúdo:
  • um gráfico com a evolução do erro quadrático médio (Eqm) e do erro quadrático máximo, com o decorrer da adaptação (erros avaliados sobre o conjunto de treinamento);
  • o erro quadrático médio (Eqm) e o erro quadrático máximo do conjunto de testes (após encerramento do aprendizado) ESTES INDICAM A QUALIDADE DO SEU PREDITOR!!!;
  • um gráfico com um trecho da série original contrastada com o trecho correspondente da série prevista (por volta de 100 amostras, para inspeção visual, indicando a qualidade do preditor);
  • um arquivo no formato matlab (.m) com as duas variáveis V e W das matrizes de pesos da rede. Não se esqueça que as matrizes devem conter os pesos dos bias/polarização também;
  • referências bibliográficas e fontes de código, caso se aplique;
  • código do programa em anexo.

REFLETIR E RESPONDER A PERGUNTA: o que você acha que deveria ser modificado na rede neural para atingir erros de aproximação menores que 1% em lugar dos 5% sugeridos neste exercício? ERRATA: o que você acha que deveria ser modificado na rede neural para atingir raíz de erro quadrático médio sobre a aproximação menor que 0,01 em lugar dos 0,05 sugeridos neste exercício?

DICA QUE VALE TEMPO/DICAS DE METODOLOGIA: utilize números de neurônios e amostras baixos, assim como um número de erro grande no início de seus ensaios com a rede. Desse modo, irá garantir que o algoritmo funciona sem grandes esforços computacionais antes de fazer testes com a configuração mais complexa sugerida acima.

Observação: a definição destes parâmetros sugeridos não implica que o aluno tenha que utilizá-los, estes foram obtidos por experimentação e forneceram bons resultados. Quando forem obtidos resultados considerados satisfatórios, o aluno pode alterar a configuração para obter uma otimização em seu sistema, por exemplo, aumentando ou diminuindo os graus de liberdade da rede neural.

O Exercício deve ser resolvido em grupos de 3 (três) participantes. Consulte o monitor em caso de dúvidas ou problemas na solução do exercício, não deixe para última hora. Sala A2-49 (ramal 9740), terças das 10h00 às 11h00 e quintas das 14h30 às 15h30.

Os sinais abaixo estão dividos por grupos de trabalho, a LISTA DE GRUPOS pode ser visualizada clicando aqui.


sinal para o
grupo 1

sinal para o
grupo 2

sinal para o
grupo 3

sinal para o
grupo 4

sinal para o
grupo 5

sinal para o
grupo 6

sinal para o
grupo 7

sinal para o
grupo 8

sinal para o
grupo 9

sinal para o
grupo 10

Exercício 6 - classificação de padrões

QuartoExercício_RNAs_2008.pdf


Descrição do Contexto:

Imagine que a mesma série usada no exercício 5 corresponda a amostras de um sinal cerebral, de uma região de controle motor, e que ela é captada por um sensor não invasivo, exterior ao crânio. Nessas condições, o sinal captado apenas reflete muito confusamente os sinais elétricos que representam os movimentos desejados pelo paciente (imagine uma pessoa que necessita de um braço protético, por exemplo). Digamos que, para alguns movimentos, como fechar a mão e dobrar o braço, outros engenheiros / pesquisadores já conseguiram modelar o sistema cerebral e de sensoriamento adequadamente, após extensa observação das séries temporais, e fórmulas empíricas do tipo abaixo foram obtidas (“sacadas”) com sucesso, para esses dois movimentos específicos, envolvendo as amostras do sinal captado pelo sensor não invasivo, e permitindo separar (reconhecer) os cenários / padrões que indicam o desejo desses dois movimentos:

Padrão de sinais que indicam desejo de fechar a mão (movimento 1):
  • se {[A(n-3)/A(n-7) - sin(A(n-1))]>2 E a média de valores da últimas 12 amostras for positiva}, a série temporal indica que o individuo quer fechar a mão;
  • se {[ln(A(n-3)/A(n-7)) - A(n-1)]<=2*A(n-8) OU Média de valores da últimas 12 amostras for negativa}, a série temporal indica que o individuo não tem intenção de fechar a mão.
Padrão de sinais que indicam desejo de dobrar o braço (movimento 2):
  • se {[A(n-2)*A(n+7) + A(n-1)]>21 OU a série for monotonicamente crescente por cinco amostras OU há queda maior de 10% em entre duas amostras consecutivas na janela [n-4 a n-1]}, a série temporal indica que o individuo quer dobrar o braço;
  • se {[A(n-2)*A(n+7) + A(n-1)<=21] E a série não for monotonicamente crescente por cinco amostras NEM houver queda maior de 10% em entre duas amostras consecutivas na janela [n-4 a n-1]}, a série temporal indica que o individuo não tem intenção de dobrar o braço.
Podemos dizer que as fórmulas acima (hipotéticas, e elaboradas para efeito de exemplificação apenas) viabilizam classificações binárias automáticas (feitas pelo computador) permitindo detectar aqueles padrões cerebrais que indicam intenções de interesse, e que tal procedimento se enquadra no que se conhece como de reconhecimento automático de padrões.

O Desafio para um projeto com RNAs como reconhecedor de padrões: “movimento 3”

É feita uma encomenda onde é desejado expandir a lista de intenções de movimentos detectáveis pelo sistema de monitoração dos sinais cerebrais e correspondente manipulação da prótese de braço. A idéia é utilizar uma rede neural para realizar uma terceira tarefa de reconhecimento de padrões (movimento 3), similar as duas acima listadas, mas ainda não equacionada adequadamente.

Deseja-se utilizar a rede neural como um reconhecedor daqueles padrões na série temporal, a mesma do exercício 5, que indicam o desejo de mover o polegar (movimento 3). Para tal, uma série de experimentos envolvendo seções com o paciente, em que vários movimentos são imaginados por esse individuo, inclusive movimentos de polegar, mas não exclusivamente, e em que há a verbalização por ele/ela, relatando quais movimentos correspondem a movimentos de polegar e quais movimentos não correspondem a movimentos do polegar. Dessa forma, podemos ter uma base de dados (conjunto de treinamento) com vários trechos de séries temporais acompanhados das diferenciações entre movimentação do polegar e não movimentação polegar, devidamente registradas, com base nas verbalizações feitas pelo individuo.

As verbalizações foram rotuladas na forma de uma série temporal binária: ao se mover o polegar, temos um rótulo +1; caso seja outro movimento qualquer ou ausência de movimento, -1. Tal série de rótulos acompanha a série temporal do sinal do sensor.

Assumindo uma janela de tempo envolvendo as últimas 15 amostras de tempo como sendo as mais importantes para a classificação / detecção do movimento desejado pelo indivíduo, construa pares de treinamento do tipo (15 amostras consecutivas; controle do polegar mecânico do tipo mova / não mova) e treine uma rede neural para realizar tal controle a partir do sinal cerebral.

Dica: o exercício já foi resolvido pelo monitor, com sucesso, utilizando a seguinte configuração:
  • uma rede neural do tipo MLP com 2 camadas;
  • 1 camada oculta com 20 neurônios;
  • 15 dimensões de entrada, pois 15 foi citado como o número de amostras mais importantes para classificação;
  • uma função sigmóide do tipo tangente hiperbólica;
  • raiz quadrada do erro quadrático médio foi inferior a 0,03 sobre o conjunto de treinamento;
  • número máximo de 25.000 iterações para aprendizado (apenas sugestão, para não gastar muito tempo);
  • taxa de aprendizagem (eta) de 0,7;
  • atualização dos pesos em batelada (em batch, ou lote);
  • normalização dos valores de entrada e saída. Para isso foi observado que todos os sinais adquiridos estão no domínio [5; 115], logo, foi utilizado o conjunto de [0; 120] como domínio da função para normalização no conjunto [-0,5; +0,5]. Note que esta normalização sugerida é adequada a todos os sinais adquiridos, e esta levando em conta que todos os sinais são provenientes de uma mesma fonte geradora;
  • inicialização dos pesos de forma aleatória, no conjunto [-0,5; 0,5];
  • conjunto de treinamento com 444 exemplares, sendo cada exemplar uma janela formada por 15 amostras de entrada. Por exemplo, entrada: n, n-1, n-2, ..., n-14. Já o valor de saída, é um valor de classificação binária e está no arquivo de rótulo correspondente à série temporal do grupo. Para facilitar o processo de classificação, os sinais adquiridos e respostas dos estímulos do experimento, já foram retirados problemas de atrasos e de defasagens entre sinal e verbalização de rótulo.Logo, o conjunto de amostras de n=1 até n=15, corresponde, no arquivo de rótulos, à saída da faixa n=1 até n=15, sendo +1 ou -1, por exemplo. Assim, ao se escolher uma faixa de exemplo como entrada, deve-se assumir apenas um valor da saída na série de rótulos, +1 ou -1, dependendo do que foi rotulado naquele intervalo;
  • conjunto de testes com os 222 exemplares restantes, sendo organizados da mesma forma que o conjunto de treinamento. Note que existem rótulos com o valor 0 ao final da série, isso ocorre porque a aquisição do sinal foi interrompida sem que fosse terminado o ciclo do sinal, logo, foram descartados os trechos finais do sinal adquirido;
Com esta configuração foi obtido, pelo monitor, o seguinte resumo de resultados:
  • Erro de treinamento com a raiz do erro quadrático médio menor que 0,03;
  • Acerto de classificação sobre o conjunto de treinamento em 100%; uauuuu!!!
  • Acerto de classificação sobre o conjunto de teste em valor superior a 98%.
É pedido um relatório de ensaios com os seguintes conteúdos:
  • um gráfico com a evolução do erro quadrático médio (Eqm) e do erro quadrático máximo, com o decorrer da adaptação (erros avaliados sobre o conjunto de treinamento);
  • uma matriz de confusão sobre a classificação do conjunto de treinamento;
  • uma matriz de confusão sobre a classificação do conjunto de testes; ESTE INDICA A QUALIDADE DO SEU CLASSIFICADOR!!!;
  • um arquivo no formato matlab (.m) com as duas variáveis V e W das matrizes de pesos da rede. Não se esqueça que as matrizes devem conter os pesos dos bias/polarização também;
  • referências bibliográficas e fontes de código, caso se aplique;
  • código do programa em anexo;
  • espera-se que os resultados obtidos sejam compatíveis com os resultados já obtidos experimentalmente pelo monitor.

REFLETIR E RESPONDER A PERGUNTA: como é possível obter valores de taxas de acerto de 100%, quando a raiz do erro quadrático médio usado durante o treinamento como critério de parada foi de 0,03? (isto não levaria a expectativas de 97% de taxa de erro?)

DICA QUE VALE TEMPO/DICAS DE METODOLOGIA: utilize números de neurônios e amostras baixos, assim como um número de erro grande no início de seus ensaios com a rede. Desse modo, irá garantir que o algoritmo funciona sem grandes esforços computacionais antes de fazer testes com a configuração mais complexa sugerida acima.

Observação: a definição destes parâmetros sugeridos não implica que o aluno tenha que utilizá-los, estes foram obtidos por experimentação e forneceram bons resultados. Quando forem obtidos resultados considerados satisfatórios, o aluno pode alterar a configuração para obter uma otimização em seu sistema, por exemplo, aumentando ou diminuindo os graus de liberdade da rede neural.

O Exercício deve ser resolvido em grupos de 3 (três) participantes. Consulte o monitor em caso de dúvidas ou problemas na solução do exercício, não deixe para última hora. Sala A2-49 (ramal 9740), terças das 10h00 às 11h00 e quintas das 14h30 às 15h30.

Os rótulos abaixo estão divididos pelos grupos de trabalho e estão associados aos sinais do exercício 5, a LISTA DE GRUPOS pode ser visualizada clicando aqui.


rótulos para o
grupo 1

rótulos para o
grupo 2

rótulos para o
grupo 3

rótulos para o
grupo 4

rótulos para o
grupo 5

rótulos para o
grupo 6

rótulos para o
grupo 7

rótulos para o
grupo 8

rótulos para o
grupo 9

rótulos para o
grupo 10

Notas

Provas Exercícios
Nome P1 P2 P3 PS 1 2 3 4 5 6 ...
 
Anderson Augusto Serodio 0.006.30-- 5.000.00(-2)7.6010.008.00(-10)0.00
Andre Minoru Beppu 0.005.50-- 7.506.008.406.5010.0010.00
Eduardo Suaiden Filho 0.0010.00-- 0.000.008.0010.0010.009.00
Erico Mitsuki Iwamoto 5.007.00-- 0.000.008.6010.0010.0010.00
Fabio de Albuquerque Spalding 7.008.50-- 0.000.00(-1)7.408.9010.009.00
Felipe Barbosa Cesar 2.007.30-- 3.000.006.80(-10)0.0010.00(-10)0.00
Felipe Praxedes de Miras 9.009.50-- 8.504.008.8010.009.0010.00
Fernando Goncalves de Almeida Neto 8.005.10-- 8.507.808.805.408.0010.00
Fernando Jose Capeletto Neto 0.008.50-- 0.000.008.40(-4)1.407.00(-10)0.00
Fernando Polizini Del Nero 4.006.20-- 9.506.009.4010.008.0010.00
Fernando Yagi Rosado 0.005.50-- 0.000.009.20(-1)7.5010.0010.00
Gabriel Teixeira Vilela 0.009.50-- 0.000.008.2010.0010.008.00
Gleison Santos Torres de Araujo 9.008.00-- 2.500.008.205.8010.00(-10)0.00
Guilherme Bandones Correa 0.002.60-- 0.000.00(-10)0.00(-10)0.0010.0010.00
Laerte Nunes Rosato 0.007.10-- 0.000.00(-1)7.804.208.00(-10)0.00
Leonardo Trevisan Lombardi 0.003.80-- 0.000.00(-1)7.40(-1)5.508.00(-10)0.00
Mirele Stochero 2.006.80-- 0.000.009.6010.00(-1)8.0010.00
Murilo Zubioli Mielli 10.008.50-- 8.500.008.209.608.0010.00
Paulo Yara 0.006.00-- 10.001.507.805.4010.0010.00
Renan Santos Vital 0.005.00-- 0.005.009.803.10(-1)8.0010.00
Rodrigo Tadeu de Oliveira Ladeira 0.005.80-- 0.000.00(-10)0.00(-1)4.0010.009.00
Theo Satoshi Tanaka 0.008.50-- 0.000.008.206.5010.008.00
Thiago Toshio Matsumoto 5.007.50-- 8.000.008.809.6010.0010.00
Vanessa Pereira de Almeida 2.008.00-- 3.000.00(-10)0.0010.0010.00(-10)0.00
Vinicius Valerio de Siqueira 0.000.00-- 0.000.00(-10)0.00(-1)5.50(-10)0.00(-10)0.00
Vitor Riseti Manfrinato 7.0010.00-- 8.508.709.8010.009.0010.00
Wesley Becari 0.009.50-- 0.000.009.2010.009.0010.00
William Luizetto Pinto Salomao 7.008.30-- 0.000.008.20(-2)4.5010.008.00
 
Média 5.927.20-- 6.885.578.447.449.199.55
Desvio Padrão 2.811.90-- 2.722.400.792.711.000.76

Atualizado até às 12h00 de 24 de Junho
As notas já estão com os descontos necessários, o valor a frente da nota é o valor do desconto.
ok = recebido e sem nota até o momento

Esclarecimento de dúvidas

MonitorHumberto Sandmann
Local sala A2-49, ao chegar na porta de vidro ligue para o ramal 9740
HoráriosTerça das 10h00 às 11h00
Quinta das 14h30 às 15h30

Sobre as entregas de exercícios

Os exercícios deverão ser entregues seja no horário de aula, seja até às 16h00 na SECRETARIA do PSI, para Nelson Bernardo. Não serão aceitos exercícios entregues “no corredor”, na sala do professor, ou através do monitor da disciplina. Cada dia útil de atraso implica em desconto de 1 ponto.
Na capa do relatório técnico, identificar claramente o professor, a disciplina, a data do enunciado e a data que está sendo feita a entrega.

Requisitos e dicas
(a lista cresce ao longo do semestre)

Esse módulo da disciplina tem como requisito alguns conhecimentos já vistos durante o curso de graduação, logo, vale a pena relembrar os seguintes tópicos para não ter problemas nos exercícios (e nem na prova):
  • Cybenko e Komolgorov - novo
    (mais - clique em bibliografia)
  • Conceito de gradiente (mais)
  • Derivada parcial (mais)
  • Regra da cadeia (mais)
Obs.: os links para os sítios citados são referências rápidas para relembrar conceitos e pontos básicos, porém não se predispõem a abordar todo o assunto. Estes também são de conteúdo livre, logo, é bom verificar em outros materiais, como em livros clássicos da área.
Importante: esse módulo da disciplina PSI2533 é oferecido pelo Prof. Dr. Emilio Del Moral Hernandez (http://www.lsi.usp.br/~emilio/). Esta página é mantida pelo monitor da disciplina, Humberto Sandmann (http://www.lsi.usp.br/~sandmann/). Aqui é possível encontrar material de apoio para a disciplina, porém para maiores informações consulte sempre a página do professor, assim como o material disponível no sítio do grupo de pesquisa ICONE (http://www.lsi.usp.br/icone/).