Que es Deep Learning y Como Funciona ?

Inteligencia Artificial (AI) y Machine Learning (ML) son términos que escuchamos a diario. En este artículo les voy a explicar de la forma más clara posible cada uno de ellos usando lo mínimo de matemáticas. Es necesario aclarar que utilizaré la sigla original de Inteligencia Artificial que es AI (Artificial Intelligence) y lo mismo haré con el Aprendizaje de Máquina que es ML (Machine Learning), de esta forma no se van a confundir si leen otros artículos en inglés.

La Inteligencia Artificial vs el Aprendizaje de Máquina:

La Inteligencia Artificial (AI) intenta ser una réplica de la inteligencia humana en las computadoras. Cuando recién se empezó con AI lo investigadores estaban trabajando en replicar tareas humanas específicas, como por ej. jugar un juego. Ellos introdujeron una serie de reglas que una computadora de AI necesita respetar siempre. La misma tiene una lista posible de acciones y toma decisiones basadas en ellas.

El Aprendizaje de Máquina (ML) se refiere a la habilidad de la máquina para aprender utilizando un gran set de datos en vez de reglas escritas en código.

ML permite a las computadoras aprender por sí mismas. Este tipo de aprendizaje aprovecha el gran poder de cálculo de las computadoras modernas para poder procesar fácilmente largos set de datos.

Aprendizaje Supervisado vs Aprendizaje no Supervisado:

El Aprendizaje Supervisado usa set de datos etiquetados que tienen entradas con salidas esperadas. Cuando se entrena una máquina de AI usando este método, se le da una entrada y se le dice el resultado esperado. Si la salida generada por la máquina de AI es incorrecta, el proceso se repite una y otra sobre el mismo set de datos hasta que la misma no tenga más errores. Podemos tomar como ejemplo un Sistema de Predicción del Tiempo con AI, el mismo aprende a predecir el tiempo usando datos históricos. Esos datos con los que entrena tienen Entradas como: (presión, humedad, velocidad del viento, etc.) y como Salida da (temperatura).

El Aprendizaje no Supervisado es la tarea de ML usando set de datos sin una estructura específica. Cuando se entrena una máquina de AI usando este método, se deja que la misma haga clasificaciones de datos en forma lógica. Un ejemplo de esto es un Sistema de Predicción de Comportamiento para un Sitio Web Comercial, él no va a aprender usando set de datos marcados con Entradas y Salidas, sino que va a crear su propia clasificación de los datos de Entrada y luego dirá que tipo de usuarios serán potenciales compradores de “x” productos.

Ahora, como Funciona Deep Learning o Aprendizaje Profundo ?

Deep Learning es un método de Machine Learning (ML). Nos permite entrenar una máquina de AI para predecir Salidas dado un set de Entradas. Para ello se pueden usar ambos métodos de Aprendizaje descriptos anteriormente, el supervisado y el no supervisado.

Como ejemplo vamos a aprender cómo funciona Deep Learning creando un “Sistema AI de Estimación de Precios de Pasaje de Avión” y lo vamos a entrenar usando el método de aprendizaje supervisado. Para ello nuestro “Sistema de Estimación” utilizará las siguientes entradas (para simplificar lo haremos sin devolución de pasajes):

  • Origin Aiport o Aeropuerto Origen
  • Desitnation Airport o Aeropuerto Destino
  • Departure Date o Fecha de Salida
  • Airline o Aerolínea

Pero, para hacer todo esto primero tenemos que saber “que hay dentro del cerebro de nuestra máquina de AI”, las Redes Neuronales.

Al igual que los animales, nuestro “Sistema de Estimación” tiene neuronas las cuales están representadas por círculos en el siguiente diagrama y también veremos cómo se interconectan.

Diagrama de interconexión de Redes Neuronales:

1_LaEgAU-vdsR_pClMcgbikQ

Las Neuronas se agrupan en Tres Capas Diferentes:

  1. Input Layer o Capa de Entrada
  2. Hidden Layer/s o Capa/s Ocultas
  3. Output Layer o Capa de Salida

La Capa de Entrada recibe datos de Entrada. En nuestro caso, tenemos cuatro neuronas en la Capa de Entrada (Aeropuerto Origen, Aeropuerto Destino, Fecha de Salida, Aerolínea). La Capa de Entrada pasa las mismas la primera Capa Oculta.

La Capa Oculta realiza cómputos matemáticos en nuestras Entradas. Uno de los desafíos en crear Redes Neuronales es decidir la cantidad de Capas Ocultas, así como también el número de neuronas para cada capa.

En Deep Learning, la palabra “Deep” se refiere a tener más de una Capa Oculta.

La Capa de Salida nos da los datos de Salida. En nuestro caso, nos daría la predicción del precio del pasaje de avión.

Así quedaría nuestra Red Neuronal:

1_6PjhO0kPciY_f5XbghnZsQ.png

Entonces como es que se realiza la predicción ? Ahí es donde la magia de Deep Learning comienza. Cada conexión entre neuronas está asociada con un Peso. Este peso es el que determina la importancia del valor de Entrada. Los pesos iniciales se ponen al azar.

Al predecir el precio del pasaje de avión, la fecha de salida es uno de los factores más fuertes, por tanto, la neurona Departure Date tendrá un gran peso.

1__kudSKDXEScysTpYYowqFg

Cada neurona tiene una Función de Activación, estas son muy difíciles de comprender sin entrar en matemáticas complejas. Pongámoslo así, uno de sus propósitos es estandarizar la Salida de la neurona. Una vez que un conjunto de datos de entrada ha pasado por todas las capas de la red neuronal, se devuelven los datos de salida a través de la Capa de Salida.

Entrenando la Red Neuronal:

Entrenar la máquina de AI es la parte más difícil del Deep Learning, y esto es debido a:

  1. Se necesita un gran data set o conjunto de datos
  2. Se necesita un gran poder de cálculo computacional

Para nuestro “Sistema de Estimación” de precios de pasaje de avión, necesitamos antes que nada encontrar datos históricos de los precios de los pasajes y debido a la enorme cantidad de aeropuertos posibles y combinación de fechas de salidas, necesitaremos una larga lista de precios de pasajes. Una vez que tengamos esto, podemos crear una función que nos muestre “que tan mala es la salida de la máquina de AI frente a las salidas reales”. Esta función se llama Función de Costo. En un mundo “ideal” queremos que nuestra Función de Costo sea cero porque ahí es cuando la salida de la máquina de AI es igual a los datos de salida.

Como reducimos la Función de Costo ?

Cambiamos el peso entre neuronas. Podemos cambiar el peso al azar entre neuronas hasta que nuestra función de costo arroje un número bajo, pero esto no es muy eficiente. Así que usaremos una técnica llamada Gradiente Descendente. Esta es una técnica que nos permite encontrar el mínimo de una función. En nuestro caso el mínimo de nuestra función de costo.

El gradiente descendente funciona cambiando el peso en pequeños incrementos luego de cada iteración de conjunto o set de datos. Calculando la derivada (o gradiente) de la función de costo a cierto peso, podremos ver en qué dirección está el mínimo.

1_HrFZV7pKPcc5dzLaWvngtQ.png

Para minimizar la función de costo, necesitamos repetir el el proceso con el conjunto o set de datos muchas veces (iterar), es por eso que se requiere un poder de cómputo muy grande. Actualizar los pesos usando el gradiente descendente es automático y ahí encontramos la magia del Deep Learning. 

Notas Finales:

Una vez que hayamos entrenado nuestro Sistema AI de Estimación de Precios de Pasaje de Avión, lo podremos usar para predecir futuros precios.

Fuente: freecodecamp

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s