Redes Perceptron Mg. Samuel Oporto Díaz

Slides:



Advertisements
Presentaciones similares
S ISTEMAS EXPERTOS BASADOS EN R EDES N EURONALES.
Advertisements

Jacqueline Chávez Cuzcano
INTELIGENCIA ARTIFICIAL
Introducción a las Redes Neuronales
Complejidad Computacional
Vera Olivera, David Carlos Marín Rosales, Nicolae Harry
Redes Neuronales de Retropropagación
INTRODUCCION A TECNICAS DE MINERIA DE DATOS
Introducción a las Redes Neuronales y Aplicaciones
SISTEMAS INTELIGENTES
Generación de variables aleatorias
Mariano Alcántara Eduardo
Redes Neuronales Artificiales
Complejidad Computacional
Descripción del Trabajo Final
MODELO DE REGRESIÓN LINEAL SIMPLE
Introducción a las Redes neuronales
DATA MINING MINERIA DE DATOS Gersom Costas.
Silvana Arias Carla Espinosa Livia Loaiza INGENIERIA EN SISTEMAS
Mapas Autoorganizados
K-NN: K vecinos más cercanos
¿Qué es un modelo conceptual?
PROYECTO DE GRADO CARLOS STALIN ALVARADO SANCHEZ
MATLAB MAYO 5 DEL 2005 IMPLEMENTACION DE LA FUNCION LOGICA XOR, MEDIANTE UN MODELO NEURONAL Y EL ALGORITMO BACKPROPAGATION EXPOSITORES: ANDRES FELIPE RESTREPO.
Fundamentos de Lógica Difusa (Fuzzy)
Redes neuronales2 José Edinson Aedo Cobo Depto. de Ing. Electrónica.
Representación en espacio de estado
Máquinas con Vectores de Soporte - SVM
RECONOCIMIENTO DE OBJETOS
APRENDIZAJE WIDROW- HOFF
El Perceptrón  El psicólogo Frank Ronsenblant desarrolló un modelo simple de neurona basado en el modelo de McCulloch y Pitts que utilizaba.
REDES NEURONALES ARTIFICIALES
Seminario Científico Internacional 2008 de invierno (SCI 2008i) - Francisco García Fernández. Dr. Ingeniero de Montes - Luis García Esteban. Dr. Ingeniero.
Simulacion de sistemas dinamicos
INTRODUCCIÓN A REDES NEURONALES ARTIFICIALES TEORÍA Y APLICACIONES
Diplomado "Gestión de Negocios con Data Warehouse y Data Mining".
Introducción Calculabilidad clásica Computación celular
Redes Neuronales Monocapa
El Perceptrón Multicapa
Ejemplo de aplicación de las ANN
Image Processing Using FL and ANN Chapter 10 Dr. Mario Chacón DSP & Vision Lab.
1 Problema no separable linealmente Se busca obtener un algoritmo más general que permita integrar el aprendizaje entre las dos capas.
Un ejemplo ilustrativo
Tipos de redes neuronales Perceptrón multicapa Redes de respuesta radial Competitivas Clasificación Mapa topológico.
Integrantes: Daniel Peña Alfredo Zuñiga
PREVISIÓN DE SERIES TEMPORALES MEDIANTE REDES NEURONALES ARTIFICIALES
3. Funciones discriminantes para la f.d.p normal.
Aplicaciones de las Redes Neuronales Artificilaes Dr. Héctor Allende
Aprendizaje (Machine Learning)  Pregunta interesante: Podemos hacer que las computadoras aprendan?  Aprender: mejorar automáticamente con la experiencia.
Combinación de Clasificadores
Contenido Identificación de sistemas con redes neuronales Modelado de dinámica temporal de las manchas solares.
Redes Neuronales Artificiales
Aprendizaje de Agentes II Alberto Reyes Ballesteros Programa ITESM-IIE Doctorado en Ciencias Computacionales.
Modelos Computacionales
Redes Competitivas.
REDES NEURONALES.
Aprendizaje Automatizado
Redes Neuronales Artificiales 2 - Aprendizaje
Redes Neuronales Artificiales 3 - Perceptrones Dr. Juan José Flores Romero División de Estudios de Posgrado Facultad de Ingeniería Eléctrica
Redes Neuronales BPN - Backpropagation Networks
Redes Neuronales Artificiales Entrenamiento por Retropropagación del Error-Backpropagation Dr. Pedro Ponce Cruz EGIA-MCI.
Redes neuronales feed-forward
Algoritmo de Retropropagación. Conclusiones de Retropropagación n 1. Si la neurona j es un nodo de salida es igual al producto de la derivada y la señal.
Identificacion con redes neuronales
REDES NEURONALES TEORÍA MODERNA DE LA FIRMA 2010.
Algoritmo de Retropropagación. Notación n i, j, k son índices de las neuronas en las distintas capas.
Ángel Berihuete Francisco Álvarez
Redes Neuronales.
Redes Neuronales Artificiales (ANN)
Unsupervised visual learning of three-dimensional objects using a modular network architecture Ando, Suzuki, Fujita Neural Networks 12 (1999)
Transcripción de la presentación:

Redes Perceptron Mg. Samuel Oporto Díaz

Tabla de Contenido Redes de nivel simple Redes de nivel múltiple Análisis de redes de retro-propagación Efectividad del clasificador

Mapa Conceptual del Curso Redes Neuronales Arquitectura de RN Aprendizaje Métodos de Aplicación Ejercicios Clasificación de Alumnos Clasificación de Imágenes Pronóstico de Demanda Clasificación de Minucias Primera SesiónSegunda Sesión

Mapa Conceptual de la Sesión Neuronas Naturales Neuronas Artificiales Aprendizaje Reconocimiento de Patrones Arquitectura de las redes neuronales Aplicaciones No Recurrentes Recurrentes Aprendizaje supervisado Aprendizaje no supervisado Red Perceptron Red de retro-propagación Método de Trabajo

Objetivo de la Sesión Exponer los aspectos básicos de las redes neuronales. Exponer los conceptos acerca de las redes neuronales. Exponer los conceptos del aprendizaje natural y automático. Exponer los conceptos de reconocimiento de patrones. Plantear el modelo de redes neuronales artificiales. Exponer las arquitecturas de las redes neuronales.

REDES DE NIVEL SIMPLE

Perceptrón Separa espacio con hiperplanos y = f ( w 1 u 1 + w 2 u w n u n ), f(s) = { 1 si s 0, 0 si s<0 } Puede incluir offset w 0. Importante históricamente –estudiado muy detalladamente (Minsky y Papert 69) Es un clasificador lineal en 2 clases. –bueno si los patrones son linealmente separables –problema XOR w t.u =0 u1u1 u2u2

Arquitectura del Perceptrón Una capa de entrada y una capa de salida. Obedece la siguiente regla: w1w1 Θ w2w2 Y x1x1 x2x2 Entrada SumadorFunción de Transferencia Umbral Salida 1 if Σ entrada i * weight i > umbral -1 if Σ entrada i * weight i < umbral Salida =

Ejercicio 8 Diga si los siguientes patrones son linealmente separables

XOR El perceptron no puede aprender un XOR

Aprendizaje Perceptrón Se aplica la siguiente regla de aprendizaje perceptron: Donde: Es la velocidad de aprendizaje. Es el gradiente

Aprendizaje Perceptron Lo que busca el gradiente es minimizar el error E. E(w) w1w1 Decrecimiento de E(w) W(t)W(t+1)

Aprendizaje Perceptron La velocidad de aprendizaje, indica el tamaño del salto. pequeño grande

DESARROLLO DE APLICACIONES CON REDES NEURONALES

Ejercicio 9 - Perceptron Desarrolle una red neuronal – perceptrón simple - para aprender el siguiente patrón de comportamiento Pruebe la red entrenada y diga a que clase pertenecen los siguientes registros. X1X2clase X1X2clase

Procedimiento de solución Recolección de datos Train Test Pre- procesamiento Entrenamiento W Pesos Definir la arquitectura Pruebaerror Parámetros

Épocas. Un paso de todos los patrones por el algoritmo de entrenamiento constituye una época. net.trainParam.epochs = epochs; Desempeño del entrenamiento Máximo error aceptable. net.trainParam.goal = goal; Visualización Cada cuantas épocas visualizar el error de entrenamiento net.trainParam.show = epochs;

Errores Error de entrenamiento E = |D train - Y| 2 / N Error del clasificador E = 1 – exitos / N E = |D test - Y| 2 / N Error para variables continuas Error = |D - Y| / D

function lab_11_perceptron_simple clc % PARAMETROS epochs = 5000; % RECOLECCION data = xlsread([pwdup, 'class_data.xls'],2,'A3:C10'); entrada = data(:,[1:2]); salida = data(:,3); entrada = entrada'; salida = salida'; %plotdata (entrada, salida, {'X1', 'X2'}) % PRE-PROCESAMIENTO % % DEFINE ARQUITECTURA DE LA RED % neuronas neuronas_entrada = Rows(entrada); neuronas_salida = Rows(salida); %crea la red neuronal net = newp(minmax(entrada), neuronas_salida); % asigna pesos aleatorio net = init(net); % asignar parametros de configuracion a la red net.trainParam.epochs = epochs; % ENTRENA LA RED net = train(net, entrada, salida); % PRUEBA O SIMULACION datatest = xlsread([pwdup, 'class_data.xls'],2,'A16:B20'); entradatest = datatest(:,[1:2]); entradatest = entradatest'; % simulación result = sim(net,entradatest); disp([entradatest' result']) %plotdata (entrada, salida, entradatest, result, {'X1', 'X2'}) % ERROR % Algoritmo

Ejercicio Prepare los datos para la tabla de verdad del AND y del OR para 2, 3 y 4 variable Verifique si el espacio es linealmente separable Diseñe la arquitectura de una red neuronal para cada caso. Verifique si la red es capaz de aprender. Identifique los pesos de la red.

REDES DE MÚLTIPLE NIVEL

Perceptrón Multicapa Red lineal Activaciones dependen: –entradas –activaciones de neuronas precedentes Derivadas ordenadas backpropagation W ij 1 W ij 2 u1u1 u2u2 y1y1 y2y2 W ij 3 u1u1 u2u2 y1y1 y2y

Perceptrón Multicapa w11=1 w12=1 w21=1 w22=1 w31=1 w32=-1.5 b1=0.5 b2=1.5 b3=0.5

MAPEADOR UNIVERSAL

Mapeo Universal Pregunta: –¿Qué tipo de funciones puedo representar con una RN? –La RN puede representar una función de N variables como combinación lineal de funciones en una variable (bajar dimensionalidad del problema) áreaperímetrocompacidadresultado Cuadro Paralelogramo Circulo Pentágono Triangulo R 3 R 1

Mapeo Universal Idea: – Usando red con 2 capas ocultas es posible crear funciones tipo localizadas que combinadas pueden formar cualquier función suave Prueba intuitiva: – Fácil de ver en R 2 R. – Red: y = ANN (x 1,x 2 ) Paso 1: – Que mapeo obtengo con una sola neurona? y = logsig(.x 1 ) y = logsig(.x 2 )

Mapeo Universal Paso 2: – Uso Perceptron Multicapa – Puedo lograr pico en cualquier valor de x 1 con red de 1 sola capa oculta el ancho del pico depende del valor de b. – Puedo hacer lo mismo con x 2. x1x1 1 y b b b -b 1 1

Mapeo Universal Paso 3: – Agrupo redes en cada entrada en una sola red para combinar picos en x 1 y x 2. – Ajustando parámetros puedo obtener un pico bien definido centrado en cualquier punto de R 2. x1x1 1 y b b b -b x2x2 1 b b b -b 1 1

Mapeo Universal Paso 4: – Agregando una capa adicional 2 capas ocultas – Combinando estos picos se puede aproximar cualquier función de R 2 R con el grado de error que desee. x1x1 1 a b1 c1 -a x2x2 1 a d1 e1 -a 1 1 x1x1 1 a bn cn -a x2x2 1 a dn en -a 1 1 y f1f1 fnfn

Mapeo Universal

RED DE RETROPROPAGACION

Problema no separable linealmente Se busca obtener un algoritmo más general que permita integrar el aprendizaje entre las dos capas. 32

33 Problema no separable linealmente ¿Cuál es el tamaño de cada capa?

Problema no separable linealmente Aplicar descenso en la dirección del gradiente de error expresada como una función de los pesos. Tomar en cuenta los pesos de los arcos que unen AMBAS capas. Las neuronas de la capa intermedia no tienen una salida deseada. D X ¿D?

35 Retropropagation. Arquitectura

Retropropagación f() entradas Pesos k = capa sumatoria constante b función de transferencia resultado net =o k (n) salida calculada y k (n) x 1 (n) w k1 (n) x 2 (n) x 3 (n) w k2 (n) w k3 (n) e k (n) = d k (n) – y k (n) salida deseada d k (n) e k (n)

Función de transferencia

Regla de Aprendizaje Si j es una unidad de salida Si no

Aprendizaje entrada neta a i j i salida de i error de la salida k error total regla de aprendizaje η: velocidad de aprendizaje

Propiedades Discriminante universal: –Generar regiones para clasificar datos Generalización: –Inferir resultados sobre valores de entrada no usados anteriormente. –Interpolación y extrapolación Robustez: –Almacenamiento distribuido. –Al error de alguna neurona. Adaptabilidad: –Parámetros (Wij) –Estructura de la red. interpolación extrapolación

Ejercicio 10 Desarrolle una red neuronal de retro-propagación para aprender números entregados como imágenes binarias de tamaño 7x6 proporcionadas en la hoja del archivo de datos.

Procedimiento de solución Recolección de datos Train Test Pre- procesamiento Entrenamiento W Pesos Definir la arquitectura Pruebaerror Parámetros

Arquitectura de la Red 1

function error = lab_1a_retropropagacion % PARAMETROS epochs = 500; goal = 0.001; % RECOLECCION data = xlsread([pwdup, 'class_data.xls'], 3, 'C3:P81'); % PRE-PROCESAMIENTO %prepara la data [entrada, salida] = preparadata(data); entrada = entrada'; salida = salida'; % DEFINE ARQUITECTURA DE LA RED % neuronas neuronas1 = Rows(entrada); neuronas2 = 10; neuronas3 = Rows(salida); Si = [neuronas2 neuronas3]; % neuronas por capa TFi = {'tansig' 'purelin'}; % función transferencia %crea la red neuronal net = newff(minmax(entrada), Si, TFi); % asigna pesos aleatorio net = init(net); % asignar parametros de configuracion a la red net.trainParam.epochs = epochs; net.trainParam.goal = goal; % ENTRENA LA RED net = train(net, entrada, salida); % PRUEBA DE MEMORIA result = sim(net, entrada); result = round(result); error = 1 - exito(result, salida); % error de aprendizaje disp([salida' result']) disp(['error = ' num2str(error)]) % PRUEBA DE APRENDIZAJE dataT = xlsread([pwdup, 'class_data.xls'], 3, 'U3:AP81'); [entradaT, salidaT] = preparadata(dataT); entradaT = entradaT'; salidaT = salidaT'; result = sim(net, entradaT); result = round(result); error = 1 - exito(result, salidaT); disp([salidaT' result']) disp(['error = ' num2str(error)]) Ejercicio 10

function [entrada,salida] = preparadata(data) nums = round(Cols(data)/8); r = 0; entrada = []; salida = []; for s = 0:9 E1 = []; E2 = []; E3 = []; for i = 1:7 r = r + 1; if 1 <= nums; E1 = [E1, data(r,[ 1: 6])]; end, if 2 <= nums; E2 = [E2, data(r,[ 9:14])]; end; if 3 <= nums; E3 = [E3, data(r,[17:22])]; end; end r = r + 1; entrada = [entrada; E1; E2; E3]; salida = [salida ; s*ones(nums,1)]; end function E = exito(deseado, resultado) E = sum(1 - sign(abs(deseado - resultado)))/Cols(deseado); function P = pdwup P = pwd; P = P(1,[1:max(findstr(P,'\'))]); function c = Cols(m) [aux, c] = size(m); function r = Rows(m) [r, aux] = size(m); Ejercicio 10

Ejercicio 11 Diseñe un programa en matlab para determinar el número de neuronas de la capa intermedia que máximize el desempeño de la red. Verifique si a medida que se incrementa el número de neuronas de la capa intermedia el error se reduce. Verifique si a medida que se incrementa el número de épocas el rendimiento se incrementa.

Ejercicio 11 function lab_1b_perceptron_simple % PARAMETROS epochs = 50; goal = 0.001; %DATA ENTRENAMIENTO data = xlsread([pwdup, 'class_data.xls'],3,'C3:P81'); [entrada,salida] = preparadata(data); entrada = entrada'; salida = salida'; % DATA PRUEBA dataT = xlsread([pwdup, 'class_data.xls'],3,'U3:AP81'); [entradaT,salidaT] = preparadata(dataT); entradaT = entradaT'; salidaT = salidaT'; X = [], Y =[]; for neurons = 2:15 error = lab_1b_perceptron_simple_sub(entrada, salida, entradaT, salidaT, neurons, epochs, goal); X = [X; neurons]; Y = [Y; error]; end plot(X, Y);

Ejercicio 11 function error = lab_1b_perceptron_simple_sub(entrada, salida, entradaT, salidaT, neurons, epochs, goal) % DEFINE ARQUITECTURA DE LA RED neuronas1 = Rows(entrada); neuronas2 = neurons; neuronas3 = Rows(salida); %crea la red neuronal Si = [neuronas2 neuronas3]; % neuronas por capa TFi = {'tansig' 'purelin'}; % función transferencia net = newff(minmax(entrada), Si, TFi); net = init(net); % asignar parametros de configuracion a la red net.trainParam.epochs = epochs; net.trainParam.goal = goal; % ENTRENA LA RED net = train(net, entrada, salida); % SIMULACION result = sim(net,entradaT); result = round(result); error = 1 - exito(result, salidaT); disp(['error = ' num2str(error)])

ANALISIS DE LAS ANN

Velocidad de aprendizaje El maneja la velocidad de aprendizaje. Si es alto la red puede desestabilizarse. Incorporar a la modificación de los pesos, un término que incluya una proporción del último cambio realizado. Este término se denomina momento. es la contribución del momento.

¿Mínimo local o global? El problema se resuelve utilizando la dirección del gradiente junto con un componente aleatorio que permita salir de los mínimos locales (subiendo en lugar de bajar). 51

Teorema de Kolmogorov Dada cualquier función continua f: [0 1] n R m, y = f(x), f puede ser implementada exactamente por una red neuronal de tres capas sin retroalimentación que tiene una capa de entrada de n elementos que unicamente copian las entradas a la siguiente capa, (2n + 1) elementos de procesamiento en la capa intermedia y me elementos de procesamiento en la capa de salida

Sobreajuste y subajuste La red de retropropagación es un método de ajuste de curvas. La red entrenada implementa un mapeo no lineal entre el espacio de entradas y salidas de manera que entradas cercanas entre sí producen salidas cercanas, por lo tanto una ANN es interpolativa. A mayor cantidad de neuronas en la capa oculta, la red puede variar más rápido en respuesta a los cambios de la entrada.

Subajuste La red produce un mapeo mas sencillo de lo que se requiere para implementar la relación entrada/salida Sintoma. Error alto. Solución. Aumentar los ciclos de entrenamiento, más neuronas capa intermedia, más capas

Sobreajuste La red produce un mapeo más complicado de lo que se requiere para implementar la relación entrada/salida. Síntoma. Error ante patrones de entrenamiento pequeño y error ante patrones de prueba alto. Solución. Menos ciclos de entrenamiento, menos capas, menos neuronas

Offset de f Las funciones de transferencia sigmoidal o tangente hiperbólica se pueden saturar, se saturan cuando los valores absolutos de sus entradas son grandes. Dado que la derivada participa en la regla de aprendizaje, puede suceder que ya no aprendan. Normalización de datos

EFECTIVIDAD DEL CLASIFICADOR

Validación Cruzada de k-conjuntos características... Entrenamiento eficacia 1 Promedio eficacia 2 eficacia 3 eficacia K Experimento 1 Experimento 2 Experimento 3 Experimento K total de ejemplos pruebaentrenamiento

Referencias Pattern Classication. R. O.Duda,P. E. Hart, and D.G.Stork. John Wiley & Sons, 2nd ed., Pattern Recognition and Machine Learning, C. M. Bishop, Springer, (An additional useful book)

PREGUNTAS

Mg. Samuel Oporto Díaz