Transfer learning ব্যবহারিক
এই পাঠে যা শিখবেন
- Transfer learning কেন কাজ করে
- Feature extraction vs fine-tuning
- Layer freezing strategy
- Learning rate scheduling — discriminative LR
১ · কেন transfer learning?
Practical CV-তে — ImageNet-এর মতো ১.৪M labeled image কেউ collect করে না। আপনার Bangla street sign dataset হয়তো ১০০০। Scratch থেকে train করলে — overfit.
Transfer learningTransfer Learningএকটি task-এ trained model-এর knowledge অন্য task-এ ব্যবহার। CV-তে ImageNet-এ pretrained CNN আপনার specific task-এ adapt — gold standard. idea: ImageNet-এ trained model edge, texture, shape — universal feature শিখেছে। আপনার task-এ এই foundation reuse.
Early layer features (edge, color) universal — যেকোনো image task-এ relevant. Late layer features task-specific. Transfer = early layer reuse, late layer retrain.
২ · তিনটি strategy
(ক) Feature extraction
- সব layer freeze (no gradient).
- শুধু final classifier (FC) train.
- Use case: very small dataset (<1K), domain ImageNet-এর কাছাকাছি।
(খ) Fine-tuning (full)
- সব layer trainable, কিন্তু low learning rate.
- Use case: medium dataset (5K-50K), domain similar.
- Risk: pretrained weight destroy যদি LR বেশি।
(গ) Gradual unfreeze (discriminative LR)
- প্রথমে head only train (epoch 1-3).
- তারপর — last block unfreeze, lower LR.
- ক্রমশ deeper unfreeze.
- Use case: large dataset, domain ImageNet থেকে far.
৩ · কখন কোন strategy
| Dataset size | Domain similarity | Strategy |
|---|---|---|
| <1K | Similar | Feature extraction |
| <1K | Different | Feature extract + augment + simpler model |
| 1K-10K | Similar | Head + fine-tune last block |
| 10K+ | Similar | Full fine-tune, low LR |
| 10K+ | Different | Gradual unfreeze, discriminative LR |
| 100K+ | Very different | Pretrain initialization, full retrain |
৪ · ImageNet pretrained model পাওয়া
- torchvision.models — ResNet, EfficientNet, ViT, ConvNeXt.
- timm (Python lib): 1000+ models — Ross Wightman maintained.
- Hugging Face Hub: বহু custom-trained model.
- OpenCLIP, DINOv2: self-supervised foundation models.
৫ · PyTorch implementation
import torch
import torch.nn as nn
from torchvision.models import resnet50, ResNet50_Weights
# Pretrained ResNet-50
model = resnet50(weights=ResNet50_Weights.IMAGENET1K_V2)
# Strategy A — feature extraction
def setup_feature_extract(model, num_classes=2):
for p in model.parameters():
p.requires_grad = False
# Replace classifier head
model.fc = nn.Linear(model.fc.in_features, num_classes)
return model
# Strategy B — gradual unfreeze
def setup_gradual(model, num_classes=2):
# Freeze all
for p in model.parameters():
p.requires_grad = False
# Unfreeze last block + head
for p in model.layer4.parameters():
p.requires_grad = True
model.fc = nn.Linear(model.fc.in_features, num_classes)
return model
# Discriminative LR optimizer
def get_optimizer(model, head_lr=1e-3, body_lr=1e-4):
return torch.optim.Adam([
{'params': model.layer1.parameters(), 'lr': body_lr * 0.1},
{'params': model.layer2.parameters(), 'lr': body_lr * 0.3},
{'params': model.layer3.parameters(), 'lr': body_lr},
{'params': model.layer4.parameters(), 'lr': body_lr * 3},
{'params': model.fc.parameters(), 'lr': head_lr},
])
m = setup_gradual(model, num_classes=10)
opt = get_optimizer(m)
print("Trainable params:", sum(p.numel() for p in m.parameters() if p.requires_grad))
৬ · Practical tips
- Same preprocessing: pretraining-এর mean/std normalization same use.
- Input size: 224×224 ImageNet standard. ভিন্ন size — adaptive pool.
- Batch size: 32-128 typical. BatchNorm sensitive — খুব ছোট না।
- BN-এ eval mode (inference): running stats use, not batch.
- Freeze BN-ও: small dataset-এ — BN running stat freeze (otherwise drift).
- Augmentation always: small dataset-এ heavy augmentation.
৭ · Domain shift
- Natural image: ImageNet pretrain ideal.
- Medical imaging: partial transfer ভালো — early layer. Domain-specific pretrain (RadImageNet) better.
- Satellite/aerial: rotation augmentation ভিন্ন domain — extra fine-tune.
- Document/OCR: ImageNet limited transfer — text image very different.
- Microscopy: domain pretrain (BiomedCLIP) better.
৮ · কী model choose?
- Quick baseline: ResNet-18.
- Strong baseline: ResNet-50, EfficientNet-B0.
- Mobile target: MobileNetV3, EfficientNet-B0.
- Maximum accuracy: ConvNeXt, EfficientNet-B5.
- Dense prediction (segmentation): ResNet-50 backbone + U-Net decoder.
৯ · Beyond ImageNet
- CLIP: 400M image-text pair. Zero-shot classification possible.
- DINOv2: 1.4B images, self-supervised. SOTA features.
- SAM: Segment anything — segmentation foundation.
- RadImageNet: medical imaging-specific.
- iNaturalist: nature/wildlife images.
ভাবনার প্রশ্ন
প্র ০১ Transfer learning ImageNet pretrain থেকে — আজকের CLIP, DINOv2 foundation models কীভাবে এই paradigm বদলে দিচ্ছে?
২০২২-পরবর্তী era-এ "transfer learning"-এর অর্থ ক্রমশ বদলাচ্ছে।
ImageNet pretrain era:
- Supervised, 1.4M label.
- 1000-class bias.
- Natural photo domain.
- End task: fine-tune head.
Foundation model era:
- CLIP (2021, OpenAI): 400M image-text pair. Zero-shot classification.
- DINOv2 (2023, Meta): 1.4B images, self-supervised. Feature linear-probe SOTA.
- SAM (2023, Meta): 11M images, 1B masks. Segmentation foundation.
- EVA-02 (2023): SOTA on 28+ task.
Paradigm shift:
- Model size: 60M → 1B+.
- Data: 1M → 1B+.
- Pretrain method: supervised → self-supervised.
- Use mode: fine-tune → linear probe / zero-shot.
Zero-shot CLIP example:
import clip
model, preprocess = clip.load("ViT-L/14")
image = preprocess(img).unsqueeze(0)
texts = ["a photo of a cat", "a photo of a dog"]
text_tokens = clip.tokenize(texts)
# Zero-shot — no fine-tune needed
similarity = model(image, text_tokens)
Implications:
- Less data needed: few-shot or zero-shot work.
- Better transfer: diverse pretrain → robust.
- Multimodal: vision + language together.
- API-mediated: finetune complex, prompt-engineer instead.
Linear probe vs fine-tune:
- Linear probe — frozen features, train linear classifier.
- DINOv2 linear probe ImageNet 86%.
- Often competitive with full fine-tune.
- 1000x faster, no catastrophic forgetting.
Bangladesh deployment:
- CLIP-based — Bangla text not always supported (multilingual variant দরকার)।
- DINOv2 features — universal, language-independent.
- Bangla-specific finetune cost lower.
Practical recommendation 2026:
- Start: linear probe DINOv2.
- If linear probe insufficient — full fine-tune.
- Mobile — distill DINOv2 to smaller.
- Multi-modal — CLIP/SigLIP.
মূল উপলব্ধি: "Transfer learning" → "foundation model adaptation". Same idea, different scale. ImageNet pretrain — first generation. Foundation model — second. Multimodal generalist — third.
প্র ০২ "Catastrophic forgetting" — fine-tuning-এর সময় pretrain knowledge হারিয়ে যাওয়া। কীভাবে rotate করবেন?
এটি transfer learning-এর সবচেয়ে underestimated risk. Aggressive fine-tune-এ pretrained features destroy.
Catastrophic forgetting symptom:
- Train accuracy high, but ImageNet-style images-এ model fail.
- Domain-specific overfitting — generalize ভাঙে।
- Linear probe accuracy drop after fine-tune.
Causes:
- High learning rate — pretrained weight wipe.
- Long training — overfit small dataset.
- Aggressive augmentation — distribution shift.
- BatchNorm running stats drift.
Mitigations:
- Low LR: 1e-4 to 1e-5 (vs 1e-3 scratch).
- Discriminative LR: early layer slower.
- Early stopping: validation accuracy plateau-এ stop.
- Limited unfreezing: last 2-3 block only.
- Weight decay: regularize toward zero.
- Frozen BN: running stats keep.
Advanced techniques:
- Elastic Weight Consolidation (EWC): important weight regularize.
- Knowledge distillation: student match teacher (pretrained) on auxiliary data.
- LoRA (Low-Rank Adaptation): small additional weights, original frozen.
- Adapter layers: small task-specific layer insert.
- Prompt tuning: input prompt learn, model frozen.
LoRA detailed:
- $W' = W + \Delta W$, $\Delta W = AB$ (rank $r$)।
- $r \ll d$ — much fewer parameter.
- Original $W$ frozen.
- Originally for LLM, now CV-তেও popular.
- Easy to swap multiple task-specific LoRAs.
Multi-task fine-tune:
- Original ImageNet objective + new task — joint loss.
- Forgetting prevent.
- Computational cost বেশি।
Validation strategy:
- Two test set:
- (a) Target domain (your task).
- (b) Source domain (ImageNet sample).
- (b) accuracy যদি drop — forgetting evidence.
মূল উপলব্ধি: Fine-tune ≠ free. Pretrained weight valuable knowledge. Preserve consciously — discriminative LR, regularization, gentle adaptation.
প্র ০৩ Bangla street sign detect করতে চান — 200 labeled image. কী strategy? Domain difference কতটুকু matter?
এটি real Bangladesh CV problem. Hidayat-er ola, Pathao-র route assist — এই ধরনের use case.
Dataset profile:
- 200 labeled image — খুব ছোট।
- Bangla text + symbol — ImageNet-এ rare.
- Outdoor lighting variability.
- Mobile camera quality.
Step-by-step approach:
- Augmentation aggressive: rotation ±10°, brightness ±25%, perspective, weather (rain/fog) augment. 200 → effective 5000+.
- Pretrained model: EfficientNet-B0 ImageNet OR DINOv2-base.
- Strategy: feature extract + small head:
- Freeze backbone.
- Add small MLP (256 → num_classes).
- Train with heavy regularization.
- If insufficient: unfreeze last block, very low LR (1e-5).
Domain-specific concerns:
- Bangla character: ImageNet-এ rare.
- Solution: synthetic data — rendered Bangla sign on natural background.
- Lighting: outdoor + tropical — augment heavy.
- Occlusion: trees, vehicles, dust — Random Erasing/CutOut.
- Camera quality: low-res augment.
Better than ImageNet-pretrain:
- OpenStreetMap: sign images public.
- Mapillary: street-view image dataset.
- SVHN, GTSRB: closer domain (street sign).
- Pretrain on these (intermediate) → fine-tune Bangla.
Synthetic data approach:
- Bangla font render on backgrounds.
- 3D simulation (Blender, Unity).
- 10K+ synthetic + 200 real → mix train.
- Stable Diffusion image generation — stress test.
Active learning:
- Initial 200 → train baseline.
- Predict on 10K unlabeled — identify "hard" cases (low confidence).
- Manually label hard ones.
- Retrain — accuracy bump.
- Iterate.
Ensemble strategy:
- 3 models train (different seed, augment).
- Average prediction.
- 2-3% accuracy gain typically.
Real-world example:
- Bornom (Bengali OCR) — synthetic + ResNet pretrain.
- BUET LICTI lab — Bangla street sign — DINOv2 finetune.
মূল উপলব্ধি: Small data + domain-specific = creative pipeline. Pretrain + augment + synthetic + active learning — multi-pronged approach. Pure transfer learning often insufficient.
প্র ০৪ Industry-এ "ImageNet pretrain"-এর fairness ও bias problem আছে। কী bias ও কীভাবে mitigate?
ImageNet famously biased — race, gender, geography. Pretrained transfer-এ bias inherited.
Documented biases (Buolamwini & Gebru, 2018):
- Racial: dark-skin face accuracy 35% lower.
- Gender: female under-represented in many class.
- Geographic: Western objects dominant. Bangladesh-এর rickshaw, vendor — minimal.
- Class imbalance: 1000 dog breed, but limited "kitchen" diversity.
Source of bias:
- Crawled from US/Western web.
- Image labeled by Mechanical Turk — mostly Western.
- Search terms English-biased.
- Categories WordNet — Western taxonomy.
Bias propagation:
- Pretrained CNN — feature space biased.
- Transfer learning — bias inherited downstream.
- Detection বা face analysis-এ — disparate impact.
Mitigation strategies:
- Diverse pretrain:
- Open Images (more international).
- YFCC100M (Flickr — global).
- LAION-5B (web-scale, more diverse).
- FAIR-PMD (Facebook — multilingual).
- Domain-specific finetune:
- Bangladesh dataset construct.
- Local crowdsource labeling.
- Cultural sensitivity in categories.
- Bias auditing:
- Test set stratified by demographic.
- Per-group accuracy measure.
- Fairness metrics (demographic parity, equal opportunity).
- Adversarial debiasing:
- Train classifier with adversary predict demographic.
- Force feature non-demographic-predictive.
- Re-weighting:
- Underrepresented group weight ↑।
- Loss reweight.
Bangladesh-specific:
- Diverse skin tones in South Asia — face system test.
- Religious diversity (clothing, headwear).
- Rural vs urban scene difference.
- Bengali New Year, Eid, Durga Puja — cultural events misrecognize.
Regulatory landscape:
- EU AI Act — high-risk system require bias audit.
- NYC Local Law 144 — automated hiring bias audit.
- Bangladesh Data Protection Bill — emerging.
Industry practice:
- Model card — Mitchell et al. (2019).
- Datasheet for dataset.
- Fairness toolkit (Aequitas, AI Fairness 360).
- Pre-deployment audit.
মূল উপলব্ধি: Transfer learning convenience-এর সাথে inherited bias. Engineer-এর কাজ — bias awareness + mitigation + auditing. Bangladesh AI development-এ local context priority.
অনুশীলন
-
Param freeze: ResNet-50-এর শুধু last 2 block (layer3, layer4) trainable, বাকি frozen — কোডটি লিখুন।
for name, p in model.named_parameters(): p.requires_grad = ('layer3' in name or 'layer4' in name or 'fc' in name) -
Strategy choose: 50K Bangla flower image, 10 species — কোন strategy?
50K medium-large, ImageNet flower category overlap. Full fine-tune low LR (1e-4). Data augment.
-
ভাবুন: Pretrained model বাছার সময় size vs accuracy trade-off — কখন EfficientNet-B7 (big) vs B0 (small)?
B7 — server inference, accuracy critical, batch processing. B0 — mobile, edge, realtime, small dataset (B7 overfit risk).
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ১৭ · Object detection intro পরবর্তী পাঠ Module 3 শুরু — detection.
- পাঠ ১৫ · DenseNet ও EfficientNet আগের পাঠ Modern CNN architecture.
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL, MLOps — সব AI কোর্স একসাথে।