La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

REDES NEURONALES Y LOGICA DIFUSA

Presentaciones similares


Presentación del tema: "REDES NEURONALES Y LOGICA DIFUSA"— Transcripción de la presentación:

1 REDES NEURONALES Y LOGICA DIFUSA
Fernando Jimenez Motte Ph.D. (c) EE, M.S.E.E, B.S.E.E

2 Backpropagation Neural Network (Red Neuronal de Retropropagación)

3 Introducción Método de entrenamiento, conocido como backpropagation (de errores) o la regla delta generalizada. Método de descenso de la gradiente para minimizar el error cuadrático medio (mse) de la salida calculada por la red. La formación de una red de retropropagación de tres etapas: La alimentación directa del patrón de entrenamiento de entrada. El l cálculo y la retropropagación del error asociado El ajuste de los pesos.

4 Introducción Si el entrenamiento es lento, una red entrenada puede ejecutar su producción muy rápidamente. Numerosas variaciones de backpropagation se han desarrollado para mejorar la velocidad del proceso de formación.

5 Arquitectura

6 Arquitectura Las unidades de salida (Y UNITS) y las unidades ocultas (HIDDEN UNITS) también pueden tener sesgos (como se muestra en la arquitectura). El sesgo en una unidad típica de salida Yk se denota con Wok. El sesgo para una unidad oculta típica Z0 se denota V0J. Estos términos llamados sesgos actúan como pesos de las conexiones de las unidades cuya salida siempre es 1. (Estas unidades se muestran en la arquitectura de red, pero generalmente no se muestran explícitamente)

7 Arquitectura Sólo la dirección del flujo de información para la fase de pre-alimentación de funcionamiento se muestra. Sólo durante la fase de aprendizaje de retropropagación, se envían señales en la dirección inversa.

8 Descomposición del algoritmo por fases
 Feed-forward computation  Backpropagation to the output layer  Backpropagation to the hidden layer  Weight updates

9 Fases de aprendizaje Para una mejor comprensión, el algoritmo de aprendizaje de retropropagación se puede dividir en dos fases: la actualización de propagación y peso. Fase 1: Propagación Cada propagación implica los pasos siguientes: Transmita la propagación de la entrada de un patrón de entrenamiento a través de la red neuronal con el fin de generar activaciones de la propagación de salida. La propagación hacia atrás de activaciones de salida a través de la red neural utilizando el objetivo patrón de entrenamiento con el fin de generar los deltas de toda la salida y neuronas ocultas. Fase 2: Actualización de Peso Para cada peso-sinapsis siga los siguientes pasos: Multiplique su delta de salida y entrada de activación para obtener el gradiente del peso. Llevar el peso en la dirección opuesta de la gradiente restando una proporción de la misma a partir del peso. Esta relación influye en la velocidad y la calidad del aprendizaje, se llama la tasa de aprendizaje. El signo del gradiente de un peso indica que el error se incrementa, esta es la razón por el peso debe ser actualizado en la dirección opuesta. Repita fase 1 y 2 hasta que el rendimiento de la red es satisfactoria.

10 Algoritmo Durante la fase “feedforward”, cada unidad de entrada (Xi) recibe una señal de entrada y transmite esta señal a cada una de las unidades ocultas Z1,. . . , Zp. Cada unidad oculta a continuación, calcula su activación y envía su señal (zj) para cada unidad de salida. Cada unidad de salida (Yk) calcula su activación (yk) para formar la respuesta de la red para el patrón de entrada dado. dado patrón de entrada. Durante el entrenamiento, cada unidad de salida compara su activación calculada yk con su valor objetivo tk para determinar el error asociado para ese patrón con esa unidad.

11 Algoritmo Sobre la base de este error, el factor (k = 1, ..., m) es calculado. se utiliza para distribuir el error en la unidad de salida Yk de nuevo a todas las unidades de la capa anterior (las unidades ocultas que están conectadas a Yk). También se utiliza (más adelante) para actualizar los pesos entre la salida y la capa oculta. De manera similar, el factor (j = 1, ..., p) se calcula para cada Zj unidad oculta. No es necesario propagar el error a la capa de entrada, pero se utiliza para actualizar los pesos entre la capa oculta y la capa de entrada

12 Algoritmo Después de que todos los factores se han determinado, los pesos para todas las capas son ajustados simultáneamente. El ajuste del peso wjk (de la unidad oculta Zj a la unidad de salida Yk) se basa en el factor y la activation zj de la unidad oculta Zj). El ajuste del peso vij (desde la unidad de entrada Xi una la unidad oculta Zj) se basa en el factor y la activación xi de la unidad de entrada.

13 Nomenclatura

14 Nomenclatura

15 Back-Propagation Illustration
Back-Propagation of the errors

16 Función de activación La función de activación de una red backpropagation debe tener varias características importantes: Debe ser continua, diferenciable, y no decreciente monótonamente. Además, para el cálculo de la eficiencia computacional, es deseable que su derivada sea fácil de calcular. Para las funciones de activación más comúnmente utilizadas, el valor de la derivada (en un valor particular de la variable independiente) se puede expresar en términos del valor de la función (en el valor de la variable independiente). Por lo general, la función se espera que alcance un valor límite de saturación; es decir, aproximación de valores máximos y mínimos asintóticamente.

17 Función de activación

18 Función de activación

19 Algoritmo de entrenamiento

20 Algoritmo de entrenamiento

21 Algoritmo de entrenamiento

22 Training Algorithm

23 Redes Neuronales de múltiples capas y Algoritmos de retropropagación
MATLAB & SIMULINK

24 Redes Neuronales de múltiples capas y Algoritmos de retropropagación MATLAB & SIMULINK
Los Vectores de entrada y los vectores objetivo (“Target”) correspondientes se utilizan para entrenar la red hasta que se alcance la aproximación de una función, asociar vectores de entrada con vectores de salida específicos, o clasificar los vectores de entrada de una manera adecuada tal como se defina por el usuario.

25 Arquitectura Bloque constructor neurona artificial
El bloque constructor o “building block” de una neurona básica con R entradas se muestra a continuación. Cada entrada es ponderada con un peso w apropiado. La suma de las entradas ponderadas y el sesgo forman la entrada a la función f de transferencia. Las neuronas pueden utilizar cualquier función diferenciable f de transferencia para generar su salida.

26 Arquitectura Bloque constructor neurona artificial Función de activación (Función de Transferencia)
La Redes Neuronales de múltiple capa suelen utilizar la función de transferencia de tipo log-sigmoide ( logsig ) La función logsig genera salidas entre 0 y 1 conforme la entrada neta de la neurona pasa de negativo a un valor infinito positivo.

27 Arquitectura Bloque constructor neurona artificial Función de activación (Función de Transferencia)
Como alternativa, las redes neuronales de multiple capa pueden utilizar la función de transferencia tan-sigmoide o función tansig. La función de activación logsig genera salidas entre -1 y +1 conforme la entrada neta de la neurona pasa de negativo a infinito positivo

28 Arquitectura “Feedforward Network”
Una red neuronal de una sola capa de neuronas S logsig que tienen entradas R se muestra a continuación en detalle completo en el lado izquierdo y con un diagrama de capas de la derecha.

29 Arquitectura “Feedforward Network”
Redes Neuronales (Feedforward ) tienen a menudo una o más capas ocultas de neuronas sigmoidales seguidoas por una capa de salida conformada por neuronas lineales. Las Redes Neuronales de múltiple capa con funciones de transferencia no lineales: la red puede aprender relaciones lineales y no lineales entre la entrada y vectores de salida. La capa de salida lineal permite a la red producir valores en el rango de -1 a +1. Por otro lado, si se desea restringir las salidas de una red (por ejemplo, entre 0 y 1), entonces la capa de salida debe usar una función de transferencia sigmoidal (como logsig).

30 Three-Layer Network Number of neurons in each layer:

31 Algoritmo de aprendizaje Backpropagation
Las siguientes diapositivas describe el proceso de enseñanza del algoritmo de aprendizaje para redes neuronales de retropropagación de múltiples capas. Para ilustrar este proceso, la red neural que utilizaremos consiste de tres capas con dos entradas y una salida como se muestra en la siguiente arquitectura:

32 Algoritmo de aprendizaje Backpropagation

33 Algoritmo de aprendizaje Backpropagation

34 Algoritmo de aprendizaje Backpropagation

35 Algoritmo de aprendizaje Backpropagation

36 Algoritmo de aprendizaje Backpropagation

37 Algoritmo de aprendizaje Backpropagation

38 Algoritmo de aprendizaje Backpropagation
Propagación de las señales a través del “output layer”

39 Algoritmo de aprendizaje Backpropagation
En el paso siguiente del algoritmo se obtiene la señal de salida de la red y se compara con el valor de salida deseado (valor objetivo o “target). La diferencia se llama error de la señal delta de la capa de salida de la red neuronal.

40 Algoritmo de aprendizaje Backpropagation
La idea es la de propagar la señal de error delta (calculado en la etapa de enseñanza) de nuevo a todas las neuronas, cuyas señales de salida fueron entrada para dicha neurona.

41 Algoritmo de aprendizaje Backpropagation
La idea es la de propagar la señal de error d (calculado en la etapa de enseñanza) de nuevo a todas las neuronas, cuyas señales de salida fueron entrada para dicha neurona.

42 Algoritmo de aprendizaje Backpropagation
Los pesos wmn «coeficientes utilizados para propagar errores hacia atrás son iguales a utilizar, a los que fueron utilizados para calcular el valor de salida. La dirección del flujo de datos cambia (se propagan las señales de salida a entradas de una después de la otra). Esta técnica se utiliza para todas las capas de red.

43 Algoritmo de aprendizaje Backpropagation

44 Algoritmo de aprendizaje Backpropagation

45 Algoritmo de aprendizaje Backpropagation

46 MULTILAYER PERCEPTRON WITH BACKPROPAGATION

47 MULTILAYER PERCEPTRON WITH BACKPROPAGATION

48 MULTILAYER PERCEPTRON WITH BACKPROPAGATION

49 MULTILAYER PERCEPTRON WITH BACKPROPAGATION

50 MULTILAYER PERCEPTRON WITH BACKPROPAGATION

51 De igual forma para todos los pesos wij

52 Verificación

53 Entrenamiento (“Training”)
La formación exige muchas iteraciones con muchos ejemplos de entrenamiento, iteraciones o épocas (“epochs”) (una época es toda la presentación del conjunto de entrenamiento completo). Puede ser lento de acuerdo a la carga computacional. Tenga en cuenta que el cálculo en MLP es local (con respecto a cada neurona). Implementación de cómputo paralelo (Parallel Computing) es también posible. Evaluar la posibilidad de “Batch processing” vs Real Time Processing.

54 Training and testing data
Cuántas muestras? : Cuanto más muestras , mejor! Conjuntos disjuntos de entrenamiento y datos de prueba. No sólo aprender de los datos de entrenamiento, sino evaluar el desempeño (capacidad de generalización) Objetivo: minimizar el error en los datos de prueba

55 Training Algorithm La base matemática para el algoritmo backpropagation es la técnica de optimización conocido como descenso de gradiente. El gradiente de una función (en este caso, la función es el error y las variables son los pesos de la red) da la dirección en la que la función crece más rápidamente; el negativo de la pendiente da la dirección en la que la función disminuye más rápidamente.

56 Inicialización Estocástica “Random Initialization”
La elección de los pesos iniciales influirá en la capacidad de la red de alcanza una mínima global (o sólo una local) mínima del error, en caso afirmativo, con qué rapidez converge. La actualización del peso entre dos unidades depende tanto de la derivada de la función de activación de la unidad superior y la activación de la unidad inferior. Por esta razón, es importante para evitar la elección de los pesos iniciales que sería probable que sea activaciones o derivados de activaciones son cero.

57 Inicialización Estocástica “Random Initialization”
Los valores de los pesos iniciales no deben ser demasiado grandes, o las señales de entrada iniciales a cada unidad oculta o de salida podrían caer en la región en la que la derivada de la función sigmoide tiene un valor muy pequeño (la llamada región de saturación). Por otro lado, si los pesos iniciales son demasiado pequeños, la entrada de red a una unidad oculta o de salida estará cerca de cero, lo que también hace que el aprendizaje sea extremadamente lento. Un procedimiento común es inicializar los pesos (y sesgos) a valores aleatorios entre -0,5 y 0,5 (o entre - 1 y 1 o algún intervalo adecuado).

58 Cuánto tiempo se debe entrenar al MLP con Backpropagation ?
Mientras el error disminuye durante las pruebas, el entrenamiento continúa. Cuando el error comienza a aumentar, la red comienza a memorizar los patrones de entrenamiento también específicamente (y empieza a perder su capacidad para generalizar).

59 Procedimiento de Aplicación
Después del entrenamiento de una red neural de retropropagación, el procedimiento se aplica mediante el uso de sólo la fase de alimentación en avance del algoritmo de entrenamiento. El procedimiento de aplicación es como sigue: Step 0. Inicializar pesos (algoritmo de entrenamiento). Step 1. Para cada vector de entrada, realice los pasos 2-4. Step Para i = 1,. . . , N: conjunto de activación de la unidad de entrada xi;

60 Procedimiento de Aplicación

61 Character recognition example
Image 256x256 pixels 8 bits pixels values (grey level) Necessary to extract features

62 Matlab Neural Network Toolbox

63 Implementation 1. Loading data source.
2. Selecting attributes required. 3. Decide training, validation, and testing data. 4. Data manipulations and Target generation.(for supervised learning) 5. Neural Network creation (selection of network architecture) and initialisation. 6. Network Training and Testing. 7. Performance evaluation.

64 Loading and Saving data
load: retrieve data from disk. In ascii or .mat format. >> data = load(‘nndata.txt’); >> whos data; Name Size Bytes Class data x double array Save: saves variables in matlab environment in .mat format. >> save nnoutput.txt x, y ,z;

65 Matrix manipulation region = data(:,1); training = data([1:500],:)
w=[1;2]; w*w’ => [1,2;2,4]; w=[1,2;2,4]; w.*w => [1,4;4,16]; 1 2 2 4 1 4 4 16

66 Plotting Data plot : plot the vector in 2D or 3D
>> y = [ ]; figure(1); plot(power(y,2)); Redefine x axis: >> x = [ ]; >> plot(x,power(y,2));

67 Network creation >>net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) PR - Rx2 matrix of min and max values for R input elements. Si - Size of ith layer, for Nl layers. TFi - Transfer function of ith layer, default = 'tansig'. BTF - Backprop network training function, default = 'trainlm'. BLF - Backprop weight/bias learning function, default = 'learngdm'. PF - Performance function, default = 'mse’ newff : create and returns “net” = a feed-forward backpropagation network.

68 Network creation (cont.)
S2: number of ouput neuron S1: number hidden neurons Number of inputs decided by PR

69 Network creation (cont.)
S2: number of ouput neuron S1: number hidden neurons Number of inputs decided by PR

70 Network Initialization
neuron 1 >> PR = [-1 1; -1 1; -1 1; -1 1]; Min Max Initialise the net’s weighting and biases >> net = init(net); % init is called after newff re-initialise with other function: net.layers{1}.initFcn = 'initwb'; net.inputWeights{1,1}.initFcn = 'rands'; net.biases{1,1}.initFcn = 'rands'; net.biases{2,1}.initFcn = 'rands';

71 Neurons activation >> net = newff([-1 1; -1 1; -1 1; -1 1], [4,1], {‘logsig’ ‘logsig’}); TF2: logsig TF1: logsig

72 Network Training The overall architecture of your neural network is store in the variable net; variable can be reset. net.trainParam.epochs =1000; (Max no. of epochs to train) [100] net.trainParam.goal =0.01; (stop training if the error goal hit) [0] net.trainParam.lr =0.001; (learning rate, not default trainlm) [0.01] net.trainParam.show =1; (no. epochs between showing error) [25] net.trainParam.time =1000; (Max time to train in sec) [inf]

73 net.trainParam parameters:
epochs: 100 goal: 0 max_fail: 5 mem_reduc: 1 min_grad: e-010 mu: mu_dec: mu_inc: 10 mu_max: e+010 show: 25 time: Inf

74 net.trainFcn options net.trainFcn=trainlm ; a variant of BP based on second order algorithm (Levenberg-Marquardt)

75 Network Training(cont.)
TRAIN trains a network NET according to NET.trainFcn and NET.trainParam. >> TRAIN(NET,P,T,Pi,Ai) NET - Network. P - Network inputs. T - Network targets, default = zeros. Pi - Initial input delay conditions, default = zeros. Ai - Initial layer delay conditions, default = zeros. >> p = [ ; ; ; ]; For neuron 1 Training pattern 1

76 Network Training(cont.)
>>TRAIN(NET,P,T,Pi,Ai) NET - Network. P - Network inputs. T - Network targets, default = zeros. (optional only for NN with targets) Pi - Initial input delay conditions, default = zeros. Ai - Initial layer delay conditions, default = zeros. >> p = [ ; ; ; ]; >> t = [ ]; >> net = train(net, p, t); Training pattern 1

77 Simulation of the network
>> [Y] = SIM(model, UT) Y : Returned output in matrix or structure format. model : Name of a block diagram model. UT : For table inputs, the input to the model is interpolated. >> UT = [ ; ; ; ]; >> Y = sim(net,UT); For neuron 1 Training pattern 1

78 Performance Evaluation
Comparison between target and network’s output in testing set. Comparison between target and network’s output in training set. Design a metric to measure the distance/similarity of the target and output, or simply use mse.

79 NEWSOM Create a self-organizing map.
>> net = newsom(PR,[d1,d2,...],tfcn,dfcn,olr,osteps,tlr,tns) PR Rx2 matrix of min and max values for R input elements. Di Size of ith layer dimension, defaults = [5 8]. TFCN - Topology function, default = 'hextop'. DFCN - Distance function, default = 'linkdist'. OLR - Ordering phase learning rate, default = 0.9. OSTEPS - Ordering phase steps, default = 1000. TLR - Tuning phase learning rate, default = 0.02; TND - Tuning phase neighborhood distance, default = 1.

80 NewSom parameters The topology function TFCN can be HEXTOP, GRIDTOP, or RANDTOP. The distance function can be LINKDIST, DIST, or MANDIST. Exmple: >> P = [rand(1,400)*2; rand(1,400)]; >> net = newsom([0 2; 0 1],[3 5]); >> plotsom(net.layers{1}.positions) TRAINWB1 By-weight-&-bias 1-vector-at-a-time training function >> [net,tr] = trainwb1(net,Pd,Tl,Ai,Q,TS,VV,TV)


Descargar ppt "REDES NEURONALES Y LOGICA DIFUSA"

Presentaciones similares


Anuncios Google