Universidad de Buenos Aires Facultad de Ingeniería Sistemas de Programación no convencional de Robots (75.70) TP Perceptrón Primer cuatrimestre de 2012 Docentes: M. Ing. Hernán Merlino Integrantes: Padrón 85797 88816 Nombre Zucchiatti, Martín Mauro Pereira María Florencia Estudio de Algoritmos de Inducción 75.70 Sistemas de Programación No Convencional de Robots Índice Índice ................................................................................................................................................... 2 Enunciado ........................................................................................................................................ 3 1. Introducción ............................................................................................................................ 3 Entrenamiento ............................................................................................................................ 4 2. Explicar que tipo de problemas puede resolver el Perceptrón ................................................... 5 Problemas linealmente separables ............................................................................................. 5 Ejemplo........................................................................................................................................ 6 3. Explicar que problemas se hallaron en el percerptrón simple y por que nació el perceptrón multicapa......................................................................................................................................... 6 Página 2 de 7 Estudio de Algoritmos de Inducción 75.70 Sistemas de Programación No Convencional de Robots Enunciado Sobre el Perceptrón 1. Introducción 2. Explicar que tipo de problemas puede resolver el Perceptrón. 3. Explicar que problemas se hallaron en el percerptrón simple y por que nació el perceptrón multicapa. 1. Introducción Las redes neuronales tienen multiples aplicaciones. Permiten, por ejemplo, dado un dato X determinar a qué clase pertenece o determinar patrones. McCulloch y Pitts proponen el primer modelo de red neuronal, donde una neurona recibe un estímulo de las neuronas vecinas y si el estímulo total excede un umbral, se activa la neurona. Es un modelo binario, dado que se realiza una suma ponderada de las entradas y se obtiene como salida un 1 si se supera el umbral o un 0 si no. Este tipo de neuronas son capaces de representar cualquier circuito digital, son muy parecidas a puertas lógicas y no existe un algoritmo de entrenamiento para obtener los pesos. A continuación mostramos un AND y un OR que pueden ser representados usando este modelo, para luego realizar una clasificación por ejemplo. Posteriormente, surgió el Perceptrón, desarrollado por Frank Rosenblatt. El Perceptrón es el modelo de red neuronal más elemental. El modelo biológico más simple de un perceptrón es una neurona. Una neurona es una célula especializada y caracterizada por poseer una cantidad indefinida de canales de entrada llamados dendritas y un canal de salida llamado axón. Las dendritas operan como sensores que recogen información de la región donde se hallan y la derivan hacia el cuerpo de la neurona que reacciona mediante una sinapsis que envía una respuesta hacia el cerebro, esto en el caso de los seres vivos. El paper que escribió Rosenblatt sobre el Perceptrón menciona tres ideas fundamentales: Uso de una red neuronal de una sola capa. Las entradas son X1, X2, …, XN Los pesos (w1, w2, etc) se aprenden por entrenamiento. Existen varias funciones de activación (lineal, sigmoide, escalón, etc.). Página 3 de 7 Estudio de Algoritmos de Inducción 75.70 Sistemas de Programación No Convencional de Robots Las imágenes anteriores muestran una representación de los conceptos mencionados y que un perceptrón tiene en una capa de entrada conectada a una capa de salida (trabaja con una sola capa). El perceptrón usa una matriz para representar las redes neuronales y es un discriminador terciario que traza Donde su entrada vector binario) a un único valor de salida producto punto (que computa una suma ponderada). El valor de Entrenamiento Además de proponer al perceptrón, Rosenblatt introdujo un algoritmo de entrenamiento que permita obtener los pesos de una red para resolver un problema en particular. El entrenamiento de un perceptrón es por medio de la regla de aprendizaje delta: Para cada peso W se realiza un ajuste dW según la regla: dW = LR ( T - Y ) X Donde LR es la razón de aprendizaje, T el valor deseado, Y el valor obtenido, y X la entrada aplicada al perceptrón. Un pseudocódigo del algoritmo de entrenamiento es: 2. 3. 4. 5. Crear un perceptrón con n+1 neuronas de entradas. Inicializar los pesos al azar. Iterar usando el set de entrenamiento computando la suma ponderada de las entradas. Calcular la salida usando la función escalón: Página 4 de 7 Estudio de Algoritmos de Inducción 6. 7. 75.70 Sistemas de Programación No Convencional de Robots Comparar la salida calculada con la que debería obtenerse. Si la clasificación fue correcta, no se modifican los pesos. Si la clasificación fue incorrecta, actualizar los pesos: a. Si la salida yj=1 pero tenía que ser 0, wi =w1-ax i =0,…n b. Si la salida yj=0 pero tenía que ser 1, wi =w1+ax i =0,…n Donde a es el parámetro de apredizaje y es constante. 2. Explicar que tipo de problemas puede resolver el Perceptrón Problemas linealmente separables La característica principal que deberán tener los problemas a resolver con el perceptrón es que deben ser linealmente separables. En un espacio 2D, se dice que conjuntos de puntos son linealmente separables si éstos pueden ser separados por una línea recta. Generalizando a un espacio n-dimensional, se dice que un conjunto de puntos es linealmente separable si existe un hiperplano de dimensión n-1 que separe los sets. El rango de tareas que el Perceptrón puede manejar es mucho mayor que simples decisiones y reconocimiento de patrones. Por ejemplo, se puede entrenar una red para formar el tiempo pasado de los verbos en ingles, leer texto en ingles y manuscrito. El Perceptrón multicapa (MLP) puede ser usado para la predicción de una serie de datos en el tiempo; tal a sido su éxito en la medición de la demanda de gas y electricidad, además de la predicción de cambios en el valor de los instrumentos financieros. Predicción de mercados financieros, diagnósticos médicos, el Perceptrón como una red codificadora, el Perceptrón aprende a sumar enteros. NETtalk es un Perceptrón que es capaz de transformar texto en ingles en sonido individual (representaciones fonéticas) y la pronunciación con la utilización de un sintetizador de voz; cuenta Página 5 de 7 Estudio de Algoritmos de Inducción 75.70 Sistemas de Programación No Convencional de Robots con aproximadamente 300 nodos de neuronas (siendo 80 en la capa escondida) y 20,000 conexiones individuales. Ejemplo Considere las funciones AND y OR, estas funciones son linealmente separables y por lo tanto pueden ser aprendidas por un perceptrón. Vemos en el gráfico que es posible separar los puntos en 2 grupos, por esta razón se puede resolver el problema. 3. Explicar que problemas se hallaron en el percerptrón simple y por que nació el perceptrón multicapa. El perceptrón tiene como limitación que solo puede resolver problemas que sean linealmente separables. Une ejemplo de este tipo de problemas es la función XOR, cuya tabla de verdad es la siguiente: Como se observa en el gráfico no existe una forma de dibujar una únic línea recta que deje a los círculos (paridad impar) de un lado y los puntos (paridad par) del otro. Por esta razón, el perceptrón no será capaz de separar una entrada que sea par de otra impar. La función XOR no Página 6 de 7 Estudio de Algoritmos de Inducción 75.70 Sistemas de Programación No Convencional de Robots puede ser aprendida por un único perceptrón puesto que requiere al menos de dos líneas para separar las clases (0 y 1). Debe utilizarse al menos una capa adicional de perceptrones para permitir su aprendizaje. Por esta razón este tipo de problemas solo puede resolverse con un perceptrón MultiCapa. Página 7 de 7