redes neuronales matlab (1)

4
1 REDES NEURONALES EN MATLAB por Gustavo Meschino © 2006 MatLab Toolbox de Redes Neuronales Entradas concurrentes REDES ESTÁTICAS Entradas Secuenciales en tiempo REDES DINÁMICAS SUB-OBJETOS MatLab Toolbox de Redes Neuronales Objeto Red número de capas número neuronas por capa conectividad entre capas inputs: {1x1 cell} # ENTRADAS layers: {1x1 cell} # CAPAS outputs: {1x1 cell} # SALIDAS targets: {1x1 cell} # SALIDAS DESEADAS biases: {1x1 cell} # UMBRALES inputWeights: {1x1 cell} # PESOS DE LA CAPA DE ENTRADA layerWeights: {1x1 cell} # PESOS DE CAPAS ESCONDIDAS Distintas funciones para crear distintos tipo de Redes: newp (perceptrón), newff (feed forward), newlin (neurona lineal)... SUB-OBJETOS MatLab Toolbox de Redes Neuronales Las neuronas de una capa tienen todas la misma función de transferencia indicadas en: net.transferFcn (para el peceptrón hardlim) También se indica la función de entrada (el cálculo del campo local): net.netInputFcn (para el peceptrón netsum) Los parámetros net.inputWeights y net.layerWeights especifican la función de entrenamiento y sus parámetros (y otras cosas). Se dan las funciones de inicialización, perfomance y entrenamiento y sus parámetros parameters: adaptParam: .passes initParam: (none) performParam: (none) trainParam: .epochs, .goal, .show, .time functions: adaptFcn: 'trains' initFcn: 'initlay' performFcn: 'mae' trainFcn: 'trainc' Toolbox de Redes Neuronales Funciones seleccionables initFcn función con que se inicializalizan pesos y umbrales. trainFcn función de entrenamiento Batch. Se da una sola para toda la red (es la opción que se utiliza) adaptFcn función de entrenamiento Incremental (on line) Se puede dar una función de entrenamiento por cada capa conectada (sin gran aplicación). performFcn función de performance, cuantifica un valor para el error que va comentiendo la red. ‘mse’: mean squared error, ‘mae’: mean absolute error, etc. Se dispone de unas 20 funciones de entrenamiento (trainFcn), cada una con sus características de velocidad, requerimientos de memoria, etc. Toolbox de Redes Neuronales Parámetros seleccionables adaptParam: .passes Cantidad de “pasadas” para la función ‘adapt’. Número de épocas. trainParam: .epochs Cantidad de épocas máxima .goal Error mínimo al que se quiere llegar .show Cada cuántas épocas se mostrarán resultados y se actualizará el gráfico de entrenamiento .time Tiempo máximo de entrenamiento Otros trainParam (dependiendo del tipo de red creada y de la función de entrenamiento o adaptación) min_grad, mu, mu_dec, mu_inc, mu_max, lr ...

Upload: fabiancho2210

Post on 29-Oct-2015

37 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Redes Neuronales Matlab (1)

1

REDES NEURONALESEN MATLABpor Gustavo Meschino© 2006

MatLabToolbox de Redes Neuronales

Entradas concurrentesREDES ESTÁTICASEntradas Secuenciales en tiempoREDES DINÁMICAS

SUB-OBJETOS

MatLabToolbox de Redes Neuronales

Objeto Red número de capasnúmero neuronas por capaconectividad entre capas

inputs: {1x1 cell} # ENTRADASlayers: {1x1 cell} # CAPAS

outputs: {1x1 cell} # SALIDAStargets: {1x1 cell} # SALIDAS DESEADASbiases: {1x1 cell} # UMBRALES

inputWeights: {1x1 cell} # PESOS DE LA CAPA DE ENTRADAlayerWeights: {1x1 cell} # PESOS DE CAPAS ESCONDIDAS

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

SUB-OBJETOS

MatLabToolbox de Redes Neuronales

Las neuronas de una capa tienen todas la misma función de transferencia indicadas en:

net.transferFcn (para el peceptrón hardlim)

También se indica la función de entrada (el cálculo del campo local):net.netInputFcn (para el peceptrón netsum)

Los parámetros net.inputWeights y net.layerWeights especifican la función de entrenamiento y sus parámetros (y otras cosas).

Se dan las funciones de inicialización, perfomance y entrenamiento y sus parámetros

parameters:adaptParam: .passesinitParam: (none)

performParam: (none)trainParam: .epochs, .goal,

.show, .time

functions:adaptFcn: 'trains'initFcn: 'initlay'

performFcn: 'mae'trainFcn: 'trainc'

Toolbox de Redes NeuronalesFunciones seleccionables

initFcn función con que se inicializalizanpesos y umbrales.

trainFcn función de entrenamiento Batch.Se da una sola para toda la red(es la opción que se utiliza)

adaptFcn función de entrenamiento Incremental (on line)Se puede dar una función de entrenamientopor cada capa conectada (sin gran aplicación).

performFcn función de performance, cuantifica un valor para el error que va comentiendo la red.‘mse’: mean squared error,‘mae’: mean absolute error, etc.

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

Toolbox de Redes NeuronalesParámetros seleccionables

adaptParam: .passes Cantidad de “pasadas” para la función ‘adapt’.

Número de épocas.trainParam:.epochs Cantidad de épocas máxima.goal Error mínimo al que se quiere llegar.show Cada cuántas épocas se mostrarán resultados

y se actualizará el gráfico de entrenamiento.time Tiempo máximo de entrenamiento

Otros trainParam (dependiendo del tipo de red creada y de la función de entrenamiento o adaptación)

min_grad, mu, mu_dec, mu_inc, mu_max, lr ...

Page 2: Redes Neuronales Matlab (1)

2

Toolbox de Redes NeuronalesFunciones de entrenamiento

trainFcn = ‘traingd’ (demo nnd12sd1)función descenso por el gradiente. Se indica el número de

épocas (epochs), cada cuántas iteraciones se muestran los resultados (show), el mínimo esperado para la función de error (goal), el tiempo máximo (time), los gradientes máximos y mínimos admitidos (min_grad, max_grad) y la tasa de aprendizaje (lr).trainFcn = ‘traingdm’ (demo nnd12mo)

función descenso por el gradiente con momento. Se indica además el valor de momento (mc). Otra opción permite indicar que si una nueva evaluación del error es PEOR que otra hallada según 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 disminuyéndose si el error va empeorando de una iteración a la otra (entrena mucho más rápido).

Toolbox de Redes NeuronalesPesos y Umbrales

IW: {1x1 cell} containing 1 input weight matrixLW: {1x1 cell} containing no layer weight matricesb: {1x1 cell} containing 1 bias vector

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

LW (2,1)

LW (3,2)

IW (i) es una matriz celda bidimensional que contienelos pesos de las conexiones entre las entradas y la capa i.

LW (i,j) contiene la matriz de pesos de las conexionesdesde la capa j hacia la capa i.

b (i) contiene los umbrales de las diferentes capas.

Toolbox de Redes NeuronalesDiferencia entre adapt y train

Efectúan el ENTRENAMIENTO de una red neuronal.

ENTRENAMIENTOINCREMENTAL

(On-line)

ENTRENAMIENTOPOR LOTES

(Batch)

...cada dato del conjunto de entrenamiento

...el conjunto de entrenamientocompleto (una época)

Si los datos de entrenamiento son celdas Modo BatchSi son matrices Modo On-LineEs mucho más lento que train

adapt

Siempre Modo BatchSe dispone de más cantidad de algoritmos muy eficientes.Exceptuando redes con retardos temporales, siempre es conveniente.

train

Los pesos se adaptan luegode la presentación de...

Ejemplo: Perceptrón SimpleTarea de Clasificación (1/3)

P = [1.359 1.253 1.418 1.528 …2.163 2.883 2.772 3.310 … ]

T = [ 1 1 0 1 … ]

P Entradas para entrenamientoT Salidas Deseadas

Un Vector de Entrada

Salida deseadapara esa Entrada

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

Crea un Perceptrón simple (de una sola capa).

Ejemplo: Perceptrón Simple Tarea de Clasificación (2/3)

P Entradas para entrenamientoT Salidas Deseadaspercep = train(percep, P, T);

percep = adapt(percep, P, T);

Entrena el perceptrón en modo batch.

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

plotpv(P,T)

Hace el gráfico de los datos y clases.

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

Traza la recta de discriminación.

Ejemplo: Perceptrón Simple Tarea de Clasificación (3/3)

sali = sim(percep, newP);

Consulta el perceptrón para conocer su salida dado el conjuntode entradas almacenado en newP.

newP = [1.877 1.443 1.314 1.211 …3.333 4.843 2.722 6.513 … ]

sali = [ 1 0 0 1 … ]

Un Vector de Entrada

Salida obtenidapara esa Entrada

Page 3: Redes Neuronales Matlab (1)

3

Ejemplo: BackpropagationFunción lógica XOR

P = [0 1 0 10 0 1 1]

T = [0 1 1 0]

P Entradas para entrenamiento

T Salidas Deseadas

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

Funciones de transferenciapara cada capa.

Crea una red feed forward.

Cantidad de neuronas en cada capa.

Valores Mínimos y Máximos para cada entrada(así se indica también la cantidad de entradas) .

net = train(net, P, T); salida = sim(net, P);

PREPARACIÓN DE LOS DATOS

La primera dimensión tiene una diferencia del 300 %.

DISTANCIA EUCLIDEANA ENTRE AMBOS:

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

La segunda dimensión tiene una diferencia del 10 %.

La tercera dimensión tiene una diferencia del 2 %.

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

¡¡ La diferencia del 10% enmascara las otras diferencias !!

DOS VECTORES DE DATOS:

PREPARACIÓN DE LOS DATOS

Supongamos que los rangos de las dimensiones son los siguientes:

Si cambiamos la escala de las variables, podemos pasar a todos los diferentes rangos al rango [-1, 1] mediante una función lineal.

rangos = [1 2000 1000 0 0]

Rangos [0, 1] [-1, +1][0, 2000] [-1, +1][0, 100] [-1, +1]

PREPARACIÓN DE LOS DATOS

La primera dimensión tiene una diferencia del 100 %.

DISTANCIA EUCLIDEANA ENTRE AMBOS:

x1 = [-0.8000 0 0]x2 = [-0.4000 0.1000 0.0200]

La segunda dimensión tiene una diferencia del 1 %.

La tercera dimensión tiene una diferencia del 0.02 %.

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

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

LOS DOS VECTORES DE DATOS EN EL NUEVO RANGO:

PREPARACIÓN DE LOS DATOS

NORMALIZAR modificar los datos originales a través de transformaciones tales que queden en un rango específico.

[Pn, minp, maxp, Tn, mint, maxt] = premnmx(P, T);

NORMALIZACIÓN LINEAL AL RANGO [-1, +1]

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

[PN] = tramnmx(P,minp,maxp);

APLICACIÓN DE UNA NORMALIZACIÓN LINEAL ANTERIOR

[P, T] = postmnmx(PN, minp, maxp, TN, mint, maxt);

DESNORMALIZACIÓN

PREPARACIÓNDE LOS DATOS

“ESTANDARIZACIÓN” DE LOS DATOSMEDIA = 0 y DESVIACIÓN STANDARD = 1

Datos originales.Datos “estandarizados”.

[PN] = trastd(P, meanp, stdp);

APLICACIÓN DE UNA ESTANDARIZACIÓN ANTERIOR

[P, T] = poststd(PN, meanp, stdp, TN, meant, stdt);

DES-ESTANDARIZACIÓN

[Pn, meanp, stdp, Tn, meant, stdt] = prestd(P, T)

Page 4: Redes Neuronales Matlab (1)

4

Ejemplo: RECONOCIMIENTODE CARACTERES ESCRITOS

Contiene los días feriados o vacaciones de los años 1997 y 1998.

Holidays.xls

Temperaturas promedio de todos los días de los años 1997 y 1998.

Temperature199X.xls

Contiene los datos cada media hora de la demanda eléctrica durante todos los días de los años 1997 y 1998.

Load199X.xls

MEDICIÓN DEL ERROR COMETIDO

LPi – es el valor PREDICHO por la red de la máxima demanda eléctrica del día i del año 1999.

LRi – es el valor REAL de la máxima demanda eléctrica del día i del año 1999.

31

110031

i i

i i

LR LPLR

MAPE =

=∑

max( )i iM LR LP= −

Ejemplo: PREDICCIÓN DE LA DEMANDA ELÉCTRICA (1/4)

Ejemplo: PREDICCIÓN DE LA DEMANDA ELÉCTRICA (2/4)

Serie de TEMPERATURAS de los años 1997 y 1998 día por día

-15.0-10.0-5.00.05.0

10.015.020.025.030.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

Días del año 1998

Tem

pera

tura

[ºC

]

0

200

400

600

800

1000

1 17 33 49 65 81 97 113 129 145 161 177 193 209 225 241 257 273 289 305 321 337 353

Días del año 1998

Máx

ima

Dem

anda

re

gist

rada

[GW

att]

Serie de CONSUMOS registrados en los años 1997 y 1998 día por día

600

620

640

660

680

700

720

740

760

780

800

820

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 31Day

Max

load

[MW

]

ENERO 1999 – DATOS ORIGINALES REGISTRADOSÉSTOS SE PRETENDÍAN PREDECIR CON LA RED

Ejemplo: PREDICCIÓN DE LA DEMANDA ELÉCTRICA (3/4)

600

650

700

750

800

850

900

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31Day

MA

X [M

W]

Original Chih Jen Lin David Esp Brockman Werner A Javier Marin

ENERO 1999 – RESULTADOS OBTENIDOS CON DIVERSOS DISEÑOS DE REDES

Ejemplo: PREDICCIÓN DE LA DEMANDA ELÉCTRICA (4/4)