Redes Neuronales Artificiales

Las Redes Neuronales Artificiales (RNA) son sistemas adaptativos complejos que pueden cambiar su estructura interna en función de la información que pasa por ella.

 

El resumen de su funcionamiento es muy sencillo de explicar. Con las entradas recibidas (números) realiza una serie de productos y sumas, a estos les aplica otros cálculos mediante una fórmula (función de activación) que transforma el valor recibido y produce un resultado numérico, así de fácil. Entonces, por qué dicen que son sistemas complejos y están al alcance de pocos, esto lo veremos a continuación.

 

Computacionalmente no son algorítmicas, no tienen algoritmos pre establecidos que las hagan seguir una secuencia de instrucciones, pero constan de funciones tan complicadas con tantos parámetros (millones) que finalmente son una solución matemática a un problema.

 

Frank Rosenblatt.
Rosenblatt
Walter Pitts
Pitts
Warren-McCulloch
McCulloch

La clase de problemas que mejor se resuelven con las redes neuronales son los mismos que el ser humano resuelve mejor: Asociación, evaluación y reconocimiento de patrones. Ellas generan sus propias “reglas” para asociar la respuesta a la entrada, aprendiendo de ejemplos y de sus errores, y almacenando el conocimiento en la función de activación y en los valores de sus pesos.

 

Mencionar que se está investigando la capacidad de estas redes en un intento de resolver el problema de la factorización de números primos. En el supuesto de obtención de buenos resultados, los sistemas de cifrado tipo RSA deberían replantearse. Boris Jansen y Kenji Nakayama publicaron en 2.005 un trabajo interesante a este respecto. También existen trabajos utilizando las FHNN (Fuzzy Hopfield Neural Networks) como generadoras de números seudo aleatorios que se podrían utilizar en los métodos de factorización o en cualquier otro.

 

La historia de las RNA comienza en la década de 1.940 con la arquitectura propuesta por Warren McCulloc y Walter Pitts, pero el primer paso significativo se produjo en 1.958 con la introducción del perceptrón de Rosenblatt. Las primeras arquitecturas RNA de McCulloch y Pitts en 1.943 no tenían capacidad de aprendizaje pero en las siguientes décadas, desde 1.958 a 1.974, trajeron redes simples supervisadas y desde 1.969 a 1.976 no supervisadas, en el artículo aprendizaje se detalla este aspecto que es fundamental. A partir de este último periodo la dimensión de las redes neuronales se dispara, la complejidad también y las distintas versiones y aplicaciones también lo hacen rápidamente.

 

 

Para conocer la computación neuronal debemos identificar unos conceptos fáciles pero fundamentales, detrás de ellos hay un trasfondo complejo y extenso que se debe mostrar en otro contexto, ahora daremos una vuelta por las partes exteriores:

 

  • Una neurona computacional es la unidad mínima de cómputo, un modelo matemático que intenta representar el comportamiento de una neurona del cerebro humano, se la suele denominar nodo o PE (Procesador elemental), tienen un conjunto de valores de entrada, pesos, sesgo/umbral y función de activación.
  • Cada neurona recibe una entrada desde otras neuronas o de una fuente de datos externa, son los sentidos, (por cada entrada existe una neurona de entrada), a esta entrada se le asocia un peso(w), sesgo/umbral que van se modificando en el aprendizaje. El aprendizaje implica modificar las acciones que se realizan en la entrada / proceso / salida y para ello necesitamos ajustar los pesos (w) y distinguir los datos de las muestras y encontrar características comunes entre ellas. Este es el objetivo fundamental del aprendizaje, encontrar la configuración de pesos que corresponda al mínimo global de la función de error, aunque sería suficiente encontrar un mínimo local lo suficientemente bueno, para ello se utiliza el método del Gradiente Descendente. Los algoritmos más comunes utilizados en las RNA para el aprendizaje son el BP (Backpropagation), BPTT (Retrocesión a través del tiempo) y el RTRL (Aprendizaje recurrente en tiempo real), el resto se pueden clasificar como el de una estrategia intermedia o híbrida que combina las mejores características de los anteriores.
  • Computacionalmente la RNA es un proceso masivamente paralelo distribuido, tolerante a fallos, con algoritmos de aprendizaje y en modelo de “caja negra”

 

Las neuronas de una RNA están situadas en 3 capas:

Capas redes neuronales artificiales
Capas redes neuronales artificiales

Capa de entrada.

Se ciñe a recibir la información y distribuirla a cada una de las neuronas de la siguiente capa.

 

Capa oculta.

La información va desde la capa de entrada a las capas ocultas dónde procesan la información recibida (hacen una transformación lineal con los pesos y sesgos, y la no lineal con la función de activación) y el resultado lo envían a la capa de salida, a este movimiento se le denomina, propagación hacia adelante.

Una de las operaciones más importantes es fijarnos en los datos de entrada, dado que los valores se deben transformar a un valor cuyo rango esté en base a la función de activación, estos deben ser normalizados, es decir, estudiar los diferentes órdenes de magnitud para reducirlos a rangos [0,1] o [-1,1]. Si no se realiza la normalización, la entrada tendrán un efecto indeseado sobre la neurona, dando lugar a soluciones incorrectas.

 

Un ejemplo de normalización podría ser:

A continuación los valores son modificados por los pesos que dan lugar a un valor único que es procesado para obtener un:

  • Sumatorio: es la suma de los valores de entrada multiplicados por sus pesos.
  • Producto: es el producto de todos los valores de entrada multiplicados por sus pesos.
  • Máximo: sólo toma el valor de entrada más fuerte, previamente multiplicado por su peso.

Umbrales, Sesgo, pesos o Bias. Es un valor constante que se aplica al (sumatorio, producto, maximo) de cada una de las neuronas y que siempre toma como valor único (1,0).

 

Con los resultados anteriores las funciones de activación deciden si una neurona debe activarse o no, su cálculo viene dado por:

 

Y = FdeActivación × [ ∑ ( peso × entrada) + sesgo ].

 

Las funciones de activación más comunes son:

  • Lineal. Tiene un rango [-∞ , ∞], también deficiencias cuando existe complejidad o varios parámetros de datos.
  • Binario. Dado un umbral, la neurona se activa sí el valor de X está por encima del valor dado, en caso contrario se desactiva.
  • Sigmoidea. La función de activación sigmoidea σ (x) = 1 / (1 + e-x) es una función en forma de S que transforma cada valor x en el rango [0, 1]. Es la ideal para modelos en los que utilizamos la probabilidad como salida.
  • Hiperbólica. También es sigmoidea pero más amplia, el rango de salida va desde [ -1 , 1].
  • ReLU (Unidad lineal rectificada). Se usa en casi todas las redes neuronales convolucionales o en aprendizaje profundo. Rango: [0 , ∞], cualquier entrada negativa la convierte en cero, esto desvirtúa el resultado.
  • Softmax. Es un tipo de función sigmoidea aplicada a problemas de clasificación.

 

Capa de Salida.

El valor de la capa oculta llega con uno de estos valores:

  • Ninguno: la salida es la misma que la entrada.
  • Binario – Bipolar.

En el supuesto de que la salida estuviese lejana a los valores esperados, deberíamos actualizar los pesos sobre la base del error, a este proceso se le conoce como retrocesión/retro-propagación.

 

Desde el punto de vista físico las RNA pueden ser desarrolladas con tecnología electrónica analógica o digital. Las soluciones analógicas tienen ventajas en cuanto a la alta densidad y rápida operación, pero  son sensibles al ruido, a la temperatura y a las interferencias electricas. La tecnología digital es flexibilible en el aprendizaje, crecimiento y precisión, construyéndose sobre circuitos reconfigurables, una de las opciones más interesantes el  FPGA (Field Programmable Gate Arrays).

 

 

Algunos Modelos de Redes Neuronales Artificiales
Año Nombre Autor Comentarios
1.957 Perceptron Frank Rosenblatt Reconocimiento de carácteres impresos
1.960 ADALINE/ MADALINE Bernand Widrow y Marcian E. Hoff Filtrado de señales, Modems.
1.967 Avalancha Stephen Grossberg Reconocimiento del habla y control brazos de robot
1.969 Cerebellatron David Marr, J. Albus, Andrés Pellionez Control del movimiento de los brazos de un robot.
1.977 Brain-Estate-in-a-Box. James Anderson Obtención de conocimiento desde bases de datos
1.978-80 Neocognitron Kunihiko Fukushima Reconocimiento de caracteres manuscritos. Es el precursor de los modelos CNN – DNN.
1.982 SOM (Self-Organizing Map) Teuvo Kohonen Red Autorganizativa
1.982 Hopfield John Hopfield Reconstrucción de patrones y optimización.
1.985 Memoria Asociativa Bidireccional (BAM) Bart Kosko Memoria heteroasociativa
1.985 Máquinas de Boltzmann y Cauchy J. Hinton, T.Sejnowski, D. Ackley, Harold Szu. Reconocimiento de imágenes, sonar y radar.
1.986 ART (Teoría Resonancia Adaptativa) Gail Carpenter, Stephen Grossberg. Reconocimiento de sonar y radar, …
1.986 Counter-propagation Robert Hecht-Nielsen Identificación y comprensión de imágenes.
1.990 SRNN ( Simple Recurrent Neural Network). Jeffrey L. Elman Surge para los algoritmos de procesamiento del lenguaje, pero también es útil para cualquier otra área que implique secuencias.
1.990 NARX (Nonlinear Autoregressive with eXogenous input) K. S. Narendra y K. Parthasarathy Es una red dinámica recurrente, con conexiones de retroalimentación que encierran varias capas de la red, se basa en el modelo ARX lineal, para el modelado de series de tiempo.
1.992 MNN (Maximum Neural Network ) Nobuo Funabiki y Yoshivasu Takefuji Reduce el espacio de búsqueda sin la necesidad de optimizar ningún parámetro. Se aplica a muchos problemas NP-completos.
1.993

QSNN (Quantum Symmetric Neural Networks)

FQSNN (Fluctuation Quantum Symmetric Neural Networks)

Satoshi Matsuda Red de neuronas simétricas, donde cada neurona toma uno de los valores cuantificados (por ejemplo, enteros) en lugar de solo valores binarios o valores continuos. Al aplicar este modelo a los problemas de optimización combinatoria que toman los enteros como soluciones, la cantidad de neuronas y conexiones entre neuronas y el tiempo de cálculo disminuyen respecto a otros métodos. Por lo tanto, es posible obtener mejores soluciones en el mismo tiempo de cálculo. La simulación del problema de Hitchcock  demuestra las ventajas.
1.995 TCNN (Transiently Chaotic Neural Network) Luonan Chen y Kazuyuki Aihara En este modelo la neurodinámica caótica se genera temporalmente para la búsqueda y autoorganización, y eventualmente desaparece con la disminución autónoma de un parámetro de bifurcación. La red se acerca gradualmente, a través del caos transitorio, a una estructura similar a los modelos convencionales como la red neural de Hopfield que converge a un punto de equilibrio estable.
1.996 WEBSOM Krista Lagus, Timo Honkela, Samuel Kaski, Teuvo Kohonen Ordena gran cantidad de información (texto completo)
1.996 FHNN (Fuzzy Hopfield Neural Networks ) Jzau-Sheng Lin, Kuo-Sheng Cheng y Chi-Wu Mao Incluyen una estrategia FCM dentro de una red de Hopfield para reducir la función de energía y encontrar el grado de afinidad de los miembros. Utilizan el Sw (“within classes scatter matrix”), el principio de «matriz de dispersión dentro de la clase».
1.997 LSTM (Long Short-Term Memory) Sepp Hochreiter y Jürgen Schmidhuber Es un modelo de los más eficaces y escalables para varios problemas de aprendizaje relacionados con datos secuenciales.
1.997 BRNN (Bidirectional Recurrent Neural Networks) Mike Schuster y Kuldip K. Paliwal La idea básica es conectar dos capas ocultas de direcciones opuestas a la misma salida. Con esta estructura, la capa de salida puede obtener información de estados pasados y futuros.
1.998 LeNet Yann LeCun, León Bottou, Yoshua Bengio y Patrick Haffner Fue la primera red convolucional (CNN) con apliación práctica y basada en el Neocognitron de Kunihiko Fukushima.
1.998 HHNN (Hysteretic Hopfield Neural Network) Sunil Bharitkar y Jerry M. Mendel Introducen una nueva función de activación, basada en la histéresis, en una red de Hopfield. La red mejora la frecuencia de convergencia a una solución, cuando los parámetros asociados con la función de activación son variados. Utilizan la prueba de Lyapunov para probar su estabilidad.
1.999 QHN
(Quantized Hopfield Network)
Satoshi Matsuda Red de Hopfield cuantificada. Es una evolución de QSNN.
1.999 GNN (Gradual Neural Network) Nobuo Funabiki y Junji Kitamichi Algoritmo de optimización combinatoria para problemas de programación de transmisión (NP-completa) en redes PR. El objetivo de GNN es encontrar un ciclo TDMA con el tiempo de retardo mínimo para que cada nodo emita paquetes.
2.001 ESN (Echo State Network) Herbert Jaeger Son una generalización de las RNR que surgieron de la necesidad de algoritmos de entrenamiento más simples y eficientes.
2.005 NCNN (Noisy Chaotic Neural Network) Lipo Wang y Haixiang Shi Puede simular un SCSA para resolver problemas de optimización combinatoria mejor que HNN o TCNN.
2.006 G-NCNN (Gradual Noisy Chaotic Neural Network ) Lipo Wang y Haixiang Shi Resuelve el problema BSP (NP-completo) en redes de radio por paquetes. En una primera fase utiliza una NCNN y el esquema de expansión gradual para encontrar una longitud mínima de trama. En la segunda, la NCNN encuentra transmisiones máximas de nodos en la trama TDMA de la primera fase.
2.008 MMNN (Matrix Modular Neural Network) Zhong-Qiu Zhao, Jun Gao, Herve Glotin y Xindong Wu La red descompone las tareas de clasificación en muchas subtareas, cada una de los cuales se trata en dos subespacios que se resuelven mediante un solo módulo de red. Todos los módulos forman una matriz que produce otra matriz integrada de salida,  con la cuál se toma la mejor decisión de clasificación.
2.008 NCNN-VT (Noisy Chaotic Neural Network with Variable Thresholds) Lipo Wang, Wen Liu y Haixiang Shi Red neuronal caótica ruidosa con umbrales variables. Resuelve el problema de asignación de frecuencia en las comunicaciones por satélite. Reduce la interferencia del canal entre dos sistemas de satélites reorganizando las asignaciones de frecuencia.
2.009

HRNN

(Hysteretic Recurrent Meural Network )

Arun S. VeeramaniJohn H. Crews y Gregory D. Buckner Desarrollada para modelar materiales y sistemas histeréticos. Utiliza funciones de activación sigmoides conjuntas, con la capacidad de utilizar recurrencia simple para «seleccionar por sí misma» funciones de activación relevantes con un número pequeño de neuronas.
2.009 SORN (self-organizing recurrent neural network). Andreea Lazar, Gordon Pipa y Jochen Triesch Combina tres formas distintas para aprender patrones espacio-temporales
2.010 HNCNN (Hysteretic Noisy Chaotic Neural Network) Ming Sun, Lin Zhao, Wei Cao, Yaoqun Xu, Xuefeng Dai y Xiaoxu Wang Utiliza como base una NCNN y la dinámica histerética, SCSA, sin introducir parámetros adicionales y aumentando la convergencia efectiva hacia soluciones óptimas o casi óptimas a niveles altos de ruido.
2.010 Tree-CRF (Dependency tree with Conditional Random Fields) Tetsuji Nakagawa, Kentaro Inui y Sadao Kurohashi Árbol de dependencia con campos aleatorios condicionales.
2.011 RAE (Recursive Autoencoders) Richard Socher,  Jeffrey Pennington,  Eric H. Huang,  Andrew Y. Ng y Christopher D. Manning Autoencoders recursivos con vectores de palabras pre-entrenados.
2.012 MV-RNN (Matrix-Vector Recursive Neural Network ) Richard Socher, Brody Huval, Christopher D. Manning y Andrew Y. Ng Es una RNR que aprende representaciones semánticas de vectores de frases en una estructura en árbol. Cada palabra y frase está representada por un vector y una matriz.
2.012 NBSVM (Naive Bayes Support Vector Machine), MNB Sida Wang y Christopher D. ManningNaive Bayes SVM y Naive Bayes multinomial con uni-bigrams
2.013 RNTN (Recursive Neural Tensor Network) Richard Socher, Alex Perelygin, Jean Y. Wu, Jason Chuang, Christopher D. Manning, Andrew Y. Ng  y Christopher Potts Se utiliza para el procesamiento del lenguaje natural. Tienen una estructura en árbol con una red neuronal en cada nodo.
2.013 CCAE (Combinatorial Category Autoencoders) Karl Moritz Hermann y Phil Blunsom Combinatorial Category Autoencoders. Autoencoders de categoría combinatoria con combinatoria operadores de gramática de categoría
2.014 CRF-PR (Conditional Random Fields with Posterior Regularization) Claire Cardie y Xiaofeng Yang Campos aleatorios condicionales con regularización posterior.
2.014 NTM (Neural Turing machine) Alex Graves, Greg Wayne e Ivo Danihelka Extiende las redes RNR y las acopla a memorias externas de acceso directo.
2.014 CRF-PR Claire Cardie y Xiaofeng Yang Conditional Random Fields with Posterior Regularization. Campos aleatorios condicionales con regularización posterior.
2.014 AdaRNN (Adaptive Recursive Neural
Network)
Li Dong, Furu Wei, Chuanqi Tan,  Duyu Tang, Ming Zhou y Ke Xu Red Neural Recursiva Adaptativa. Nace con la intención de transmitir el sentimiento de las palabras para orientar la frase según el contexto y las relaciones sintácticas entre ellas.
2.015 RM-SORN «A Reward-Modulated Self-Organizing Recurrent Neural Network” Witali Aswolinskiy y Gordon Pipa Aprende a través de la interacción de la Plasticidad intrínseca (IP) y la plasticidad dependiente de la puntualidad (STDP).
2.016 HDNN (Harnessing Deep Neural Networks) Zhiting Hu, Xuezhe Ma y Zhengzhong Liu Proponen una mejora de las RNR y CNN combinando representaciones simbólicas y métodos neuronales.
2.018 MIST RNN Mixed History Recurrent Neural Networks Robert DiPietro, Christian Rupprecht, Nassir Navab y Gregory D. Hager Proponen un nuevo modelo que dicen mejoran a LSTM y NARX
2.018 DNN- FC- CRF Chengjiang Long, Roddy Collins, Eran Swears y Anthony Hoogs Deep Neural Networks In Fully Connected CRF.  Es un  método de campo aleatorio condicional totalmente conectado (CRF), donde cada nodo es una imagen y consta de dos redes neuronales convolucionales (CNN) profundas y una red neuronal recurrente (RNR) que modelan el nodo textual e información de la imagen.

 

Tipos de estructura en las RNA:

  • Autoasociativa. La red aprende de manera que ante una entrada responde con la información que más se le parece.
  • Heteroasociativa. La red aprende con parejas de datos, cuando se presenta cierta información de entrada debe responder generando la correspondiente salida asociada a su par.
  • Monocapa. Una sola capa de neuronas.
  • Multicapa. Varias capas de neuronas.
  • Conexión hacia adelante.La salida de una neurona nunca es entrada de neuronas del mismo nivel o precedentes.
  • Conexión hacia atrás. La salida de una neurona es entrada de neuronas del mismo nivel ó precedentes.

 

Taxonomía Redes Neuronales Artificiales

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Agrupación básica de las RNA

 

 

Grupos de RNA
Grupos de RNA

 

Aprendizaje de las Redes Neuronales Artificiales.

RNA básicas según tipo de entrada y aprendizaje
RNA básicas según tipo de entrada y aprendizaje

Como dijimos anteriormente, las RNA son sistemas adaptativos complejos que puede cambiar su estructura interna en función de la información que pasa por ella, esto implica modificar las acciones que realizan en la entrada / proceso / salida y para ello necesitamos ajustar los pesos (w) y distinguir los datos de las muestras y encontrar características comunes entre ellas. Este es el objetivo fundamental, encontrar la configuración de pesos que corresponda al mínimo global de la función de error, aunque sería suficiente encontrar un mínimo local lo suficientemente bueno, para ello se utiliza el método del Gradiente Descendente. Los algoritmos más comunes utilizados en las RNA para el aprendizaje son el BP (Backpropagation), BPTT (Retrocesión a través del tiempo) y el RTRL (Aprendizaje recurrente en tiempo real), el resto se pueden clasificar como el de una estrategia intermedia o híbrida que combina las mejores características de los anteriores.

 

 

One thought on “Redes Neuronales Artificiales

  1. Well, I thought that hispanics are far away on these issues. It has been difficult for me to translate it, but it has a good level. You should continue expanding some sections.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

siete + once =