Este artículo es el 5° y último de nuestra serie sobre deep learning, y presenta en detalle la definición y el funcionamiento del Transfer Learning. Si quieres regresar a los artículos anteriores, aquí está la lista :
Andrew Ng, científico a cargo de Baidu y profesor de Stanford, ha anunciado en su popular tutorial NIPS 2016 que el Transfer Learning será el próximo motor de éxito comercial de Machine Learning. No es el único que ha promocionado el potencial del Transfer Learning. En este artículo, te contaremos todo sobre este concepto del que todos hablan. DataScientest te ayudará a responder a tres preguntas fundamentales :
- ¿Qué es el Transfer Learning?
- ¿Sobre cuáles estrategias se apoyan las técnicas de Transfer Learning?
- ¿Cómo se aplican concretamente para la resolución de problemas de Deep Learning?
Definición de Transfer Learning
Comencemos por definir este término tan utilizado en Data Science.
“El Transfer Learning, o aprendizaje transferido en español, se refiere al conjunto de métodos que permiten transferir conocimientos adquiridos gracias a la resolución de problemas para resolver otros problemas.”
El Transfer Learning ha tenido un gran éxito con el crecimiento del Deep Learning. Frecuentemente, los modelos utilizados en este campo necesitan grandes tiempos de cálculo y muchos recursos. Sin embargo, utilizando como punto de partida modelos pre-entrenados, el Transfer Learning permite desarrollar rápidamente modelos eficaces y resolver problemas complejos de Computer Vision o Natural Language Processing, NLP.
Como vemos, el Transfer Learning se inspira en el proceso natural de aprendizaje.
Tomemos el ejemplo de alguien que toca la guitarra y quiere aprender a tocar el piano. Esta persona puede capitalizar sus conocimientos sobre música para aprender a tocar un nuevo instrumento. De la misma manera, un modelo de reconocimiento de automóviles puede ser adaptado para reconocer camiones.
¿Sobre cuáles estrategias se apoyan las técnicas de Transfer Learning?
El Transfer Learning se basa en una idea simple, la de re explotar los conocimientos adquiridos por otras configuraciones (fuentes), para resolver un problema en particular (objetivos). En este contexto, podemos distinguir diferentes abordajes según lo que se quiere transferir, y cuando y como se realiza la transferencia. En términos generales, podemos distinguir 3 tipos de Transfer Learning :
- Aprendizaje por transferencia inductiva o “inductive transfer learning”
En este enfoque, el campo de la fuente y el objetivo es el mismo (mismos datos), pero las tareas de fuente y objetivo son diferentes aunque parecidas. La idea consiste entonces en usar los modelos existentes para reducir de manera ventajosa el campo de aplicación de los modelos posibles (sesgo del modelo), como lo ilustra la figura siguiente:
Por ejemplo, es posible utilizar un modelo entrenado para la detección de animales en imágenes para construir un modelo capaz de identificar perros.
- Aprendizaje por transferencia no supervisada, o “Unsupervised Transfer Learning”
Como en el caso del aprendizaje por transferencia inductiva, los campos de la fuente y el objetivo son similares, aunque las tareas son diferentes. Sin embargo, los datos en ambos campos no están etiquetados.
Generalmente es más fácil obtener grandes cantidades de datos no etiquetados, a partir de bases de datos y fuentes en la web por ejemplo, que datos etiquetados. Es por esto que la idea de usar el aprendizaje no supervisado combinado con el Transfer Learning ha generado mucho interés.
Por ejemplo, el Self-taught clustering es un método que permite realizar el clustering de pequeñas colecciones de datos objetivo no etiquetados, con la ayuda de una gran cantidad de datos fuente no etiquetados. Este método ha demostrado ser más efectivo que los métodos de punta tradicionalmente utilizados, en los que los datos objetivo no son etiquetados de forma pertinente.
- Aprendizaje por transferencia transductiva o “Transductive Transfer Learning”:
En este método, las tareas fuente y objetivo son similares pero sus campos correspondientes son diferentes en términos de datos o de distribuciones de probabilidad marginales.
Por ejemplo, los modelos de NLP, como los que se utiliza para el etiquetado morfosintáctico de palabras, Part-Of-Speech Tagger (POS Tagger) en inglés, son generalmente entrenados y testeados con datos de actualidad como los del Wall Street Journal. Pueden ser adaptados a datos extraídos de redes sociales, cuyo contenido es diferente pero se asemeja al de los periódicos.
¿Cómo se aplica concretamente el Transfer Learning para la resolución de problemas de Deep Learning?
Ahora que hemos definido el Transfer Learning, podemos enfocarnos en problemas de Deep Learning, que está teniendo un gran éxito últimamente.
La utilización de métodos de Transfer Learning en Deep Learning consiste principalmente en explotar redes neuronales pre-entrenadas.
Generalmente, estos modelos corresponden a algoritmos de alto rendimiento que han sido desarrollados y entrenados sobre grandes bases de datos y que son hoy de libre acceso.
En este contexto, se pueden distinguir 2 tipos de estrategias :
- Utilización de modelos pre-entrenados como extractores de features :
La arquitectura de estos modelos de Deep Learning se presenta frecuentemente bajo la forma de un compilado de capas de neuronas. Estas capas adquieren diferentes características en función del nivel en el que se sitúan. La última capa (generalmente una capa enteramente conectada, en el caso del aprendizaje supervisado), es utilizada para obtener el resultado final. La siguiente figura ilustra la arquitectura de un modelo de Deep Learning utilizado para la detección de gatos y perros. Mientras más profunda se sitúa la capa, más permite extraer features específicas.
La idea es reutilizar una red pre-entrenada sin capa final. Esta nueva red funciona como un extractor de features fijas para realizar otras tareas.
Para ilustrar esta estrategia, tomemos el caso en el que se desea crear un modelo capaz de identificar la especie de una flor a partir de su imagen. Para esto, será posible utilizar las primeras capas de un modelo de red neuronal convolutivo AlexNet, que fue inicialmente entrenado sobre la base de imágenes ImageNet para clasificar imágenes.
La idea parece simple, lo que nos lleva a preguntarnos sobre el rendimiento de este método. En la práctica, funciona muy bien, como lo demuestra la siguiente figura.
2. Ajustes de modelos pre-entrenados
Se trata de una técnica más compleja, en la que no solamente la última capa es reemplazada para realizar la clasificación o regresión, sino que también otras capas son re-entrenadas de manera selectiva. Las redes neuronales profundas son arquitecturas altamente configurables con diversos hiper-parámetros. Además, mientras que las primeras capas captaron características generales, las últimas capas se concentran principalmente en la tarea específica a cumplir, como lo muestra la siguiente figura :
La idea es congelar, es decir fijar el peso de ciertas capas durante el entrenamiento y afinar el resto para responder al problema.
Esta estrategia permite reutilizar los conocimientos en términos de arquitectura global de la red y explotar sus estados como punto de partida para el entrenamiento. Permite obtener mejores resultados en un tiempo de entrenamiento más corto.
La siguiente figura recapitula los principales métodos de Transfer Learning utilizados comúnmente en Deep Learning.
Una de las exigencias fundamentales del aprendizaje por transferencia es la presencia de modelos que funcionen bien para las tareas fuente. Por suerte, existen varias arquitecturas de Deep Learning de punta que son hoy de libre acceso. Estas se extienden sobre diferentes campos como la visión por computadora o Computer Vision, y el Tratamiento Natural del Lenguaje o NLP, dos campos muy populares en Deep Learning.
Entre los modelos más utilizados están:
Puntos claves para recordar :
El Transfer Learning corresponde a la capacidad de utilizar conocimientos existentes, desarrollados para la resolución de problemas de datos, para resolver nuevos problemas. Hemos visto varios métodos de Transfer Learning.
Para poder elegir la mejor estrategia, es importante considerar las tres preguntas siguientes:
- ¿Qué queremos transferir? Es la primera pregunta a hacerse y la más importante. Busca definir qué parte de los conocimientos se quiere transferir de la fuente al objetivo, para responder al problema de la tarea objetivo.
- ¿Cuándo queremos transferir? Pueden existir escenarios donde la aplicación de métodos de Transfer Learning lleven a una degradación de los resultados. En realidad, estos resultados dependen de la similitud entre los campos y las tareas del objetivo y la fuente.
- ¿Cómo vamos a realizar la transferencia? Una vez que hemos respondido a la pregunta qué y cuándo, podemos identificar la técnica de Transfer Learning más adaptada al problema que queremos resolver.
¡Felicidades! ¡Has terminado nuestra serie Deep Learning! Ahora ya sabes lo esencial sobre sus aplicaciones más exitosas, el funcionamiento de las redes neuronales, el CNN y ahora también el Transfer Learning! ¿Quieres aprender aún más sobre el Deep Learning? Descubre (y comienza ahora) una de nuestras formaciones especializadas