Implementation of Logistic Regression, MLP, CNN, RNN & LSTM from scratch in python. Training of deep learning models for image classification, object detection, and sequence processing (including transformers implementation) in TensorFlow.
Instructor of the specialization: Andrew Ng
In this five course series, I learned about the foundations of Deep Learning
by implementing vectorized neural networks (MLP, CNN, RNN, LSTM) and optimization algorithms (SGD, RMSprop, Adam) from scratch in Python, building and training deep neural networks in TensorFlow and Keras and identifying key parameters in network architecture for hyperparameter tuning.
I learned about the best practices to train and develop test sets and analyzed bias/variance
for building DL applications, diagnosed and used strategies for reducing errors in ML systems, understand complex ML settings and used transfer learning for image classification tasks.
I learned to build and train CNN models (YOLO for object detection, U-Net for image segmentation, FaceNet for face verification and face recognition) for visual detection and recognition tasks and to generate art work through neural style transfer by using a pre-trained VGG-19 model. I learned about RNNs, GRUs, LSTMs and transformers and applied them to various NLP/sequence tasks. I used RNNs to built a character-level language model to generate dinosaur names, LSTMs to built a Seq2seq model for Neural Machine Translation with attention and trigger word detection model. I used pre-trained transformer models for question-answering and named-entity-recognition tasks.
Using this repository is straight forward. Clone this repository to use. This repository contains all my work for this specialization. All the code base, quiz questions, screenshot, and images, are taken from, unless specified, Deep Learning Specialization on Coursera.
Course Objective: This course focuses on vectorized implementation of neural networks in Python.
Week 1: Introduction to deep learning
Week 2: Neural Networks Basics
Week 3: Shallow neural networks
Week 4: Deep Neural Networks
Course Objective: This course teaches the "magic" of getting deep learning to work well. Rather than the deep learning process being a black box, you will understand what drives performance, and be able to more systematically get good results.
Week 1: Practical aspects of Deep Learning
Week 2: Optimization algorithms
Week 3: Hyperparameter tuning, Batch Normalization and Programming Frameworks
Course Objective: This course focuses on how to diagnose errors in a machine learning system, be able to prioritize the most promising directions for reducing error, understand complex ML settings, such as mismatched training/test sets and comparing to and/or surpassing human-level performance and how to apply end-to-end learning, transfer learning, and multi-task learning.
Course Objective: This course focuses on how to build a convolutional neural network, including recent variations such as residual networks, how to apply convolutional networks to visual detection and recognition tasks and use neural style transfer to generate art.
Week 1 - Foundations of Convolutional Neural Networks
Week 2 - Deep convolutional models: case studies
Week 3 - Object detection
Week 4 - Special applications: Face recognition & Neural style transfer
Course Objective: This course focuses on how to build and train Recurrent Neural Networks (RNNs), and commonly-used variants such as GRUs and LSTMs, able to apply sequence models to natural language problems, including text synthesis and sequence models to audio applications, including speech recognition and music synthesis.
Week 1 - Recurrent Neural Networks
Week 2 - Natural Language Processing & Word Embeddings
Week 3 - Sequence models & Attention mechanism
Week 4 - Transformer Network
Some results from the programming assignments of this specialization
Neural style transfer
Image classification using Logistic Regression from scratch in Python
Accuracy vs number of hidden layers in MLP for planar data set
The solutions uploaded in this repository are only for reference when you got stuck somewhere. Please don't use these solutions to pass programming assignments.