Anda di halaman 1dari 2

Universidade Federal do Paran

PPGMNE Programa de Ps-Graduao em Mtodos Numricos em Engenharia


Disciplina: Aplicaes de Redes Neurais em Engenharia
Profa.: Andrea Sell Dyminski (asdymi@ufpr.br)
Trabalho Domiciliar Aproximao de funes atravs de redes neurais

PARTE 1 Data de entrega 17/08/2007


Nos trs itens abaixo, encontram-se conjuntos de pontos a serem usados como grupos de
treinamento e de teste de redes neurais. Alguns comandos do MATLAB, para gerao de
vetores e funes, encontram-se listados nos respectivos itens.
Para cada um deles, encontrar uma rede neural feedforward que melhor aproxime a funo
que relaciona as variveis p e t, sendo p a entrada e ta sada desejada da RN. A
escolha da arquitetura mais adequada para cada um dos problemas a ser resolvido pode ser
feita por tentativa e erro. As redes neurais devero ser treinadas atravs do algoritmo de
back-propagation. Para cada um dos casos, devero ser apresentadas, no mnimo, as trs
melhores alternativas de rede neural encontradas. Alm de constar a arquitetura da RN e os
erros de treinamento e de teste, apresentar tambm o grfico de pontos reais x resultado da
RN.
O clculo do erro de treinamento e de teste dever ser feito utilizando-se algum tipo de funo
quadrtica (ou de sua raiz quadrada), a fim de evitar influncia do sinal do erro.
OBS:
a) Lembrar que as redes neurais so inicializadas no MATLAB com pesos sinpticos
randmicos, ou seja, inicializando-se redes de mesma arquitetura, pode-se conseguir
resultados diferentes;
b) A escolha das funes de ativao fica por conta do usurio;
c) Caso queira utilizar outro algoritmo de treinamento, alm do back-propagation (que
obrigatrio neste trabalho), utilize-o;
1) Aproximao da funo HUMPS:
- Conjunto de treinamento:
p=0:0.15:2.5
ttr=humps(p)
- Conjunto de teste:
pt1=p+0.05
tt1=humps(pt1)
2) Aproximao da funo seno:
- Conjunto completo de dados:
p=(0:0.1:5)*pi
t=sin(p)
Separar este total de pontos em dois conjuntos, estando 70% dos pontos no conjunto
de treinamento e 30%, no conjunto de teste.
3) Aproximao da funo seno com rudo randmico:
- Conjunto completo de dados:
p=(0:0.1:5)*pi
t=sin(p)+0.5*rand(size(p))

Separar este total de pontos em dois conjuntos, estando 70% dos pontos no conjunto
de treinamento e 30%, no conjunto de teste.

PARTE 2 Data de Entrega: 31/08/2007

As matrizes xx,yy e zz podem ser geradas pelas nove seguintes funes, da maneira abaixo:
function [xx, yy, zz]=funrn(i);
Nx=10; Ny=10;
x=0:0.5:Nx;
y=0:0.5:Ny;
[xx yy]=meshgrid(x,y);
switch (i)
case 1
zz=sin(xx/Nx*2*pi).*cos(yy/Ny*2*pi);
case 2
zz=sin(xx/Nx*2*pi).^2.*cos(yy/Ny*pi-pi/2);
case 3
zz=sin((xx+yy)/Nx*pi).^2.*cos(yy/Ny*pi-pi/2);
case 4
zz=sin((xx+yy)/Nx*pi).^2.*cos((yy.*xx)/Ny/Nx*2*pi-pi/2);
case 5
zz=membrane;
case 6
[xx yy zz]=peaks;
case 7
zz=sin(xx/Nx*2*pi)+cos(yy/Ny*pi-pi/2)+0.1*rand(Ny+1,Nx+1);
case 8
zz=sin(xx/Nx*2*pi).*sin(yy/Ny*pi);
case 9
zz=sin(xx/Nx*2*pi).*sin(yy/Ny*pi) + 0.1*rand(Ny+1,Nx+1);
end
zz=10*zz;
surf(xx,yy,zz)

Depois de geradas, as matrizes xx, yy e zz devero ser transformadas em vetores/matrizes de


entrada e de sada desejada, a serem utilizados no treinamento e teste de redes neurais
feedforward e de funo de base radial. Isso pode ser feito da seguinte forma:
function [x, y, z]=gradevetor(xx,yy,zz)
x=xx(:)';
y=yy(:)';
t=zz(:)';

onde x e y sero as entradas e z a sada desejada da RN.


Utilizar 60% dos dados para treinamento, 20% para validao e 20% para teste de
generalizao.
Escolha trs das funes da lista acima, treine e teste as RNs solicitadas. Alm de constar a
arquitetura da RN e os erros de treinamento e de teste, apresentar tambm o grfico de pontos
reais x resultado da RN.
OBS:

a) para facilitar o manuseio os dados, os mesmos devem ser normalizados;

Anda mungkin juga menyukai