Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Sistemas Inteligentes En Ingeniera Civil Miguel Figueres Moreno
transferencia pueden ser una funcin lineal (purelin) [-, +], base radial
Los mtodos de tipo gradiente calculan la variacin del error al variar cada uno
de los parmetros (a modo de derivada multidimensional), y luego modifican
2
Sistemas Inteligentes En Ingeniera Civil Miguel Figueres Moreno
Sobreaprendizaje
Un posible problema del proceso de entrenamiento, es el sobreaprendizaje o prdida
de generalizacin. Dado un conjunto de datos, es posible que la red neuronal
reproduzca muy bien el comportamiento de dichos datos, pero no el de datos nuevos.
Este problema se acenta en el caso de que los datos tengan ruido o errores.
Figura 3 Aproximacin de la funcin seno. Con y sin sobreaprendizaje. Datos con ruido.
Existen diferentes modos de evitar el sobreaprendizaje. El primero de ellos sera
obtener ms datos para el entrenamiento, aunque esto no es siempre posible. Otra
posibilidad es reducir el tamao de la red (menor nmero de parmetros), de modo
que la red neuronal es menos flexible y ms robusta frente al ruido, aunque si se
reduce demasiado, puede que no sea capaz de aprender o aproximar la funcin
objetivo. Dotar a la red neuronal de suficientes parmetros para que sea capaz de
aprender y evitar el sobreaprendizaje, es el principal aspecto a tener en cuenta en el
dimensionamiento de una red neuronal.
3
Sistemas Inteligentes En Ingeniera Civil Miguel Figueres Moreno
n j1
4
Sistemas Inteligentes En Ingeniera Civil Miguel Figueres Moreno
Redes podadas
Las redes podadas (pruned neural network) son otra tcnica, segn la cual, mediante
la desconexin o eliminacin de neuronas (reduccin del nmero de parmetros), se
consiguen redes neuronales ms simples, empleando una funcin de coste que tiene
en cuenta el nmero total de parmetros de la red. Un posible tipo de funcin de coste
a emplear en las redes neuronales podadas, que tiene en cuenta el nmero de
parmetros de la red, es el PSE (Predicted Squared Error):
2N
PSE MSE 1
Nn
Con las redes neuronales podadas, es posible desconectar neuronas (simplificacin
de la red) o desconectar entradas (variables redundantes o poco relevantes).
0.9
0.8
0.7
0.6
MSE
0.5
0.4
0.3
0.2
0.1
0
1 2 3 4 5
N Neuronas
5
Sistemas Inteligentes En Ingeniera Civil Miguel Figueres Moreno
Simulacin
Una vez entrenada una red neuronal, se puede comprobar el funcionamiento de la
misma, aportando datos de entrada y obteniendo datos de salida. Este proceso se
llama simulacin, ya que los datos de entrada pueden ser datos empleados en el
entrenamiento, o datos nuevos de los cuales se desea tener una prediccin.
6
Sistemas Inteligentes En Ingeniera Civil Miguel Figueres Moreno
Cc=14.5
Cc=15.0
10.00
Cc=15.5
Cc=16.0
Cc=16.5
1.00
5 6 7 8 9 Hs(m)
1 N 1 N
MSE ei t i ai
2 2
N i1 N i1
MSE MSE
RMSE 2
1 N
t
ti t
2
N i1
7
Sistemas Inteligentes En Ingeniera Civil Miguel Figueres Moreno
Referencias
http://www.mathworks.com/access/helpdesk/help/pdf_doc/nnet/nnet.pdf
MATLAB Neural Network Toolbox
Wikipedia: http://es.wikipedia.org/wiki/Red_neuronal_artificial
8
Sistemas Inteligentes En Ingeniera Civil Miguel Figueres Moreno
% Estandarizacion
% ---------------------------------------------
[pstd, coefp] = mapstd(entr_P);
[tstd, coeft] = mapstd(entr_T);
valistd.P = mapstd('apply',vali_P,coefp);
valistd.T = mapstd('apply',vali_T,coeft);
teststd.P = mapstd('apply',test_P,coefp);
teststd.T = mapstd('apply',test_T,coeft);
% Creacion de la red
% ---------------------------------------------
nocultas=3;
nentrada = size(ptotal,1);
nsalida = size(ttotal,1);
net =
newff(pstd,tstd,[nocultas,nsalida],{'tansig','purelin'},'trainlm','learngdm','mse');
net.trainParam.show=100;
net.trainParam.goal=10^(-8);
net.trainParam.epochs=100;
net.trainParam.min_grad=10^(-6);
% Inicializacion de la red
% ---------------------------------------------
net = init(net);
9
Sistemas Inteligentes En Ingeniera Civil Miguel Figueres Moreno
NPar =
size(net.IW{1,1},1)*size(net.IW{1,1},2)+size(net.b{1,1},1)+size(net.b{2,1},1)+size(net.L
W{2,1},1)*size(net.LW{2,1},2);
NPar2 = nentrada*nocultas+nocultas+nocultas*nsalida+nsalida;
astd = sim(net,pstd);
MSE = mean((astd-tstd).^2)
RMSE = MSE/var(tstd)
PSE(nocultas) = MSE*(1+2*NPar/(N-NPar));
% Validacion cruzada
% ---------------------------------------------
an = sim(net,mapstd('apply',ptotal,coefp));
a = mapstd('reverse',an,coeft);
postreg(a,ttotal);
% Representacion grafica de f
% ---------------------------------------------
figure('Name',['Funcion a aproximar -> f=' f]); hold on;
ezsurf(f,[-4,4,-4,4]); view(3); hold on;
10