# Practice Labs: Deep Learning Interviews (Kashani)

**Source PDF:** [2201.00650v2.pdf](2201.00650v2.pdf)
**Book:** *Deep Learning Interviews* by Shlomo Kashani (2nd Edition)

This book covers mathematical foundations and interview-style problems for deep learning. Labs below are organized by the book's progressive difficulty levels.

Use this folder as a compact practice layer when you want to sharpen deep-learning intuition quickly. It works well as reinforcement for interviews, revision, or a short math-to-implementation bridge.

## Labs

| Lab | Topic | Book Chapter | Difficulty |
|-----|-------|-------------|------------|
| [Lab 01](lab_01_logistic_regression.ipynb) | Logistic Regression from Scratch | Part II: Logistic Regression | Kindergarten |
| [Lab 02](lab_02_information_theory.ipynb) | Information Theory & Entropy | Part III: Information Theory | High School |
| [Lab 03](lab_03_calculus_backprop.ipynb) | Calculus, Gradients & Backpropagation | Part III: Calculus, Algorithmic Differentiation | High School |
| [Lab 04](lab_04_probability_bayesian.ipynb) | Probability & Bayesian Deep Learning | Part II: Probabilistic Programming & Bayesian DL | Kindergarten |
| [Lab 05](lab_05_ensemble_methods.ipynb) | Neural Network Ensembles | Part IV: NN Ensembles | Bachelors |
| [Lab 06](lab_06_cnn_feature_extraction.ipynb) | CNN Feature Extraction & Deep Learning | Part IV: CNN Feature Extraction + Deep Learning | Bachelors |

## How to Use

1. Each lab is a Jupyter notebook with theory (markdown) and fully implemented code cells
2. Read the theory cells, study the implementations, and run each cell
3. Open in Jupyter: `jupyter notebook lab_01_logistic_regression.ipynb`

## Prerequisites

- Python 3.8+
- NumPy
- Matplotlib
- SciPy (for Lab 04)

## Suggested Order

1. **Lab 01** - Logistic Regression (foundational)
2. **Lab 04** - Probability & Bayesian DL (builds on probability basics)
3. **Lab 02** - Information Theory (entropy, KL divergence)
4. **Lab 03** - Calculus & Backpropagation (core for training NNs)
5. **Lab 06** - CNN Feature Extraction (applies NN concepts)
6. **Lab 05** - Ensemble Methods (advanced techniques)

## How To Use This Folder Well

- Treat these labs as short, focused reinforcement rather than a full standalone curriculum.
- Use them when you want to turn abstract neural-network math into concrete coding exercises.
- Revisit the relevant foundational or neural-network phases whenever a lab exposes a deeper gap.

## What Comes Next

- Continue to [../foundational/README.md](../foundational/README.md) if you need broader math support.
- Continue to [../../06-neural-networks/README.md](../../06-neural-networks/README.md) if you want the main deep-learning phase.
- Continue to [../../24-advanced-deep-learning/README.md](../../24-advanced-deep-learning/README.md) if these labs confirm you want deeper theory.
