Baixe o app para aproveitar ainda mais
Prévia do material em texto
RESOLUÇÃO DA PRIMEIRA LISTA DE EXERCÍCIOS Guilherme Pereira Marchioro Bertelli, 2013079718 Ricardo Costa Antunes de Sousa, 2013010410 Tomaz Filgueira Nunes, 2013079745 Natal, 18 de março de 2014. UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA DE COMPUTAÇÃO E AUTOMAÇÃO REDES NEURAIS ARTIFICIAIS 1 Guilherme Pereira Marchioro Bertelli Ricardo Costa Antunes de Sousa Tomaz Filgueira Nunes RESOLUÇÃO DA PRIMEIRA LISTA DE EXERCÍCIOS Relatório referente à resolução da primeira lista de exercícios da disciplina Redes Neurais Artificiais, correspondente à parte da avaliação da 1º unidade do semestre 2014.1, dos cursos de Engenharia da Computação, Engenharia Mecatrônica e Engenharia Elétrica da Universidade Federal do Rio Grande do Norte, sob orientação do Prof. Adrião Duarte Doria. Natal, 18 de março de 2014. 2 RESUMO Neste relatório serão explanados o desenvolvimento das seis questões da primeira lista de exercícios, sendo especificadas as arquiteturas das redes e os gráficos dos resultados obtidos referentes ao desempenho dos algoritmos. Para o desenvolvimento dos algoritmos, foi utilizado a toolbox do MATLAB NNTool. A fundamentação teórica necessária para a resolução das questões foi ministrado na disciplina “Redes Neurais Artificiais”, pelo professor Adrião Duarte Doria, do Departamento de Engenharia de Computação e Automação, da Universidade Federal do Rio Grande do Norte. 3 LISTA DE FIGURAS Figura 1 - Arquitetura da rede neural da Q1 ........................................................................... 5 Figura 2 - Performance de treinamento da Q1 ........................................................................ 5 Figura 3 - Matrizes de confusão para variância = 0 e 1 (Q1) ................................................... 6 Figura 4 - Classificação das classes com aumento da variância (Q1) ...................................... 6 Figura 5 - 1/variância x probabilidade de erro (Q1) ................................................................ 7 Figura 6 - Diagrama da Q2 ..................................................................................................... 8 Figura 7 - Arquitetura da rede neural da Q3 ........................................................................... 9 Figura 8 - Curva de performance da Q3.................................................................................. 9 Figura 9 - Arquitetura da rede neural da Q4a) ...................................................................... 11 Figura 10 - Curva de performance da Q4a) ........................................................................... 11 Figura 11 - Matriz de confusão da Q4a) ............................................................................... 12 Figura 12 - Saída da rede neural da Q4a) .............................................................................. 12 Figura 13 - Arquitetura da rede neural da Q4b) .................................................................... 13 Figura 14 - Curva de aprendizado da Q4b) ........................................................................... 13 Figura 15 - Aproximação da função da Q4b) ........................................................................ 14 Figura 16 - Arquitetura da rede neural da Q4c)..................................................................... 14 Figura 17 - Performance de Q4c) ......................................................................................... 15 Figura 18 - Saída da rede neural da Q4c) .............................................................................. 15 Figura 19 - Divisão de classes da Q5 .................................................................................... 16 Figura 20 - Arquitetura da rede neural da Q5........................................................................ 16 Figura 21 - Curva de performance da Q5 .............................................................................. 17 Figura 22 - Matriz de confusão da Q5 .................................................................................. 17 Figura 23 - Preenchimento das classes na Q5 ....................................................................... 18 Figura 24 – Arquitetura da rede neural da Q6 ....................................................................... 19 Figura 25 - Performance do treinamento da Q6 .................................................................... 19 Figura 26 – x(n) atual e estimado Q6 .................................................................................... 20 Figura 27 - Erro (Q6) ........................................................................................................... 20 4 SUMÁRIO QUESTÃO 1 .................................................................................................. QUESTÃO 2 ................................................................................................... 5 8 QUESTÃO 3 .................................................................................................. QUESTÃO 4 ................................................................................................... QUESTÃO 5 ................................................................................................... QUESTÃO 6 .................................................................................................... 9 11 16 19 REFERÊNCIAS BIBLIOGRÁFICAS ......................................................... 21 5 QUESTÃO 1 O problema desta questão consiste em classificar/decodificar um sinal digital, especificando e treinando uma rede de perceptrons, e avaliar o desempenho da mesma para classificação de sinais ruidosos. Inicialmente deve-se escolher o conjunto de treinamento. Como o MATLAB usa apenas 70% dos valores para treinamento (o restante para validação), os valores foram repetidos. O conjunto de treinamento utilizado foi A arquitetura da rede neural utilizada foi a seguinte: Figura 1 - Arquitetura da rede neural da Q1 O algoritmo de treinamento utilizado foi o Levenberg-Marquardt backpropagation, e com apenas 5 iterações, o erro convergiu para aproximadamente 10 -14 , como pode ser visto na curva de performance abaixo. Figura 2 - Performance de treinamento da Q1 6 Abaixo tem-se as matrizes de confusão para variância igual a zero e igual a 1. Percebe- se que para uma variância nula, não ocorreram erros, já com um valor unitário, o número de equívocos foi considerável. Figura 3 - Matrizes de confusão para variância = 0 e 1 (Q1) Para ilustrar as matrizes de confusão, abaixonestão a representação dos pontos no cubo para uma variância igual a 0, 0.2 e 1, respectivamente. Observa-se que com uma variância igual a 0, estão representados apenas os pontos nos vértices, e a medida que ela aumenta, formam-seas esferas. Quando a variância atinge um valor unitário, torna-se difícil identificar as classes. Figura 4 - Classificação das classes com aumento da variância (Q1) 7 O gráfico do inverso da variância pela probabilidade de erro consta abaixo (no tempo e em decibéis). Por esse gráfico, pode-se compreender a relação da taxa de erros com a com a energia do sinal e a densidade de potência do ruído. Figura 5 - 1/variância x probabilidade de erro (Q1) 8 QUESTÃO 2 A segunda questão consiste em determinar o modelo inverso de uma planta utilizando um filtro FIR e os ganhos utilizando o algoritmo LMS. A Figura 5, abaixo, ilustra esse processo. Figura 6 - Diagrama da Q2 Apesar da compreensão do problema, não obtivemos êxito em sua resolução. 9 QUESTÃO 3 Na questão referida, deve-se identificar uma planta desconhecida utilizando o algoritmo LMS, determinando o erro e esboçando a curva do erro médio quadrado e, também, fazer uma pesquisa de como são gerador números aleatórios. Foram utilizados 10 neurônios e arquitetura utilizada foi a seguinte: Figura 7 - Arquitetura da rede neural da Q3 Após 10 iterações, o erro convergiu para aproximadamente 10 0.1 , o que indica que a rede não foi muito eficaz no treinamento. À seguir, pode-se ver o gráfico da performance de treinamento, no qual foi utilizado o algoritmo Levenberg-Marquardt backpropagation. Figura 8 - Curva de performance da Q3 10 Os valores dos ganhos obtidos após o treinamento foram os seguintes: Pesquisa sobre geração de números aleatórios Os computadores digitais domésticos atuais, na verdade, não geram números aleatórios. O que estes computadores fazem é usar um algoritmo para produzir números (denominados pseudoaleatórios) que simulam o comportamento de números aleatórios. Já existem no mercado equipamentos que, através de fenômenos físicos, procuram gerar números “mais aleatórios”. Contudo, estes equipamentos ainda são caros. Definir o que se entende por um número ou evento aleatório é ainda uma questão polêmica, sendo debatida por psicólogos, filósofos, matemáticos, físicos e cientistas da computação. Por exemplo, pode-se pensar que o lançamento de uma moeda honesta pode gerar um evento aleatório com probabilidade 1/2 para cara e probabilidade 1/2 para coroa. Mas o lançamento de uma moeda é um processo determinístico, regido pelas leis da física. Um dos algoritmos mais simples para se gerar números pseudoaleatórios (e ainda muito usado em vários programas de computador) é o assim denominado gerador congruente linear (GCL), apresentado por D. H. Lehmer em 1949: considere números inteiros m, a, c e s tais que m > 0, 0 ≤ a < m, 0 ≤ a < m e 0 ≤ s < m. Colocando x0 = s, defina recursivamente para cada inteiro n ≥ 0: Novos algoritmos propostos: Mersenne Twister (usado no PlayStation 3 e com período), Blum Blum Shub (usado em criptografia), Xorshift de George Marsaglia, etc. 11 QUESTÃO 4 Nesta questão, tem-se o problema de aproximação de funções. 4 a) Nesta primeira função, utilizamos o MLP com 5 neurônios, e para treinamento utilizamos o algoritmo Levenberg-Marquardt backpropagation. O treinamento foi feito com 7 iterações (épocas) e a arquitetura da rede pode ser vista na figura abaixo: Figura 9 - Arquitetura da rede neural da Q4a) Na curva de performance, pode-se observar que o erro converge para 10 -15 , após 7 épocas. Figura 10 - Curva de performance da Q4a) Como estamos lidando com um problema de aproximação, a matriz de confusão também ajuda na validação dos resultados. Pode-se observar que todos os pontos na classe 1 foram para a classe 1 e todos os pontos da classe 2 foram para a mesma, não havendo erros. 12 Figura 11 - Matriz de confusão da Q4a) Por fim, o gráfico da saída da rede foi o seguinte: Figura 12 - Saída da rede neural da Q4a) 13 4 b) A função acima foi simplificada, excluindo os termos que multiplicam as funções sinc, pois não foi possível realizar uma aproximação satisfatória. Utilizou-se o algoritmo MLP com 20 neurônios, e o algoritmo Levenberg-Marquardt backpropagation para o treinamento. A arquitetura da rede neural foi a seguinte: Figura 13 - Arquitetura da rede neural da Q4b) Com o treinamento, o erro convergiu para 10 -4 com 63 iterações, como pode ser visto na curva de performance, abaixo: Figura 14 - Curva de aprendizado da Q4b) Apesar do erro pequeno, a aproximação da função divergiu consideravelmente, como mostrado na Figura 15. 14 Figura 15 - Aproximação da função da Q4b) 4 c) Foi utilizado o algoritmo MLP com 10 neurônios e, para treinamento, o algoritmo Levenberg-Marquardt backpropagation. A arquitetura da rede foi a seguinte: Figura 16 - Arquitetura da rede neural da Q4c) Com 1000 épocas, o erro convergiu para 10 -5 , como pode ser visto no gráfico da performance do treinamento. 15 Figura 17 - Performance de Q4c) Apesar do número de iterações, o erro convergiu para um valor muito pequeno, e o gráfico da saída foi bastante satisfatório, com os pontos da saída sobreponto os pontos desejados. O gráfico segue, à seguir, onde os pontos azuis são os reais e os vermelhos são a saída da rede neural. Figura 18 - Saída da rede neural da Q4c) 16 QUESTÃO 5 O problema da questão referida consiste na classificação de padrões de 8 classes nos espaços denotados pelo gráfico abaixo. Afim de obtermos melhores resultados, criamos uma nona classe, para abranger os números que não se adéquam a nenhuma das 8 classes, no caso, os pontos que estão fora do círculo. Figura 19 - Divisão de classes da Q5 Foi utilizado o algoritmo MLP com 10 neurônios, e para o treinamento utilizou-se o Levenberg-Marquardt backpropagation. Os limites de cada classe foram definidos conforme a tabela à seguir. Além das 8 classes especificadas, foi criada uma 9ª classe, como mencionado anteriormente, que contém os pontos que estão fora do círculo. X Y Classe Inicial Final Inicial Final C1 0 1 0 1-X C2 -1 0 0 1+X C3 -1 0 -1 1-X C4 0 1 -1 -1+X C5 0 1 1-X SQRT(1-X²) C6 -1 0 1+X SQRT(1-X²) C7 -1 0 -SQRT(1-X²) -1-X C8 0 1 -1+X -SQRT(1-X²) Tabela 01 – Limites das classes A arquitetura da rede neural utilizada foi a seguinte: Figura 20 - Arquitetura da rede neural da Q5 17 Após 52 épocas de treinamento, o erro convergiu para 10 -1,5 , gerando o gráfico de performance à seguir. Figura 21 - Curva de performance da Q5 A matriz de confusão gerada foi a vista na Figura 22. Sua análise nos permite constatar que todas as classes foram agrupadas corretamente, sem erro, de forma a gerar o gráfico da saída correto, como visto na Figura 23. Figura 22 - Matriz de confusão da Q5 18 Os pontos pretosno gráfico foram aqueles utilizados para validação: Figura 23 - Preenchimento das classes na Q5 19 QUESTÃO 6 O problema da questão 6 consiste na predição de uma série temporal utilizando o algoritmo backpropagation. Foram utilizados 16 neurônios e, para o treinamento, o algoritmo Gradient Descent with Momentum, como especificado na questão. A arquitetura da rede neural foi a seguinte: Figura 24 – Arquitetura da rede neural da Q6 Após 1000 iterações, o erro convergiu para 10 -1 , como pode ser visto abaixo na curva de performance do treinamento. Os melhores valores dos parâmetros encontrados para o treinamento foram η = 0.1 e α = 0.2. Figura 25 - Performance do treinamento da Q6 20 Abaixo, têm-se o gráfico do x(n) atual (em azul) e x(n) estimado (em vermelho): Figura 26 – x(n) atual e estimado Q6 Subtraindo os gráficos, obtêm-se o erro: Figura 27 - Erro (Q6) 21 Abaixo constam os pesos obtidos no treinamento: 22 REFERÊNCIAS BIBLIOGRÁFICAS [1] Notas de aula. [2] Função help, do MATLAB. [3] ]HAYKIN, S. S. Redes Neurais - Princípios e Prática (2ª ed.). Bookman, 2001. [4] BRAGA, A. D. P.; DE CARVALHO, A. P. D. L. F.; LUDERMIR, T. B. Redes Neurais Artificiais: Teoria e Aplicações. LTC Editora, 2000.
Compartilhar