Está en la página 1de 4

MatLab

Toolbox de Redes Neuronales

REDES
NEURONALES
EN MATLAB

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

por Gustavo Meschino


2006

SUB-OBJETOS

MatLab
Toolbox de Redes Neuronales
|

Objeto Red

nmero de capas
nmero neuronas por capa
conectividad entre capas

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

{1x1
{1x1
{1x1
{1x1
{1x1
{1x1
{1x1

cell}
cell}
cell}
cell}
cell}
cell}
cell}

#
#
#
#
#
#
#

SUB-OBJETOS

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

Distintas funciones para crear distintos tipo de Redes: newp


(perceptrn), newff (feed forward), newlin (neurona lineal)...

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)

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:

Toolbox de Redes Neuronales


Funciones seleccionables
|

initFcn

funcin con que se inicializalizan


pesos y umbrales.

trainFcn

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

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

parameters:
adaptParam: .passes
initParam: (none)
performParam: (none)
trainParam: .epochs, .goal,
.show, .time

Toolbox de Redes Neuronales


Parmetros seleccionables
|

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

trainParam:
.epochs Cantidad de pocas mxima
.goal
Error mnimo al que se quiere llegar
.show
Cada cuntas pocas se mostrarn resultados

Nmero de pocas.

adaptFcn

performFcn funcin de performance, cuantifica un valor


para el error que va comentiendo la red.
mse: mean squared error,
mae: mean absolute error, etc.

.time

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

y se actualizar el grfico de entrenamiento


Tiempo mximo de entrenamiento

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.

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)

es una matriz celda bidimensional que contiene


los pesos de las conexiones entre las entradas y la capa i.

LW (i,j)

contiene la matriz de pesos de las conexiones


desde la capa j hacia la capa i.

b (i)

contiene los umbrales de las diferentes capas.


LW (2,1)

IW (1)
IW (2) = 0
IW (3) = 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


Diferencia entre adapt y train

LW (3,2)

Ejemplo: Perceptrn Simple


Tarea de Clasificacin (1/3)
P Entradas para entrenamiento
T Salidas Deseadas

Efectan el ENTRENAMIENTO de una red neuronal.


ENTRENAMIENTO
INCREMENTAL
(On-line)
ENTRENAMIENTO
POR LOTES
(Batch)

adapt
train

...cada dato del conjunto


de entrenamiento
Los pesos se adaptan luego
de la presentacin de...

Un Vector de Entrada
P = [1.359 1.253 1.418 1.528
2.163 2.883 2.772 3.310 ]

...el conjunto de
entrenamiento
completo (una poca)

T = [

Si los datos de entrenamiento son celdas Modo Batch


Si son matrices Modo On-Line
Es mucho ms lento que train
Siempre Modo Batch
Se dispone de ms cantidad de algoritmos muy eficientes.
Exceptuando redes con retardos temporales, siempre es conveniente.

Ejemplo: Perceptrn Simple


Tarea de Clasificacin (2/3)
percep = train(percep, P, T);

P Entradas para entrenamiento


T Salidas Deseadas

Entrena el perceptrn en modo batch.

percep = adapt(percep, P, T);

Salida deseada
para esa Entrada

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


Crea un Perceptrn simple (de una sola capa).

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.

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


Un Vector de Entrada

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.

newP = [1.877 1.443 1.314 1.211


3.333 4.843 2.722 6.513 ]
sali = [

Salida obtenida
para esa Entrada

Ejemplo: Backpropagation
Funcin lgica XOR
P Entradas para entrenamiento
T Salidas Deseadas

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

PREPARACIN
DE LOS DATOS
DOS VECTORES DE DATOS:

x1 = [0.1 1000 50]


x2 = [0.3 1100 51]

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


Funciones de transferencia
para cada capa.

La tercera dimensin tiene una diferencia del 2 %.


La segunda dimensin tiene una diferencia del 10 %.
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
DE LOS DATOS

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.

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

PREPARACIN
DE LOS DATOS

NORMALIZAR modificar los datos originales a travs de


transformaciones tales que queden en un rango especfico.

ESTANDARIZACIN DE LOS DATOS


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 normalizados entre -1 y +1.

Datos originales.

Datos originales.

APLICACIN DE UNA NORMALIZACIN LINEAL ANTERIOR

APLICACIN DE UNA ESTANDARIZACIN 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);

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

Ejemplo: RECONOCIMIENTO
DE CARACTERES ESCRITOS

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

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)

Ejemplo: PREDICCIN DE LA
DEMANDA ELCTRICA (3/4)
ENERO 1999 DATOS ORIGINALES REGISTRADOS
STOS SE PRETENDAN PREDECIR CON LA RED

30.0
25.0
20.0
15.0
10.0
5.0
0.0
-5.0
-10.0
-15.0

820
800
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]

Temperatura [C]

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

Das del ao 1998

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


Mxima Demanda
registrada [GWatt]

MEDICIN DEL ERROR COMETIDO


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

1000
800
600

740
720
700
680
660
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

Das del ao 1998

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Day

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

MAX [MW]

850
800
750
700
650
600
1

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