Redes Neuronales

66
Redes neuronales

Transcript of Redes Neuronales

Page 1: Redes Neuronales

Redes neuronales                                                         

Page 2: Redes Neuronales

Aprendizaje supervisado                                                         

Función de coste

Descenso por gradienteRegla deltaAlgoritmo LMS o Algoritmo de Widrow y Hoff.

Factor de aprendizaje

Page 3: Redes Neuronales

Función de coste                                                         

Sistema

x1

xi

xn

.

.

.

.

y1

yj

ym

.

.

.

.

Entrenamiento secuencial: Una fila adapta el parámetro

Entrenamiento por lotes: Todos los datos utilizados para entrenar

Época

Page 4: Redes Neuronales

Adaptación del parámetro                                                         

Neurona

Diferencial de la función de coste con respecto a la neurona

Diferencial de la neurona con respecto al parámetro

Número de capas

Número de capas previas

Page 5: Redes Neuronales

Indices del parámetro            

Page 6: Redes Neuronales

Formas de alterar el parámetro                                                         

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

Page 7: Redes Neuronales

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

Si el error se incrementa por encima de un determinado porciento (5%):•No se actualizan los parámetros•El factor de aprendizaje se reduce en un factor 0.95 (5%)Si el error se reduce más de un determinado porciento (5%):•Se actualizan los parámetros•El factor de aprendizaje se incrementa en un factor 1.05 (5%)En cualquier otro caso:•Se actualizan los parámetros•Se mantiene el valor del factor de aprendizaje

Dinámico o momento

e

0.95(e)

1.05(e)

Page 8: Redes Neuronales

Red lineal (I)                                                         Núcleo estimador

Page 9: Redes Neuronales

Red lineal (II)                                                         

Regla Delta

Page 10: Redes Neuronales

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 núcleo estimador

[Paso 4] Adaptar los parámetros [Paso 5] Determinar la condición de finalización en la obtención del modelo, si este no se cumple, repetir a partir del [Paso 2]

[Paso 6] Aplicar el criterio para validación del modelo. Si los resultados no son los deseados, repetir a partir del [Paso 1]

Page 11: Redes Neuronales

Solución de ecuaciones lineales                                                         

Page 12: Redes Neuronales

Matlab                                                         

WEBAplicaciones Modelos Redes Neuronales

Page 13: Redes Neuronales

Filtro lineal con RN                                                         

Se desea representar el siguiente filtro:y = 0.5*x1-0.3*x2

En este ejemplo los parámetros son: w1= 0.5 y w2= -0.3.Se desea determinar la salida equivalente al vector de entradas:

>>x = [1 3 2 4 3 5 4 6]

Page 14: Redes Neuronales

Filtro lineal con RN (II)                                                         Solución:

% Se define la matriz de entradas x[n,K]=x[2,4]>> x=x'x =1 2 3 43 4 5 6

% Se define el filtro lineal (versión antigua)>>interx1=[1 4] % Intervalo [min, max] de x1

>>interx2=[3 6] % Intervalo [min, max] de x2

>>numsal=1 % Número de salidas>>net=newlin([interx1; interx2], numsal);% Nueva versión (adquiere información de matrices)>>net=newlin(x, y); % net=newlin(x, 1);

Page 15: Redes Neuronales

Filtro lineal con RN (III)                                                         

% Se definen los parámetros del filtro>>net.IW{1,1}=[0.5 -0.3]>>net.b{1}=0; % La ganancia es cero

% Se verifican los parámetros del filtro>> net.IW{1,1}ans =0.5000 -0.3000>> net.b{1}ans =0

Page 16: Redes Neuronales

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

Page 17: Redes Neuronales

Filtros sin ganancia                                                          Planos pasan

por el origen

Page 18: Redes Neuronales

Limitaciones de filtros sin ganancia                                                         Cuando las entradas son cero,

los parámetros no se adaptan

1

Determinada clasificación:Líneas que no pasen por el origen

Función AND

Page 19: Redes Neuronales

Filtro con ganancia                                                         

Adaptar nuevo parámetroSolución lineal

Page 20: Redes Neuronales

Ganancia + Retrasos                                                         

Page 21: Redes Neuronales

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;

Page 22: Redes Neuronales

Ejemplo (II)Tools Parameter Estimation…

Page 23: Redes Neuronales

Ejemplo (III)Método de entrenamiento y parámetros estimados

Page 24: Redes Neuronales

Neurona                                                         Neurona: Función no lineal, derivable, cuyo argumento

es un filtro lineal con ganancia.

Page 25: Redes Neuronales

Neurona: Funciones (I)                                                         

-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

0.2

0.4

0.6

0.8

1

purelin

Lineal (purelin)

-10 -8 -6 -4 -2 0 2 4 6 8 100

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

logsig

Sigmoidal logarítmico (logsig)

Page 26: Redes Neuronales

Neurona: Funciones (II)                                                         

Tangente sigmoidal hiperbólica (tansig)

Limitador fuerte (hardlim)

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

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

tansig

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

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

hardlim

Perceptrón

Page 27: Redes Neuronales

Neurona en Matlab                                                         

Representación de variables

nntool

Page 28: Redes Neuronales

Capa de Neuronas                                                         

Page 29: Redes Neuronales

Capa de Neuronas                                                         

Función de coste

Gradiente

Page 30: Redes Neuronales

Capa de Neuronas en Matlab                                                         

Page 31: Redes Neuronales

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 número de salidas>> numsal=2;

% Se define la función de activación>> funact={'logsig'};

Page 32: Redes Neuronales

Ejemplo (II)                                                         

% Se define la red, entrenamiento: gradientenet=newff(interv, numsal, funact, 'traingd'); 

% Se verifican los parámetros de entrenamiento>> net.trainParamepochs: 100goal: 0lr: 0.0100max_fail: 5min_grad: 1.0000e-010show: 25time: Inf

Page 33: Redes Neuronales

Ejemplo (III)                                                         % Se alteran algunos parámetros

>>net.trainParam.epochs = 20000;   % Épocas>>net.trainParam.goal = 0.001;       % Error deseado>>net.trainParam.lr = 0.1;             % fa inicial

% Se entrena la red, alterando parámetros% de entrenamiento según resultados>> net = train(net,x,y);

% Se visualizan resultados basado en:>> ynet=sim(net,x)';>> y=y';

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

Page 34: Redes Neuronales

Ejemplo (IV)                                                         

% Identificación de parámetros>> 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

Page 35: Redes Neuronales

Ejemplo (V)                                                         

% Creo matriz con unos incluidos (considerar ganancias)[m,n]=size(x);unos=ones(1,n);xx=[unos ;x]; % Se une ganancia y pesospesos_tot=[net.b{1} net.IW{1,1}]; % Se obtiene salida filtro linealfiltros=pesos_tot*xx; % Se aplica función de activaciónsal=logsig(filtros);

Modelo resultante

Page 36: Redes Neuronales

Red Neuronal Multicapas                                                         

Se desea obtener el modelo de un sistema con 4 variables de entrada y 3 variables de salida.

Posible configuración:Capa 1: Tres neuronasCapa 2: Dos neuronasCapa 3: Tres neuronas (definidas por el número de salidas del sistema)

Representación: 4 – 3 – 2 – 3

donde:n : Número de variables de entradaSc : Número de neuronas de la capa cC : Número de capas

Page 37: Redes Neuronales

Capa 1                                                         

Page 38: Redes Neuronales

Capa 2                                                         

Page 39: Redes Neuronales

Capa 3                                                         

C = 3

Page 40: Redes Neuronales

Ecuaciones generalesCapa 1

Capas intermedias

Para el ejemplo, representación: 4 – 3 – 2 – 3

Page 41: Redes Neuronales

Capas 2 y 3

Para el ejemplo, representación: 4 – 3 – 2 – 3

Page 42: Redes Neuronales

Aplicación del gradienteEl diferencial de la función de coste

con respecto a los parámetros Secuencial:

Por lotes: El diferencial de la función que representa a la capa de salida con

respecto a los parámetros

Page 43: Redes Neuronales

Aplicación del gradiente (Capa 3, C)

Capa(3)

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

Variable de salida Variable de entrada

Page 44: Redes Neuronales

Aplicación del gradiente (otras capas)

Capa 1

Capa 2

Secuencial

Page 45: Redes Neuronales

Pasos para crear una red perceptrón multicapas

1.- Se definen el número de variables de entrada (n) y variables de salida ( ) del sistema que se pretende modelar.

2.- Se definen el número de capas (C).

3.- Se definen el número de neuronas de cada capa , para (excepto la de salida, que ha sido definida en el paso 1).

4.- Se definen las funciones de activación para cada capa (la única condición, en teoría, para definir estas funciones, es que sean derivables).

Page 46: Redes Neuronales

EjemploPlanta con 6 variables de entrada y dos de salida

20 30 40 50 60 70 80 90 100

-5

-4

-3

-2

-1

0

1

2

3

10 20 30 40 50 60 70 80 90 100

-5

-4

-3

-2

-1

0

1

2

3

Page 47: Redes Neuronales

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

Representación: 6 – 5 – 4 – 2

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

Page 48: Redes Neuronales

Ejemplo (III)% Se entrena la red>> train(net, entradas, salidas)

% Tamaño de matrices de parámetros>> size(net.IW{1}) % Capa 1 5 6>> size(net.LW{2,1}) % Capa 2 4 5

% Modelo resultante% Salida Capa 1filtro1=net.IW{1}*entradas(:,1)+net.b{1};capa1=tansig(filtro1)% Salida Capa 2filtro2=net.LW{2,1}*capa1+net.b{2};capa2=logsig(filtro2)% Salida Capa 3filtro3=net.LW{3,2}*capa2+net.b{3};capa3=purelin(filtro3)

Page 49: Redes Neuronales

Red de base radial

S1: Número de entradasa1 [S1x1]: Variables de entradaS2: Número de variables de salidaIW21 [S2xS1]: Parámetros de la segunda capab2 [S2x1]: Ganancias de la segunda capaa2 [S2x1]: Variables de salida de la red

Page 50: Redes Neuronales

Red de base radial(II)

R: Número de entradasx [Rx1]: Vector de variables de entrada S1: Número de variables de salida de la capa 1IW11 [S1xR]: Parámetrosb1 [S1x1]: Gananciasd [S1x1]: Distancias

Page 51: Redes Neuronales

Red de base radial (Programa)% Capa I% Vector de variables de entrada (R=5)x=[1, 2, 3, 4, 5]';[R,S]=size(x); % Número de variables de salida de la primera capaS1=3;% Vector de parámetros debe ser de tamaño [S1xR]IW11=rand([S1,R]);% Ganancias de la primera capa [S1x1]b1=rand([S1,1]); % Se obtiene la norma euclídeafor i=1:S1d(i,1)=sqrt(sum((x-IW11(i,:)').^2));end% Se aplica la función de base radiala1=exp(-(b1.*d).^2);

Page 52: Redes Neuronales

Red de base radial (Programa II)% Capa II%Número de variables de salida de la segunda capaS2=2; % Vector de parámetros debe ser de tamaño [S2,S1]LW21=rand([S2,S1]); % Ganancias de la segunda capa [S2x1]b2=rand([S2,1]); % Se obtiene la saliday=LW21*a1+b2;

Page 53: Redes Neuronales

Función no lineal equivalente

i=1…R : Subíndice que representa a las R variables de entradaj=1… S1: Subíndice que representa a las S1 salidas de la primera capak=1.. S2: Subíndice que representa las S2 salidas de la segunda capa

Salida de la primera capa

Salida de la segunda capa

Función equivalente

Page 54: Redes Neuronales

Adaptación de parámetros

Primera capa

Segunda capa

Gradiente descendente

ó

Page 55: Redes Neuronales

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 cuadrático deseado: 0.1>> net = newrb(entrada,salida,0.1);% Número de parámetros de la primera capa >> size(net.IW{1}) ans =   1062     8   >> size(net.b{1})  ans =   1062     1% Número de parámetros de la segunda capa>> size(net.LW{2,1})ans =   1       1062>> size(net.b{2})ans =     1     1

Page 56: Redes Neuronales

Resultado de aplicar la entrada a la red

Clasificación de sexo de conchas (datos Avalon)

Page 57: Redes Neuronales

EjemploPlanta con 6 variables de entrada y dos de salida

sim('planta3');% Datos de entrada-salidaentradas=entradas(10:1001,:)';salidas=salidas(10:1001,:)';

% Procede a adaptaciónnet = newrb(entradas,salidas)

% Comprobación del resultadosalidas_net=net(entradas);plot(salidas'); hold on; plot(salidas_net')';

Page 58: Redes Neuronales

Ejemplo (II)>> view(net)

% Comprobación de parámetros>> 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

Page 59: Redes Neuronales

Tipos de redes                                                         

-

+

Salida conocida

y(t+1)

(t+1)

Sistema III

Salida del modelo

Sistema II

SistemaI

F

Entradas conocidas

Redestática

Reddinámica hacia

adelante

Reddinámica recurrente

)1( ty

Page 60: Redes Neuronales

Redes estáticas vs recurrentes

Page 61: Redes Neuronales

Redes de Elman

sim('planta_2');

% Datos de entrada-salidaentradas=entradas(10:1001,:)';salidas=salidas(10:1001,:)';

% Red de Elmannet = elmannet(1:3,10)

% Procede a adaptaciónnet = train(net,entradas,salidas);view(net)

% Comprobción del resultadosalidas_net=net(entradas);plot(salidas'); hold on; plot(salidas_net','r')';

Planta con 6 variables de entrada y dos de salida

Page 62: Redes Neuronales

Redes de Elman (II)

% Comprobación de parámetros>> 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

Page 63: Redes Neuronales

Redes estáticas vs dinámicas

Red dinámica

Page 64: Redes Neuronales
Page 65: Redes Neuronales
Page 66: Redes Neuronales

…mas información