Está en la página 1de 4

MatLab

Toolbox de Redes Neuronales


REDES
NEURONALES | Entradas concurrentes
| REDES ESTTICAS
EN MATLAB | Entradas Secuenciales en tiempo

por Gustavo Meschino | REDES DINMICAS

2006

SUB-OBJETOS

MatLab MatLab
Toolbox de Redes Neuronales Toolbox de Redes Neuronales
| Las neuronas de una capa tienen todas la misma funcin de
| Objeto Red nmero de capas transferencia indicadas en:
nmero neuronas por capa net.transferFcn (para el peceptrn hardlim)
conectividad entre capas
SUB-OBJETOS | Tambin se indica la funcin de entrada (el clculo del campo local):
net.netInputFcn (para el peceptrn netsum)
inputs: {1x1 cell} # ENTRADAS
layers: {1x1 cell} # CAPAS
outputs: {1x1 cell} # SALIDAS
| Los parmetros net.inputWeights y net.layerWeights especifican la
funcin de entrenamiento y sus parmetros (y otras cosas).
targets: {1x1 cell} # SALIDAS DESEADAS
biases: {1x1 cell} # UMBRALES
| Se dan las funciones de inicializacin, perfomance y entrenamiento y
inputWeights: {1x1 cell} # PESOS DE LA CAPA DE ENTRADA sus parmetros
layerWeights: {1x1 cell} # PESOS DE CAPAS ESCONDIDAS
functions: parameters:
adaptFcn: 'trains' adaptParam: .passes
| Distintas funciones para crear distintos tipo de Redes: newp initFcn: 'initlay' initParam: (none)
(perceptrn), newff (feed forward), newlin (neurona lineal)... performFcn: 'mae' performParam: (none)
trainFcn: 'trainc' trainParam: .epochs, .goal,
.show, .time

Toolbox de Redes Neuronales Toolbox de Redes Neuronales


Funciones seleccionables Parmetros seleccionables
| initFcn funcin con que se inicializalizan | adaptParam:
pesos y umbrales. .passes Cantidad de pasadas para la funcin adapt.
| trainFcn funcin de entrenamiento Batch. Nmero de pocas.
Se da una sola para toda la red | trainParam:
(es la opcin que se utiliza)
.epochs Cantidad de pocas mxima
| adaptFcn funcin de entrenamiento Incremental (on line)
Se puede dar una funcin de entrenamiento .goal Error mnimo al que se quiere llegar
por cada capa conectada (sin gran aplicacin). .show Cada cuntas pocas se mostrarn resultados
| performFcn funcin de performance, cuantifica un valor y se actualizar el grfico de entrenamiento
para el error que va comentiendo la red. .time Tiempo mximo de entrenamiento
mse: mean squared error,
mae: mean absolute error, etc.
| Se dispone de unas 20 funciones de entrenamiento (trainFcn), Otros trainParam (dependiendo del tipo de red creada y de
cada una con sus caractersticas de velocidad, requerimientos de la funcin de entrenamiento o adaptacin)
memoria, etc. min_grad, mu, mu_dec, mu_inc, mu_max, lr ...

1
Toolbox de Redes Neuronales Toolbox de Redes Neuronales
Funciones de entrenamiento Pesos y Umbrales
| trainFcn = traingd (demo nnd12sd1) IW: {1x1 cell} containing 1 input weight matrix
funcin descenso por el gradiente. Se indica el nmero de LW: {1x1 cell} containing no layer weight matrices
pocas (epochs), cada cuntas iteraciones se muestran los b: {1x1 cell} containing 1 bias vector
resultados (show), el mnimo esperado para la funcin de error
(goal), el tiempo mximo (time), los gradientes mximos y | IW (i) es una matriz celda bidimensional que contiene
mnimos admitidos (min_grad, max_grad) y la tasa de los pesos de las conexiones entre las entradas y la capa i.
aprendizaje (lr).
| LW (i,j) contiene la matriz de pesos de las conexiones
| trainFcn = traingdm (demo nnd12mo)
desde la capa j hacia la capa i.
funcin descenso por el gradiente con momento. Se indica | b (i) contiene los umbrales de las diferentes capas.
adems el valor de momento (mc). Otra opcin permite indicar
que si una nueva evaluacin del error es PEOR que otra LW (2,1)
hallada segn el cociente entre ambas (max_perf_inc) los
cambios en los pesos se descartan y se hace mc = 0. IW (1)
IW (2) = 0
| trainFcn = traingdx y trainFcn = traingda IW (3) = 0
como las anteriores pero lr va disminuyndose si el error va LW (3,2)
empeorando de una iteracin a la otra (entrena mucho ms rpido).

Toolbox de Redes Neuronales Ejemplo: Perceptrn Simple


Diferencia entre adapt y train Tarea de Clasificacin (1/3)
Efectan el ENTRENAMIENTO de una red neuronal. P Entradas para entrenamiento
T Salidas Deseadas
ENTRENAMIENTO ...cada dato del conjunto
INCREMENTAL Un Vector de Entrada
de entrenamiento
(On-line) Los pesos se adaptan luego
de la presentacin de... P = [1.359 1.253 1.418 1.528
ENTRENAMIENTO ...el conjunto de
2.163 2.883 2.772 3.310 ]
POR LOTES entrenamiento
(Batch) completo (una poca)
T = [ 1 1 0 1 ]
adapt Si los datos de entrenamiento son celdas Modo Batch
Salida deseada
Si son matrices Modo On-Line
para esa Entrada
Es mucho ms lento que train

train Siempre Modo Batch percep = newp(minmax(P), CantidadNeuronas);


Se dispone de ms cantidad de algoritmos muy eficientes.
Exceptuando redes con retardos temporales, siempre es conveniente. Crea un Perceptrn simple (de una sola capa).

Ejemplo: Perceptrn Simple Ejemplo: Perceptrn Simple


Tarea de Clasificacin (2/3) Tarea de Clasificacin (3/3)
P Entradas para entrenamiento
percep = train(percep, P, T); T Salidas Deseadas
sali = sim(percep, newP);
Entrena el perceptrn en modo batch. Consulta el perceptrn para conocer su salida dado el conjunto
de entradas almacenado en newP.
percep = adapt(percep, P, T);
Entrena el perceptrn en modo on line (aunque depende del formato de P y T).
Un Vector de Entrada
plotpv(P,T)
newP = [1.877 1.443 1.314 1.211
Hace el grfico de los datos y clases.
3.333 4.843 2.722 6.513 ]
Pesos = percep.IW{1,1};
Umbrales = percep.b{1}; sali = [ 1 0 0 1 ]

plotpc(Pesos, Umbrales)
Salida obtenida
Traza la recta de discriminacin. para esa Entrada

2
Ejemplo: Backpropagation PREPARACIN
Funcin lgica XOR DE LOS DATOS
P Entradas para entrenamiento P = [0 1 0 1 DOS VECTORES DE DATOS:
0 0 1 1] x1 = [0.1 1000 50]
T Salidas Deseadas T = [0 1 1 0]
x2 = [0.3 1100 51]
net = newff([0 1; 0 1],[2 1],{'logsig','logsig'}); La tercera dimensin tiene una diferencia del 2 %.

Funciones de transferencia La segunda dimensin tiene una diferencia del 10 %.


para cada capa.
La primera dimensin tiene una diferencia del 300 %.
Cantidad de neuronas en cada capa.
DISTANCIA EUCLIDEANA ENTRE AMBOS:
Valores Mnimos y Mximos para cada entrada
(as se indica tambin la cantidad de entradas) .
DISTANCIA = sqrt(sum((x1-x2).^2)) = 100.0052
Crea una red feed forward.
La diferencia del 10% enmascara las otras diferencias !!
net = train(net, P, T); salida = sim(net, P);

PREPARACIN PREPARACIN
DE LOS DATOS DE LOS DATOS
LOS DOS VECTORES DE DATOS EN EL NUEVO RANGO:
| Supongamos que los rangos de las dimensiones son los
x1 = [-0.8000 0 0]
siguientes:
rangos = [1 2000 100 x2 = [-0.4000 0.1000 0.0200]
0 0 0] La tercera dimensin tiene una diferencia del 0.02 %.
La segunda dimensin tiene una diferencia del 1 %.
| Si cambiamos la escala de las variables, podemos pasar a
todos los diferentes rangos al rango [-1, 1] mediante una La primera dimensin tiene una diferencia del 100 %.
funcin lineal.
DISTANCIA EUCLIDEANA ENTRE AMBOS:
Rangos [0, 1] [-1, +1]
[0, 2000] [-1, +1] DISTANCIA = sqrt(sum((x1-x2).^2)) = 0.4128
[0, 100] [-1, +1]
Ahora la mayor diferencia es la que da la distancia !!

PREPARACIN PREPARACIN
DE LOS DATOS DE LOS DATOS
NORMALIZAR modificar los datos originales a travs de ESTANDARIZACIN DE LOS DATOS
transformaciones tales que queden en un rango especfico. MEDIA = 0 y DESVIACIN STANDARD = 1
NORMALIZACIN LINEAL AL RANGO [-1, +1] [Pn, meanp, stdp, Tn, meant, stdt] = prestd(P, T)
[Pn, minp, maxp, Tn, mint, maxt] = premnmx(P, T);
Datos estandarizados. Datos originales.

Datos normalizados entre -1 y +1. Datos originales.


APLICACIN DE UNA ESTANDARIZACIN ANTERIOR
APLICACIN DE UNA NORMALIZACIN LINEAL ANTERIOR [PN] = trastd(P, meanp, stdp);
[PN] = tramnmx(P,minp,maxp);

DESNORMALIZACIN DES-ESTANDARIZACIN
[P, T] = postmnmx(PN, minp, maxp, TN, mint, maxt); [P, T] = poststd(PN, meanp, stdp, TN, meant, stdt);

3
Ejemplo: RECONOCIMIENTO Ejemplo: PREDICCIN DE LA
DE CARACTERES ESCRITOS DEMANDA ELCTRICA (1/4)

Load199X.xls Contiene los datos cada media hora de la demanda


elctrica durante todos los das de los aos 1997 y
1998.

Temperature199X.xls Temperaturas promedio de todos los das de los


aos 1997 y 1998.
Holidays.xls Contiene los das feriados o vacaciones de los aos
1997 y 1998.

31
LRi LPi MEDICIN DEL ERROR COMETIDO

i =1 LRi LRi es el valor REAL de la mxima demanda
MAPE = 100 elctrica del da i del ao 1999.
31
LPi es el valor PREDICHO por la red de la
M = max( LRi LPi ) mxima demanda elctrica del da i del ao 1999.

Ejemplo: PREDICCIN DE LA Ejemplo: PREDICCIN DE LA


DEMANDA ELCTRICA (2/4) DEMANDA ELCTRICA (3/4)
Serie de TEMPERATURAS de los aos 1997 y 1998 da por da ENERO 1999 DATOS ORIGINALES REGISTRADOS
30.0
STOS SE PRETENDAN PREDECIR CON LA RED
Temperatura [C]

25.0
20.0
15.0
10.0
5.0 820
0.0
-5.0 800
-10.0
-15.0
780
1 16 31 46 61 76 91 106 121 136 151 166 181 196 211 226 241 256 271 286 301 316 331 346 361 760
Max load [MW]

Das del ao 1998 740


720
Serie de CONSUMOS registrados en los aos 1997 y 1998 da por da
700
1000
registrada [GWatt]

680
Mxima Demanda

800
660
600
640
400
620
200
600
0
1 17 33 49 65 81 97 113 129 145 161 177 193 209 225 241 257 273 289 305 321 337 353
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Day
Das del ao 1998

Ejemplo: PREDICCIN DE LA
DEMANDA ELCTRICA (4/4)
ENERO 1999 RESULTADOS OBTENIDOS
CON DIVERSOS DISEOS DE REDES
900

850

800
MAX [MW]

750

700

650

600
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
Day
Original Chih Jen Lin David Esp Brockman Werner A Javier Marin

También podría gustarte