Relatório Resolução Lista1.pdf
-
Upload
helio-oliveira-ferrari -
Category
Documents
-
view
261 -
download
1
Transcript of 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
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-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)
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 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
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 pretos no 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.