
Del cerebro, se puede decir que es un conjunto de millones y millones de células, llamadas neuronas, interconectadas entre ellas por sinapsis. Las sinapsis son las zonas donde dos neuronas se conectan y la parte de la célula especializada en ello son las dendritas y las ramificaciones del axón.
El conjunto de elementos que hay entre la ramificación axonal y la dendrita forman una conexión llamada sinapsis que regula la transmisión del impulso eléctrico mediante unos elementos bioquímicas, los neurotransmisores.
Los neurotransmisores liberados en las sinapsis al final de las ramificaciones axonales pueden tener un efecto negativo o positivo sobre la transmisión del impulso eléctrico de la neurona que los recibe en sus dendritas. La neurona receptora recibe varias señales desde las distintas sinapsis y las combina consiguiendo un cierto nivel de estimulación o potencial.
En función de este nivel de activación, la neurona emite señales eléctricas con una intensidad determinada mediante impulsos con una frecuencia llamada tasa de disparo que se transmiten por el axón.
Si consideramos que la información en el cerebro esta codificada como impulsos eléctricos que se transmiten entre las neuronas y que los impulsos se ven modificados básicamente en las sinapsis cuando las señales son químicas podemos intuir que la codificación del aprendizaje estará en las sinapsis y en la forma que dejan pasar o inhiben las señales segregando neurotransmisores.
La historia de las redes neuronales se convierte en un relato de ingenio y descubrimiento. Charles Babbage fue uno de los pioneros en la búsqueda de máquinas que pudieran resolver problemas matemáticos, aunque sus esfuerzos iniciales no fructificaron. Durante la Segunda Guerra Mundial, con la disponibilidad de instrumentos electrónicos, comenzaron a vislumbrarse los primeros avances. En 1946, se construyó la primera computadora electrónica, ENIAC, marcando un hito en la historia de la computación.
La inteligencia artificial (IA) surgió como un intento de comprender y emular aspectos de la inteligencia humana en las máquinas. Las redes neuronales, en particular, se inspiraron en la capacidad humana de memorizar y asociar hechos, son modelos artificiales y simplificados del cerebro humano, ejemplo más perfecto de un sistema que adquiere conocimiento a través de la experiencia. Las redes neuronales imitan la función básica de las neuronas biológicas en la comunicación y el procesamiento de información.
El núcleo de una neurona biológica implica recibir entradas, procesarlas y, cuando se alcanza un umbral, transmitir una señal a través del axón. La memoria, el aprendizaje y la toma de decisiones humanas se relacionan con la actividad de las neuronas interconectadas en el cerebro.
El aprendizaje es fundamental para resolver problemas que inicialmente son irresolubles. Las redes neuronales comparten esta capacidad de aprender y mejorar su funcionamiento. Están compuestas por unidades de procesamiento que intercambian información y se utilizan para reconocer patrones en una variedad de datos, desde imágenes hasta secuencias temporales, como tendencias financieras.
La historia de las redes neuronales abarca décadas de investigaciones y desarrollos clave. Desde las teorías iniciales de Warren McCulloch y Walter Pitts en 1943 hasta los avances en aprendizaje y arquitecturas de redes, la evolución de las redes neuronales ha sido impresionante.
Alan Turing, el Congreso de Dartmouth, Donald Hebb, Frank Rosenblatt, Karl Lashley y muchos otros influyeron en el desarrollo de la teoría de redes neuronales. Cada uno de estos hitos contribuyó al resurgimiento de las redes neuronales en la década de 1980, y a partir de entonces, se han convertido en una herramienta vital en campos como el procesamiento de imágenes, el aprendizaje automático y la inteligencia artificial.
McCulloch y Pitts dieron origen a los modelos conexionistas definiendo formalmente la neurona en 1943 como una maquina binaria con varias entradas y salidas. Hebb, definió en 1949 dos conceptos muy importantes y fundamentales que han pesado en el campo de las redes neuronales, basándose en investigaciones psicofisiológicas, que el aprendizaje se localiza en las sinapsis o conexiones entre las neuronas y que la información se representa en el cerebro mediante un conjunto de neuronas activas o inactivas.
Las hipótesis de Hebb, se sintetizan en la regla de aprendizaje del hebb, que sigue siendo usada en los actuales modelos. Esta Regla nos dice que los cambios en los pesos de las sinapsis se basan en la interacción entre las neuronas pre y post sinápticas.
A partir de 1956 en Dartmouth los investigadores desarrollaron los distintos tipos de redes neuronales y en la actualidad gracias a diversos grupos de investigación repartidos por universidades de todo el mundo, las redes neuronales han alcanzado una madurez muy aceptable y se usan en todo tipo de aplicaciones entre las que podemos citar:
- Reconocimiento de patrones, voz y vídeo, Compresión de imágenes.
- Estudio y predicción de sucesos muy complejos (ej. La bolsa).
- Aplicaciones de apoyo a la medicina., todo tipo de aplicaciones que necesiten el análisis de grandes cantidades de datos, etc.
El modelo de neurona artificial que hemos modelado como una serie de funciones que se componen entre ellas siendo los resultados de unas, los parámetros de otras, así la funcion de ponderación hace uso de los valores que le llegan de las entradas y los pesos de las sinapsis y la funcion de activación toma este valor para transformarlo en el estado de la neuronas mediante la interacción de estas funciones se procesa la información.

Función de ponderación
Esta función se encarga de transformar las diferentes entradas que provienen de la sinapsis en el potencial de la neurona.
Normalmente se usa como función de propagación la suma ponderada de las entradas multiplicadas por los pesos. Esta función se interpreta como un regulador de las señales que se emiten entre neuronas al ponderar las salidas que entran a la neurona.
Las funciones de activación combinan el potencial postsinaptico, que nos proporciona la función de propagación, con el estado actual de la neurona para conseguir el estado futuro de activación de la misma. Sin embargo, es muy común que las redes neuronales no tomen su propio estado como un parámetro y que por tanto no se considere. Esta función es normalmente creciente, monótona y podemos citar las funciones más comunes:
- Algunas redes neuronales usan esta función de activación por su eficiencia y facilidad.
- Escalón. Esta función es la más usada para redes neuronales binarias ya que no es lineal y es muy simple. Algunas redes que usan esta función son el Perceptrón y Hopfield. Para redes que trabajan en el rango [-1,1] se usa la funcion signo
- Hiperbólicas o tangenciales. Las redes con salidas continuas, como el Perceptron multicapa con retropropagación, usan esta función ya que su algoritmo de aprendizaje necesita una función derivable
- Función de Salida. Esta función convierte el estado de la neurona en la salida hacia la siguiente neurona que se transmite por las sinapsis. Usualmente no se considera y se toma la identidad, esto es, de manera que la salida es el propio estado de activación de la neurona.
Entre las décadas de 1950 y 1960 el científico Frank Rosenblatt, inspirado en el trabajo de Warren McCulloch y Walter Pitts creó el Perceptron, la unidad desde donde nacería y se potenciarían las redes neuronales artificiales.

El multilayer perceptron es una ampliación del perceptrón de una única neurona, a más de una. Aparecen los conceptos de capas de entrada, oculta y salida, con valores de entrada y salida binarios. Tanto el valor de los pesos como el de umbral de cada neurona lo asignaba manualmente el científico. Cuantos más perceptrones en las capas, mucho más difícil conseguir los pesos para obtener salidas deseadas.
Para poder lograr que las redes de neuronas aprendieran solas fue necesario introducir un nuevo tipo de neuronas. Las llamadas Neuronas Sigmoides similares al perceptrón, pero permiten que las entradas, en vez de ser ceros o unos, puedan tener valores reales como 0,5 ó 0,377 ó lo que sea. También aparecen las neuronas bias, que siempre suman 1 en las diversas capas para resolver ciertas situaciones.

Imagen de la función sigmoide
Con estas funciónes de activación, se puede lograr que pequeñas alteraciones en valores de los pesos produzcan pequeñas alteraciones en la salida. Podemos ir ajustando muy de a poco los pesos de las conexiones e ir obteniendo las salidas deseadas.
A las redes en que las salidas de una capa son utilizadas como entradas en la próxima capa, se las llamó Redes Feedforward. No hay saltos hacia atrás, siempre se alimenta de valores hacia adelante. Hay redes en las que sí que existen esos saltos llamados Recurrent Neural Networks.
Existe el concepto de fully connected Feedforward Networks, y se refiere a que todas las neuronas de entrada, están conectadas con todas las neuronas de la siguiente capa.
Gracias al algoritmo de backpropagation, año 1986, se hizo posible entrenar redes neuronales de múltiples capas de manera supervisada. Al calcular el error obtenido en la salida e ir propagando hacia las capas anteriores se van haciendo ajustes pequeños para minimizar el error, en cada iteración para lograr que la red aprenda consiguiendo que la red pueda clasificar las entradas correctamente.

Las Convolutional Neural Networks, CNN, aparecen en 1989 y son redes multicapas que toman su inspiración del cortex visual de los animales. Esta arquitectura es útil en aplicaciones, como el procesamiento de imágenes. La primera CNN fue creada por Yann LeCun y estaba enfocada en el reconocimiento de letras manuscritas.
La arquitectura constaba de varias capas que implementaban la extracción de características y luego clasificar. La imagen se divide en campos receptivos que alimentan una capa convolutional que extrae caracteristicas de la imagen de entrada, como detectar lineas verticales, vértices, etc. El siguiente paso es pooling que reduce la dimensionalidad de las características extraídas manteniendo la información más importante. Luego se hace una nueva convolución y otro pooling que alimenta una red feedforward multicapa.
Esta arquitectura usando capas profundas y la clasificación de salida abrieron un mundo nuevo de posibilidades en las redes neuronales. Las CNN se usan también en reconocimiento de video y tareas de Procesamiento del Lenguaje Natural.

La red Long short term memory, LSTM, tiene neuronas ocultas con saltos hacia atrás, en azul. Esto permite que almacene información en celdas de memoria.
Las redes Long short term memory, LSTM, aparecieron en 1997, y son un tipo de Recurrent neural network. Esta arquitectura permite conexiones “hacia atrás” entre las capas. Esto las hace buenas para procesar datos de tipo “time series” datos históricos. En 1997 se crearon las LSTM que consisten en unas celdas de memoria que permiten a la red recordar valores por períodos cortos o largos.
Una celda de memoria contiene compuertas que administran como la información fluye dentro o fuera. La puerta de entrada controla cuando puede entrar nueva información en la memoria. La puerta de “olvido” controla cuanto tiempo existe y se retiene esa información. La puerta de salida controla cuando la información en la celda es usada como salida de la celda. La celda contiene pesos que controlan cada compuerta. El algoritmo de entrenamiento -conocido como backpropagation-through-time optimiza estos pesos basados en el error de resultado.

En el año 2006, la Deep Belief Network, DBN, utilizó un Autoencoder para preentrenar a las neuronas de la red.
En aquellos años, los modelos con “profundidad”, decenas o cientos de capas, eran considerados demasiado difíciles de entrenar, incluso con backpropagation, y el uso de las redes neuronales artificiales quedó estancado.
Con la creación de una DBN de Boltzmann que logro obtener un mejor resultado en el MNIST, se devolvió el entusiasmo en poder lograr el aprendizaje profundo en redes neuronales. Hoy en día las DBN no se utilizan demasiado, pero fueron un gran hito en la historia en el desarrollo del deep learning y permitieron seguir la exploración para mejorar las redes existentes CNN, LSTM, etc.
Las Deep Belief Networks, DBN, demostraron que utilizar pesos aleatorios al inicializar las redes son una mala idea, por ejemplo, al utilizar Backpropagation con Descenso por gradiente muchas veces se caía en mínimos locales, sin lograr optimizar los pesos.
Mejor será utilizar una asignación de pesos inteligente mediante un preentrenamiento de las capas de la red. Se basa en el uso de la utilización de Restricted Boltzmann Machines y Autoencoders para pre entrenar la red de manera no supervisada. Después de pre entrenar y asignar esos pesos iniciales, deberemos entrenar la red de forma habitual, supervisada con backpropagation.
Ese preentrenamiento es una de las causas de la gran mejora en las redes neuronales y permiten que el deep learning, asigne los valores de evaluar capa a capa, de a una, y no sufren de cierto sesgo que causa el backpropagation, al entrenar a todas las capas en simultáneo.
En el año 2014, las Generative Adversarial Networks, GAN, entrenaron dos redes neuronales en simultáneo. La red de Generación y la red de Discriminación. A medida que la máquina aprende, comienza a crear muestras que son indistinguibles de los datos reales.

Estas redes pueden aprender a crear muestras, de manera similar a los datos con las que las alimentamos.
La idea detrás de GAN es la de tener dos modelos de redes neuronales compitiendo. Uno, llamado Generador, toma inicialmente datos basura como entrada y genera muestras. El otro modelo, llamado Discriminador, recibe a la vez muestras del Generador y del conjunto de entrenamiento y deberá ser capaz de diferenciar entre las dos fuentes. Estas dos redes juegan una partida continua donde el Generador aprende a producir muestras más realistas y el Discriminador aprende a distinguir entre datos reales y muestras artificiales. Estas redes son entrenadas simultáneamente para lograr que los datos generados no puedan detectarse de datos reales.
Sus aplicaciones principales son la de generación de imágenes realistas, pero también la de mejorar imágenes ya existentes, o generar textos en imágenes, o generar textos siguiendo un estilo determinado y hasta desarrollo de moléculas para industria farmacéutica.
Una etapa a partir de 2006 en la que se logra aprovechar el poder de las GPU, Graphic Process Unit, para lograr entrenar cientos de capas jerárquicas que conforman y potencian el Deep Learning y dan una capacidad casi ilimitada a estas redes.
Recientemente, en el año 2018, nuevos estudios de las neuronas humanas biológicas redescubren su funcionamiento, produciendo una nueva revolución, pues parece que es totalmente distinto a lo que hasta hoy conocíamos.
Esto puede ser el principio de una nueva etapa totalmente nueva y seguramente mejor del Aprendizaje Profundo, el Machine Learning y la Inteligencia Artificial.


