Redes Neuronales Artificiales (RNA)

En 1888 Ramón y Cajal demuestran que el sistema nervioso está compuesto por una red de células individuales, las neuronas, ampliamente interconectadas entre sí, donde la información fluye desde las dendritas hacia el axón atravesando el soma. [4]
La neurona es una célula, que funciona como un procesador de información, compuesto por:
  • Cuerpo celular o soma: Mide de 10 a 80 micras de longitud, es el órgano de cómputo, de aquí surge un denso árbol de ramificaciones (árbol dendrítico) formado por las dendritas; asimismo de aquí parte una fibra tubular llamada axón, con longitud de 100 micras a 1 metro.
  • Las dendritas: Constituyen el canal de entrada de la información, es decir, funcionan como receptores.
  • El axón: Se ramifica en su extremo final para conectar con otras neuronas, funciona como canal de salida, se encarga de enviar información a otras neuronas a través de impulsos nerviosos. Cada neurona recibe información de aproximadamente 10,000 neuronas y envía impulsos a cientos de ellas. 
Figura 1: La neurona y sus partes [3]
Según Larrañaga y otros [4] los Sistemas artificiales buscan copiar la estructura de las redes neuronales biológicas con el fin de alcanzar una funcionalidad similar, teniendo principalmente tres conceptos a emular:
  • Procesamiento Paralelo: Esto se debe a los miles de millones de neuronas que intervienen. Por ejemplo. En el proceso de ver, están operando en paralelo sobre la totalidad de la imagen
  • Memoria Distribuida: Mientras que en un computador la información está distribuida en posiciones de memoria definida, en las redes neuronales biológicas esta está distribuida por la sinapsis de las redes, existiendo redundancia en almacenamiento, con el fin de evitar la pérdida de información en caso de que una sinapsis resulte dañada.
  • Adaptabilidad al entorno por medio de la información de las sinapsis: Por medio de esta, se puede aprender de la experiencia y es posible generalizar conceptos a partir de casos particulares.

Historia

  • 1943 - Warren McCulloch y Walter Pitts fueron los primeros teóricos que concibieron los fundamentos de la computación neuronal, lanzando una teoría acerca de la forma de trabajar de las neuronas (Un Cálculo Lógico de la Inminente Idea de la Actividad Nerviosa - Boletín de Matemática Biofísica 5: 115-133). Ellos modelaron una red neuronal simple mediante circuitos eléctricos. 
  • 1950 - Karl Lashley, en sus ensayos, encontró que la información no era almacenada en forma centralizada en el cerebro, sino que era distribuida encima de él.
  • 1957 - Frank Rosenblatt comenzó el desarrollo del Perceptrón. Su procedimiento de convergencia de aprendizaje fue un avance definitivo sobre la teoría de Hebb.
  • 1959 – Frank Rosenblatt escribió el libro Principios de Neurodinámica, en el que confirmó que, bajo ciertas condiciones, el aprendizaje del Perceptrón convergía hacia un estado finito (Teorema de Convergencia del Perceptrón),  fue publicado en 1962.
  • 1960 - Bernard Widrow/Marcial Hoff desarrollaron el modelo Adaline (ADAptative LINear Elements). Esta fue la primera red neuronal aplicada a un problema real (filtros adaptativos para eliminar ecos en las líneas telefónicas) que se ha utilizado comercialmente durante varias décadas.
  • 1961 - Karl Steinbeck: Die Lernmatrix. Red neuronal para simples realizaciones técnicas (memoria asociativa).
  • 1969 - Marvin Minsky/Seymour Papert. En este año surgieron críticas que frenaron, hasta 1982, el crecimiento que estaban experimentando las investigaciones sobre redes neuronales. Minsky y Papera, del Instituto Tecnológico de Massachussets (MIT), publicaron un libro Perceptrons. Probaron matemáticamente que el Perceptrón no era capaz de resolver problemas relativamente fáciles, tales como el aprendizaje de una función no-lineal. Esto demostró que el Perceptrón era muy débil, dado que las funciones no-lineales son extensamente empleadas en computación y en los problemas del mundo real. A pesar del libro, algunos investigadores continuaron su trabajo. Tal fue el caso de James Anderson, que desarrolló un modelo lineal, llamado Asociador Lineal, que consistía en unos elementos integradores lineales (neuronas) que sumaban sus entradas. Este modelo se basa en el principio de que las conexiones entre neuronas son reforzadas cada vez que son activadas. Anderson diseñó una potente extensión del Asociador Lineal, llamada Brain State in a Box (BSB).
  • 1974 - Paul Werbos. Desarrolló la idea básica del algoritmo de aprendizaje de propagación hacia atrás (backpropagation); cuyo significado quedó definitivamente aclarado en 1985.
  • 1977 - Stephen Grossberg. Teoría de Resonancia Adaptada (TRA). La Teoría de Resonancia Adaptada es una arquitectura de red que se diferencia de todas las demás previamente inventadas. La misma simula otras habilidades del cerebro: memoria a largo y corto plazo.
  • 1977 - Teuvo Kohonen. Ingeniero electrónico de la Universidad de Helsinki, desarrolló un modelo similar al de Anderson, pero independientemente.
  • 1980 - Kunihiko Fukushima. Desarrolló un modelo neuronal para el reconocimiento de patrones visuales.
  • 1985 - John Hopfield. Provocó el renacimiento de las redes neuronales con su libro: "Computación neuronal de decisiones en problemas de optimización." 
  • 1986 - David Rumelhart/G. Hinton. Redescubrieron el algoritmo de aprendizaje de propagación hacia atrás (backpropagation).
  • En la actualidad, son numerosos los trabajos que se realizan y publican cada año, las aplicaciones nuevas que surgen (sobretodo en el área de control) y las empresas que lanzan al mercado productos nuevos, tanto hardware como software (sobre todo para simulación).

Enfoques

García Baez señala tres:
  • Computacional
    • Modelos eficientes, potentes y simples.
    • Áreas de aprendizaje inductivo y reconocimiento de patrones
  • Cognitivo
    • Interesado por capacidades cognitivas de los modelos
    • Centrados en representación del conocimiento
  • Biocognitivo
    • Premisa de la plausibilidad biológica
  • Psicofisiológico
    • Mecanismos naturales de procesos cognitivos reales

Paradigmas de aprendizaje 

Entre los paradigmas mencionados por Báez[1] tenemos:

  • Supervisado
    • Es un caso de entrenamiento
    • Se presentan pares de patrones de entrada y salida deseada.
    • Pasos:
      • Fijar pesos aleatorios a las conexiones
      • Seleccionar un par de entrenamiento
      • Presentar patrón de entrada y calcular salida
      • Calcular error o discrepancia con la salida deseada
      • Aplicar regla de aprendizaje
    • Ejemplo:
      • Backpropagation
  • Por reforzamiento
    • Ideado por Wridow, Gupta y Maitra en 1973 y desarrollado por Williams en 1983.
    • Los pesos son fortalecidos en las acciones desarrolladas correctamente y penalizadas en aquellas mal realizadas.
    • Utiliza la información de error no específica para determinar el desarrollo de la red.
    • Ideal en situaciones donde no hay información del error específica, pero sí sobre la ejecución como la predicción y el control.
    • Ejemplo:
      • Adaptative Heruistic Critic (AHC), de Barto, Sutton y Anderson, de 1983
      • Associative Reward-Penalty (ARP), de Barto de 1985
  • Auto Organizado o No Supervisado
    • Solo se presenta patrones de entrada.
    • Basado en la redundancia en las entradas
    • Más cercano al modelo biológico
    • En el aprendizaje se extrae los patrones
      • Familiaridad con patrones típicos o promedios del pasado.
      • Análisis de las componentes principales
      • Clustering
      • Prototipos correspondientes a las categorías existentes
      • Codificación
      • Mapa de Características
    • Ejemplo:
      • Mapas Auto-Organizados
      • Extractores de características

La Neurona Artificial

Figura 2: Neurona Artificial[1]
Según Báez[1], la Neurona Artificial está compuesta de:
  • Grupo de entradas (x): Aquí es a donde llegan la o las señales de entrada xi, generalmente provenientes de otras neuronas.
  • Pesos sinápticos (w): Atenúan o simplifican cada una de las entradas, constituye la conectividad entre la neurona fuente y la neurona destino.
  • Función suma (net): Efectúa la suma algebraica ponderada de las señales de entrada, ponderándolas de acuerdo con su peso, aplicando la siguiente expresión:
S = S wi xi … Ecuación 1: Función Suma
  • Función de activación (act): Aplica una función no lineal de umbral (que frecuentemente es una función escalón o una curva logística) a la salida del sumador para decidir si la neurona se activa, disparando una salida o no.
  • Una salida (y): Es el que produce la señal, de acuerdo con el elemento anterior, que constituye la salida de la neurona.
  • Funcionamiento en modo de aprendizaje o ejecución.

Función de activación

Ruiz [5] señala que una neurona biológica puede estar activa o inactiva; es decir, tiene un “estado de activación”, del mismo modo las neuronas artificiales también tienen estados de activación; algunas tienen dos, pero otras pueden tomar cualquier valor dentro de un conjunto determinado.
La función activación calcula el estado de actividad de una neurona; transformando la entrada global (menos el umbral, Θi) en un valor (estado) de activación, cuyo rango normalmente va de (0 a 1) o de (–1 a 1). Esto es así, porque una neurona puede estar totalmente inactiva (0 o –1) o activa (1).
Las funciones de activación más comúnmente utilizadas son:
  • Función lineal
Figura 3: Función de activación lineal [5]

con x = gini - Θi, y a > 0.
Los valores de salida obtenidos por medio de esta función de activación serán:
a·(gini - Θi), cuando el argumento de (gini - Θi) esté comprendido dentro del rango (-1/a, 1/a).
Por encima o por debajo de esta zona se fija la salida en 1 o –1, respectivamente.
Cuando a = 1 (siendo que la misma afecta la pendiente de la gráfica), la salida es igual a la entrada.
  • Función sigmoidea:
Figura 4: Función de activación sigmoidea [5]

Los valores de salida que proporciona esta función están comprendidos dentro de un rango que va de 0 a 1. Al modificar el valor de g se ve afectada la pendiente de la función de activación.
  • Función tangente hiperbólica:
Figura 5: Función de activación tangente hiperbólica [5]

Los valores de salida de la función tangente hiperbólica están comprendidos dentro de un rango que va de -1 a 1. Al modificar el valor de g se ve afectada la pendiente de la función de activación.

Ventajas


Ruiz[5] indica entre las ventajas que ofrecen las red neuronal:

  • Aprendizaje Adaptativo: Capacidad de aprender a realizar tareas basadas en un entrenamiento o en una experiencia inicial.
  • Autoorganización: Una red neuronal puede crear su propia organización o representación de la información que recibe mediante una etapa de aprendizaje.
  • Tolerancia a fallos: La destrucción parcial de una red conduce a una degradación de su estructura; sin embargo, algunas capacidades de la red se pueden retener, incluso sufriendo un gran daño.
  • Operación en tiempo real: Los cómputos neuronales pueden ser realizados en paralelo; para esto se diseñan y fabrican máquinas con hardware especial para obtener esta capacidad.
  • Fácil inserción dentro de la tecnología existente: Se pueden obtener chips especializados para redes neuronales que mejoran su capacidad en ciertas tareas. Ello facilitará la integración modular en los sistemas existentes.

Campos de Aplicación

  • Finanzas.
    • Predicción de índices
    • Detección de fraudes.
    • Riesgo crediticio, clasificación
    • Predicción de la rentabilidad de acciones
  • Negocios
    • Marketing
    • Venta cruzada
    • Campañas de venta
  • Tratamiento de textos y proceso de formas
    • Reconocimiento de caracteres impresos mecánicamente.
    • Reconocimiento de gráficos.
    • Reconocimiento de caracteres escritos a mano.
    • Reconocimiento de escritura manual cursiva.
  • Alimentación
    • Análisis de olor y aroma.
    • Perfilamiento de clientes en función de la compra.
    • Desarrollo de productos.
    • Control de Calidad–Predicción consumo de gas ciudad
  • Industria manufacturera.
    • Control de procesos.
    • Control de calidad.
    • Control de robots. 
  • Medicina y salud
    • Ayuda al diagnóstico.
    • Análisis de Imágenes.
    • Desarrollo de medicamentos.
    • Distribución de recursos.
  • Ciencia e Ingeniería.
    • Análisis de datos y clasificación
    • Ingeniería Química.
    • Ingeniería Eléctrica.
    • Climatología. 
  • Transportes y Comunicaciones.
    • Optimización de rutas.
    • Optimización en la distribución de recursos

Aplicaciones Reales

  • Pronunciación: NETtalk (87), aprende a pronunciar texto escrito. 29 unidades de entrada (26 letras, más espacios, puntos, comas, ...). 80 unidades ocultas. 1024-palabras de entrenamiento y 95% de éxito en el entrenamiento, pero 78% en la prueba. 
  • Reconocimiento de caracteres: una de las aplicaciones más grandes de redes neuronales actuales (Le Cun et al. 89). Una red que lee códigos postales en cartas escritas a mano. El sistema tiene un preprocesador para localizar los números, y la red los descifra. 3 capas ocultas (768, 192 y 30 unidades cada una). No se conectaron todas las unidades contra todas, sino que se dio un efecto de detectores de atributos, dividiendo las unidades ocultas en grupos (un total de 9,760 conexiones).
    Logra un 99% de éxito, adecuado para un sistema de correo automático y se ha implementado en un chip. 
  • Manejar: ALVINN (Autonomous Land Vehicle In a Neural Network) (Pomerleau 93) es una red neuronal que aprende a manejar un vehículo viendo como maneja un humano. Maneja dos vehículos equipados especialmente. Se utiliza una cámara que alimenta una rejilla de entradas a la red. La salida (30 unidades) controla la dirección del volante.
    La red tiene 5 capas ocultas totalmente conectadas. Después de que gente maneja el vehículo y se entrena al sistema (con retropropagación, por cerca de 10 min.) el sistema está listo para manejar. Puede manejar hasta a 70 mph por distancias de hasta 90 millas. Extensiones: MANIAC.

Bibliografía

[1] Báez García, P. (2000). Introducción a las Redes Neuronales y su aplicación a la Investigación Astrofísica. (edes), 41.
[2] CASTRO GARCÍA, J. F. (2006). Fundamentos Para La Implementación De Red Neuronal Perceptrón Multicapa Mediante Software. 142. Recuperado de http://bibing.us.es/proyectos/abreproy/12166/fichero/Volumen+1+-+Memoria+descriptiva+del+proyecto%252F3+-+Perceptron+multicapa.pdf
[3] Javier Santos. (2018). LA NEURONA. Recuperado 21 de julio de 2019, de https://javiersantos.blog/2018/10/06/neurona/
[4] Larrañaga, P., Inza, I., & Moujahid, A. (s. f.). Redes Neuronales. 1-19.
[5] Ruiz, C. A., & Matich, D. J. (2001). Redes Neuronales: Conceptos Básicos y Aplicaciones.
[6]Gómez Quesada, F., Fernández Graciani, M., López Bonal, M., & Alonso Díaz-Mata, M. (1994). Aprendizaje con redes neuronales artificiales. Ensayos: Revista de la Facultad de Educación de Albacete, pp. 169-180.

Comentarios

Popular Posts

Sistemas Distribuidos - Tolerancia a fallos

Crear Autómata Finito Determinista desde una Expresión Regular

Instalar OpenGL en Linux