The goal of this course is to give learners basic understanding of modern neural networks and their applications in computer vision and natural language understanding. The course starts with a recap of linear models and discussion of stochastic optimization methods that are crucial for training deep neural networks. Learners will study all popular building blocks of neural networks including fully connected layers, convolutional and recurrent layers.

Learners will use these building blocks to define complex modern architectures in TensorFlow and Keras frameworks. In the course project learner will implement deep neural network for the task of image captioning which solves the problem of giving a text description for an input image.

The prerequisites for this course are:

1) Basic knowledge of Python.

2) Basic linear algebra and probability.

Please note that this is an advanced course and we assume basic knowledge of machine learning. You should understand:

1) Linear regression: mean squared error, analytical solution.

2) Logistic regression: model, cross-entropy loss, class probability estimation.

3) Gradient descent for linear models. Derivatives of MSE and cross-entropy loss functions.

4) The problem of overfitting.

5) Regularization for linear models.

Course 1 of 7 in the Advanced Machine Learning Specialization

### Syllabus

**WEEK 1**

Introduction to optimization

Welcome to the “Introduction to Deep Learning” course! In the first week you’ll learn about linear models and stochatic optimization methods. Linear models are basic building blocks for many deep architectures, and stochastic optimization is used to learn every model that we’ll discuss in our course.

Graded: Linear models

Graded: Overfitting and regularization

Graded: Linear models and optimization

**WEEK 2**

Introduction to neural networks

This module is an introduction to the concept of a deep neural network. You’ll begin with the linear model in numpy and finish with writing your very first deep network.

Graded: Logistic regression in TensorFlow

Graded: my1stNN

Graded: my1stNN – Keras this time

Graded: Your very own neural network

**WEEK 3**

Deep Learning for images

In this week you will learn about building blocks of deep learning for image input. You will learn how to build Convolutional Neural Network (CNN) architectures with these blocks and how to quickly solve a new task using so-called pre-trained models.

Graded: Convolutions and pooling

Graded: Your first CNN on CIFAR-10

Graded: Fine-tuning InceptionV3 for flowers classification

**WEEK 4**

Unsupervised representation learning

This week we’re gonna dive into unsupervised parts of deep learning. You’ll learn how to generate, morph and search images with deep learning.

Graded: Simple autoencoder

Graded: Word embeddings

Graded: Generative adversarial networks

**WEEK 5**

Deep learning for sequences

In this week you will learn how to use deep learning for sequences such as texts, video, audio, etc. You will learn about several Recurrent Neural Network (RNN) architectures and how to apply them for different tasks with sequential input/output.

Graded: RNN and Backpropagation

Graded: Generating names with RNNs

Graded: Modern RNNs

Graded: How to use RNNs

**WEEK 6**

Final Project

In this week you will apply all your knowledge about neural networks for images and texts for the final project. You will solve the task of generating descriptions for real world images!

Graded: Image Captioning Final Project

Graded: Image Captioning Final Project

ENROLL IN COURSE