Redes Neuronales su Historia y Herramientas

 Las Redes Neuronales Artificiales, ANN (Artificial Neural Networks) están inspiradas

en las redes neuronales biológicas del cerebro humano. Están constituidas por

elementos que se comportan de forma similar a la neurona biológica en sus funciones

más comunes. Estos elementos están organizados de una forma parecida a la que

presenta el cerebro humano.

Red Neuronal y ANN

Una red neuronal consiste en un conjunto de unidades elementales PE conectadas de
una forma concreta. El interés de las ANN no reside solamente en el modelo del
elemento PE sino en las formas en que se conectan estos elementos procesadores.
Generalmente los elementos PE están organizados en grupos llamados niveles o capas.
Una red típica consiste en una secuencia de capas con conexiones entre capas
adyacentes consecutivas.
Existen dos capas con conexiones con el mundo exterior. Una capa de entrada, buffer de
entrada, donde se presentan los datos a la red, y una capa buffer de salida que mantiene
la respuesta de la red a una entrada. El resto de las capas reciben el nombre de capas
ocultas. 


Historia

En 1943, el neurobiólogo Warren McCulloch, y el estadístico Walter Pitss, publicaron
el artículo "A logical calculus of Ideas Imminent in Nervous Activity". Este artículo
constituyó la base y el inicio del desarrollo en diferentes campos como son los
Ordenadores Digitales (John Von Neuman), la Inteligencia Artificial (Marvin Minsky
con los Sistemas Expertos) y el funcionamieto del ojo (Frank Rosenblatt con la famosa
red llamada Perceptron).
En 1956, los pioneros de la Inteligencia Artificial, Minsky, McCarthy, Rochester,
Shanon, organizaron la primera conferencia de Inteligencia Artificial que fue
patrocinada por la Fundación Rochester. Esta conferencia se celebró en el verano de
1956 en la localidad inglesa de Darmouth y en muchos libros se hace referencia al
verano de este año como la primera toma de contacto seria con las redes neuronales
artificiales.
Nathaural Rochester del equipo de investigación de IBM presentó el modelo de una red
neuronal que él mismo realizó y puede considerarse como el primer software de
simulación de redes neuronales artificiales.
En 1957, Frank Rosenblatt publicó el mayor trabajo de investigación en computación
neuronal realizado hasta esas fechas. Su trabajo consistía en el desarrollo de un
elemento llamado "Perceptron".
El perceptron es un sistema clasificador de patrones que puede identificar patrones
geométricos y abstractos. El primer perceptron era capaz de aprender algo y era robusto,
de forma que su comportamiento variaba sólo si resultaban dañados los componentes del sistema. Además presentaba la característica de ser flexible y comportarse
correctamente después de que algunas celdas fueran destruidas.
El perceptron fue originalmente diseñado para el reconocimiento óptico de patrones.
Una rejilla de 400 fotocélulas, correspondientes a las neuronas de la retina sensibles a la
luz, recibe el estímulo óptico. Estas fotocélulas están conectadas a elementos
asociativos que recogen los impulsos eléctricos emitidos desde las fotocélulas. Las
conexiones entre los elementos asociativos y las fotocélulas se realizan de forma
aleatoria.
Si las células presentan un valor de entrada superior a un umbral predeterminado
entonces el elemento asociativo produce una salida.


Herramientas para crear una red neuronal

Escrito para Java, soporta una amplia gama de algoritmos de “Deep Learning” o aprendizaje profundo. Es de código abierto y tiene su propia librería de computación numérica (ND4J). Funciona tanto con CPUs como con GPUs.





Desarrollada por Facebook, de código abierto y escrita para Python. Su principal característica es que soporta grafos computacionales dinámicos, es decir, para cada iteración del entrenamiento se define un grafo.



Una de las primeras grandes librerías para redes neuronales. Escrito para Python y es de código abierto. Sirvió de base para desarrollar otros softwares para redes neuronales. Es un híbrido que trata de combinar lo mejor de varios paquetes numéricos para Python. No es muy usado actualmente.



Basado en Caffe y con muchas cosas en común (o parecidas) con PyTorch (conceptos, equipos de desarrollo, líneas de investigación, etc.). Es un módulo para Python y C++. Está más centrado en ser ligero de peso, modular y en poder usarse en producción que en la investigación.



Desarrollado y usado por Google en todos sus productos, es una librería de código abierto principalmente enfocada a Python. Soporta multitud de tipos de plataformas y entornos.



Es una librería de Machine Learning para Python con algoritmos para clasificación, regresión y agrupamiento (clustering). Empezó como un pequeño proyecto en un evento de Google en 2007 y, actualmente, sigue en desarrollo, con nuevas versiones cada año. La diferencia con las demás librerías es que la mayor parte de su código está escrito en Python.


Comentarios