Transfer learning es una herramienta de Deep Learning que utiliza el conocimiento aprendido en resolver un problema determinado para resolver otro problema distinto pero relacionado. Por ejemplo, el conocimiento aprendido por una red neuronal que reconoce gatos se puede aplicar a otro modelo cuyo objetivo es reconocer perros.
Transferencia de aprendizaje
En la práctica se usa un modelo pre entrenado para resolver otro problema. Las capas ocultas del modelo pre entrenado han aprendido a reconocer patrones útiles para identificar patrones visuales. Los datos pasan a través de las capas del modelo, que extraen features; en otras palabras, las capas ocultas de la red neuronal transforman los datos, generando nuevos datos que tienen una mayor capacidad para predecir que los datos brutos. Luego, la última capa de la red neuronal toma dichas features y realiza una predicción. La información que ha aprendido la red neuronal se puede describir como la capacidad de transformar datos brutos en features y luego hacer una predicción.
Cómo hacer la transferencia de aprendizaje
Para utilizar la información aprendida por el modelo pre entrenado, se carga dicho modelo y se elimina la última capa, aquella que realiza la predicción. Esta capa se reemplaza por una nueva capa no entrenada. A continuación, se inmovilizan los parámetros de las capas del modelo pre entrenado, lo que significa que sus parámetros serán no entrenables, permanecerán fijos durante el nuevo entrenamiento. Finalmente se entrena el modelo para que la nueva capa aprenda a resolver el nuevo problema en base a las features generadas por las capas del modelo pre entrenado.
![An Ultimate Guide To Transfer Learning In NLP](https://qjjnh3a9hpo1nukrg1fwoh71-wpengine.netdna-ssl.com/wp-content/uploads/2019/12/cover_transfer_learning_1600px_web-1024x512.jpg)
¿Cuándo es deseable utilizar transfer learning?
Es deseable usar transferencia de aprendizaje cuando ambos problemas, el antiguo y el nuevo, tienen un mismo input (por ejemplo, fotos); cuando el modelo antiguo se entrenó con muchos más datos que los que se tienen disponibles para resolver el nuevo problema; y cuando las features de bajo nivel del modelo antiguo pueden ser útiles para resolver el nuevo problema.
Por ejemplo, es posible que no tengamos suficientes fotos de perros como para entrenar un modelo sofisticado. Asimismo, es posible que no tengamos el tiempo y la capacidad computacional necesaria para entrenar un modelo complejo. En este caso usar un modelo pre entrenado es fundamental, ya que podremos entrenar el nuevo modelo y obtener buenos resultados con pocos datos e iteraciones.
Conclusión
La transferencia de aprendizaje es una importante herramienta en el modelamiento de redes neuronales, ya que nos permite utilizar el conocimiento aprendido en modelos pre entrenados para resolver tareas nuevas pero similares. De esta manera, podemos usar modelos muy sofisticados, que requieren una gran cantidad de datos, tiempo y capacidad computacional para ser entrenados, y así obtener muy buenos resultados en la resolución de nuestros problemas.