Understand and implement word2vec Understand the CBOW method in word2vec Understand the skip-gram method in word2vec Understand the negative sampling optimization in word2vec Understand and implement GloVe using gradient descent and alternating least squares Use recurrent neural networks for parts-of-speech tagging Use recurrent neural networks for named entity recognition Understand and implement recursive neural networks for sentiment analysis Understand and implement recursive neural tensor networks for sentiment analysis Install Numpy, Matplotlib, Sci-Kit Learn, Theano, and TensorFlow (should be extremely easy by now) Understand backpropagation and gradient descent, be able to derive and code the equations on your own Code a recurrent neural network from basic primitives in Theano (or Tensorflow), especially the scan function Code a feedforward neural network in Theano (or Tensorflow) Helpful to have experience with tree algorithms In this course we are going to look at advanced NLP. Previously, you learned about some of the basics, like how many NLP problems are just regular machine learning and data science problems in disguise, and simple, practical methods like bag-of-words and term-document matrices. These allowed us to do some pretty cool things, like detect spam emails, write poetry, spin articles, and group together similar words. In this course I'm going to show you how to do even more awesome things. We'll learn not just 1, but 4 new architectures in this course.

This course will get you started in building your FIRST artificial neural network using deep learning techniques. Following my previous course on logistic regression, we take this basic building block, and build full-on non-linear neural networks right out of the gate using Python and Numpy. All the materials for this course are FREE. We extend the previous binary classification model to multiple classes using the softmax function, and we derive the very important training method called "backpropagation" using first principles. I show you how to code backpropagation in Numpy, first "the slow way", and then "the fast way" using Numpy features.

This is the 3rd part in my Data Science and Machine Learning series on Deep Learning in Python. At this point, you already know a lot about neural networks and deep learning, including not just the basics like backpropagation, but how to improve it using modern techniques like momentum and adaptive learning rates. You've already written deep neural networks in Theano and TensorFlow, and you know how to run code using the GPU. This course is all about how to use deep learning for computer vision using convolutional neural networks. These are the state of the art when it comes to image classification and they beat vanilla deep networks at tasks like MNIST.

Like the course I just released on Hidden Markov Models, Recurrent Neural Networks are all about learning sequences - but whereas Markov Models are limited by the Markov assumption, Recurrent Neural Networks are not - and as a result, they are more expressive, and more powerful than anything we've seen on tasks that we haven't made progress on in decades. So what's going to be in this course and how will it build on the previous neural network courses and Hidden Markov Models? In the first section of the course we are going to add the concept of time to our neural networks. I'll introduce you to the Simple Recurrent Unit, also known as the Elman unit. We are going to revisit the XOR problem, but we're going to extend it so that it becomes the parity problem - you'll see that regular feedforward neural networks will have trouble solving this problem but recurrent networks will work because the key is to treat the input as a sequence.