¿Qué es el deep learning y cómo funciona?

¿Qué es el aprendizaje profundo?

El deep learning o en español mejor conocido como el aprendizaje profundo es un tipo de aprendizaje automático e inteligencia artificial (IA) que imita la forma en que los humanos obtienen ciertos tipos de conocimiento. El aprendizaje profundo es un elemento importante de la ciencia de datos, que incluye estadísticas y modelos predictivos. Es extremadamente beneficioso para los científicos de datos que tienen la tarea de recopilar, analizar e interpretar grandes cantidades de datos; el aprendizaje profundo hace que este proceso sea más rápido y fácil.

En su forma más simple, el aprendizaje profundo se puede considerar como una forma de automatizar el análisis predictivo. Mientras que los algoritmos tradicionales de aprendizaje automático son lineales, los algoritmos de aprendizaje profundo se apilan en una jerarquía de creciente complejidad y abstracción.

Para entender el aprendizaje profundo, imagina a un niño pequeño cuya primera palabra es perro. El niño aprende lo que es un perro, y no lo es, señalando objetos y diciendo la palabra perro. El padre dice: “Sí, eso es un perro”, o “No, eso no es un perro”. A medida que el niño pequeño continúa señalando objetos, se vuelve más consciente de las características que poseen todos los perros. Lo que hace el niño pequeño, sin saberlo, es aclarar una abstracción compleja, el concepto de perro, construyendo una jerarquía en la que cada nivel de abstracción se crea con el conocimiento que se obtuvo de la capa anterior de la jerarquía.

Cómo funciona el aprendizaje profundo

Los programas informáticos que utilizan el aprendizaje profundo pasan por el mismo proceso que el niño pequeño aprende a identificar al perro. Cada algoritmo en la jerarquía aplica una transformación no lineal a su entrada y utiliza lo que aprende para crear un modelo estadístico como salida. Las iteraciones continúan hasta que la salida haya alcanzado un nivel aceptable de precisión. El número de capas de procesamiento a través de las cuales deben pasar los datos es lo que inspiró profundamente la etiqueta.

En el aprendizaje automático tradicional, el proceso de aprendizaje es supervisado, y el programador tiene que ser extremadamente específico al decirle a la computadora qué tipos de cosas debe estar buscando para decidir si una imagen contiene un perro o no contiene un perro. Este es un proceso laborioso llamado extracción de características, y la tasa de éxito de la computadora depende completamente de la capacidad del programador para definir con precisión un conjunto de características para perros. La ventaja del aprendizaje profundo es que el programa construye la característica establecida por sí mismo sin supervisión. El aprendizaje no supervisado no solo es más rápido, sino que generalmente es más preciso.

Inicialmente, el programa de computadora podría recibir datos de entrenamiento, un conjunto de imágenes para las que un humano ha etiquetado a cada perro de imagen o no perro con metaetiquetas. El programa utiliza la información que recibe de los datos de entrenamiento para crear un conjunto de características para perros y construir un modelo predictivo. En este caso, el modelo que la computadora crea por primera vez podría predecir que cualquier cosa en una imagen que tenga cuatro patas y una cola debe etiquetarse como perro. Por supuesto, el programa no conoce las etiquetas de cuatro patas cola. Simplemente buscará patrones de píxeles en los datos digitales. Con cada iteración, el modelo predictivo se vuelve más complejo y preciso.

A diferencia del niño pequeño, que tardará semanas o incluso meses en entender el concepto de perro, a un programa de computadora que utiliza algoritmos de aprendizaje profundo se le puede mostrar un conjunto de entrenamiento y ordenar millones de imágenes, identificando con precisión qué imágenes tienen perros en pocos minutos.

Para lograr un nivel aceptable de precisión, los programas de aprendizaje profundo requieren acceso a cantidades inmensas de datos de capacitación y potencia de procesamiento, ninguno de los cuales estuvo fácilmente disponible para los programadores hasta la era del big data y la computacción en la nubec. Debido a que la programación de aprendizaje profundo puede crear modelos estadísticos complejos directamente a partir de su propia producción iterativa, es capaz de crear modelos predictivos precisos a partir de grandes cantidades de datos no etiquetados y no estructurados. Esto es importante ya que el Internet de las cosas (IoT) continúa volviéndose más generalizado porque la mayoría de los datos que los humanos y las máquinas crean no están estructurados y no están etiquetados.

Métodos de aprendizaje profundo

Se pueden utilizar varios métodos para crear modelos sólidos de aprendizaje profundo. Estas técnicas incluyen la desintegración de la tasa de aprendizaje, el aprendizaje por transferencia, el entrenamiento desde cero y la deserción.

Decaimiento de la tasa de aprendizaje. La tasa de aprendizaje es un hiperparámetro, un factor que define el sistema o establece las condiciones para su funcionamiento antes del proceso de aprendizaje, que controla cuánto cambio experimenta el modelo en respuesta al error estimado cada vez que se alteran los pesos del modelo. Las tasas de aprendizaje que son demasiado altas pueden resultar en procesos de entrenamiento inestables o en el aprendizaje de un conjunto de pesos subóptimos. Las tasas de aprendizaje que son demasiado pequeñas pueden producir un largo proceso de entrenamiento que tiene el potencial de quedarse atascado.

El método de desintegración de la tasa de aprendizaje, también llamado recocido de la tasa de aprendizaje tasas de aprendizaje adaptativas, es el proceso de adaptar la tasa de aprendizaje para aumentar el rendimiento y reducir el tiempo de capacitación. Las adaptaciones más fáciles y comunes de la tasa de aprendizaje durante la capacitación incluyen técnicas para reducir la tasa de aprendizaje con el tiempo.

Transferencia de aprendizaje. Este proceso implica perfeccionar un modelo previamente entrenado; requiere una interfaz con los componentes internos de una red preexistente. En primer lugar, los usuarios alimentan a la red existente nuevos datos que contienen clasificaciones previamente desconocidas. Una vez que se realizan ajustes en la red, se pueden realizar nuevas tareas con habilidades de categorización más específicas. Este método tiene la ventaja de requerir muchos menos datos que otros, reduciendo así el tiempo de cálculo a minutos u horas.

Entrenamiento desde cero. Este método requiere que un desarrollador recopile un gran conjunto de datos etiquetados y configure una arquitectura de red que pueda aprender las características y el modelo. Esta técnica es especialmente útil para nuevas aplicaciones, así como para aplicaciones con un gran número de categorías de salida. Sin embargo, en general, es un enfoque menos común, ya que requiere cantidades excesivas de datos, lo que hace que la capacitación tome días o semanas.

Abandono. Este método intenta resolver el problema del sobreajuste en redes con grandes cantidades de parámetros eliminando aleatoriamente las unidades y sus conexiones desde la red neuronal durante el entrenamiento. Se ha demostrado que el método de abandono puede mejorar el rendimiento de las redes neuronales en tareas de aprendizaje supervisado en áreas como el reconocimiento del habla, la clasificación de documentos y la biología computacional.

¿Redes neuronales de aprendizaje profundo?

Un tipo de algoritmo avanzado de aprendizaje automático, conocido como red neuronal artificial, sustenta la mayoría de los modelos de aprendizaje profundo. Como resultado, el aprendizaje profundo a veces puede denominarse aprendizaje neuronal profundo red neuronal profunda.

Las redes neuronales vienen en varias formas diferentes, incluidas las redes neuronales recurrentes, las redes neuronales convolucionales, las redes neuronales artificiales y las redes neuronales de avance, y cada una tiene beneficios para casos de uso específicos. Sin embargo, todos funcionan de maneras algo similares, introduciendo datos y dejando que el modelo averigüe por sí mismo si ha tomado la interpretación o decisión correcta sobre un elemento de datos determinado.

Las redes neuronales implican un proceso de ensayo y error, por lo que necesitan enormes cantidades de datos sobre los que entrenar. No es casualidad que las redes neuronales se hicieran populares solo después de que la mayoría de las empresas adoptaran el análisis de big data y acumularan grandes almacenes de datos. Debido a que las primeras iteraciones del modelo implican conjeturas algo educadas sobre el contenido de una imagen o partes del habla, los datos utilizados durante la etapa de entrenamiento deben etiquetarse para que el modelo pueda ver si su conjetura fue precisa. Esto significa que, aunque muchas empresas que utilizan big data tienen grandes cantidades de datos, los datos no estructurados son menos útiles. Los datos no estructurados solo se pueden analizar mediante un modelo de aprendizaje profundo una vez que han sido entrenados y alcanzan un nivel aceptable de precisión, pero los modelos de aprendizaje profundo no pueden entrenarse en datos no estructurados.

Ejemplos de aprendizaje profundo

Debido a que los modelos de aprendizaje profundo procesan la información de maneras similares al cerebro humano, se pueden aplicar a muchas tareas que hacen las personas. El aprendizaje profundo se utiliza actualmente en las herramientas de reconocimiento de imágenes más comunes, el procesamiento del lenguaje natural (PNL) y el software de reconocimiento de voz. Estas herramientas están empezando a aparecer en aplicaciones tan diversas como los automóviles autónomos y los servicios de traducción de idiomas.

Los casos de uso hoy en día para el aprendizaje profundo incluyen todo tipo de aplicaciones de análisis de big data, especialmente aquellas centradas en la PNL, la traducción de idiomas, el diagnóstico médico, las señales comerciales del mercado de valores, la seguridad de la red y el reconocimiento de imágenes.

Los campos específicos en los que se está utilizando actualmente el aprendizaje profundo incluyen los siguientes:

  • Experiencia del cliente (CX). Los modelos de aprendizaje profundo ya se están utilizando para chatbots. Y, a medida que continúa madurando, se espera que se implemente el aprendizaje profundo en varias empresas para mejorar la experiencia de usuario y aumentar la satisfacción del cliente.
  • Generación de texto. A las máquinas se les está enseñando la gramática y el estilo de un fragmento de texto y luego están utilizando este modelo para crear automáticamente un texto completamente nuevo que coincida con la ortografía, gramática y estilo adecuados del texto original.
  • Aeroespacial y militar. El aprendizaje profundo se está utilizando para detectar objetos de satélites que identifican áreas de interés, así como zonas seguras o inseguras para las tropas.
  • Automatización industrial. El aprendizaje profundo está mejorando la seguridad de los trabajadores en entornos como fábricas y almacenes al proporcionar servicios que detectan automáticamente cuando un trabajador u objeto se está acercando demasiado a una máquina.
  • Agregando color. El color se puede agregar a las fotos y vídeos en blanco y negro utilizando modelos de aprendizaje profundo. En el pasado, este era un proceso manual que requería mucho tiempo.
  • Investigación médica. Los investigadores del cáncer han comenzado a implementar el aprendizaje profundo en su práctica como una forma de detectar automáticamente las células cancerosas.
  • Visión por ordenador. El aprendizaje profundo ha mejorado en gran medida la visión por computadora, proporcionando a las computadoras una precisión extrema para la detección de objetos y la clasificación, restauración y segmentación de imágenes.

Limitaciones y desafíos

La mayor limitación de los modelos de aprendizaje profundo es que aprenden a través de observaciones. Esto significa que solo saben lo que había en los datos en los que entrenaron. Si un usuario tiene una pequeña cantidad de datos o proviene de una fuente específica que no es necesariamente representativa del área funcional más amplia, los modelos no aprenderán de una manera que sea generalizable.

La cuestión de los sesgos también es un problema importante para los modelos de aprendizaje profundo. Si un modelo se entrena en datos que contienen sesgos, el modelo reproducirá esos sesgos en sus predicciones. Este ha sido un problema molesto para los programadores de aprendizaje profundo porque los modelos aprenden a diferenciarse en función de variaciones sutiles en los elementos de datos. A menudo, los factores que determina que son importantes no se dejan explícitamente claros para el programador. Esto significa, por ejemplo, que un modelo de reconocimiento facial podría hacer determinaciones sobre las características de las personas basadas en cosas como la raza o el género sin que el programador lo sepa.

La tasa de aprendizaje también puede convertirse en un gran desafío para los modelos de aprendizaje profundo. Si la velocidad es demasiado alta, entonces el modelo convergerá demasiado rápido, produciendo una solución menos que óptima. Si la tasa es demasiado baja, entonces el proceso puede atascarse y será aún más difícil llegar a una solución.

Los requisitos de hardware para los modelos de aprendizaje profundo también pueden crear limitaciones. Se requieren unidades de procesamiento gráfico (GPU) multinúcleo de alto rendimiento y otras unidades de procesamiento similares para garantizar una mayor eficiencia y un menor consumo de tiempo. Sin embargo, estas unidades son caras y consumen grandes cantidades de energía. Otros requisitos de hardware incluyen memoria de acceso aleatorio y una unidad de disco duro (HDD) o una unidad de estado sólido (SSD) basada en RAM.

Otras limitaciones y desafíos incluyen los siguientes:

  • El aprendizaje profundo requiere grandes cantidades de datos. Además, los modelos más potentes y precisos necesitarán más parámetros, lo que, a su vez, requerirá más datos.
  • Una vez entrenados, los modelos de aprendizaje profundo se vuelven inflexibles y no pueden manejar la multitarea. Pueden ofrecer soluciones eficientes y precisas, pero solo a un problema específico. Incluso resolver un problema similar requeriría volver a entrenar el sistema.
  • Cualquier aplicación que requiera razonamiento, como programar o aplicar el método científico, la planificación a largo plazo y la manipulación de datos tipo algoritmo están completamente más allá de lo que pueden hacer las técnicas actuales de aprendizaje profundo, incluso con datos grandes.

Aprendizaje profundo vs. aprendizaje automático

El aprendizaje profundo es un subconjunto del aprendizaje automático que se diferencia por la forma en que resuelve los problemas. El aprendizaje automático requiere un experto en dominios para identificar la mayoría de las características aplicadas. Por otro lado, el aprendizaje profundo entiende las características gradualmente, eliminando así la necesidad de experiencia en el dominio. Esto hace que los algoritmos de aprendizaje profundo tarden mucho más en entrenarse que los algoritmos de aprendizaje automático, que solo necesitan de unos segundos a unas pocas horas. Sin embargo, lo contrario es cierto durante las pruebas. Los algoritmos de aprendizaje profundo tardan mucho menos tiempo en ejecutar pruebas que los algoritmos de aprendizaje automático, cuyo tiempo de prueba aumenta junto con el tamaño de los datos.

Además, el aprendizaje automático no requiere las mismas máquinas costosas y de alta gama y GPU de alto rendimiento que el aprendizaje profundo.

Al final, muchos científicos de datos eligen el aprendizaje automático tradicional en lugar del aprendizaje profundo debido a su interpretabilidad superior o la capacidad de dar sentido a las soluciones. También se prefieren algoritmos de aprendizaje automático cuando los datos son pequeños.

Los casos en los que el aprendizaje profundo se vuelve preferible incluyen situaciones en las que hay una gran cantidad de datos, una falta de comprensión del dominio para la introspección de características o problemas complejos, como el reconocimiento de voz y la PNL.

Brita Inteligencia Artificial, empresa en México de Deep Learning – Aprendizaje Profundo