Está en la página 1de 4

REDES NEURONALES EN MATLAB

por Gustavo Meschino 2006

MatLab Toolbox de Redes Neuronales


Entradas concurrentes REDES ESTTICAS Entradas Secuenciales en tiempo REDES DINMICAS

SUB-OBJETOS

MatLab Toolbox de Redes Neuronales


Objeto Red nmero de capas nmero neuronas por capa conectividad entre capas
{1x1 {1x1 {1x1 {1x1 {1x1 {1x1 {1x1 cell} cell} cell} cell} cell} cell} cell} # # # # # # #

MatLab Toolbox de Redes Neuronales


Las neuronas de una capa tienen todas la misma funcin de transferencia indicadas en: net.transferFcn (para el peceptrn hardlim)

SUB-OBJETOS

inputs: layers: outputs: targets: biases: inputWeights: layerWeights:

ENTRADAS CAPAS SALIDAS SALIDAS DESEADAS UMBRALES PESOS DE LA CAPA DE ENTRADA PESOS DE CAPAS ESCONDIDAS

Tambin se indica la funcin de entrada (el clculo del campo local): net.netInputFcn (para el peceptrn netsum) Los parmetros net.inputWeights y net.layerWeights especifican la funcin de entrenamiento y sus parmetros (y otras cosas). Se dan las funciones de inicializacin, perfomance y entrenamiento y sus parmetros
functions: adaptFcn: initFcn: performFcn: trainFcn: parameters: adaptParam: .passes initParam: (none) performParam: (none) trainParam: .epochs, .goal, .show, .time

Distintas funciones para crear distintos tipo de Redes: newp (perceptrn), newff (feed forward), newlin (neurona lineal)...

'trains' 'initlay' 'mae' 'trainc'

Toolbox de Redes Neuronales Funciones seleccionables


initFcn trainFcn funcin con que se inicializalizan pesos y umbrales. funcin de entrenamiento Batch. Se da una sola para toda la red (es la opcin que se utiliza) funcin de entrenamiento Incremental (on line) Se puede dar una funcin de entrenamiento por cada capa conectada (sin gran aplicacin). funcin de performance, cuantifica un valor para el error que va comentiendo la red. mse: mean squared error, mae: mean absolute error, etc.

Toolbox de Redes Neuronales Parmetros seleccionables


adaptParam: .passes Cantidad de pasadas para la funcin adapt.
Nmero de pocas.

adaptFcn

trainParam: .epochs Cantidad de pocas mxima .goal Error mnimo al que se quiere llegar .show Cada cuntas pocas se mostrarn resultados .time
y se actualizar el grfico de entrenamiento Tiempo mximo de entrenamiento

performFcn

Se dispone de unas 20 funciones de entrenamiento (trainFcn), cada una con sus caractersticas de velocidad, requerimientos de memoria, etc.

Otros trainParam (dependiendo del tipo de red creada y de la funcin de entrenamiento o adaptacin) min_grad, mu, mu_dec, mu_inc, mu_max, lr ...

Toolbox de Redes Neuronales Funciones de entrenamiento


trainFcn = traingd (demo nnd12sd1) funcin descenso por el gradiente. Se indica el nmero de pocas (epochs), cada cuntas iteraciones se muestran los resultados (show), el mnimo esperado para la funcin de error (goal), el tiempo mximo (time), los gradientes mximos y mnimos admitidos (min_grad, max_grad) y la tasa de aprendizaje (lr). trainFcn = traingdm (demo nnd12mo) funcin descenso por el gradiente con momento. Se indica adems el valor de momento (mc). Otra opcin permite indicar que si una nueva evaluacin del error es PEOR que otra hallada segn el cociente entre ambas (max_perf_inc) los cambios en los pesos se descartan y se hace mc = 0. trainFcn = traingdx y trainFcn = traingda como las anteriores pero lr va disminuyndose si el error va empeorando de una iteracin a la otra (entrena mucho ms rpido).

Toolbox de Redes Neuronales Pesos y Umbrales


IW: {1x1 cell} containing 1 input weight matrix LW: {1x1 cell} containing no layer weight matrices b: {1x1 cell} containing 1 bias vector

IW (i) LW (i,j) b (i)


IW (1)
IW (2) = 0 IW (3) = 0

es una matriz celda bidimensional que contiene los pesos de las conexiones entre las entradas y la capa i. contiene la matriz de pesos de las conexiones desde la capa j hacia la capa i. contiene los umbrales de las diferentes capas.
LW (2,1)

LW (3,2)

Toolbox de Redes Neuronales Diferencia entre adapt y train


Efectan el ENTRENAMIENTO de una red neuronal.
ENTRENAMIENTO INCREMENTAL (On-line) ENTRENAMIENTO POR LOTES (Batch)
...cada dato del conjunto de entrenamiento Los pesos se adaptan luego de la presentacin de... ...el conjunto de entrenamiento completo (una poca) Modo Batch

Ejemplo: Perceptrn Simple Tarea de Clasificacin (1/3)


P T Entradas para entrenamiento Salidas Deseadas Un Vector de Entrada P = [1.359 1.253 1.418 1.528 2.163 2.883 2.772 3.310 ] T = [ 1 1 0 1 ]

adapt train

Si los datos de entrenamiento son celdas Si son matrices Modo On-Line Es mucho ms lento que train

Salida deseada para esa Entrada

Siempre Modo Batch Se dispone de ms cantidad de algoritmos muy eficientes. Exceptuando redes con retardos temporales, siempre es conveniente.

percep = newp(minmax(P), CantidadNeuronas);


Crea un Perceptrn simple (de una sola capa).

Ejemplo: Perceptrn Simple Tarea de Clasificacin (2/3)


percep = train(percep, P, T);
Entrena el perceptrn en modo batch.
P T Entradas para entrenamiento Salidas Deseadas

Ejemplo: Perceptrn Simple Tarea de Clasificacin (3/3)


sali = sim(percep, newP);
Consulta el perceptrn para conocer su salida dado el conjunto de entradas almacenado en newP.
Un Vector de Entrada

percep = adapt(percep, P, T);


Entrena el perceptrn en modo on line (aunque depende del formato de P y T).

plotpv(P,T)
Hace el grfico de los datos y clases. newP = [1.877 1.443 1.314 1.211 3.333 4.843 2.722 6.513 ] sali = [ 1 0 0 1 ]

Pesos = percep.IW{1,1}; Umbrales = percep.b{1}; plotpc(Pesos, Umbrales)


Traza la recta de discriminacin.

Salida obtenida para esa Entrada

Ejemplo: Backpropagation Funcin lgica XOR


P T Entradas para entrenamiento Salidas Deseadas

PREPARACIN DE LOS DATOS


DOS VECTORES DE DATOS:

P = [0 1 0 1 0 0 1 1] T = [0 1 1 0]

x1 = [0.1 1000 50] x2 = [0.3 1100 51]


La tercera dimensin tiene una diferencia del 2 %. La segunda dimensin tiene una diferencia del 10 %. La primera dimensin tiene una diferencia del 300 %.

net = newff([0 1; 0 1],[2 1],{'logsig','logsig'});


Funciones de transferencia para cada capa. 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


La diferencia del 10% enmascara las otras diferencias !!

Crea una red feed forward. net = train(net, P, T); salida = sim(net, P);

PREPARACIN DE LOS DATOS


Supongamos que los rangos de las dimensiones son los siguientes: rangos = [1 2000 100 0 0 0] Si cambiamos la escala de las variables, podemos pasar a todos los diferentes rangos al rango [-1, 1] mediante una funcin lineal.

PREPARACIN DE LOS DATOS


LOS DOS VECTORES DE DATOS EN EL NUEVO RANGO:

x1 = [-0.8000 x2 = [-0.4000

0 0.1000

0] 0.0200]

La tercera dimensin tiene una diferencia del 0.02 %. La segunda dimensin tiene una diferencia del 1 %. La primera dimensin tiene una diferencia del 100 %.

DISTANCIA EUCLIDEANA ENTRE AMBOS:

Rangos

[0, 1] [0, 2000] [0, 100]

[-1, +1] [-1, +1] [-1, +1]

DISTANCIA = sqrt(sum((x1-x2).^2)) = 0.4128


Ahora la mayor diferencia es la que da la distancia !!

PREPARACIN DE LOS DATOS


NORMALIZAR
modificar los datos originales a travs de transformaciones tales que queden en un rango especfico.

PREPARACIN DE LOS DATOS


ESTANDARIZACIN DE LOS DATOS MEDIA = 0 y DESVIACIN STANDARD = 1
[Pn, meanp, stdp, Tn, meant, stdt] = prestd(P, T)
Datos estandarizados. Datos originales.

NORMALIZACIN LINEAL AL RANGO [-1, +1]


[Pn, minp, maxp, Tn, mint, maxt] = premnmx(P, T);
Datos normalizados entre -1 y +1. Datos originales.

APLICACIN DE UNA ESTANDARIZACIN ANTERIOR [PN] = trastd(P, meanp, stdp); DES-ESTANDARIZACIN [P, T] = poststd(PN, meanp, stdp, TN, meant, stdt);

APLICACIN DE UNA NORMALIZACIN LINEAL ANTERIOR [PN] = tramnmx(P,minp,maxp); DESNORMALIZACIN [P, T] = postmnmx(PN, minp, maxp, TN, mint, maxt);

Ejemplo: RECONOCIMIENTO DE CARACTERES ESCRITOS

Ejemplo: PREDICCIN DE LA 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

MAPE = 100

i =1

LRi LPi LRi 31

MEDICIN DEL ERROR COMETIDO LRi es el valor REAL de la mxima demanda elctrica del da i del ao 1999. LPi es el valor PREDICHO por la red de la mxima demanda elctrica del da i del ao 1999.

M = max( LRi LPi )

Ejemplo: PREDICCIN DE LA DEMANDA ELCTRICA (2/4)


Serie de TEMPERATURAS de los aos 1997 y 1998 da por da
30.0 25.0 20.0 15.0 10.0 5.0 0.0 -5.0 -10.0 -15.0 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

Ejemplo: PREDICCIN DE LA DEMANDA ELCTRICA (3/4)


ENERO 1999 DATOS ORIGINALES REGISTRADOS STOS SE PRETENDAN PREDECIR CON LA RED
820 800 780 760 Max load [MW] 740 720 700 680 660 640 620 600 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

Temperatura [C]

Das del ao 1998

Serie de CONSUMOS registrados en los aos 1997 y 1998 da por da


Mxima Demanda registrada [GWatt]
1000 800 600 400 200 0 1 17 33 49 65 81 97 113 129 145 161 177 193 209 225 241 257 273 289 305 321 337 353

Das del ao 1998

Ejemplo: PREDICCIN DE LA DEMANDA ELCTRICA (4/4)


ENERO 1999 RESULTADOS OBTENIDOS CON DIVERSOS DISEOS DE REDES
900 850
MAX [MW]

800 750 700 650 600 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29


Day Original Chih Jen Lin David Esp Brockman Werner A Javier Marin

31

También podría gustarte