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 কোর্স একসাথে।