Vous êtes sur la page 1sur 67

Redes neuronales

Aprendizaje supervisado
Funcin de coste
Descenso por gradiente Regla delta Algoritmo LMS o Algoritmo de Widrow y Hoff.

Factor de aprendizaje

Funcin de coste
x1

xi
xn

. . . .

. .

y1 yj ym

Sistema

. .

poca

Entrenamiento secuencial: Una fila adapta el parmetro

Entrenamiento por lotes: Todos los datos utilizados para entrenar

Adaptacin del parmetro

Nmero de capas

Neurona

Nmero de capas previas

Diferencial de la funcin de coste con respecto a la neurona

Diferencial de la neurona con respecto al parmetro

Indices del parmetro

Formas de alterar el parmetro

- 'trainlm' (Levenberg-Marquard) - 'traingdx' (Gradiente descendente con momento y f.a. adaptativo) - 'traingdm' (Gradiente descendente con momento) - 'traingda' (Gradiente descendente con f.a. adaptativo) - 'trainbfg' (BFGS Quasi-Newton) - 'trainrp' (Resilient Backpropagation) - 'trainoss' (Secante de un paso) - 'trainscg' (Conjugado escalado) - 'traingd' (Gradiente descendente)

Factor de aprendizaje
Se define en el intervalo: ]0, 1] Elevado: El algoritmo oscila y se convierte en inestable Bajo: Tarda en obtener el modelo Dinmico o momento
Si el error se incrementa por encima de un determinado porciento (5%): No se actualizan los parmetros El factor de aprendizaje se reduce en un factor 0.95 (5%) Si el error se reduce ms de un determinado porciento (5%): Se actualizan los parmetros El factor de aprendizaje se incrementa en un factor 1.05 (5%) En cualquier otro caso: Se actualizan los parmetros Se mantiene el valor del factor de aprendizaje
1.05(e) e

0.95(e)

Red lineal (I)


Ncleo estimador

Red lineal (II)


Regla Delta

Red lineal (III)


Pasos para el aprendizaje supervisado
[Paso 1] Definir la estructura del modelo y las condiciones iniciales [Paso 2] Obtener los datos de entrada-salida ( x1, x2, . . .,xn; y ) [Paso 3] Aplicar el ncleo estimador [Paso 4] Adaptar los parmetros [Paso 5] Determinar la condicin de finalizacin en la obtencin del modelo, si este no se cumple, repetir a partir del [Paso 2] [Paso 6] Aplicar el criterio para validacin del modelo. Si los resultados no son los deseados, repetir a partir del [Paso 1]

Solucin de ecuaciones lineales

Matlab
WEB Aplicaciones

Modelos

Redes Neuronales

Filtro lineal con RN


Se desea representar el siguiente filtro: y = 0.5*x1-0.3*x2 En este ejemplo los parmetros son: w1= 0.5 y w2= -0.3. Se desea determinar la salida equivalente al vector de entradas: >>x = [1 3 24 35 4 6]

Filtro lineal con RN (II)


Solucin:
% Se define la matriz de entradas x[n,K]=x[2,4] >> x=x' x= 1234 3456 % Se define el filtro lineal (versin antigua) >>interx1=[1 4] % Intervalo [min, max] de x1 >>interx2=[3 6] % Intervalo [min, max] de x2 >>numsal=1 % Nmero de salidas >>net=newlin([interx1; interx2], numsal); % Nueva versin (adquiere informacin de matrices) >>net=newlin(x, y); % net=newlin(x, 1);

Filtro lineal con RN (III)


% Se definen los parmetros del filtro >>net.IW{1,1}=[0.5 -0.3] >>net.b{1}=0; % La ganancia es cero % Se verifican los parmetros del filtro >> net.IW{1,1} ans = 0.5000 -0.3000 >> net.b{1} ans = 0

Filtro lineal con RN (IV)


% Se obtiene la salida de la red >>y=sim(net,x) y= -0.4000 -0.2000 0 0.2000

% Se comprueba >> x'*net.IW{1,1}' ans = -0.4000 -0.2000 0 0.2000

Filtros sin ganancia


Planos pasan por el origen

Limitaciones de filtros sin ganancia


Cuando las entradas son cero, los parmetros no se adaptan

Determinada clasificacin: Lneas que no pasen por el origen


1

Funcin AND

Filtro con ganancia

Adaptar nuevo parmetro Solucin lineal

Ganancia + Retrasos

Ejemplo
% Se obtienen datos de entrada-salida >>load dryer2 >>t=[0:.08:80-.08]'; >>a=.1; b=.1; c=.1; d=.1; e=.1; f=.1;

Ejemplo (II)
Tools Parameter Estimation

Ejemplo (III)
Mtodo de entrenamiento y parmetros estimados

Neurona
Neurona: Funcin no lineal, derivable, cuyo argumento es un filtro lineal con ganancia.

Neurona: Funciones (I)


Lineal (purelin)
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -1 -0.8 -0.6 -0.4 -0.2 0 purelin 0.2 0.4 0.6 0.8 1

Sigmoidal logartmico (logsig)


1 0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 -10

-8

-6

-4

-2

0 logsig

10

Neurona: Funciones (II)


Tangente sigmoidal hiperblica (tansig)
1
0.6

Limitador fuerte (hardlim)


1 0.8

0.8
0.4

0.6
0.2

0.4
0

0.2
-0.2

0
-0.4

-0.2
-0.6

-0.4
-0.8

-0.6
-1 -10 -8 -6 -4 -2 0 hardlim 2 4 6 8 10

-0.8

-1 -10

-8

-6

-4

-2

0 tansig

10

Perceptrn

Neurona en Matlab
Representacin de variables

nntool

Capa de Neuronas

Capa de Neuronas

Funcin de coste

Gradiente

Capa de Neuronas en Matlab

Ejemplo
En WEB: Aplicaciones Modelos Capa de neuronas
% Se crean las matrices para la red >> x=xudx(:,1:5)'; >> y=xudx(:,6:7)'; % Se determinan los intervalos de entrada >> interv=minmax(x); % Se define el nmero de salidas >> numsal=2;

% Se define la funcin de activacin >> funact={'logsig'};

Ejemplo (II)
% Se define la red, entrenamiento: gradiente net=newff(interv, numsal, funact, 'traingd');

% Se verifican los parmetros de entrenamiento >> net.trainParam epochs: 100 goal: 0 lr: 0.0100 max_fail: 5 min_grad: 1.0000e-010 show: 25 time: Inf

Ejemplo (III)
% Se alteran algunos parmetros >>net.trainParam.epochs = 20000; >>net.trainParam.goal = 0.001; >>net.trainParam.lr = 0.1; % pocas % Error deseado % fa inicial

% Se entrena la red, alterando parmetros % de entrenamiento segn resultados >> net = train(net,x,y); % Se visualizan resultados basado en: >> ynet=sim(net,x)'; >> y=y';

% Para determinar el error >> error=y1-ynet

Ejemplo (IV)

% Identificacin de parmetros >> net.IW{1,1} 7.7054 -1.0928 1.3820 -0.2252 1.2570 7.9476 4.7789 -0.6219 1.0261 -0.7004 >> net.b{1} -4.4500 -3.4097

Ejemplo (V)
Modelo resultante
% Creo matriz con unos incluidos (considerar ganancias) [m,n]=size(x); unos=ones(1,n); xx=[unos ;x]; % Se une ganancia y pesos pesos_tot=[net.b{1} net.IW{1,1}]; % Se obtiene salida filtro lineal filtros=pesos_tot*xx; % Se aplica funcin de activacin sal=logsig(filtros);

Red Neuronal Multicapas


Se desea obtener el modelo de un sistema con 4 variables de entrada y 3 variables de salida.
Posible configuracin: Capa 1: Tres neuronas Capa 2: Dos neuronas Capa 3: Tres neuronas (definidas por el nmero de salidas del sistema) Representacin: 4323

donde: n : Nmero de variables de entrada Sc : Nmero de neuronas de la capa c C : Nmero de capas

Capa 1

Capa 2

Capa 3
C=3

Ecuaciones generales
Capa 1

Capas intermedias

Para el ejemplo, representacin:

4323

Capas 2 y 3

Para el ejemplo, representacin:

4323

Aplicacin del gradiente


El diferencial de la funcin de coste con respecto a los parmetros
Secuencial:

Por lotes:

El diferencial de la funcin que representa a la capa de salida con respecto a los parmetros

Aplicacin del gradiente (Capa 3, C)

Parmetro: Corresponde a la capa 3, segunda variable de entrada (segunda neurona de la capa 2), primera neurona

Capa(3)

Variable de salida

Variable de entrada

Aplicacin del gradiente (otras capas)


Capa 1

Secuencial

Capa 2

Pasos para crear una red perceptrn multicapas


1.- Se definen el nmero de variables de entrada (n) y variables de salida ( ) del sistema que se pretende modelar. 2.- Se definen el nmero de capas (C). 3.- Se definen el nmero de neuronas de cada capa , para (excepto la de salida, que ha sido definida en el paso 1). 4.- Se definen las funciones de activacin para cada capa (la nica condicin, en teora, para definir estas funciones, es que sean derivables).

Ejemplo
Planta 3, con 6 variables de entrada y dos de salida
3 2 1 0 -1 -2 -3 -4 -5 20 30 40 50 60 70 80 90 100

3 2 1 0 -1 -2 -3 -4 -5 10 20 30 40 50 60 70 80 90 100

Ejemplo (II)
% Se configuran datos de entrada-salida >> entradas=entradas(10:1001,:)'; >> salidas=salidas(10:1001,:)';

Representacin:

6542

% Nmero de capas >> num_capas=[5 4]; % Funciones de activacin >> funcact={'tansig' 'logsig' 'purelin'}; % Se define la red >> net=newff(entradas,salidas, num_capas, funcact, 'trainlm', 'learngdm', 'mse'); >> view(net)

Ejemplo (III)
% Se entrena la red >> train(net, entradas, salidas) % Tamao de matrices de parmetros >> size(net.IW{1}) % Capa 1 5 6 >> size(net.LW{2,1}) % Capa 2 4 5 % Modelo resultante % Salida Capa 1 filtro1=net.IW{1}*entradas(:,1)+net.b{1}; capa1=tansig(filtro1) % Salida Capa 2 filtro2=net.LW{2,1}*capa1+net.b{2}; capa2=logsig(filtro2) % Salida Capa 3 filtro3=net.LW{3,2}*capa2+net.b{3}; capa3=purelin(filtro3)

Red de base radial

S1: Nmero de entradas a1 [S1x1]: Variables de entrada S2: Nmero de variables de salida IW21 [S2xS1]: Parmetros de la segunda capa b2 [S2x1]: Ganancias de la segunda capa a2 [S2x1]: Variables de salida de la red

Red de base radial(II)

R: Nmero de entradas x [Rx1]: Vector de variables de entrada S1: Nmero de variables de salida de la capa 1 IW11 [S1xR]: Parmetros b1 [S1x1]: Ganancias d [S1x1]: Distancias

Red de base radial (Programa)


% Capa I
% Vector de variables de entrada (R=5) x=[1, 2, 3, 4, 5]'; [R,S]=size(x); % Nmero de variables de salida de la primera capa S1=3; % Vector de parmetros debe ser de tamao [S1xR] IW11=rand([S1,R]); % Ganancias de la primera capa [S1x1] b1=rand([S1,1]); % Se obtiene la norma eucldea for i=1:S1 d(i,1)=sqrt(sum((x-IW11(i,:)').^2)); end % Se aplica la funcin de base radial a1=exp(-(b1.*d).^2);

Red de base radial (Programa II)


% Capa II %Nmero de variables de salida de la segunda capa S2=2; % Vector de parmetros debe ser de tamao [S2,S1] LW21=rand([S2,S1]); % Ganancias de la segunda capa [S2x1] b2=rand([S2,1]); % Se obtiene la salida y=LW21*a1+b2;

Funcin no lineal equivalente


Salida de la primera capa

Salida de la segunda capa

Funcin equivalente

i=1R : Subndice que representa a las R variables de entrada j=1 S1: Subndice que representa a las S1 salidas de la primera capa k=1.. S2: Subndice que representa las S2 salidas de la segunda capa

Adaptacin de parmetros
Gradiente descendente

Primera capa

Segunda capa

Programa en Matlab
%Se crean las matrices de entrada-salida para la red >> entrada=xudx(:,1:8)'; >> salida=xudx(:,9)'; % Se entrena la red, error medio cuadrtico deseado: 0.1 >> net = newrb(entrada,salida,0.1); % Nmero de parmetros de la primera capa >> size(net.IW{1}) ans = 1062 8 >> size(net.b{1}) ans = 1062 1 % Nmero de parmetros de la segunda capa >> size(net.LW{2,1}) ans = 1 1062 >> size(net.b{2}) ans = 1 1

Resultado de aplicar la entrada a la red


Clasificacin de sexo de conchas (datos Avalon)

Ejemplo en Web

Ejemplo
Planta 3, con 6 variables de entrada y dos de salida
sim('planta3'); % Datos de entrada-salida entradas=entradas(10:1001,:)'; salidas=salidas(10:1001,:)'; % Procede a adaptacin net = newrb(entradas,salidas) % Comprobacin del resultado salidas_net=net(entradas); plot(salidas'); hold on; plot(salidas_net')';

Ejemplo (II)
>> view(net)

% Comprobacin de parmetros >> size(net.IW{1}) 992 6 >> size(net.b{1}) 992 1 >> size(net.LW{2,1}) 2 992 >> size(net.b{2}) 2 1

Tipos de redes
Salida conocida y(t+1) + Red esttica Entradas conocidas Sistema I Sistema II Sistema III Salida del modelo

(t+1)

y (t 1)

Red dinmica hacia adelante

Red dinmica recurrente F

Redes estticas vs recurrentes

Redes de Elman
sim('planta_2');
% Datos de entrada-salida entradas=entradas(10:1001,:)'; salidas=salidas(10:1001,:)'; % Red de Elman net = elmannet(1:3,10) % Procede a adaptacin net = train(net,entradas,salidas); view(net) % Comprobcin del resultado salidas_net=net(entradas); plot(salidas'); hold on; plot(salidas_net','r')';

Redes de Elman (II)

% Comprobacin de parmetros >> size(net.IW{1,1}) 10 6 >> size(net.b{1}) 10 1 >> size(net.LW{1,1}) 10 30 >> size(net.LW{2,1}) 2 10 >> size(net.b{2}) 2 1

Redes estticas vs dinmicas

Red dinmica

Ver: Estructura de entrada-salida

Plantas

Solucin

Solucin

Ejemplos
Modelo de una planta Prediccin de la contaminacin ambiental Utilizacin de nntool Reconocimiento de caracteres Control por modelo inverso en robtica

Clasificacin de texturas

Vous aimerez peut-être aussi