### Course Description

In this course, you will be introduced to neural networks and its broad application. We will be going from the most basic concepts in neural network to building and optimizing a complete neural network and using different tools to solve problems using Deep Neural Networks.
The focus of the course is on learning in a simple and intuitive way with examples. Throughout the course, exercises are provided to reinforce ideas.

#### What am I going to get from this course?

Understand how a neural network works and how to implement a feedforward neural network

Use feedforward neural network to solve complex problems

Use different techniques to improve the performance of the neural network

### Prerequisites and Target Audience

#### What will students need to know or do before starting this course?

Students will benefit from prior exposure to basic algebra and calculus. Familiarity with the Python programming language is required. Students should be able to use Python 3.x and Jupyter Notebooks.

#### Who should take this course? Who should not?

Industry professionals and college students who are interested in learning about neural networks in a simple and structured format should take this course. This course is focused on the intuitive understanding and implementation of neural network more than the underlining mathematics.

### Curriculum

#### Module 1: Introduction and Overview

Lecture 1
Introduction & Overview
In this lecture, we will look at what neural network is, and understand what is a deep neural network. We will also look at what are the different types of neural network available.

Lecture 2
Advantages of deep learning
In this video, we will understand why there is so much hype and focus on deep learning and neural networks, and look at the advantages of deep learning

#### Module 2: Motivation behind Deep Learning

Lecture 3
Perceptrons and NAND gate

In this video, we will look at the basic functional unit of a Neural Network.

Lecture 4
Sigmoid Neurons

We will look at the limitations of perceptrons and replace it with a better output fuction

Lecture 5
Activation Function and Types of Nonlinearities

In this lecture, we will look at other types of Activation function and understand why we require a non linear activation function.

Lecture 6
Exercise 1: Sigmoid Neuron Implementation

In this video, we will take up the problem of implememing our own Sigmoid Function

Lecture 7
Sigmoid Neuron Implementation (explanation)

In this video, we will see how to implement our sigmoid function in python. You are encouraged to attempt to solve Exercise 1 shown in Lecture 6 before looking at this video

#### Module 3: A Simple Network

In this lecture, we will look at cost function, a way to quantify and measure the network performance.

Lecture 9
Gradient Descent

In this lecture, we will look at an optimization algorithm called Gradient Descent and try to reduce the cost function.

Lecture 10
Exercise 2: Gradient Descent Implementation

In this lecture, we will look at ways to successfully solve the second exercise and steps involved in implementing gradient descent

Lecture 11
Gradient Descent Implementation (explanation)

In this lecture, we will cover the implementation of Gradient descent in python. You are encouraged to try solving Exercise 2 before watching this video.

#### Module 4: Feed Forward Neural Network

Lecture 12
Representation

In this video, we will look at the general representation of a Neural Network and get an introduction to Forwardpropogation

Lecture 13
Feed Forward Network

In this video, we will look at a Feed Forward Neural Network and get an intutive understanding of its functioning

Lecture 14
Feed Forward Network Continued

Here we will look at the Feed Forward Neural Network in more details and get into its implementation details

Lecture 15
Exercise: Forward Propagation Implementation

In this lecture, we will look at ways to successfully solve the third exercise and steps involved in implementing the forward pass of a Feed Forward Neural Netwrok

Lecture 16
Feed Forward Propagation Explanation

In this video we will look at the implementation details of a Feed Forward Neural Network

#### Module 5: Backpropagation

Lecture 17
Backpropagation

In this video, we will get an intuitive understanding of how a Neural Network learns using a technique called Backpropogaion

Lecture 18
Backpropagation Implementation

In this video, we will look at the implementation details of Backpropagation

Lecture 19
Parameters and Hyperparameters

Here we will quickly introduce two terminologies called as the Parameters and Hyperparameters of a Neural Network

Lecture 20
Building a Neural Network

In this video we will take up the excersise of building a Neural Network from scratch

Lecture 21
Building a Neural Network Explanation

We will look at the step by step solution and build our Neural Network from scratch

Lecture 22
Introduction to TensorFlow

Here we will look at TensorFlow and what are the fundamental concepts in TensorFlow that we need to understand to start building our Neural Networks

Lecture 23
Introduction to Keras

In this video, we will get an introduction to Keras and look at the basic structure of a building Neural Network using Keras

#### Module 7: Improving the Neural Network

Lecture 24
Need for Improvement

Here we will look at some of the issues that may arise while training our Neural Network

Lecture 25
A Better Cost Function

In this video, we will look at a new cost function that performs better in most situations

Lecture 26
What is Regularization

In this video, we will look at Regularization as a way to reduce overfitting

We will look at a popular technique to help our Neural Network generalize better called Dropouts

Lecture 28
Early Stopping

We will look at another technique that helps prevent overfitting called Early Stopping

Lecture 29
Other Regularization techniques

In this video we will look at other techniques which are commonly used to reduce overfitting

Quiz 1
Improving the Neural Network

Lecture 30
Mini-Batch Gradient Descent

Here we will look at a technique called Mini-Batch Gradient Descent which helps achieve fast and stable learning as compared to other Gradient Descent techniques

Lecture 31
Vanishing Gradients

In this video, we will look at a common problem in really deep Neural Networks called as the Vanishing Gradient problem

Lecture 32
Weight Initialization

Here we will look at a way to tackle Vanishing Gradient problem

Here we will look at a technique that helps us achieve better optimization performance

Lecture 34
Learning Rate Decay

In this video, we will look at another optimization technique that helps us control our learning rate during Neural Network training

Lecture 35
Advanced Optimization Techniques

In this video, we will look at some of the advanced optimization algorithms gaining popularity in recent times

Lecture 36
Image Classification Using ANN

In this video, we will use TensrFlow to build a Feed Forward Neural Network to perform Image Classification

Lecture 37
Predicting Stock Prices

In this video we will build a simple network to predict stock prises

Lecture 38
Word Embedding

In this video, we will learn about a technique to represent text data so that the Neural Network can understand

Lecture 39
Sentiment Analysis Using ANN

In this video, we will build a Neural Network to perform Sentiment Analysis using Keras

#### Module 10: Summary and Conclusion

Lecture 40
Summary & Conclusion