Una Introducción “peculiar” al Deep Learning

Favio Vázquez

d&a blog

Hay increíbles introducciones, cursos y entradas en blogs sobre Deep Learning. Voy a nombrar algunas de ellas en las secciones de recursos, pero esta es una clase diferente de introducción: una introducción peculiar. ¿Pero por qué peculiar? Tal vez porque no sigue la estructura “normal” de un post de Deep Learning, donde se empieza con las matemáticas, luego se pasa a los documentos científicos, la implementación y luego a las aplicaciones. Creo que contar una historia puede ser mucho más útil que lanzar información y fórmulas por todas partes. Así que comencemos.

Cronología del Deep Learning

El Deep Learning es un campo muy importante para la Ciencia de Datos, la Inteligencia Artificial, la Tecnología y nuestras vidas en este momento, y merece toda la atención que está recibiendo. Por favor, no digas que el aprendizaje profundo es sólo añadir una capa a una red neuronal, y eso es todo; ¡mágico! Espero que después de leer esto tengas una perspectiva diferente de lo que es Deep Learning.

Creé esta línea de tiempo basada en varios artículos y otros recursos con el propósito de mostrar que el Deep Learning es mucho más que sólo Redes Neuronales. Ha habido avances realmente teóricos, mejoras de software y hardware que eran necesarias para que llegáramos a este día.

Avances en el Deep Learning y el aprendizaje de la representación

Comencemos por definir la palabra aprendizaje. En el contexto del Aprendizaje Automático, la palabra “aprendizaje” describe un proceso de búsqueda automática para una mejor representación de los datos que está analizando y estudiando (por favor, tenga esto en cuenta, no es hacer que una computadora aprenda). ¿Qué es una representación? Es una forma de ver los datos.

Esto es algo muy importante a tener en cuenta, el Deep Learning es el aprendizaje de la representación utilizando diferentes tipos de redes neuronales y optimizando los hiper-parámetros de la red para obtener (aprender) la mejor representación para nuestros datos. Esto no sería posible sin los asombrosos avances que nos llevaron al estado actual del Deep Learning. He aquí algunos de ellos:

Concepto # 1: Propagación inversa.

Concepto # 2: Mejor inicialización de los parámetros de las redes. Algo a tener en cuenta: La estrategia de inicialización debe seleccionarse según la función de activación utilizada (véase el siguiente concepto).

Concepto # 3: Mejores funciones de activación. Esto significa, mejores maneras de aproximar las funciones más rápidamente, lo que conduce a un proceso de entrenamiento más rápido.

Concepto # 4: Dropout. Mejores formas de prevenir el sobreajuste y más.

Concepto # 5: Redes Neuronales Convolucionales (CNNs).

Concept # 6: Redes residuales (ResNets).

Concepto # 7: CNNs Regionales. Utilizado para la detección de objetos y más.

Concepto # 8: Redes Neuronales Recurrentes (RNNs) y LSTMs.

Por cierto: Liao y Poggio (2016) mostraron que ResNets == RNNs, arXiv:1604.03640v1.

Concepto # 9: Redes Generativas Adversariales (GANs).

Concepto # 10: Redes de Cápsulas.

Haciendo cosas con Deep Learning

Uno de los momentos más importantes para este campo fue la creación y apertura de TensorFlow.
TensorFlow es una librería de software de código abierto para computación numérica usando gráficas de flujo de datos. Los nodos del gráfico representan operaciones matemáticas, mientras que los bordes del gráfico representan los conjuntos de datos multidimensionales (tensores) comunicados entre sí.

Los tensores, definidos matemáticamente, son simplemente matrices de números, o funciones, que se transforman según ciertas reglas bajo un cambio de coordenadas.

Pero en el ámbito del Machine Learning y del Deep learning un tensor es una generalización de vectores y matrices a dimensiones potencialmente superiores. Internamente, TensorFlow representa a los tensores como matrices n-dimensionales de tipos de datos base.

Pensando en el futuro de Deep Learning (para programar o construir aplicaciones), creo que las interfaces gráficas de usuario (GUI) y AutoML son el futuro cercano para hacer las cosas con Deep Learning. No me malinterpretes, me encanta codificar, pero creo que la cantidad de código que escribiremos los próximos años se descompondrá.

Pasamos muchas horas programando las mismas cosas en todo el mundo una y otra vez, así que creo que estas dos características GUIs y AutoML ayudarán a los Científicos de Datos a ser más productivos y a resolver más problemas.

Gracias por leer esta extraña introducción a Deep Learning. Espero que te haya ayudado a empezar en esta increíble área, o tal vez simplemente descubrir algo nuevo.