Deep Learning o Aprendizaje Profundo está a la vanguardia de lo que las máquinas pueden hacer, y los desarrolladores y líderes de negocios necesitan absolutamente entender lo que es y cómo funciona. Este tipo único algoritmo ha superado con creces cualquier punto de referencia anterior para la clasificación de imágenes, texto y voz.
También potencia algunas de las aplicaciones más interesantes del mundo, como los vehículos autónomos y la traducción en tiempo real. Ciertamente hubo mucha emoción cuando el AlphaGo de Google, basado en Deep Learning, venció al mejor jugador de Go del mundo, pero las aplicaciones comerciales de esta tecnología son más inmediatas y potencialmente más impactantes.
Inteligencia Artificial vs. Machine Learning
La Inteligencia Artificial es la réplica de la inteligencia humana en las computadoras.
Cuando la investigación de la Inteligencia Artificial comenzó, los investigadores trataban de replicar la inteligencia humana para tareas específicas, como jugar a un juego. Introdujeron un gran número de reglas que el ordenador debía respetar. La computadora tenía una lista específica de posibles acciones, y tomaba decisiones basadas en esas reglas.
Machine Learning, por su parte, se refiere a la capacidad de una máquina para aprender utilizando grandes conjuntos de datos en lugar de reglas de código puro.
Machine Learning permite a las computadoras aprender por sí mismas. Este tipo de aprendizaje aprovecha la potencia de procesamiento de las computadoras modernas, que pueden procesar fácilmente grandes conjuntos de datos.
¿Cómo funciona Deep Learning?
Deep Learning es en realidad sólo un subconjunto de Machine Learning que ha recibido una atención significativa recientemente debido a su rendimiento estelar en muchas de las tareas que hemos mencionado anteriormente.
Nos permite entrenar una Inteligencia Artificial para predecir las salidas, dado un conjunto de entradas. Tanto el Aprendizaje Supervisado como el no Supervisado pueden ser usados para entrenar la Inteligencia Artificial.
Deep Learning es solo un tipo de algoritmo que parece funcionar muy bien para predecir las cosas. Deep Learning y redes neuronales, para la mayoría de los propósitos, son efectivamente sinónimos.
Las redes neuronales se inspiran en la estructura de la corteza cerebral. En el nivel básico está el perceptrón, la representación matemática de una neurona biológica. Como en la corteza cerebral, puede haber varias capas de percepciones interconectadas.
Las neuronas se agrupan en tres tipos diferentes de capas:
- Capa de entrada
- Capas ocultas
- Capa de salida
La capa de entrada recibe datos de entrada, desde esta capa pasa las entradas a la primera capa oculta.
Las capas ocultas realizan cálculos matemáticos en nuestras entradas. Uno de los retos en la creación de redes neuronales es decidir el número de capas ocultas, así como el número de neuronas de cada capa.
Las capas ocultas de una red neural realizan modificaciones en los datos para eventualmente sentir cuál es su relación con la variable objetivo. Cada nodo tiene un peso, y multiplica su valor de entrada por ese peso. Si se hace esto en unas pocas capas diferentes, la red es capaz de manipular los datos para convertirlos en algo significativo. Para averiguar cuáles deberían ser estos pequeños pesos, típicamente usamos un algoritmo llamado Backpropagation.
La capa de salida devuelve los datos de salida que vendría siendo nuestra predicción, puede ser un nodo si el modelo solo produce un número, o unos pocos nodos si se trata de un problema de clasificación multiclase.
Cada neurona tiene una función de activación, pero ¿cuál es el punto de está? Una función de activación proporciona cierta no linealidad a la función, que necesitamos para representar funciones complejas.
El poder de las redes neuronales es que en la práctica resultan tener la flexibilidad de representar bien (aproximadamente) las relaciones subyacentes entre la entrada y la salida de la tarea.
Entrenar la red neuronal
El entrenamiento de la red neuronal es la parte más difícil de Deep Learning, esto es porque:
- Necesitas un gran conjunto de datos.
- Necesitas una gran cantidad de potencia de cálculo.
Para entrenar una red neuronal, necesitamos darle las entradas de nuestro conjunto de datos, y comparar sus salidas con las salidas del conjunto de datos. Como la red aún no está entrenada, sus salidas serán erróneas.
Una vez que revisemos todo el conjunto de datos, podemos crear una función que nos muestre cuán equivocados fueron los resultados de la red con respecto a los resultados reales. Esta función se llama función de costo.
Idealmente, queremos que nuestra función de costo sea cero. Es cuando los resultados de nuestra red neuronal son los mismos que los del conjunto de datos.
Para reducir la función de costo, cambiamos los pesos entre las neuronas. Podríamos cambiarlos al azar hasta que nuestra función de costo sea baja, pero eso no es muy eficiente.
En su lugar, usaremos una técnica llamada descenso del gradiente.
El descenso del gradiente es una técnica que nos permite encontrar el mínimo de una función. En nuestro caso, buscamos el mínimo de la función de costo.
Funciona cambiando los pesos en pequeños incrementos después de cada iteración del conjunto de datos. Al calcular la derivada, o gradiente, de la función de coste en un cierto conjunto de pesos, somos capaces de ver en qué dirección está el mínimo.
Para minimizar la función de costo, es necesario iterar a través de su conjunto de datos muchas veces. Por eso necesitas una gran cantidad de potencia de cálculo.
Si hacemos un resumen de todos los pasos explicados acá tenemos:
- Deep Learning utiliza una red neuronal para imitar la inteligencia humana.
- Hay tres tipos de capas de neuronas en una red neuronal: la capa de entrada, las capas ocultas y la capa de salida.
- Las conexiones entre las neuronas están asociadas a un peso, que dicta la importancia del valor de entrada.
- Las neuronas aplican una función de activación sobre los datos para estandarizar la salida que sale de la neurona.
- Para entrenar una red neuronal, se necesita un gran conjunto de datos.
- Iterando a través del conjunto de datos y comprando las salidas se producirá una función de costo, indicando cuánto se aleja la predicción de las salidas reales.
- Después de cada iteración a través del conjunto de datos, los pesos entre las neuronas se ajustan usando del descenso del gradiente para reducir la función de costo.
¿Por qué es importante Deep Learning?
Deep Learning es importante por una razón, hemos sido capaces de lograr una precisión significativa y útil en tareas importantes. Deep Learning se ha utilizado para la clasificación de imágenes y texto durante décadas, pero se ha esforzado por cruzar el umbral, hay una precisión básica que los algoritmos deben tener para trabajar en entornos empresariales.
Deep Learning nos permite finalmente cruzar esa línea en lugares que antes no podíamos.
La visión por computador es un gran ejemplo de una tarea que Deep Learning ha transformado en algo realista para las aplicaciones de negocios. El uso de Deep Learning para clasificar y etiquetar imágenes no solo es mejor que cualquier otro algoritmo tradicional, está empezando a ser mejor que los humanos reales.
Facebook ha tenido un gran éxito en la identificación de rostros en las fotografías mediante el uso de Deep Learning. Si se pregunta si dos fotos desconocidas de rostros muestran a la misma persona, un humano lo hará bien el 97,53% de las veces, mientras que el software desarrollado por Facebook puede obtener una puntuación del 97,25% en el mismo desafío, independientemente de las variaciones en la iluminación o de si la persona en la foto está directamente frente a la cámara.
El reconocimiento de voz es otra área que ha sentido el impacto de Deep Learning. Los idiomas hablados son tan vastos y ambiguos. Baidu, uno de los principales motores de búsqueda de China, ha desarrollado un sistema de reconocimiento de voz que es más rápido y preciso que el de los humanos para producir texto en un teléfono móvil, tanto en inglés como en mandarín.
Google está usando ahora Deep Learning para manejar la energía de los centros de datos de la compañía. Han reducido sus necesidades de energía para la refrigeración en un 40%. Eso se traduce en un 15% de mejora en la eficiencia del uso de la energía para la compañía y cientos de millones de dólares en ahorros.
Deep Learning es importante porque finalmente hace estas tareas accesibles, trae cargas de trabajo previamente irrelevantes al ámbito de Machine Learning. Estamos justo en la cúspide de los desarrolladores y líderes empresariales que entienden cómo pueden utilizar Machine Learning para impulsar los resultados empresariales, y tener más tareas disponibles al alcance de la mano. Gracias a Deep Learning va a transformar la economía en las próximas décadas.
Respuesta a la pregunta del video
Opción 1: Deep Learning no es un subconjunto de Machine Learning.
Respuesta Incorrecta. Deep Learning es en realidad solo un subconjunto de Machine Learning.
Opción 2: Las neuronas se agrupan en tres tipos diferentes de capas: capa de entrada, capas ocultas, capa de salida.
Respuesta Correcta.
Opción 3: Para entrenar una red neuronal, no se necesita un gran conjunto de datos.
Respuesta Incorrecta. Para entrenar una red neuronal, se necesita un gran conjunto de datos.