This repository contains the code and report for the final evaluation of the Deep Learning Applications module. It includes three lab exercises focusing on Convolutional Neural Networks (CNNs), Reinforcement Learning, and Adversarial Training.
- Introduction
- Lab 1: CNN and ResNet
- Lab 2: Deep Reinforcement Learning
- Lab 3: Adversarial Learning and OOD Detection
- Installation
- Results
- Contributing
- License
This repository contains the implementation and evaluation of three deep learning lab exercises. Each lab focuses on different aspects of deep learning techniques and their applications.
Quantify why the residual versions of the networks learn more effectively.
Take one of your trained classifiers (CNN or ResNet) and fully-convolutionalize it. Turn it into a network that can predict classification outputs at all pixels in an input image. Attempt to turn this into a detector of handwritten digits.
Use your implementation to demonstrate how your trained CNN attends to specific image features to recognize specific classes.
Implement a policy gradient method (REINFORCE) to solve the Lunar Lander environment.
Implement Deep Q-Learning to solve the Cartpole and Lunar Lander environments.
Implement a reinforcement learning algorithm to solve the OpenAI CarRacing environment.
Implement the ODIN method for Out-of-Distribution (OOD) detection.
Implement the JARN technique for adversarial robustness.
Experiment with targeted adversarial attacks and evaluate their impact on model performance.
To run the code in this repository, you need to have Python 3.7 or higher installed.
The results of each exercise, including performance metrics, plots, and model evaluations, are documented in the respective Jupyter notebooks and reports within each lab exercise directory.
Contributions are welcome! If you have any suggestions or improvements, please create a pull request or open an issue.
This repository is licensed under the MIT License. See the LICENSE file for more details.