talón ¿Qué es el aprendizaje por transferencia? - Unite.AI
Contáctanos
Clase magistral de IA:

AI 101

¿Qué es el aprendizaje por transferencia?

mm
Actualizado on

¿Qué es el aprendizaje por transferencia?

Cuando se practica el aprendizaje automático, entrenar un modelo puede llevar mucho tiempo. Crear una arquitectura de modelo desde cero, entrenar el modelo y luego modificarlo requiere una enorme cantidad de tiempo y esfuerzo. Una forma mucho más eficiente de entrenar un modelo de aprendizaje automático es utilizar una arquitectura que ya se haya definido, potencialmente con pesos que ya se hayan calculado. Esta es la idea principal detrás transferencia de aprendizaje, tomando un modelo que ya se ha utilizado y reutilizándolo para una nueva tarea.

Antes de profundizar en las diferentes formas en que se puede utilizar el aprendizaje por transferencia, tomemos un momento para comprender por qué el aprendizaje por transferencia es una técnica tan poderosa y útil.

Resolviendo un problema de aprendizaje profundo

Cuando intenta resolver un problema de aprendizaje profundo, como crear un clasificador de imágenes, debe crear una arquitectura de modelo y luego entrenar el modelo con sus datos. El entrenamiento del clasificador de modelos implica ajustar los pesos de la red, un proceso que puede llevar horas o incluso días según la complejidad del modelo y del conjunto de datos. El tiempo de entrenamiento se escalará de acuerdo con el tamaño del conjunto de datos y la complejidad de la arquitectura del modelo.

Si el modelo no logra el tipo de precisión necesaria para la tarea, es probable que sea necesario ajustar el modelo y, luego, será necesario volver a entrenarlo. Esto significa más horas de capacitación hasta que se pueda encontrar una arquitectura, una duración de la capacitación y una partición del conjunto de datos óptimas. Cuando considera cuántas variables deben estar alineadas entre sí para que un clasificador sea útil, tiene sentido que los ingenieros de aprendizaje automático siempre estén buscando formas más fáciles y eficientes de entrenar e implementar modelos. Por esta razón, se creó la técnica de aprendizaje por transferencia.

Después de diseñar y probar un modelo, si el modelo resultó útil, se puede guardar y reutilizar más tarde para problemas similares.

Tipos de aprendizaje de transferencia

En general, hay dos diferentes tipos de transferencia de aprendizaje: desarrollo de un modelo desde cero y uso de un modelo previamente entrenado.

Cuando desarrolle un modelo desde cero, deberá crear una arquitectura de modelo capaz de interpretar sus datos de entrenamiento y extraer patrones de ellos. Después de entrenar el modelo por primera vez, es probable que deba realizar cambios en él para obtener el rendimiento óptimo del modelo. A continuación, puede guardar la arquitectura del modelo y utilizarla como punto de partida para un modelo que se utilizará en una tarea similar.

En la segunda condición, el uso de un modelo preentrenado, simplemente tiene que seleccionar un modelo preentrenado para utilizar. Muchas universidades y equipos de investigación pondrán las especificaciones de su modelo a disposición para uso general. La arquitectura del modelo se puede descargar junto con los pesos.

Cuando se lleva a cabo el aprendizaje de transferencia, se puede usar toda la arquitectura y los pesos del modelo para la tarea en cuestión, o solo se pueden usar ciertas partes/capas del modelo. Usar solo parte del modelo preentrenado y entrenar el resto del modelo se conoce como ajuste fino.

Puesta a punto de una red

El ajuste fino de una red describe el proceso de entrenar solo algunas de las capas de una red. Si un nuevo conjunto de datos de entrenamiento es muy parecido al conjunto de datos usado para entrenar el modelo original, se pueden usar muchos de los mismos pesos.

La cantidad de capas en la red que se deben descongelar y volver a entrenar debe escalar de acuerdo con el tamaño del nuevo conjunto de datos. Si el conjunto de datos en el que se está entrenando es pequeño, es una mejor práctica mantener la mayoría de las capas tal como están y entrenar solo las últimas capas. Esto es para evitar que la red se sobreajuste. Alternativamente, las capas finales de la red preentrenada se pueden eliminar y se agregan nuevas capas, que luego se entrenan. Por el contrario, si el conjunto de datos es un conjunto de datos grande, potencialmente más grande que el conjunto de datos original, se debe volver a entrenar toda la red. Para utilizar la red como un extractor de características fijas, la mayor parte de la red se puede usar para extraer las características, mientras que solo la capa final de la red se puede descongelar y entrenar.

Cuando esté ajustando una red, recuerde que las capas anteriores de ConvNet son las que contienen la información que representa las características más genéricas de las imágenes. Estas son características como bordes y colores. Por el contrario, las capas posteriores de ConvNet contienen los detalles que son más específicos de las clases individuales contenidas en el conjunto de datos en el que se entrenó inicialmente el modelo. Si está entrenando un modelo en un conjunto de datos que es bastante diferente del conjunto de datos original, probablemente querrá usar las capas iniciales del modelo para extraer características y simplemente volver a entrenar el resto del modelo.

Transferir ejemplos de aprendizaje

Las aplicaciones más comunes del aprendizaje por transferencia son probablemente aquellas que utilizan datos de imágenes como entradas. Estas son a menudo tareas de predicción/clasificación. El camino Redes neuronales convolucionales interpretar datos de imágenes se presta a reutilizar aspectos de los modelos, ya que las capas convolucionales a menudo distinguen características muy similares. Un ejemplo de un problema de aprendizaje de transferencia común es la tarea ImageNet 1000, un conjunto de datos masivo lleno de 1000 clases diferentes de objetos. Las empresas que desarrollan modelos que logran un alto rendimiento en este conjunto de datos a menudo lanzan sus modelos bajo licencias que permiten que otros los reutilicen. Algunos de los modelos que han resultado de este proceso incluyen el modelo ResNet de Microsoft, el modelo de inicio de Google y el Modelo Oxford VGG grupo.

Blogger y programador con especialidades en Aprendizaje automático (Machine learning & LLM) y Aprendizaje profundo temas Daniel espera ayudar a otros a usar el poder de la IA para el bien social.