Breve Historia de las Redes Neuronales Artificiales

Arquitecturas y Aplicaciones de las Redes Neuronales más usadas.

Vamos a hacer un repaso por las diversas estructuras inventadas, mejoradas y utilizadas a lo largo de la historia para crear redes neuronales y sacar el mayor potencial al Deep Learning para resolver toda clase de problemas de regresión y clasificación.

Evolución de las Redes Neuronales en Ciencias de la Computación

Vamos a revisar las siguientes redes/arquitecturas:

  • 1958 – Perceptron
  • 1965 – Multilayer Perceptron
  • 1980’s
    • Neuronas Sigmoidales
    • Redes Feedforward
    • Backpropagation
  • 1989 – Convolutional neural networks (CNN) / Recurent neural networks (RNN)
  • 1997 – Long short term memory (LSTM)
  • 2006 – Deep Belief Networks (DBN): Nace deep learning
    • Restricted Boltzmann Machine
    • Encoder / Decoder = Auto-encoder
  • 2014 – Generative Adversarial Networks (GAN)

Si bien esta lista no es exhaustiva y no se abarcan todos los modelos creados desde los años 50, he recopilado las que fueron -a mi parecer- las redes y tecnologías más importantes desarrolladas para llegar al punto en que estamos hoy: el Aprendizaje Profundo.

El inicio de todo: la neurona artificial

Read More

Programa un coche Arduino con Inteligencia Artificial

El Machine Learning nos permitirá utilizar Redes Neuronales para que un coche Arduino conduzca sólo evitando obstáculos.

En el artículo anterior, creamos una red neuronal desde cero en Python. En este artículo mejoraremos esa red y copiaremos sus pesos a una red con propagación hacia adelante en Arduino que permitirá que el coche robot conduzca sólo sin chocar.

La Nueva Red Neuronal

Read More

Crear una Red Neuronal en Python desde cero

Programaremos una red neuronal artificial en Python, sin utilizar librerías de terceros. Entrenaremos el modelo y en pocas lineas el algoritmo podrá conducir por sí mismo un coche robot!.

Para ello, explicaremos brevemente la arquitectura de la red neuronal, explicaremos el concepto Forward Propagation y a continuación el de Backpropagation donde ocurre «la magia» y aprenden las neuronas.

Read More

Una sencilla Red Neuronal en Python con Keras y Tensorflow

historCrearemos una red neuronal artificial muy sencilla en Python con Keras y Tensorflow para comprender su uso. Implementaremos la compuerta XOR e intentaré comparar las ventajas del aprendizaje automático frente a la programación tradicional.

Requerimientos para el ejercicio

Puedes simplemente leer el código y comprenderlo o si quieres ejecutarlo deberás tener un ambiente de desarrollo Python como Anaconda para ejecutar el Jupyter Notebook (también funciona con python en línea de comandos). Sigue el tutorial para tener tu suite preparada e instalar Keras y Tensorflow. Al final del artículo podrás ver y descargar el código de GitHub.

Si aún no tienes muy claro qué son o cómo funcionan las Redes Neuronales, pues leer mi Guía Rápida sobre Deep Learning y luego volver aquí.

Las compuertas XOR

Para el ejemplo, utilizaremos las compuertas XOR. Si no las conoces o no las recuerdas, funcionan de la siguiente manera:

Tenemos dos entradas binarias (1 ó 0) y la salida será 1 sólo si una de las entradas es verdadera (1) y la otra falsa (0).

Es decir que de cuatro combinaciones posibles, sólo dos tienen salida 1 y las otras dos serán 0, como vemos aquí:

  • XOR(0,0) = 0
  • XOR(0,1) = 1
  • XOR(1,0) = 1
  • XOR(1,1) = 0

Una Red Neuronal Artificial sencilla con Python y Keras

Veamos el código completo en donde creamos una red neuronal con datos de entrada las 4 combinaciones de XOR y sus 4 salidas ordenadas. Luego analizamos el código linea a linea.

Read More