Transfer Learning

El aprendizaje de transferencia ( TL ) es un problema de investigación en el aprendizaje automático (ML) que se centra en aplicar el conocimiento adquirido al resolver una tarea a una tarea relacionada. [1] Por ejemplo, el conocimiento adquirido al aprender a reconocer automóviles podría aplicarse al tratar de reconocer camiones. Este tema está relacionado con la literatura psicológica sobre la transferencia del aprendizaje , aunque los vínculos prácticos entre los dos campos son limitados. Reutilizar/transferir información de tareas previamente aprendidas a nuevas tareas tiene el potencial de mejorar significativamente la eficiencia del aprendizaje. 


Transferir el aprendizaje consiste en tomar características aprendidas en un problema y aprovecharlas en un problema nuevo similar. Por ejemplo, las características de un modelo que ha aprendido a identificar mapaches pueden ser útiles para poner en marcha un modelo destinado a identificar tanukis.

El aprendizaje de transferencia generalmente se realiza para tareas en las que su conjunto de datos tiene muy pocos datos para entrenar un modelo a gran escala desde cero.

La encarnación más común del aprendizaje por transferencia en el contexto del aprendizaje profundo es el siguiente flujo de trabajo:

  • Tome capas de un modelo previamente entrenado.
  • Congélalos para evitar destruir la información que contienen durante futuras rondas de entrenamiento.
  • Agregue algunas capas nuevas y entrenables encima de las capas congeladas. Aprenderán a convertir las características antiguas en predicciones sobre un nuevo conjunto de datos.
  • Entrene las nuevas capas en su conjunto de datos.

Un último paso opcional es el ajuste fino , que consiste en descongelar todo el modelo que obtuvo anteriormente (o parte de él) y volver a entrenarlo con los nuevos datos con una tasa de aprendizaje muy baja. Esto puede potencialmente lograr mejoras significativas, al adaptar de manera incremental las funciones preentrenadas a los nuevos datos.

Primero, repasaremos la trainableAPI de Keras en detalle, que subyace en la mayoría de los flujos de trabajo de ajuste y aprendizaje de transferencia. Luego, demostraremos el flujo de trabajo típico al tomar un modelo previamente entrenado en el conjunto de datos de ImageNet y volver a entrenarlo en el conjunto de datos de clasificación "gatos contra perros" de Kaggle.


Esto está adaptado de Aprendizaje profundo con Python y la publicación de blog de 2016 "construir modelos de clasificación de imágenes potentes con muy pocos datos" .