martes, 29 de julio de 2014

Perceptrón Unicapa


ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ
MANUEL FÉLIX LÓPEZ

CARRERA  INFORMÁTICA

SEMESTRE SEXTO                         PERÍODO ABR. – AGO. /2014


INTELIGENCIA ARTIFICIAL I


TEMA 4:
PERCEPTRÓN UNICAPA


AUTORA:



FACILITADORA:
ING. HIRAIDA SANTANA




INTRODUCCIÓN
En esta investigación se dará a conocer que es el Perceptrón Unicapa, quien fue el desarrollador y en que regla se basó para hacerlo y los modelos que utilizó, además, cuáles son sus principales características, su arquitectura, la dinámica y los pasos  como aprende el perceptrón.

PERCEPTRÓN UNICAPA
El perceptrón es una red de alimentación directa, esto es la información fluye desde la capa de entrada hacia la capa de salida. Fue desarrollado por F. Rosenblatt hacia final de la década de los cincuenta basándose en la regla de aprendizaje de hebb y de los modelos de neuronas biológicas de McCulloch y Pitts.
El Perceptrón es un clasificador, asigna a un vector de N valores un valor binario, usando una transformación no lineal. Así cada vector pertenece a una de las particiones que crea el perceptrón.
El perceptrón es una máquina de computación universal y tiene la expresividad equivalente a la lógica binaria ya que podemos crear un perceptrón que tenga el mismo comportamiento que una función booleana NAND y a partir de esta función se puede crear cualquier otra función booleana.
El perceptrón manifiesta aprendizaje al terminar de procesar los pesos de entrada por un número n de iteraciones llamadas « épocas ».
Algunas de sus características son:
-          Aprendizaje Supervisado.
-          Reconocimiento de patrones sencillos.
-          Clasificación de patrones linealmente separables.
CARACTERÍTICAS PRINCIPALES DEL PERCEPTRÓN SIMPLE
-          Sistema capaz de realizar tareas de clasificación de forma automática.
-          A partir de un número de ejemplos etiquetados, el sistema determina la ecuación del plano discriminante.
-          Puede usarse como neurona dentro de otro tipo de red de neurona artificial.
-          Aprendizaje supervisado y conexiones en un sólo sentido.
-          Es reconocido por su capacidad de aprender a reconocer patrones
-          Es un modelo unidireccional compuesto por dos capas de neuronas.
-          Con respecto al entrenamiento las neuronas de entrada son discretas y la función de activación de las de salida es de tipo escalón


ARQUITECTURA DEL PERCEPTRÓN

El perceptrón simple es una red que consta de dos capas de neuronas. Esta red admite valores binarios o bipolares como entrada para los sensores y los valores de su salida están en el mismo rango que los de entrada.
La función de la primera capa es hacer de sensor, por ella entran las señales a la red. La segunda capa realiza todo el procesamiento. La manera de interconexionar ambas capas es todas con todas esto es, cada neurona de la primera capa está unida con todas las de la segunda capa.


DINÁMICA DEL PERCEPTRÓN
El funcionamiento para ejecutar un patrón de la red es el siguiente:
1.      Se establece el patrón de entrada en los sensores, la capa de entrada.
2.      Se actualizan las neuronas de la capa de Salida.
Las neuronas de actualizan de la siguiente manera:
-        Sea el potencial de la neurona i,
-        El peso asociado a la sinapsis que une la neurona i de la capa actual
y j de la capa de sensores.
-        El estado del sensor j
 Entonces
Y el estado de la neurona es o bien la función escalón si las entradas de la red son binarias o bien la función signo si las entradas son bipolares {-1 ,1}
estadoneuronaJ= Signo( Sumatorio( Peso(ij)*Estado(j))
APRENDIZAJE DEL PERCEPTRÓN
Los pasos para que la red aprenda una lista de patrones son los siguientes
1.      Tomar un patrón al azar de la lista.
2.      Se establece el patrón de entrada en los sensores, la capa de entrada.
3.      Se establecen los valores deseados en las neuronas de la capa de salida
4.      Se actualizan las neuronas de la capa de Salida.
5.      Solicitar que aprendan todas las sinapsis
6.      Si las sinapsis han cambiado volver al paso 1
 Si no han cambiado la red se ha estabilizado y paramos.
Las sinapsis que une las neuronas i, j aprenderá de la siguiente manera:
 Sea
         Ei = el estado de la neurona de la capa de entrada i,
·         Pij = El peso actual asociado a la sinapsis que une la neurona i de la capa de entrada y la neurona j de la capa de salida.
·         Ej = El estado de la neurona de la capa de salida j
         Sj = El valor deseado para esa neurona
·         Pijnuevo = El peso Pij actualizado.
         TASA =Es una constante entre 0 y 1 que indica cuanto aprende la red
·         Pijnuevo = Pij + Tasa*(( Ej - Sj) *Ei)
Hay que destacar que el perceptrón aprende solo cuando se equivoca al clasificar el patrón. Si clasifica correctamente el patrón, esto es, entonces con lo que no hay aprendizaje.
·         n neuronas de entrada y m neuronas de salida se puede expresar como:



con i = 1,…, m

·         Neuronas de entrada son discretas
·         Función de activación de las neuronas de la capa de salida es de tipo escalón
·         Dispositivo entrenable: determinar automáticamente los pesos sinápticos que clasifican un conjunto de patrones etiquetados

Arquitectura (izquierda) y función de transferencia (derecha) de un perceptrón simple.
El perceptrón simple tan sólo puede discriminar entre dos clases linealmente separables.
Ejemplo: x1 y x2 dos neuronas de entrada, la operación efectuada por el perceptrón simple consiste en:

Si consideramos x1 y x2 situadas sobre los ejes de abcisas y ordenadas respectivamente, la condición
  es equivalente a 
y representa una recta que define la región de decisión determinada por el perceptrón simple.
 Minsky y Papert (1969) trabajo exponiendo las limitaciones del perceptrón simple, como consecuencia recursos de las redes neuronales a otros campos de la Inteligencia Artificial
Región de decisión correspondiente a un perceptrón simple con dos neuronas de entrada
Algoritmo de Aprendizaje
·         Pertenece al grupo de algoritmos fundamentados en la corrección de errores
·         xr conjunto de patrones de entrada, r = 1,…, N
·         cr conjunto de clases verdaderas de dichos patrones, r = 1,…, N
·         Variables de entrada como las de salida toman dos posibles valores:  -1 y +1
·         Actualización de pesos:
·          Si ante la presentación del r-ésimo patrón la respuesta que proporciona el perceptrón simple es correcta, no actualizaremos los pesos
·          Si la respuesta es incorrecta los pesos se modificarán según la regla de Hebb
·          Es decir:



La regla anterior se puede reescribir:
·         La actualización de pesos únicamente podrá tomar los valores - 2ε, 0 y + 2ε
·         A nivel práctico llegar a un compromiso para el valor del ritmo de aprendizaje, ε
o   Valor pequeño de ε implica un aprendizaje lento
o   Valor excesivamente grande de ε puede conducir a oscilaciones excesivas de los pesos no aconsejables en el proceso de entrenamiento
·         El proceso de aprendizaje es iterativo
·         Configuración sináptica inicial con pesos pequeños aleatorios
·          Se presentan los patrones una y otra vez, con objeto de que los pesos se ajusten iterativamente según la regla anterior:

·         El ajuste de los pesos en la iteración t debido a todo el conjunto de aprendizaje será:

·         Hasta que todos los patrones queden bien clasificados si es posible
Evolución de las regiones de decisión establecidas por el perceptrón simple
Rosenblatt (1962) demostró que:
ü  Si la función a representar es linealmente separable, el algoritmo anterior siempre converge en un tiempo finito y con independencia de los pesos de partida
ü  Si la función a representar no es linealmente separable, el proceso de entrenamiento oscilará
El algoritmo para cuando consigue clasificar correctamente todos los ejemplos.
Puede ocurrir que línea de discriminación quede muy cerca de las muestras de uno de los grupos.
CIERRE
Las redes neuronales se basan en el uso del perceptrón, el perceptrón simple es una red que hace que la información fluya desde la capa de entrada hacia la capa de salida, tiene características como que puede ser utilizado como neurona dentro de otro tipo de red de neurona artificial, tiene un aprendizaje supervisado y conexiones en un sólo sentido,  es reconocido por su capacidad de aprender a reconocer patrones, entre otras. Este tipo de red admite valores binarios o bipolares como entrada para los sensores y los valores de su salida están en el mismo rango que los de entrada.
BIBLIOGRAFÍA
Neural Networks Framework. El percetrón simple. Formato HTML. Consultado, 03 jul, 2014. Disponible en: http://www.lab.inf.uc3m.es/~a0080630/redes-de-neuronas/perceptron-simple.html
Redes de Neuronas Artificiales. c2012. Percetrón Simple y Adaline. Formato HTML. Consultado, 03 jul, 2014. Disponible en: http://www.redes-neuronales.com.es/tutorial-redes-neuronales/el-perceptron-simple.htm
Calderón, M. 2014. Inteligencia Artificial y sus Aplicaciones. Formato PDF. Consultado, 03 jul, 2014. Disponible en: http://xe1gqp.org.mx/temas/wp-content/uploads/2014/06/198-XE1GNW-Ines-Introduccion-a-la-inteligencia-artificial-y-sus-aplicaciones-11JUN14.pdf

Larragaña, P; Inza, I; Moujahid, A. s.f. Tema 8: Redes Neuronales. Universidad del País Vasco. Formato PDF. Consultado, 03 jul, 2014. Disponible en: http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/t8s.pdf

martes, 22 de julio de 2014

Introducción a las Redes Neuronales Artificiales: Características


ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ
MANUEL FÉLIX LÓPEZ

CARRERA  INFORMÁTICA

SEMESTRE SEXTO                         PERÍODO ABR. – AGO. /2014


INTELIGENCIA ARTIFICIAL I


TEMA 3:
INTRODUCCIÓN A LAS REDES NEURONALES ARTIFICIALES


AUTORA:
JENNIFER V. LÓPEZ ÁLAVA


FACILITADORA:
ING. HIRAIDA SANTANA


CALCETA,  JULIO 2014



INTRODUCCIÓN
En este capítulo conoceremos acerca de las características de las redes neuronales artificiales, comparándola con las redes neuronales y la computación convencional, definiendo las diferencia entre cada una de ellas y el enfoque que se les da. Además se hará referencia a la historia de las Redes Neuronales Artificiales.

CARACTERÍSTICAS DE LAS REDES DE NEURONAS ARTIFICIALES
Redes Neuronales frente a Redes de Neuronas Artificiales.
Una de las diferencias fundamentales entre los Sistemas Biológicos y las Redes de Neuronas Artificiales es la complejidad de la sinapsis. En los sistemas Biológicos estos puntos de interconexión tienen miles de componentes y de procesos activos de propagación de los impulsos electro-químicos. En cambio, las Redes de Neuronas Artificiales tienen conexiones relativamente simples, en las que, por lo general, se realiza una suma ponderada de las entradas, a la que se le aplica una función de umbral, lo que hace casi ridícula la comparación con la complejidad de las sinapsis biológicas.
Por otro lado, en los Sistemas Biológicos la información se propaga por medio de impulsos electro-químicos que al llegar a las células, dependiendo de us intensidad y de una serie de factores fisiológicos de las neuronas, producirán una serie de reacciones en estas. Éstos impulsos se reciben en cualquier momento, de forma que el funcionamiento de los Sistemas Biológicos se puede calificar como instante de tiempo por lo que producen patrones temporales de forma continua. En cambio, en las Redes de Neuronas Artificiales, los parámetros se actualizan de forma periódica en intervalos de tiempo discretos, y, por lo general, todos a la vez; con lo cual se le presentan los patrones en intervalos de tiempo prefijados, y no los podrá recoger de forma esporádica de su entorno.
Además, las redes de Neuronas tiene la propiedad de poder aprender, a partir de unas pocas presentaciones de patrones. Por el contrario, las Redes de Neuronas Artificiales normalmente convergen muy lentamente, y pueden necesitar de cientos o miles de presentaciones de patrones para llegar a realizar una generalización aceptable.
Redes de Neuronas Artificiales frente a Computación convencional
El poder de proceso de una Red de Neuronas Artificial viene dado por el número de actualizaciones por segundo de sus conexiones; por el contrario, en las máquinas Von Neuman se mide por el número de instrucciones realizadas por segundo, secuencialmente, por un procesador. En las redes de Neuronas Artificiales, durante la fase de aprendizaje se produce el ajuste de los parámetros asociados a las interconexiones entre neuronas. Por tanto, la medida del aprendizaje vendrá asociada a la medida de las interconexiones actualizadas.
Las Redes Neuronales Artificiales también se diferencian de las clásicas arquitecturas paralelas. Primero, los procesadores en una Red de Neuronas Artificiales están masivamente interconectados. Como resultado hay más conexiones que unidades de proceso, en contra de lo que ocurre en las máquinas paralelas clásicas. Por otra parte, las arquitecturas paralelas clásicas tratan de incorporar procesadores comparables en complejidad con los de las máquinas Von Neuman; las Redes de Neuronas Artificiales, en cambio, trasladan el poder computacional a las conexiones, no se necesitan poderosos procesadores.
El enfoque de las Redes de Neuronas Artificiales no requiere identificación de problemas particulares; aun así, las Redes de Neuronas Artificiales tienen dos grandes inconvenientes:
·         El tiempo de aprendizaje de la red no puede ser conocido a priori. No se puede determinar el número de veces que será necesario introducir todo el conjunto de datos para que la red aprenda. En muchos problemas de tiempo real esto puede ser un inconveniente importante. Además, este tiempo no tiene por qué estar en relación con el tamaño del conjunto de aprendizaje. Los conjuntos pequeños pueden requerir muchas pasadas, lo que redundaría en un mayor tiempo de aprendizaje. Por el contrario, los conjuntos grandes pueden contener elementos no significativos y redundantes que hagan que el aprendizaje se produzca rápidamente.
·         El diseño de una red para resolver un problema con éxito puede ser una tarea muy compleja y larga. El método común para diseñar una buena red de neuronas es mediante prueba y error. Esto quiere decir que hasta que una red no ha sido aprendida no puede ser descartada y, lo que es peor, no tiene por qué dar indicios del camino a seguir, lo cual hace del procedimiento algo tedioso y no sistemático.
Las redes pueden ser entrenadas para resolver problemas de forma genérica, y no sólo para memorizar los patrones de entrenamiento, siempre que estos patrones representen adecuadamente el problema. Esta característica es importante y hay que tenerla en cuenta, ya que existen algunos problemas que no pueden ser descritos de forma exhausta mediante ejemplos, y no es posible programar procedimientos para su resolución.
Historia de las Redes de Neuronas Artificiales
Las primeras investigaciones en Redes Neuronales Artificiales datan de principios del siglo XIX, con algunos de los trabajos realizador por Freud en el período del presicoanálisis. La primera implementación de Redes de Neuronas Artificiales fue un dispositivo hidráulico descrito por Russell. Pero no fue hasta la década de los 40, ya en el siglo XX, cuando el estudio de las Redes de Neuronas Artificiales cobró una fuerza que se ha ido incrementando hasta la actualidad, gracias al trabajo de varios científicos brillantes y de los increíbles avances del hardware. Cabe destacar varios científicos que han conseguido que las Redes de Neuronas ocupen el lugar relevante del que gozan actualmente.
Warren McCulloch y Walter Pitts realizaron el primer modelo matemático de unas Redes de Neuronas Artificiales. Este modelo introduce la idea de una función de paso por umbral utilizada posteriormente por muchos modelos como las Redes de Neuronas Artificiales discretas de Hopfield.
Donald Hebb desarrolló posteriormente un procedimiento matemático de aprendizaje. Los estudios de Hebb sobre las neuronas, desarrolla un paradigma de aprendizaje que ahora lleva su nombre –aprendizaje hebbiano-.
Marvin Minsky obtuvo los primero resultados prácticos de Redes Neuronales Articiales. Más tarde, Albert Uttley comenzó a desarrollar nuevos paradigmas de Redes de Neuronas Artificiales, creando una máquina teórica compuesta de informes.
Frank Rosenblatt generalizó el modelo de células de McColluch-Pitts añadiéndole aprendizaje; llamó a este modelo el Perceptron. Primero desarrollo un modelo de dos niveles, que ajustaba los pesos de las conexiones entre los niveles de entrada y salida, en proporción al error entre la salida deseada y la salida obtenida.
Bernard Widrow diseñó una Red Neural Artificial muy similar al Perceptron, llamada Adaptive Linear Element o Adaline. El Adaline de dos niveles, muy parecido al Perceptron, ajusta los pesos entre los niveles de entrada y salida en función del error entre el valor esperado de salida  el obtenido. La diferencia entre los dos modelos es muy pequeña, pero las aplicaciones a las que van dirigidas son muy distintas.
CIERRE
Las Redes Neuronales Artificiales tiene muchas características, comparándola con las Redes Neuronales y con la computación convencional, una de las diferencias fundamentales entre los Sistemas Biológicos y las Redes de Neuronas Artificiales es la complejidad de la sinapsis, debido a que en las Redes de Neuronas Artificiales se utilizan conexiones relativamente simples, en las que, por lo general, se realiza una suma ponderada de las entradas, a la que se le aplica una función de umbral, así mismo, las redes de Neuronas tiene la propiedad de poder aprender, a partir de unas pocas presentaciones de patrones, lo cual no es el caso de las Redes de Neuronas Artificiales que normalmente convergen muy lentamente, y pueden necesitar de cientos o miles de presentaciones de patrones para llegar a realizar una generalización aceptable. Comparada con la Computación convencional el poder de proceso de una Red de Neuronas Artificial viene dado por el número de actualizaciones por segundo de sus conexiones; por el contrario, en las máquinas Von Neuman que se mide por el número de instrucciones realizadas por segundo, secuencialmente, por un procesador. Y, en las redes de Neuronas Artificiales, durante la fase de aprendizaje se produce el ajuste de los parámetros asociados a las interconexiones entre neuronas es decir, la medida del aprendizaje vendrá asociada a la medida de las interconexiones actualizadas.
La historia de las Redes Neuronales Artificial se dice que se iniciaron las primeras investigaciones a principios del siglo XIX, con algunos de los trabajos realizador por Freud y que la primera implementación de Redes de Neuronas Artificiales fue un dispositivo hidráulico, pero no fue hasta en el siglo XX, cuando el estudio de las Redes de Neuronas Artificiales cobró una fuerza que se ha ido incrementando hasta la actualidad,
Contribuciones de McCulloch y Pitts quienes realizaron el primer modelo matemático de unas Redes de Neuronas Artificiales; Hebb que desarrollo un procedimiento matemático de aprendizaje; Minsky, Uttley, Rosenblantt y Widrow son algunos de las personas que desarrollaron trabajos relacionados con las Redes Neuronales Artificiales.
BIBLIOGRAFÍA

Russell, S, y Norving P. 2004. Inteligencia Artificial Un Enfoque Moderno. 2da ed.  Cap. 2. Pág. 37-62.