2023 Deep Learning Lessons

This repository is dedicated to various lab assignments for a deep learning course in 2023. Each lab focuses on different aspects and applications of deep learning.

Lab 1: Neural Network Implementation

  • Handcraft implementation of a neural network, including feedforward and backpropagation.
  • Emphasis on the complexity of implementing backpropagation manually.

Lab 2: Puzzle Game 2048 with TD Algorithm

  • Implementing the TD (Temporal Difference) algorithm to play the Puzzle Game 2048.
  • Utilization of n-tuple networks to reduce data volume.

Lab 3: EEG Classification

  • EEG signal prediction using a simple deep neural network created with PyTorch.
  • Incorporation of EEGNet, which includes Depthwise Separable Convolution (deepwise conv + separable conv).

Lab 4: Network Architectures and Diabetic Retinopathy Detection

  • Exploration of ResNet18, ResNet50, and other network architectures.
  • Classification of images for Diabetic Retinopathy Detection into 5 classes.

Lab 5: Conditional VAE for Video Prediction

  • Using Conditional Variational Autoencoder (VAE) for predicting the future movement of a robotic arm.
  • Application of the reparameterization trick to enhance model learning efficiency and performance.
  • Handling of a significantly large dataset, making it the most challenging lab in the course.

Lab 6: Deep Q-Learning and Deep Deterministic Policy Gradient

  • Implementation of Deep Q-learning (DQN) and Deep Deterministic Policy Gradient (DDPG) in a moon landing game environment to achieve secure spaceship landing.
  • Application of DQN in the Atari breakout game.
  • Utilization of the open-source Python library Gym.
  • Addressing a traditional control system problem using Reinforcement Learning.

Lab 7: Conditional DDPM for Image Generation

  • Generating images under specific conditions using Conditional DDPM (Deep Deterministic Policy Model).
  • Modification of the UNet architecture in DDPM.
  • Working with the CLEVR dataset.