Mid-term 20% of the grade · around weeks 9 to 10 · CNN-based
The mid-term is a convolutional-network project on an image task: build it, train it, run a controlled ablation, and report the findings. Pick one of the examples below or propose another in the same spirit. Datasets are suggestions; any comparable small image dataset works.
Data: CIFAR-10.
Goal: A strong image classifier.
Build: A small ResNet-style CNN with batch normalization and residual blocks.
Required study: Ablate batch normalization and residual connections; report accuracy and training curves for each variant.
Stretch goal: Add mixup or cutout augmentation and measure the gain.
Data: FashionMNIST.
Goal: Understand model capacity.
Build: A configurable CNN with adjustable depth and width.
Required study: Sweep depth and width; plot accuracy against parameter count and identify under- and over-fitting.
Stretch goal: Add dropout and weight decay and compare the curves.
Data: Oxford-IIIT Pets or Flowers-102 subset.
Goal: Classify with limited data.
Build: A CNN trained from scratch.
Required study: Data-augmentation ablation: none versus flips, crops, and color jitter.
Stretch goal: Compare against a tiny pretrained backbone (a preview of transfer learning).
Data: A small chest X-ray (pneumonia) set, binary.
Goal: Classify under class imbalance.
Build: A CNN with an imbalance strategy (class weighting or resampling).
Required study: Report precision, recall, and F1 (not just accuracy) and show the effect of the imbalance fix.
Stretch goal: Add a class-activation (Grad-CAM-style) visualization.
Data: GTSRB subset.
Goal: Multiclass sign classifier.
Build: A CNN classifier.
Required study: Compare input normalization schemes and input image sizes.
Stretch goal: Test robustness to brightness and small rotations.
Data: CIFAR-10 or FashionMNIST.
Goal: Quantify the value of convolution.
Build: A CNN and a parameter-matched MLP.
Required study: Compare accuracy and the generalization gap; explain the difference via inductive bias.
Stretch goal: Visualize the first-layer filters of the CNN.
Data: Any image dataset.
Goal: Interpret a trained CNN.
Build: A CNN, plus code to extract and visualize feature maps across layers.
Required study: Relate receptive-field growth to what each layer appears to detect.
Stretch goal: Add occlusion-sensitivity maps.
Data: CIFAR-10.
Goal: A rigorous optimization study.
Build: A single fixed CNN architecture.
Required study: Grid over {SGD, SGD+momentum, Adam} and three learning rates; report curves and final accuracy.
Stretch goal: Add a learning-rate schedule and measure the effect.
Data: FashionMNIST or CIFAR-10 with synthetic corruptions.
Goal: Measure robustness.
Build: A CNN classifier.
Required study: Accuracy under noise, blur, and brightness shifts; test augmentation as a defense.
Stretch goal: Build a small CIFAR-10-C-style corruption benchmark.
Data: CIFAR-10.
Goal: See why residuals matter.
Build: A plain deep CNN and a residual CNN.
Required study: Increase depth (for example 8, 14, 20 layers) and compare trainability with and without residuals.
Stretch goal: Measure gradient norms by layer to explain the difference.