Conceptos y estrategias de aprendizaje por transferencia
Extracción de características frente a ajuste fino, capas congeladas y cuándo ayuda el aprendizaje por transferencia.
Conceptos y estrategias de aprendizaje por transferencia es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
Qué es el aprendizaje por transferencia
El aprendizaje por transferencia reutiliza un modelo entrenado con un conjunto de datos grande como punto de partida para una tarea nueva y relacionada. En lugar de aprender las características visuales desde cero, se aprovechan las características que la red ya ha aprendido.
Esto reduce drásticamente los datos y la capacidad de cómputo necesarios para alcanzar una precisión alta.
La base de ImageNet
La mayoría de los modelos de visión preentrenados se entrenan con ImageNet: aproximadamente 1,4 millones de imágenes distribuidas en 1000 clases.
Durante este entrenamiento, la red aprende una jerarquía de características: bordes y colores en las primeras capas, texturas en las intermedias y partes de objetos cerca de las capas superiores. Estas características de bajo nivel se transfieren bien a casi cualquier tarea de procesamiento de imágenes.
Por qué se transfieren las primeras características
Las primeras capas convolucionales detectan patrones genéricos (bordes, manchas y gradientes) que aparecen en todas las imágenes naturales, ya sean de gatos, radiografías o fotografías satelitales.
Las capas más profundas se vuelven más específicas de la tarea, ya que ensamblan esos bordes para formar partes de objetos de ImageNet. Por eso normalmente conservamos las primeras capas y reemplazamos o volvemos a entrenar las posteriores.
Estrategia 1: extracción de características
La extracción de características congela todas las capas de la base preentrenada, por lo que sus pesos nunca cambian. La base actúa como un extractor de características fijo; solo se entrena una nueva capa de clasificación pequeña encima.
Use esta estrategia cuando su conjunto de datos sea pequeño y similar a ImageNet. Es rápida y reduce el sobreajuste porque hay pocos parámetros entrenables.
base.trainable = False
model = Sequential([
base, # frozen ImageNet features
GlobalAveragePooling2D(),
Dense(num_classes, activation="softmax") # only this trains
])Estrategia 2: ajuste fino
El ajuste fino descongela las capas superiores de la base y las vuelve a entrenar junto con la capa de clasificación, lo que permite que la red adapte sus características de alto nivel a sus datos específicos.
Use esta estrategia cuando tenga más datos o su dominio sea diferente de ImageNet (por ejemplo, exploraciones médicas). Realice siempre el ajuste fino con una tasa de aprendizaje muy baja para evitar destruir los pesos preentrenados.
Extracción de características frente a ajuste fino
- Extracción de características: base congelada, solo se entrena la capa de clasificación, muy rápida y adecuada para datos pequeños y similares.
- Ajuste fino: se descongelan las capas superiores de la base y se entrena también la capa de clasificación; es más lento y adecuado para datos más abundantes o diferentes.
Un patrón habitual consiste en realizar primero la extracción de características y después el ajuste fino en una segunda fase, cuando la capa de clasificación ya se ha estabilizado.
Requisitos de volumen de datos
La cantidad de datos disponible determina su estrategia:
- Unos cientos de imágenes: solo extracción de características (congele todo).
- Unos pocos miles: extracción de características y después ajuste fino de las pocas capas superiores.
- Decenas de miles o más: ajuste fino de una parte mayor de la base, posiblemente de toda la red.
Con menos datos, congele más capas, ya que un menor número de parámetros entrenables reduce el riesgo de sobreajuste.
Reemplazo de la capa de clasificación
Los modelos de ImageNet generan 1000 clases. Probablemente su tarea tenga un número diferente, por lo que debe eliminar la capa superior original (include_top=False) y añadir una capa propia con el tamaño correspondiente a sus clases.
from tensorflow.keras import layers, Model
x = base.output
x = layers.GlobalAveragePooling2D()(x)
x = layers.Dropout(0.2)(x)
outputs = layers.Dense(5, activation="softmax")(x) # 5 custom classes
model = Model(base.input, outputs)El preprocesamiento debe coincidir
Cada familia de modelos preentrenados espera que las entradas se escalen de la misma forma que durante el entrenamiento con ImageNet. Es esencial usar el preprocess_input correspondiente; de lo contrario, la precisión se desploma.
from tensorflow.keras.applications.resnet50 import preprocess_input
# Scale pixels exactly as ResNet50 expects
x = preprocess_input(raw_image_batch)Disciplina con la tasa de aprendizaje
Durante la extracción de características, una tasa de aprendizaje normal (por ejemplo, 1e-3) es adecuada porque solo se entrena la capa de clasificación nueva.
Durante el ajuste fino debe reducirla a un valor muy pequeño, como 1e-5. Las actualizaciones grandes borrarían los pesos de ImageNet aprendidos cuidadosamente; este efecto se denomina olvido catastrófico.
Flujo de trabajo habitual
- Cargue una base preentrenada con
include_top=False. - Congélela y entrene una nueva capa de clasificación (extracción de características).
- Descongele las capas superiores y vuelva a entrenar con una tasa de aprendizaje muy pequeña (ajuste fino).
- Evalúe el modelo y conviértalo para su puesta en producción.
Este enfoque por etapas ofrece una precisión alta incluso con conjuntos de datos modestos.
Comprobación rápida
Compruebe su comprensión de las estrategias de aprendizaje por transferencia.
Resumen
Ha aprendido que el aprendizaje por transferencia reutiliza características preentrenadas con ImageNet (1,4 millones de imágenes y 1000 clases). La extracción de características congela la base para conjuntos de datos pequeños o similares; el ajuste fino descongela las capas superiores con una tasa de aprendizaje muy pequeña para datos más abundantes o diferentes.
Adapte el preprocesamiento a la base, reemplace la capa de clasificación para sus clases y use un flujo de trabajo por etapas. A continuación, lo pondremos en práctica con VGG16 y ResNet50.
Preguntas frecuentes
¿La lección «Conceptos y estrategias de aprendizaje por transferencia» es gratis?
Sí — el texto completo de «Conceptos y estrategias de aprendizaje por transferencia» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Conceptos y estrategias de aprendizaje por transferencia»?
Extracción de características frente a ajuste fino, capas congeladas y cuándo ayuda el aprendizaje por transferencia. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Conceptos y estrategias de aprendizaje por transferencia»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Conceptos y estrategias de aprendizaje por transferencia
- Uso de VGG16 y ResNet50 como modelos base
- Ajuste fino: descongelación y reentrenamiento
- MobileNet y EfficientNet para despliegue en el edge