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

Gustavo 07 - Redes Neuronales Matlab

Embed Size (px)

Citation preview

  • 1REDES NEURONALESEN MATLABpor Gustavo Meschino 2006

    MatLabToolbox de Redes Neuronales

    | Entradas concurrentes| REDES ESTTICAS| Entradas Secuenciales en tiempo| REDES DINMICAS

    SUB-OBJETOS

    MatLabToolbox de Redes Neuronales

    | Objeto Red nmero de capas nmero neuronas por capa conectividad 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(perceptrn), newff (feed forward), newlin (neurona lineal)...

    SUB-OBJETOS

    MatLabToolbox de Redes Neuronales

    | Las neuronas de una capa tienen todas la misma funcin de transferencia indicadas en:

    net.transferFcn (para el peceptrn hardlim)

    | 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

    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 funcin con que se inicializalizanpesos y umbrales.

    | trainFcn funcin de entrenamiento Batch.Se da una sola para toda la red(es la opcin que se utiliza)

    | adaptFcn funcin de entrenamiento Incremental (on line)Se puede dar una funcin de entrenamientopor cada capa conectada (sin gran aplicacin).

    | performFcn funcin 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 caractersticas de velocidad, requerimientos de memoria, etc.

    Toolbox de Redes NeuronalesParmetros seleccionables

    | adaptParam: .passes Cantidad de pasadas para la funcin adapt.

    Nmero de pocas.| trainParam:

    .epochs Cantidad de pocas mxima

    .goal Error mnimo al que se quiere llegar

    .show Cada cuntas pocas se mostrarn resultadosy se actualizar el grfico de entrenamiento

    .time Tiempo mximo de entrenamiento

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

  • 2Toolbox de Redes NeuronalesFunciones 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 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

    Efectan 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 ms lento que train

    adapt

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

    train

    Los pesos se adaptan luegode la presentacin de...

    Ejemplo: Perceptrn SimpleTarea de Clasificacin (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 Perceptrn simple (de una sola capa).

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

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

    percep = adapt(percep, P, T);Entrena el perceptrn en modo batch.

    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.

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

    Traza la recta de discriminacin.

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

    sali = sim(percep, newP);Consulta el perceptrn 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

  • 3Ejemplo: BackpropagationFuncin lgica 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 Mnimos y Mximos para cada entrada(as se indica tambin la cantidad de entradas) .

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

    PREPARACIN DE LOS DATOS

    La primera dimensin tiene una diferencia del 300 %.

    DISTANCIA EUCLIDEANA ENTRE AMBOS:

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

    La segunda dimensin tiene una diferencia del 10 %.

    La tercera dimensin 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:

    PREPARACIN 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 funcin lineal.

    rangos = [1 2000 1000 0 0]

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

    PREPARACIN DE LOS DATOS

    La primera dimensin tiene una diferencia del 100 %.

    DISTANCIA EUCLIDEANA ENTRE AMBOS:

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

    La segunda dimensin tiene una diferencia del 1 %.

    La tercera dimensin 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:

    PREPARACIN DE LOS DATOS

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

    [Pn, minp, maxp, Tn, mint, maxt] = premnmx(P, T);NORMALIZACIN LINEAL AL RANGO [-1, +1]

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

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

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

    PREPARACINDE LOS DATOS

    ESTANDARIZACIN DE LOS DATOSMEDIA = 0 y DESVIACIN STANDARD = 1

    Datos originales.Datos estandarizados.

    [PN] = trastd(P, meanp, stdp);APLICACIN DE UNA ESTANDARIZACIN ANTERIOR

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

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

  • 4Ejemplo: RECONOCIMIENTODE CARACTERES ESCRITOS

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

    Holidays.xls

    Temperaturas promedio de todos los das de los aos 1997 y 1998.

    Temperature199X.xls

    Contiene los datos cada media hora de la demanda elctrica durante todos los das de los aos 1997 y 1998.

    Load199X.xls

    MEDICIN DEL ERROR COMETIDO

    LPi es el valor PREDICHO por la red de la mxima demanda elctrica del da i del ao 1999.

    LRi es el valor REAL de la mxima demanda elctrica del da i del ao 1999.

    31

    110031

    i i

    i i

    LR LPLR

    MAPE =

    =

    max( )i iM LR LP=

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

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

    Serie de TEMPERATURAS de los aos 1997 y 1998 da por da

    -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

    Das del ao 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

    Das del ao 1998

    Mx

    ima

    Dem

    anda

    re

    gist

    rada

    [GW

    att]

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

    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 REGISTRADOSSTOS SE PRETENDAN PREDECIR CON LA RED

    Ejemplo: PREDICCIN DE LA DEMANDA ELCTRICA (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 DISEOS DE REDES

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