23
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

Relatório Resolução Lista1.pdf

Embed Size (px)

Citation preview

Page 1: Relatório Resolução Lista1.pdf

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

Page 2: Relatório Resolução Lista1.pdf

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.

Page 3: Relatório Resolução Lista1.pdf

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.

Page 4: Relatório Resolução Lista1.pdf

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

Page 5: Relatório Resolução Lista1.pdf

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

Page 6: Relatório Resolução Lista1.pdf

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

Page 7: Relatório Resolução Lista1.pdf

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-se as 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)

Page 8: Relatório Resolução Lista1.pdf

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)

Page 9: Relatório Resolução Lista1.pdf

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.

Page 10: Relatório Resolução Lista1.pdf

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 100.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

Page 11: Relatório Resolução Lista1.pdf

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.

Page 12: Relatório Resolução Lista1.pdf

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.

Page 13: Relatório Resolução Lista1.pdf

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)

Page 14: Relatório Resolução Lista1.pdf

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.

Page 15: Relatório Resolução Lista1.pdf

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.

Page 16: Relatório Resolução Lista1.pdf

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)

Page 17: Relatório Resolução Lista1.pdf

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

Page 18: Relatório Resolução Lista1.pdf

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

Page 19: Relatório Resolução Lista1.pdf

18

Os pontos pretos no gráfico foram aqueles utilizados para validação:

Figura 23 - Preenchimento das classes na Q5

Page 20: Relatório Resolução Lista1.pdf

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

Page 21: Relatório Resolução Lista1.pdf

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)

Page 22: Relatório Resolução Lista1.pdf

21

Abaixo constam os pesos obtidos no treinamento:

Page 23: Relatório Resolução Lista1.pdf

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.