Datos personales

lunes, 1 de febrero de 2016

Ejercicio Red neuronales






perceptron

Introducción 


Las Redes de Neuronas o Redes Neuronales, son un paradigma de aprendizaje y procesamiento automático, inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema de interconexiones de neuronas que colaboran entre sí para producir una salida.
Ya que hoy en  día la IA pretende   imitar la Inteligencia natural,  ya que las redes neuronales pretenden  imitar arquitectura  cerebral( neuronas + conexiones) ya que sabemos  que dan inteligencia. Cabe recordar que el termino inteligencia  es bastante antiguo, pero en este caso n el que hablamos  de redes neuronales, lo consideramos inteligencia a aquellas personas que sabiendo  de  un cierto tema,  son capaces  de dar una respuesta a un problema dado  como   por ejemplo cálculos clasificación, etc. 

MARCO TEORICO

EL PERCEPTRÓN

La red tipo Perceptrón fue inventada por el psicólogo Frank Rosenblatt en el año 1957. Su intención era ilustrar algunas propiedades fundamentales de los sistemas inteligentes en general, sin entrar en mayores detalles con respecto a condiciones específicas y desconocidas para organismos biológicos concretos. Rosenblatt creía que la conectividad existente en las redes biológicas tiene un elevado porcentaje de aleatoriedad, por lo que se oponía al análisis de McCulloch Pitts en el cual se empleaba lógica simbólica para analizar estructuras bastante idealizadas. Rosenblatt opinaba que la herramienta de análisis más apropiada era la teoría de probabilidades, y esto lo llevó a una teoría de separabilidad estadística que utilizaba para caracterizar las propiedades más visibles de estas redes de interconexión ligeramente aleatorias. El primer modelo de Perceptrón fue desarrollado en un ambiente biológico imitando el funcionamiento del ojo humano, el fotoperceptrón como se le llamo era un dispositivo que respondía a señales ópticas; la luz incide en los puntos sensibles (S) de la estructura de la retina, cada punto S responde en forma todo-nada a la luz entrante, los impulsos generados por los puntos S se transmiten a las unidades de asociación (A) de la capa de asociación; cada unidad A está conectada a un conjunto aleatorio de puntos S, denominados conjunto fuente de la unidad A, y las conexiones pueden ser tanto excitatorias como inhibitorias. Las conexiones tienen los valores posibles +1, -1 y 0, cuando aparece un conjunto de estímulos en la retina, una unidad A se activa si la suma de sus entradas sobrepasa algún valor umbral; si la unidad esta activada, A produce una salida que se envía a la siguiente capa de unidades.

CARACTERÍTICAS PRINCIPALES DEL PERCEPTRON SIMPLE

- Fue introducido por Frank Rosenblatt.
- 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



Es una red monocapa con varias neuronas de entrada conectadas a la neurona de salida. Observando la imagen anterior podemos calcular el valor de la salida, del siguiente modo:


  • En el caso de que la salida sea +1, la entrada pertencerá a una clase, situada a un lado del hiperplano
  • En el caso de que la salida sea -1, la entrada pertencerá a la clase contraria, situada al otro lado del hiperplano
El perceptron simple es un hiperplano de dimensión n-1 capaz de separar las clases. La ecuación de dicho interplano es:
w1x1+w2x2+θ=0
La cual si se simplifica queda del siguiente modo:


Donde la parte que multiplica x1 es la pendiente de la recta y la otra parte es el punto de corte con el eje de ordenadas.

APRENDIZAJE SUPERVISADO




Para el proceso de aprendizaje del Perceptron Simple es necesario saber:
  • Los datos son puntos en un espacio multidimensional.
  • Se dispone de un conjunto de observaciones, puntos representados en el hiperplano, de los que se sabe su categoría o clase.
  • Se tiene que determinar la ecuación del hiperplano que separa los ejemplos de un tipo de los de otro.
  • La ecuación del hiperplano se deduce a partir de los ejemplos.
  • El aprendizaje es proceso iterativo supervisado.
  • Hasta encontrar el hiperplano discriminante se debe ir modificando los parametros de la red (pesos y umbral).
  • Este proceso de aprendizaje supervisado tiene un número finito de iteracciones.
Los pasos a seguir para el aprendizaje son:
  1. Inicialización aleatoria de los pesos y umbral.
  2. Se toma un patrón de entrada-salida.
  3. Se calcula la salida de la red.
  4. Si y = d(x) (clasificación correcta). 
    Si y ≠ d(x) (clasificación incorrecta) se modifican los parámetros.
  5. Se vuelve al paso 2 hasta completar el conjunto de patrones de entrenamiento.
  6. Se repiten los pasos anteriores hasta alcanzar el criterio de parada.

PERCEPTRON MULTICAPA

HISTORIA

En 1969, Minsky y Papert, demuestran que el perceptron simple y ADALINE no puede resolver problemas no lineales (por ejemplo, XOR). La combinación de varios perceptrones simples podría resolver ciertos problemas no lineales pero no existía un mecanismo automático para adapatar los pesos de la capa oculta. Rumelhart y otro autores, en 1986, presentan la "Regla Delta Generalizada" para adaptar los pesos propagando los errores hacia atrás, es decir, propagar los erroes hacia las capas ocultas inferiores. De esta forma se consigue trabajar con multiples capas y con funciones de activación no lineales. Se demuestra que el perceptron multicapa es un aproximador universal. Un perceptron multicapa puede aproximar relaciones no lineales entre los datos de entrada y salida. Esta red se ha convertido en una de las arquitecturas más utilizadas en el momento.


ARQUITECTURA



Este modelo se compone de:

- Capa de entrada: sólo se encarga de recibir las señales de entrada y propagarla a la siguiente capa.
- Capa de salida: proporciona al exterior la respuesta de la red para cada patrón de entrada.
- Capas ocultas: realizan un procesamiento no lineal de los datos de entrada.
La propagación de los patrones de entrada en el perceptron multicapa define una relación entre las variables de entrada y variables de salida de la red. Esta relación se obtiene propagando hacia delante los valores de entrada. Cada neurona de la red procesa la información recibida por sus entradas y produce una respuesta o activación que se propaga, a través de las conexiones correspondientes, a las neuronas de la siguiente capa.

 

CARACTERÍSTICAS DEL PERCEPTRON MULTICAPA.

- Es una de las arquitecturas más utilizadas para resolver problemas reales.
- Se evalua un conjunto de datos de entradas y se obtienen valores reales o vectores con valores reales.
- Se diferencia del perceptron simple y ADALINE en que tiene una capa oculta.
- Todas las neuronas se relacionan con todas las neuroas, incluyendo las neuronas de la capa oculta.

APRENDIZAJE EN EL PERCEPTRON MULTICAPA

1. Se inicializan los pesos y umbrales (valores aleatorios próximos a 0).
2. Se presenta un patrón "n" de entrenamiento y se propaga hacia la salida, obteniendo la salida de la red "y(n)"
3. Se evalúa el error cuadrático, "e(n)", cometido por la red para cada patrón.
4. Se aplica la Regla Delta Generalizada para modificar pesos y umbrales:
·         Se calculan los valores "δ" para todas las neuronas de la capa de salida.
·         Se calcula "δ" para el resto de neuronas, empezando por la última capa oculta y terminando en la capa de entrada.
·         Se modifican los pesos y umbrales.
5. Se repiten los pasos 2, 3 y 4 para todo el patrón de entrenamiento.
6. Se evalúa el error total de la red.
7. Se repite hasta alcanzar el error mínimo de entrenamiento, realizando "m" ciclos. Se pueden establecer otros criterios de parada:
·         El error del entrenamiento se estabilice.
·         El error de validación se estabilice.
·         El error de validación aumente.
CONCLUSIÓN

La Inteligencia Artificial  es una rama muy importante ya que estudia las  neuronas de un ser vivo, para desarrollar neuronales artificiales que actúan similar alas del hombre, también cabe   recalcar  que el hombre  va más allá de la perfección  buscando solucionar problemas en el mundo real,  atreves de las  agentes  que están diseñados con neuronas artificiales, y puedan  dar solución a un problema.

BIBLIOGRAFÍA


Javier, R. 2013. El perceptrón (En linea). Consultado, 13 de enero.2016. Formato PDF. Disponible en: ftp://decsai.ugr.es/pub/usuarios/castro/Actividades/Redes-Neuronales/Apuntes/Apuntes%20Javier%20Rodriguez%20Blazquez/Redes%20de%20una%20capa.pdf

Pedro ,V e Ines , G. 2004. Redes de neuronas artificiales un Enfoque Práctico. 2 ed. España. Pearson Education. p 45-50. 

Redes Neuronales

Introducción 
                 
                                           

  • una  red  artificial  no es nada mas  y  nada menos  que un  modelo  matemático   que  funciona de forma  de las neuronas  biológicas   y en la  estructura diseñada para  emular la forma del cerebro humano,  una red artificial   también puede ser vista como un sistema inteligente que lleva a cabo   tareas  de varias formas según su programacion y diseño. Son muy  rápidas en el procesamiento de la información, existen tareas muy complejas para el ser humando  que estas neuronas pueden dar facilidad  y rapidez  como   por ejemplo el reconocimientos  y clasificación de patrones que demandan demasiado tiempo y  es fuerzo en las computadoras mas potente de la actualidad, cosa que el cerebro humano es mas apto  para resolverlas. el cerebro   puede  ser considerado   un sistema  altamente complejo ya que su  unidad  básica, la neurona que esta básicamente esta masiva mente  distribuida con  conexiones entre ellas. En la  actualidad se calcula que hay aproximadamente  10 billones de neuronas  en corteza  cerebral y 60 trillones de conexiones  neuronales. 

  
1.     MARCO TEÓRICO



1.1.           REDES NEURONALES ARTIFICIALES
Una red neuronal artificial (ANN) es un esquema de computación distribuida inspirada en la estructura del sistema nervioso de los seres humanos. La arquitectura de una red neuronal es formada conectando múltiples procesadores elementales, siendo éste un sistema adaptivo que posee un algoritmo para ajustar sus pesos (parámetros libres) para alcanzar los requerimientos de desempeño del problema basado en muestras representativas.
1.2.           MODELO COMPUTACIONAL


La diferencia entre una maquina neuronal y los programas de computador convencional es que estas elaboran en cierta medida, la información de entrada para obtener una salida o respuesta. No se trata de la aplicación ciega y automática de un algoritmo.
Existen modelos muy diversos de redes de neuronas en los cuales se siguen filosofías de diseño, reglas de aprendizaje y funciones de construcción de las respuestas distintas. Una primera clasificación se hace en función del recorrido que sique la informacion dentro de la red, y así se distinguen redes alimentadas hacia adelante y redes con retro alimentación.
1.3.            APRENDIZAJE

La parte más importante de una red neuronal de neuronas artificiales es el aprendizaje.
El aprendizaje es el proceso por el cual una red neuronal modifica sus pesos en respuesta a una información de entrada. Los cambios que se producen durante el proceso de aprendizaje son la destrucción, modificación y creación de conexiones entre las neuronas.
W = 0 Destrucción                               W › 0 Creación Aprendizaje
El esquema de aprendizaje de una red es lo que determina el tipo de problemas que será capaz de resolver, l conjunto de aprendizaje debe poseer las siguientes características:
·         Ser significativo. Debe haber un número suficiente de ejemplos. Si el conjunto de aprendizaje es reducido, la red no será capaz de adaptar sus pesos de forma eficaz.
·         Ser representativo. Los componentes del conjunto de aprendizaje deberán ser diversos. Si un conjunto de aprendizaje tiene muchos más ejemplos de un tipo que del resto, la red se especializara en dicho subconjunto de datos y no será de aplicación general. Es importante que todas las regiones significativas del espacio de estados estén suficientemente representadas en el conjunto de aprendizaje.


El aprendizaje en una red de neuronas artificial consiste en la determinación de los valores precisos de los pesos para todas sus conexiones, que la capacite para la resolución eficiente de un problema. Una vez introducidos todos los ejemplos se comprueba si se ha cumplido cierto criterio de convergencia; de no ser así se repite el proceso y todos los ejemplos del conjunto vuelven a ser introducidos. La modificación de los pesos puede hacerse después de la introducción de cada ejemplo del conjunto, o una vez introducidos todos ellos.
El criterio de convergencia depende del tipo de red utilizado o del tipo de problema a resolver. La finalización del periodo de aprendizaje se puede determinar:
·         Mediante un número fijo de ciclos. Se decide cuantas veces será introducido todo el conjunto, y una vez superado dicho número se detiene el proceso y se da por aceptada la red resultante.
·         Cuando el error descienda por debajo de una cantidad preestablecida. En este caso habla que definir en primer lugar una función de error, bien a nivel de patrón individual, bien a nivel de la totalidad del conjunto de entrenamiento. Se decide a priori un valor aceptable para dicho error, y solo se para el proceso de aprendizaje cuando la red produzca un valor de error por debajo del prefijado. Para este criterio puede suceder que la red jamás consiga bajar por debajo del nivel prefijado, en cuyo caso se debe disponer de un criterio adicional de parada, por ejemplo un número de ciclos, que de utilizarse por la red significara que esta no ha convergido. En este caso la red se dice que no ha sido capaz de obtener una solución. Será necesario probar cambiando alguno de los parámetros.
·         Cuando la modificación de los pesos sea irrelevante. En algunos modelos se define un esquema de aprendizaje que hace que las conexiones vayan modificándose cada vez con menor intensidad. Si el proceso de aprendizaje continuo, llegara un momento en que ya no se producirán variaciones de los valores de los pesos de ninguna conexión; en ese momento se dice que la red ha convergido y se detiene el proceso de aprendizaje.
Dependiendo del esquema de aprendizaje y del problema a resolver, se pueden distinguir tres tipos de esquemas de aprendizaje:
Aprendizaje supervisado. En este tipo de esquemas, los datos del conjunto de aprendizaje tiene dos tipos de atributos: los datos propiamente dichos y cierta información relativa a la solución del problema.
·         Por ejemplo, si se trata de definir un clasificador para u conjunto de datos, un sistema capaz de distinguir entre caras de diferentes personas, los ejemplos contendrán datos del individuo, una imagen de su cara, e información de la solución, de que persona se trata (una etiqueta que la distinga). El esquema de aprendizaje supervisado utilizara esta información para modificar las conexiones. La manera más habitual de modificar los valores de los pesos de las conexiones es la representada en la Figura 3.2. cada vez que un ejemplo es introducido y se procesa para obtener una salida, dicha salida se compara con la salida que debería haber producido, y de la que se dispone al estar incluida dicha informacion en el conjunto de aprendizaje. La diferencia entre ambas influirá en cómo se modificaran los pesos. Si los dos datos son muy eficientes, se modificaran mucho los pesos si son parecidos la modificación será menor.
Para este tipo de aprendizaje, se dice que hay un profesor externo encargado de determinar si la red se está comportando de forma adecuada, mediante la comparación entre la salida producida y esperada, y de actuar en consecuencia modificando apropiadamente los valores de los pesos.
 Aprendizaje supervisado Es una variante del aprendizaje supervisado en el que no se dispone de información concreta del error cometido por la red para cada ejemplo de aprendizaje, sino que simplemente se determina si la salida producida para dicho patrón es o no adecuada. En este caso el conjunto de aprendizaje está compuesto por ejemplos que contienen los datos y sus salidas deseadas.


 CONCLUSIÓN
 se concluye este capitulo sabiendo la importancia de las redes neuronales  artificiales que radica en problemas de tipo no  lineal.  ya que por su naturaleza experimental, por lo que por su implementacion  se sustenta principalmente  en métodos basados en la  experiencia. sin  embargo cabe  recalcar  que en la inteligencia artificial esta esa una de las ramas  de investigación mas importante   en el desarrollo  y los   resultados obtenidos   que se obtienen  hasta el momento son prometedores  para el  futuro.
·   


ñ
BIBLIOGRAFÍA
Gómez, F; Fernández, M; López, M; Díaz, M. 2004.   Aprendizaje   con    redes.
Neuronas Artificiales. (En línea). Formato PDF. Consultado el 2 de dic. 2015. Disponible en: dialnet.unirioja.es/descarga/articulo/2281678.pdf

Isasi, P; Galván, I; 2004. Redes de Neuronas Artificiales Un Enfoque Práctico.
Madrid España.

Salas, R.  2008.  Redes  Neuronales  Artificiales.  (En línea).  Formato PDF.
Consultado el 2 de dic. 2015. Disponible en: http://www.inf.utfsm.cl/~rsalas/Pagina_Investigacion/docs/Apuntes/Redes%20Neuronales%20Artificiales.pdf

Haykin S. . Neural Networks. A Comprehensive Foundation, second edition. Pearson Prentice Hall, 1999

MODELO COMPUTACIONAL

1.     INTRODUCCIÓN

Para  empezar debemos tener   en claro  algunos conceptos  básicos que abordan  los modelos  computacionales.
¿Qué  es un computador?
E la pregunta que muchas  personas se  hacen,  pero   no tiene  una  definición exacta, pero se podría  definir como un sistema  al que se le  suministra información en forma de  datos para  luego devolvernos  resultados acorde a la petición del usuario, en pocas palabras podemos decir  que el objetivo de una computadora  es básicamente resolver problemas mediantes programas. Pero  ahora nos nace la pregunta.
 ¿Qué es un programa?
 En definición   es una secuencia de instrucciones  que resuelven  determinados problemas planteados.
Al paso del tiempo el ser humano  investiga  sobre las redes Neuronales  artificiales, puesto que  estos medio ofrecen una manera efectiva y eficiente  para modelar problemas que se presentan en el ámbito profesional dando  una solución más rápida al hombre por medios de algoritmos  y cálculos.
 En pocas palabras un modelo matemático en las ciencias de la computación que requiere extensos recursos computacionales para estudiar el comportamiento de un sistema complejo por medio de la simulación por computadora, atreves de las  redes artificiales   que son  un método para  resolver problemas de una forma  individual o combinada con otros método.


3.      MARCO TEÓRICO

3.1 MODELO COMPUTACIONAL

Es un modelo matemático en las ciencias de la computación que requiere extensos recursos computacionales para estudiar el comportamiento de un sistema complejo por medio de la simulación por computadora. El sistema bajo estudio es a menudo un sistema complejo no lineal para el cual las soluciones analíticas simples e intuitivas no están fácilmente disponibles. En lugar de derivar una solución analítica matemática para el problema, la experimentación es hecha con el modelo cambiando los parámetros del sistema en la computadora, y se estudian las diferencias en el resultado de los experimentos. Las teorías de la operación del modelo se pueden derivar/deducir de estos experimentos de computacionales.
La gran diferencia  entre una maquina conexionista, es decir una maquina  neuronal  y los programas de computadoras  convencionales  es que  estas elaboran en ciertas medidas, la información de entrada para obtener una  salida  o respuesta
 


Entradas =datos
Red Neuronal = procesa la información
Salida= datos




 






3.2 NEURONA  ARTIFICIAL

·        
Red neuronal biológica, cúmulo de neuronas físicamente interconectadas cuya actividad ayuda a definir un circuito reconocible en el sistema nervioso.
·        Red neuronal artificial, modelos matemáticos, computacionales, reales, ideales de una red neuronal empleados en estadística, psicología cognitiva, e inteligencia artificial (Díaz, M. 2004).

Conocida  como  célula o autómata, es  un elemento que  posee un estado  interno, llamado nivel de  activación, y recibe  señales  que le permiten, en su caso cambiar de  estado  
 Se  denomina  S al conjunto  de estados posibles de la neurona, Ejemplo:
S={0,1}
  Siendo  0  el estado inactive y  1 el estado  activo 

Grupo de entradas x1,x2….xn  son introducidas en una neurona  artificial  estas entradas son definidas  por  vector X, que corresponden a una sinapsis de   una neurona biológica. Cada  señal se  multiplica por  un peso asociado   w1, w….. , wn  antes de  aplicar la sumatoria  etiquetado por  ∑. Cada peso corresponde a la  fuerza de una conexión  sináptica  es decir el nivel de concentración iónica  de cada  sinapsis,  y se la representa  por un vector  W   E= x1w1+x2e2…+xnwn  Las Señales E  son procesadas   por una función  llamada  de  activación o salida F, que produce   la señal de  salida  de la neurona S.  Esto depende de  cada función F, para que hayga distintos modelos  de  autómatas.
3.3 Estructura de una red 
Una red neuronal artificial es la interconexión de varias neuronas. El Gráfico 6 muestra una red neuronal estructurada en capas; es una de las estructuras en las cuales se pueden asociar las neuronas. En este sentido, los parámetros fundamentales de la red son: el número de capas, el número de neuronas por capa y el tipo y número de conexiones entre neuronas. No existe un método o regla que determine el número óptimo de neuronas ocultas para resolver un problema dado, generalmente se determinan por prueba y error, es decir, partiendo de una arquitectura ya entrenada, se realizan cambios aumentando y disminuyendo el número de neuronas ocultas y el número de capas, hasta conseguir la arquitectura que se ajuste a la solución del problema.


 La  entrada  ha sido completamente propagada  por la red, se producirá un vector de salida, cuyos componentes  son cada uno de los valores  de salida de las células de salida.
Formulas:

 Donde W1 y W2  son  los pesos de la primera y segunda capa,  respectivamente; F es la  función de activación idéntica  de todas las neuronas; X es  el vector de  entrada de la red,  y S es el vector de salida que produce la red.  W1 y W2 son matrices  de conexiones en las capas de la red  y por lo tanto esto  trata de  multiplicaciones de matrices.


Lo cual  esto es equivalente  a una red   con un sola capa de conexiones Wt donde


4. CONCLUSIÓN
Bueno en pocas palabras podemos concluir   que un modelo computacional es muy útil  para la ciencia de la computación. Ya que sus procesos matemáticos son muy interesantes  para obtener una salida y conectarse  entre neuronas artificiales, dando  respuesta al vector de entrada    como un grafo  cuyos nodos estos constituidos por unidades de procesos idénticas, y que propagan información  atreves de los  arcos.

BIBLIOGRAFÍA
Gómez, F; Fernández, M; López, M; Díaz, M. 2004.   Aprendizaje   con    redes.
Neuronas Artificiales. (En línea). Formato PDF. Consultado el 2 de dic. 2015. Disponible en: dialnet.unirioja.es/descarga/articulo/2281678.pdf

Isasi, P; Galván, I; 2004. Redes de Neuronas Artificiales Un Enfoque Práctico.
Madrid España.
Rafael Asenjo Plaza, Eladio Gutiérrez, Julián Ramos Cózar. Fundamentos de los Computadores”, Elementos de Programación 1º C E. T. S. I. Universidad de Málaga / Manuales