Conceitos e estratégias de aprendizado por transferência
Extração de atributos versus ajuste fino, camadas congeladas e quando o aprendizado por transferência é útil.
Conceitos e estratégias de aprendizado por transferência é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
O que é aprendizagem por transferência
A aprendizagem por transferência reutiliza um modelo treinado em um grande conjunto de dados como ponto de partida para uma tarefa nova e relacionada. Em vez de aprender características visuais do zero, você reutiliza características que uma rede já aprendeu.
Isso reduz drasticamente a quantidade de dados e os recursos computacionais necessários para alcançar alta precisão.
A base do ImageNet
A maioria dos modelos de visão pré-treinados é treinada no ImageNet: aproximadamente 1,4 milhão de imagens distribuídas em 1000 classes.
Durante esse treinamento, a rede aprende uma hierarquia de características: bordas e cores nas primeiras camadas, texturas nas camadas intermediárias e partes de objetos próximas à saída. Essas características de baixo nível são transferidas bem para praticamente qualquer tarefa de imagens.
Por que as características iniciais são transferidas
As primeiras camadas convolucionais detectam padrões genéricos (bordas, manchas e gradientes) que aparecem em todas as imagens naturais, sejam elas de gatos, radiografias ou fotografias de satélite.
As camadas mais profundas se tornam mais específicas da tarefa (elas combinam essas bordas para formar partes de objetos do ImageNet). Por isso, normalmente mantemos as camadas iniciais e substituímos ou treinamos novamente as camadas posteriores.
Estratégia 1: extração de características
A extração de características congela todas as camadas da base pré-treinada para que seus pesos nunca mudem. A base funciona como um extrator fixo de características; você treina apenas uma pequena nova camada de classificação na parte superior.
Use essa estratégia quando seu conjunto de dados for pequeno e semelhante ao ImageNet. Ela é rápida e reduz o sobreajuste, pois poucos parâmetros são treináveis.
base.trainable = False
model = Sequential([
base, # frozen ImageNet features
GlobalAveragePooling2D(),
Dense(num_classes, activation="softmax") # only this trains
])Estratégia 2: ajuste fino
O ajuste fino descongela as camadas superiores da base e as treina novamente junto com a camada final, permitindo que a rede adapte suas características de alto nível aos seus dados específicos.
Use essa estratégia quando tiver mais dados ou quando seu domínio for diferente do ImageNet (por exemplo, exames médicos). Sempre faça o ajuste fino com uma taxa de aprendizado muito baixa para evitar destruir os pesos pré-treinados.
Extração de características versus ajuste fino
- Extração de características: base congelada, apenas a camada final é treinada, muito rápida, ideal para dados pequenos e semelhantes.
- Ajuste fino: camadas superiores da base descongeladas + camada final, mais lento, ideal para dados maiores ou diferentes.
Um padrão comum é fazer primeiro a extração de características e, depois, o ajuste fino em uma segunda fase, quando a camada final já estiver estabilizada.
Requisitos de volume de dados
A quantidade de dados disponível determina sua estratégia:
- Algumas centenas de imagens: apenas extração de características (congele tudo).
- Alguns milhares: extração de características e, depois, ajuste fino das poucas camadas superiores.
- Dezenas de milhares ou mais: faça o ajuste fino de uma parte maior da base, possivelmente da rede inteira.
Menos dados significa congelar mais camadas, pois menos parâmetros treináveis reduzem o risco de sobreajuste.
Substituindo a camada de classificação
Os modelos do ImageNet produzem 1000 classes. Sua tarefa provavelmente tem um número diferente, então remova a camada superior original (include_top=False) e adicione sua própria camada de classificação, dimensionada para suas classes.
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)O pré-processamento deve corresponder
Cada família de modelos pré-treinados espera entradas escaladas da mesma forma que durante o treinamento no ImageNet. Usar o preprocess_input correspondente é essencial; caso contrário, a precisão despenca.
from tensorflow.keras.applications.resnet50 import preprocess_input
# Scale pixels exactly as ResNet50 expects
x = preprocess_input(raw_image_batch)Disciplina com a taxa de aprendizado
Durante a extração de características, uma taxa de aprendizado normal (por exemplo, 1e-3) é adequada, pois apenas a camada final recém-criada é treinada.
Durante o ajuste fino, você precisa reduzi-la para algo muito pequeno, como 1e-5. Atualizações grandes apagariam os pesos do ImageNet aprendidos cuidadosamente, um efeito chamado esquecimento catastrófico.
Um fluxo de trabalho típico
- Carregue uma base pré-treinada com
include_top=False. - Congele-a e treine uma nova camada final (extração de características).
- Descongele as camadas superiores e treine novamente com uma taxa de aprendizado muito baixa (ajuste fino).
- Avalie o modelo e converta-o para implantação.
Essa abordagem em etapas proporciona alta precisão mesmo com conjuntos de dados modestos.
Verificação rápida
Teste sua compreensão das estratégias de aprendizagem por transferência.
Resumo
Você aprendeu que a aprendizagem por transferência reutiliza características pré-treinadas no ImageNet (1,4 milhão de imagens, 1000 classes). A extração de características congela a base para conjuntos de dados pequenos e semelhantes; o ajuste fino descongela as camadas superiores com uma taxa de aprendizado muito baixa para dados maiores ou diferentes.
Combine o pré-processamento com a base, substitua a camada final pelas suas classes e use um fluxo de trabalho em etapas. Em seguida, colocaremos isso em código com VGG16 e ResNet50.
Perguntas Frequentes
A aula “Conceitos e estratégias de aprendizado por transferência” é grátis?
Sim — o texto completo de “Conceitos e estratégias de aprendizado por transferência” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Conceitos e estratégias de aprendizado por transferência”?
Extração de atributos versus ajuste fino, camadas congeladas e quando o aprendizado por transferência é útil. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Conceitos e estratégias de aprendizado por transferência”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Conceitos e estratégias de aprendizado por transferência
- Usando VGG16 e ResNet50 como modelos-base
- Ajuste fino: descongelamento e retreinamento
- MobileNet e EfficientNet para implantação na borda