April 1, 2020

# VIP Promotion

### The complete PyTorch course has arrived

Hello friends!

I hope you are all staying safe. Well, I’m sure you’ve heard enough about that so how about some different news?

Today, I am announcing the VIP version of my latest course: PyTorch: Deep Learning and Artificial Intelligence

https://www.udemy.com/course/pytorch-deep-learning/?couponCode=PYTORCHVIP19 (expires Nov 17, 2021)

This is a MASSIVE (over 22 hours) Deep Learning course covering EVERYTHING from scratch. That includes:

• Machine learning basics (linear neurons)
• ANNs, CNNs, and RNNs for images and sequence data
• Time series forecasting and stock predictions (+ why all those fake data scientists are doing it wrong)
• NLP (natural language processing)
• Recommender systems
• Transfer learning for computer vision
• Deep reinforcement learning and applying it by building a stock trading bot

IN ADDITION, you will get some unique and never-before-seen VIP projects:

Estimating prediction uncertainty

Drawing the standard deviation of the prediction along with the prediction itself. This is useful for heteroskedastic data (that means the variance changes as a function of the input). The most popular application where heteroskedasticity appears is stock prices and stock returns – which I know a lot of you are interested in.

It allows you to draw your model predictions like this:

Sometimes, the data is simply such that a spot-on prediction can’t be made. But we can do better by letting the model tell us how certain it is in its predictions.

Facial recognition with siamese networks

This one is cool. I mean, I don’t have to tell you how big facial recognition has become, right? It’s the single most controversial technology to come out of deep learning. In the past, we looked at simple ways of doing this with classification, but in this section I will teach you about an architecture built specifically for facial recognition.

You will learn how this can work even on small datasets – so you can build a network that recognizes your friends or can even identify all of your coworkers!

You can really impress your boss with this one. Surprise them one day with an app that calls out your coworkers by name every time they walk by your desk. 😉

Please note: The VIP coupon will work only for the next month (ending May 1, 2020). It’s unknown whether the VIP period will renew after that time.

After that, although the VIP content will be removed from Udemy, all who purchased the VIP course will get permanent free access on deeplearningcourses.com.

## Minimal Prerequisites

This course is designed to be a beginner to advanced course. All that is required is that you take my free Numpy prerequisites to learn some basic scientific programming in Python. And it’s free, so why wouldn’t you!?

You will learn things that took me years to learn on my own. For many people, that is worth tens of thousands of dollars by itself.

There is no heavy math, no backpropagation, etc. Why? Because I already have courses on those things. So there’s no need to repeat them here, and PyTorch doesn’t use them. So you can relax and have fun. =)

## Why PyTorch?

All of my deep learning courses until now have been in Tensorflow (and prior to that Theano).

So why learn PyTorch?

Does this mean my future deep learning courses will use PyTorch?

In fact, if you have traveled in machine learning circles recently, you will have noticed that there has been a strong shift to PyTorch.

Case in point: OpenAI switched to PyTorch earlier this year (2020).

Major AI shops such as Apple, JPMorgan Chase, and Qualcomm have adopted PyTorch.

PyTorch is primarily maintained by Facebook (Facebook AI Research to be specific) – the “other” Internet giant who, alongside Google, have a strong vested interest in developing state-of-the-art AI.

But why PyTorch for you and me? (aside from the fact that you might want to work for one of the above companies)

As you know, Tensorflow has adopted the super simple Keras API. This makes common things easy, but it makes uncommon things hard.

With PyTorch, common things take a tiny bit of extra effort, but the upside is that uncommon things are still very easy.

Creating your own custom models and inventing your own ideas is seamless. We will see many examples of that in this course.

For this reason, it is very possible that future deep learning courses will use PyTorch, especially for those advanced topics that many of you have been asking for.

Because of the ease at which you can do advanced things, PyTorch is the main library used by deep learning researchers around the world. If that’s your goal, then PyTorch is for you.

In terms of growth rate, PyTorch dominates Tensorflow. PyTorch now outnumbers Tensorflow by 2:1 and even 3:1 at major machine learning conferences. Researchers hold that PyTorch is superior to Tensorflow in terms of the simplicity of its API, and even speed / performance!

Do you need more convincing?

# How to setup NVIDIA GPU laptop with Ubuntu for Deep Learning (CUDA and CuDNN)

January 5, 2020

See the corresponding YouTube video lecture here: https://youtu.be/3r5eNV7WZ6g

In this article, I will teach you how to setup your NVIDIA GPU laptop (or desktop!) for deep learning with NVIDIA’s CUDA and CuDNN libraries.

The main thing to remember before we start is that these steps are always constantly in flux – things change and they change quickly in the field of deep learning. Therefore I remind you of my slogan: “Learn the principles, not the syntax“. We are not doing any coding here so there’s no “syntax” per se, but the general idea is to learn the principles at a high-level, don’t try to memorize details which may change on you and confuse you if you forget about what the principles are.

This article is more like a personal story rather than a strict tutorial. It’s meant to help you understand the many obstacles you may encounter along the way, and what practical strategies you can take to get around them.

There are about 10 different ways to install the things we need. Some will work; some won’t. That’s just how cutting-edge software is. If that makes you uncomfortable, well, stop being a baby. Yes, it’s going to be frustrating. No, I didn’t invent this stuff, it is not within my control. Learn the principles, not the syntax!

## Why you need this guide

If you’ve never setup your laptop for GPU-enabled deep learning before, then you might assume that there’s nothing you need to do beyond buying a laptop with a GPU. WRONG!

You need to have a specific kind of laptop with specific software and drivers installed. Everything must work together.

You can think of all the software on your computer as a “stack” of layers.

At the lowest layer, you have the kernel (very low-level software that interacts with the hardware) and at higher levels you have runtimes and libraries such as SQLite, SSL, etc.

When you write an application, you need to make use of lower-level runtimes and libraries – your code doesn’t just run all by itself.

So, when you install Tensorflow (as an example), that depends on lower-level libraries (such as CUDA and CuDNN) which interact with the GPU (hardware).

If any of the layers in your stack are missing (all the way from the hardware up to high-level libraries), your code will not work.

Low-Level = Hardware

High-Level = Libraries and Frameworks

Not all GPUs are created equal. If you buy a MacBook Pro these days, you’ll get a Radeon Pro Vega GPU. If you buy a Dell laptop, it might come with an Intel UHD GPU.

These are no good for machine learning or deep learning.

You will need a laptop with an NVIDIA GPU.

Some laptops come with a “mobile” NVIDIA GPU, such as the GTX 950m. These are OK, but ideally you want a GPU that doesn’t end with “m”. As always, check performance benchmarks if you want the full story.

I would also recommend at least 4GB of RAM (otherwise, you won’t be able to use larger batch sizes, which will affect training).

In fact, some of the newer neural networks won’t even fit on the RAM to do prediction, never mind training!

One thing you have to consider is if you actually want to do deep learning on your laptop vs. just provisioning a GPU-enabled machine on a service such as AWS (Amazon Web Services).

These will cost you a few cents to a dollar per hour (depending on the machine type), so if you just have a one-off job to run, you may want to consider this option.

I already have a walkthrough tutorial in my course Modern Deep Learning in Python about that, so I assume if you are reading this article, you are rather interested in purchasing your own GPU-enabled computer and installing everything yourself.

Personally, I would recommend Lenovo laptops. The main reason is they always play nice with Linux (we’ll go over why that’s important in the next section). Lenovo is known for their high-quality and sturdy laptops and most professionals who use PCs for work use Thinkpads. They have a long history (decades) of serving the professional community so it’s nearly impossible to go wrong. Other brands generally have lots of issues (e.g. sound not working, WiFi not working, etc.) with Linux.

Here are some good laptops with NVIDIA GPUs:

This one only has an i5 processor and 8GB of RAM, but on the plus side it’s cost-effective. Note that the prices were taken when I wrote this article; they might change.

Same as above but different specs. 16GB RAM with an i7 processor, but only 256GB of SSD space. Same GPU. So there are some tradeoffs to be made.

This is the best option in my opinion. Better or equal specs compared to the previous two. i7 processor, 24GB of RAM (32GB would be ideal!), lots of space (1TB HD + 512GB SSD), and the same GPU. Bonus: it’s nearly the same price as the above (currently).

Pricier, but great specs. Same GPU!

If you really want to splurge, consider one of these big boys. Thinkpads are classic professional laptops. These come with real beast GPUs – NVIDIA Quadro RTX 5000 with 16GB of VRAM.

You’ve still got the i7 processor, 16GB of RAM, and a 512GB NVMe SSD (basically a faster version of already-super-fast SSDs). Personally, I think if you’re going to splurge, you should opt for 32GB of RAM and a 1TB SSD.

If you’ve watched my videos, you might be wondering: what about a Mac? (I use a Mac for screen recording).

Macs are great in general for development, and they used to come with NVIDIA GPUs (although those GPUs are not as powerful as the ones currently available for PCs). Support for Mac has dropped off in the past few years, so you won’t be able to install say, the latest version of Tensorflow, CUDA, and CuDNN without a significant amount of effort (I spent probably a day and just gave up). And on top of that the GPU won’t even be that great. Overall, not recommended.

As I mentioned earlier, you probably want to be running Linux (Ubuntu is my favorite).

“Tensorflow works on Windows, so what’s the problem?”

Remember my motto: “Learn the principles, not the syntax“.

What’s the principle here? Many of you probably haven’t been around long enough to know this, but the problem is, many machine learning and deep learning libraries didn’t work with Windows when they first came out.

So, unless you want to wait a year or more after new inventions and software are being made, then try to avoid Windows.

Don’t take my word for it, look at the examples:

• Early on, even installing Numpy, Matplotlib, Pandas, etc. was very difficult on Windows. I’ve spent hours with clients on this. Nowadays you can just use Anaconda, but that’s not always been the case. At the time of this writing, things only started to shape up a few years ago.
• Theano (the original GPU-enabled deep learning library) initially did not work on Windows for many years.
• Tensorflow, Google’s deep learning library and the most popular today, initially did not work on Windows.
• PyTorch, a deep learning library popular with the academic community, initially did not work on Windows.
• OpenAI Gym, the most popular reinforcement learning library, only partially works on Windows. Some environments, such as MuJoCo and Atari, still have no support for Windows.

There are more examples, but these are the major historical “lessons” I point to for why I normally choose Linux over Windows.

One benefit of using Windows is that installing CUDA is very easy, and it’s very likely that your Windows OS (on your Lenovo laptop) will come with it pre-installed. The original use-case for GPUs was gaming, so it’s pretty user-friendly.

If you purchase one of the above laptops and you choose to stick with Windows, then you will not have to worry about installing CUDA – it’s already there. There is a nice user interface so whenever you need to update the CUDA drivers you can do so with just a few clicks.

Installing CuDNN is less trivial, but the instructions are pretty clear (https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows). Simply download the zip file, unzip it, copy the files to the locations specified in the instructions, and set a few environment variables. Easy!

TO BE CLEAR:

Aside from the Python libraries below (such as Tensorflow / PyTorch) you need to install 2 things from NVIDIA first:

1. CUDA (already comes with Windows if you purchase one of the above laptops, Ubuntu instructions below)
2. CuDNN (you have to install it yourself, following the instructions on NVIDIA’s website)

DUAL-BOOTING:

I always find it useful to have both Windows and Ubuntu on-hand, and if you get the laptop above that has 2 drives (1TB HD and 512GB SSD) dual-booting is a natural choice.

These days, dual booting is not too difficult. Usually, one starts with Windows. Then, you insert your Ubuntu installer (USB stick), and choose the option to install Ubuntu alongside the existing OS. There are many tutorials online you can follow.

Hint: Upon entering the BIOS, you may have to disable the Secure Boot / Fast Boot options.

INSTALLING PYTHON:

I already have lectures on how to install Python with and without Anaconda. These days, Anaconda works well on Linux, Mac, and Windows, so I recommend it for easy management of your virtual environments.

Environment Setup for UNIX-Like systems (includes Ubuntu and MacOS) without Anaconda

Environment Setup for Windows and/or Anaconda

## Installing CUDA and CuDNN on Ubuntu and similar Linux OSes (Debian, Pop!_OS, Xubuntu, Lubuntu, etc.)

Ok, now we get to the hard stuff. You have your laptop and your Ubuntu/Debian OS.

Can you just install Tensorflow and magically start making use of your super powerful GPU? NO!

Now you need to install the “low-level” software that Tensorflow/Theano/PyTorch/etc. make use of – which are CUDA and CuDNN.

This is where things get tricky, because there are many ways to install CUDA and CuDNN, and some of these ways don’t always work (from my experience).

Examples of how things can “randomly go wrong”:

• I installed CUDA on Linux Mint. After this, I was unable to boot the machine and get into the OS.
• Pop!_OS (System76) has their own versions of CUDA and CuDNN that you can install with simple apt commands. Didn’t work. Had to install them the “regular way”.
• Updating CUDA and CuDNN sucks. You may find the nuclear option easier (installing the OS and drivers from scratch)

Here is a method that consistently works for me:

1. Go to https://developer.nvidia.com/cuda-downloads and choose the options appropriate for your system. (Linux / x86_64 (64-bit) / Ubuntu / etc.). Note that Pop!_OS is a derivative of Ubuntu, as is Linux Mint.
2. You’ll download a .deb file. Do the usual “dpkg -i <filename>.deb” to run the installer. CUDA is installed!
3. Next, you’ll want to install CuDNN. Instructions from NVIDIA are here: https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#ubuntu-network-installation

Those instructions are subject to change, but basically you can just copy and paste what they give you (don’t copy the below, check the site to get the latest version):

sudo dpkg -i \ http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
sudo apt-get update && sudo apt-get install libcudnn7 libcudnn7-dev


## Installing CUDA and CuDNN on Windows

If you decided you hate reinforcement learning and you’re okay with not being able to use new software until it becomes mainstream, then you may have decided you want to stick with Windows.

Luckily, there’s still lots you can do in deep learning.

As mentioned previously, installing CUDA and CuDNN on Windows is easy.

If you did not get a laptop which has CUDA preinstalled, then you’ll have to install it yourself. Go to https://developer.nvidia.com/cuda-downloads, choose the options appropriate for your system (Windows 10 / x86_64 (64-bit) / etc.)

This will give you a .exe file to download. Simply click on it and follow the onscreen prompts.

As mentioned earlier, installing CuDNN is a little more complicated, but not too troublesome. Just go to https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows and follow NVIDIA’s instructions for where to put the files and what environment variables to set.

## Installing GPU-enabled Tensorflow

Unlike the other libraries we’ll discuss, there are different packages to separate the CPU and GPU versions of Tensorflow.

The Tensorflow website will give you the exact command to run to install Tensorflow (it’s the same whether you are in Anaconda or not).

It will look like this:

So you would install it using either:

pip install tensorflow
pip install tensorflow-gpu

UPDATE: Starting with version 2.1, installing “tensorflow” will automatically give you GPU capabilities, so there’s no need to install a GPU-specific version (although the syntax still works).

After installing Tensorflow, you can verify that it is using the GPU:

tf.test.is_gpu_available()

This will return True if Tensorflow is using the GPU.

## Installing GPU-enabled PyTorch

pip install torch

as usual.

To check whether PyTorch is using the GPU, you can use the following commands:

In [1]: import torch

In [2]: torch.cuda.current_device()
Out[2]: 0

In [3]: torch.cuda.device(0)
Out[3]: <torch.cuda.device at 0x7efce0b03be0>

In [4]: torch.cuda.device_count()
Out[4]: 1

In [5]: torch.cuda.get_device_name(0)
Out[5]: 'GeForce GTX 950M'

In [6]: torch.cuda.is_available()
Out[6]: True


## Installing GPU-enabled Keras

Luckily, Keras is just a wrapper around other libraries such as Tensorflow and Theano. Therefore, there is nothing special you have to do, as long as you already have the GPU-enabled version of the base library.

Therefore, just install Keras as you normally would:

pip install keras

As long as Keras is using Tensorflow as a backend, you can use the same method as above to check whether or not the GPU is being used.

## Installing GPU-enabled Theano

For both Ubuntu and Windows, as always I recommend using Anaconda. In this case, the command to install Theano with GPU support is simply:

conda install theano pygpu

If necessary, further details can be found at:

SIDE NOTE: Unfortunately, I will not provide technical support for your environment setup. You are welcome to schedule a 1-on-1 but availability is limited.

Disclaimer: this post contains Amazon affiliate links.

# BLACK FRIDAY / CYBER MONDAY 2019 — Deep Learning and Artificial Intelligence in Python

November 28, 2019

Yearly Black Friday sale is HERE! As I always tell my students – you never know when Udemy’s next “sale drought” is going to be – so if you are on the fence about getting a course, NOW is the time.

NOTE: If you are looking for the Tensorflow 2.0 VIP materials, as of now they can only be purchased here: https://deeplearningcourses.com/c/deep-learning-tensorflow-2 (coupon code automatically applied). The site contains only the VIP materials, and the main part of the course can be purchased on Udemy as per the link below. Therefore, if you want the “full” version of the course, each part now must be purchased separately.

https://www.udemy.com/course/deep-learning-tensorflow-2/

• What you’ll learn:
• Neurons and Machine Learning
• ANNs
• CNNs
• RNNs
• GANs
• NLP
• Recommender Systems
• Reinforcement Learning
• build a stock trading bot with Deep RL
• Low-level and advanced Tensorflow 2.0 features
• Exporting models for Tensorflow Lite
• Tensorflow Serving

https://www.udemy.com/course/cutting-edge-artificial-intelligence/

• What you’ll learn: A2C, Evolution Strategies, and DDPG

https://www.udemy.com/course/support-vector-machines-in-python/

• What you’ll learn: Support Vector Machines (SVMs) in-depth starting from linear classification theory to the maximum margin method, kernel trick, quadratic programming, and the SMO (sequential minimal optimization) algorithm

https://www.udemy.com/course/recommender-systems/

• What you’ll learn:
• Reddit and Hacker News algorithms
• PageRank (what Google Search uses)
• Bayesian / Thompson sampling
• Collaborative filtering
• Matrix factorization
• We use the 20 million ratings dataset, not the puny 100k dataset everyone else uses
• Implementing matrix factorization with Deep Learning
• Using Deep Neural Networks for recommenders
• Autoencoders for recommenders
• Restricted Boltzmann Machines (RBMs) for recommenders
• Recommenders with big data (PySpark) on AWS cluster

• What you’ll learn:
• modern Deep NLP techniques such as Bidirectional LSTMs
• CNNs for text classification
• seq2seq
• attention
• memory networks

• What you’ll learn:
• Deep Learning techniques for computer vision, such as state-of-the-art networks (VGG, ResNet, Inception)
• Train state-of-the-art models fast with transfer learning
• Object detection with SSD
• Neural style transfer

https://www.udemy.com/course/deep-learning-gans-and-variational-autoencoders/

• What you’ll learn:
• Generate realistic, high quality images with deep neural networks
• Apply game theory and Bayesian machine learning to deep learning
• Learn about the “transpose convolution”

https://www.udemy.com/course/deep-reinforcement-learning-in-python/

• What you’ll learn:
• Learn how we got from classical reinforcement learning to deep reinforcement learning and why it’s nontrivial
• Play OpenAI Gym environments such as CartPole and Atari
• Learn the “tricks” of DQN and A3C and how they improve classical RL approaches

https://www.udemy.com/course/artificial-intelligence-reinforcement-learning-in-python/

• What you’ll learn:
• Learn what makes Reinforcement Learning special compared to basic supervised/unsupervised learning (hint: it’s very complicated!)
• Learn how epsilon-greedy and Bayesian machine learning can optimize click-through rates
• Implement a tic-tac-toe agent
• MDPs (Markov Decision Processes) and the Bellman equation
• Learn the 3 approaches to RL: Dynamic Programming, Monte Carlo, and Temporal Difference (which includes the famous Q-Learning algorithm)

https://www.udemy.com/course/data-science-linear-regression-in-python/

• What you’ll learn:
• Learn about the most fundamental of machine learning algorithms: linear regression
• Believe it or not, this gets you MOST of the way there to understanding deep learning

https://www.udemy.com/course/data-science-logistic-regression-in-python/

• What you’ll learn:
• After learning about linear regression, see how a similar model (logistic regression) can be used for classification
• Importantly, understand how and why this is a model of the “neuron” (and because of that, we can use it to build neural networks)

https://www.udemy.com/course/data-science-deep-learning-in-python/

• What you’ll learn:
• Learn IN-DEPTH the theory behind artificial neural networks (ANNs)
• This is THE fundamental course for understanding what deep learning is doing, from ANNs to CNNs to RNNs to GANs and beyond

https://www.udemy.com/course/data-science-natural-language-processing-in-python/

• What you’ll learn:
• Learn how to apply machine learning to NLP tasks, such as: spam detection, sentiment analysis, article spinning, and latent semantic analysis
• Learn how to preprocess text for use in a ML algorithm
• Learn about the classic NLTK library

https://www.udemy.com/course/data-science-deep-learning-in-theano-tensorflow/

• What you’ll learn:
• Learn how we went from the fundamental ANNs to many of the key technologies we use today, such as:
• Dropout regularization
• Batch normalization
• Learn how deep learning is accelerated by GPUs (and how to set one up yourself)
• Learn how deep learning libraries improve the development process with GPUs (faster training) and automatic differentiation (so you don’t have to write the code or derive the math yourself)

https://www.udemy.com/course/sql-for-marketers-data-analytics-data-science-big-data/

• What you’ll learn:
• Learn the fundamentals of the SQL language and how to apply it to data
• Practice for job interviews by going through several interview-style questions

https://www.udemy.com/course/deep-learning-convolutional-neural-networks-theano-tensorflow/

• What you’ll learn:
• Go from ANNs to CNNs
• Learn about the all important “convolution” operation in-depth
• Implement convolution yourself (no other course does this!)
• Design principles for CNNs and why they specialize to work with images

https://www.udemy.com/course/cluster-analysis-unsupervised-machine-learning-python/

• What you’ll learn:
• Learn about classic clustering methods such as K-Means, Hierarchical Clustering, and Gaussian Mixture Models (a probabilistic approach to Cluster Analysis)
• Apply clustering to real-world datasets such as organizing books, clustering Hillary Clinton and Donald Trump tweets, and DNA

https://www.udemy.com/course/unsupervised-deep-learning-in-python/

• What you’ll learn:
• Learn about how Deep Learning an be applied to data without labels/targets using Autoencoders and RBMs (Restricted Boltzmann Machines)
• Learn how Autoencoders are like a “nonlinear” version of PCA
• Visualize / transform data with PCA and t-SNE
• Apply RBMs to recommender systems

https://www.udemy.com/course/unsupervised-machine-learning-hidden-markov-models-in-python/

• What you’ll learn:
• Learn how unsupervised learning extends to cover sequences of data (like DNA, text processing, etc.)
• The HMM is a probabilistic graphical model and uses the same learning approach (expectation-maximization) as k-means clustering and GMMs
• We also review Markov models and you’ll see how they (surprisingly) apply to a famous modern algorithm: Google’s PageRank

https://www.udemy.com/course/deep-learning-recurrent-neural-networks-in-python/

• What you’ll learn:
• Learn how Deep Learning handles sequences of data (like DNA, text processing, etc.)
• Learn the limitations of a naive (simple) RNN
• How to extend / improve RNNs with GRUs and LSTMs
• Build GRUs and LSTMs by yourself (not just calling some library function)

https://www.udemy.com/course/natural-language-processing-with-deep-learning-in-python/

• What you’ll learn:
• Apply deep learning to natural language processing (NLP)
• Covers the famous word2vec and GloVe algorithms
• See how RNNs apply to text problems
• Learn about a neural network structured like a “tree” which we call recursive neural networks and a more powerful version: recursive neural tensor networks (RNTNs)

https://www.udemy.com/course/data-science-supervised-machine-learning-in-python/

• What you’ll learn:
• Covers classic machine learning algorithms which EVERY student of machine learning should know (AND be able to implement)
• K-Nearest Neighbor (KNN), Naive Bayes and non-Naive Bayes Classifiers, the Perceptron, and Decision Trees
• Learn how to build a machine learning web service using Python server frameworks

https://www.udemy.com/course/bayesian-machine-learning-in-python-ab-testing/

• What you’ll learn:
• Learn how Bayesian machine learning differs from traditional machine learning
• We focus mostly on “comparing” multiple things (i.e. A/B Testing)
• Learn why traditional (frequentist) A/B Testing is limited

• What you’ll learn:
• Learn how combining multiple machine learning models is better than just one
• Covers fundamental ensemble approaches such as Random Forest and AdaBoost
• Learn/derive the famous “bias-variance tradeoff” (most people can only discuss it at a high level, you will learn what it really means)
• Learn about the difference between the “bagging” and “boosting” approaches

# Retreat from the heat with Machine Learning and Artificial Intelligence

July 18, 2019

 For the next week, all my Deep Learning and AI courses are available for just $10.99! Please use the coupons below (included in the links), or if you want, enter the coupon code: JUL2019. As usual, if you want to know what order to take my courses in, check out the lecture “What order should I take your courses in?” in the Appendix of any of my courses (including the free Numpy course). https://www.udemy.com/cutting-edge-artificial-intelligence/?couponCode=JUL2019 ### PREREQUISITE COURSE COUPONS And just as important,$9.99 coupons for some helpful prerequisite courses. You NEED to know this stuff to understand machine learning in-depth:

General (site-wide): http://bit.ly/2oCY14Z
Python http://bit.ly/2pbXxXz
Calc 1 http://bit.ly/2okPUib
Calc 2 http://bit.ly/2oXnhpX
Calc 3 http://bit.ly/2pVU0gQ
Linalg 1 http://bit.ly/2oBBir1
Linalg 2 http://bit.ly/2q5SGEE
Probability (option 1) http://bit.ly/2p8kcC0
Probability (option 2) http://bit.ly/2oXa2pb
Probability (option 3) http://bit.ly/2oXbZSK

### OTHER UDEMY COURSE COUPONS

As you know, I’m the “Lazy Programmer”, not just the “Lazy Data Scientist” – I love all kinds of programming!

iOS courses:
https://lazyprogrammer.me/ios

Android courses:
https://lazyprogrammer.me/android

Ruby on Rails courses:
https://lazyprogrammer.me/ruby-on-rails

Python courses:
https://lazyprogrammer.me/python

Big Data (Spark + Hadoop) courses:

Javascript, ReactJS, AngularJS courses:
https://lazyprogrammer.me/js

### EVEN MORE COOL STUFF

Into Yoga in your spare time? Photography? Painting? There are courses, and I’ve got coupons! If you find a course on Udemy that you’d like a coupon for, just let me know and I’ll hook you up!

# MATLAB for Students, Engineers, and Professionals in STEM

June 25, 2019

Exciting news!

I’ve just RE-released my very first course (no longer available on any platform anywhere else), which was focused on MATLAB for signal processing with images and sound.

Crazy to think that I made this course FIVE years ago. This course was not even my idea!

It can be thought of as the MATLAB equivalent of my free Numpy course (which is for Python).

Of course, this is not for everybody, as MATLAB is not free and is a pretty niche language, but this should be nice for those of you who actually work with MATLAB either in school or at your job.

Or of course, you can get it just to support future content and to have a full collection. 😉

# [June 2019] AI / Machine Learning HUGE Summer Sale! $9.99 June 10, 2019 ### AI / Machine Learning Summer Sale For the next week, all my Deep Learning and AI courses are available for just$9.99! (In addition to other courses on the site for the next few days)

For those of you who have been around for some time, you know that this sale doesn’t come around very often – just a few times per year. If you’ve been on the fence about getting a course, NOW is the time to do so. Get it now – save it for later.

For my courses, please use the coupons below (included in the links), or if you want, enter the coupon code: JUN2019.

As usual, if you want to know what order to take my courses in, check out the lecture “What order should I take your courses in?” in the Appendix of any of my courses (including the free Numpy course).

For prerequisite courses (math, stats, Python programming) and all other courses, follow the links at the bottom for sales of up to 90% off!

Since ALL courses on Udemy on sale, if you want any course not listed here, just click the general (site-wide) link, and search for courses from that page.

https://www.udemy.com/cutting-edge-artificial-intelligence/?couponCode=JUN2019

And just as important, $9.99 coupons for some helpful prerequisite courses. You NEED to know this stuff to understand machine learning in-depth: General (site-wide): http://bit.ly/2oCY14Z Python http://bit.ly/2pbXxXz Calc 1 http://bit.ly/2okPUib Calc 2 http://bit.ly/2oXnhpX Calc 3 http://bit.ly/2pVU0gQ Linalg 1 http://bit.ly/2oBBir1 Linalg 2 http://bit.ly/2q5SGEE Probability (option 1) http://bit.ly/2p8kcC0 Probability (option 2) http://bit.ly/2oXa2pb Probability (option 3) http://bit.ly/2oXbZSK ### OTHER UDEMY COURSE COUPONS As you know, I’m the “Lazy Programmer”, not just the “Lazy Data Scientist” – I love all kinds of programming! iOS courses: https://lazyprogrammer.me/ios Android courses: https://lazyprogrammer.me/android Ruby on Rails courses: https://lazyprogrammer.me/ruby-on-rails Python courses: https://lazyprogrammer.me/python Big Data (Spark + Hadoop) courses: https://lazyprogrammer.me/big-data-hadoop-spark-sql Javascript, ReactJS, AngularJS courses: https://lazyprogrammer.me/js ### EVEN MORE COOL STUFF Into Yoga in your spare time? Photography? Painting? There are courses, and I’ve got coupons! If you find a course on Udemy that you’d like a coupon for, just let me know and I’ll hook you up! Go to comments # Udemy St. Patrick’s Day Sale 🍀 March 13, 2019 ### Do beer and AI go together? For the next week, all my Deep Learning and AI courses are available for just$11.99! ($1.00 less than the current sale, woohoo!) For my courses, please use the coupons below (included in the links), or if you want, enter the coupon code: MAR2019. For prerequisite courses (math, stats, Python programming) and all other courses, follow the links at the bottom for sales of up to 90% off! Since ALL courses on Udemy on sale, if you want any course not listed here, just click the general (site-wide) link, and search for courses from that page. https://www.udemy.com/support-vector-machines-in-python/?couponCode=MAR2019 https://www.udemy.com/recommender-systems/?couponCode=MAR2019 https://www.udemy.com/deep-learning-advanced-nlp/?couponCode=MAR2019 ### PREREQUISITE COURSE COUPONS And just as important,$11.99 coupons for some helpful prerequisite courses. You NEED to know this stuff to understand machine learning in-depth:

General (site-wide): http://bit.ly/2oCY14Z
Python http://bit.ly/2pbXxXz
Calc 1 http://bit.ly/2okPUib
Calc 2 http://bit.ly/2oXnhpX
Calc 3 http://bit.ly/2pVU0gQ
Linalg 1 http://bit.ly/2oBBir1
Linalg 2 http://bit.ly/2q5SGEE
Probability (option 1) http://bit.ly/2p8kcC0
Probability (option 2) http://bit.ly/2oXa2pb
Probability (option 3) http://bit.ly/2oXbZSK

### OTHER UDEMY COURSE COUPONS

As you know, I’m the “Lazy Programmer”, not just the “Lazy Data Scientist” – I love all kinds of programming!

iOS courses:
https://lazyprogrammer.me/ios

Android courses:
https://lazyprogrammer.me/android

Ruby on Rails courses:
https://lazyprogrammer.me/ruby-on-rails

Python courses:
https://lazyprogrammer.me/python

Big Data (Spark + Hadoop) courses:

Javascript, ReactJS, AngularJS courses:
https://lazyprogrammer.me/js

### EVEN MORE COOL STUFF

Into Yoga in your spare time? Photography? Painting? There are courses, and I’ve got coupons! If you find a course on Udemy that you’d like a coupon for, just let me know and I’ll hook you up!

# New Years 2019

### How to meet your New Years resolutions in 2019

Firstly, I’d like to wish everyone on this list a happy new year, we are off to a great start. The new year is a time to set goals, turn things around, and be better than we were before.

What better way than to learn from thousands of experts around the world who are the best at what they do? Luckily, I’ve got something that will make it just a little easier.

I know a lot of you have been waiting for this – well here it is – the LOWEST price possible on ALL Udemy courses (yes, the whole site!)

For the next 10 days, ALL courses on Udemy (not just mine) are available for just $9.99! For my courses, please use the Udemy coupons below (included in the links below), or if you want, enter the coupon code: JAN2019. For prerequisite courses (math, stats, Python programming) and all other courses (Bitcoin, meditation, yoga, guitar, photography, whatever else you want to learn), follow the links at the bottom (or go to my website). Since ALL courses on Udemy are on sale, if you want any course not listed here, just click the general (site-wide) link, and search for courses from that page. https://www.udemy.com/recommender-systems/?couponCode=JAN2019 https://www.udemy.com/deep-learning-advanced-nlp/?couponCode=JAN2019 ### PREREQUISITE COURSE COUPONS And just as important,$9.99 coupons for some helpful prerequisite courses. You NEED to know this stuff to understand machine learning in-depth:

General (site-wide): http://bit.ly/2oCY14Z
Python http://bit.ly/2pbXxXz
Calc 1 http://bit.ly/2okPUib
Calc 2 http://bit.ly/2oXnhpX
Calc 3 http://bit.ly/2pVU0gQ
Linalg 1 http://bit.ly/2oBBir1
Linalg 2 http://bit.ly/2q5SGEE
Probability (option 1) http://bit.ly/2p8kcC0
Probability (option 2) http://bit.ly/2oXa2pb
Probability (option 3) http://bit.ly/2oXbZSK

### OTHER UDEMY COURSE COUPONS

As you know, I’m the “Lazy Programmer”, not just the “Lazy Data Scientist” – I love all kinds of programming!

iOS courses:
https://lazyprogrammer.me/ios

Android courses:
https://lazyprogrammer.me/android

Ruby on Rails courses:
https://lazyprogrammer.me/ruby-on-rails

Python courses:
https://lazyprogrammer.me/python

Big Data (Spark + Hadoop) courses:

Javascript, ReactJS, AngularJS courses:
https://lazyprogrammer.me/javascript

### EVEN MORE COOL STUFF

Into Yoga in your spare time? Photography? Painting? There are courses, and I’ve got coupons! If you find a course on Udemy that you’d like a coupon for, just let me know and I’ll hook you up!

# Artificial Intelligence Boxing Day Blowout!

December 26, 2018

#### Deep Learning and AI Courses for just $11.99 # Boxing Day 2018 ### Celebrate the Holidays with New AI & Deep Learning Courses! I’ve been busy making free content and updates for my existing courses, so guess what that means? Everything on sale! For the next week, all my Deep Learning and AI courses are available for just$11.99!

For my courses, please use the coupons below (included in the links), or if you want, enter the coupon code: DEC2018.

For prerequisite courses (math, stats, Python programming) and all other courses, follow the links at the bottom for sales of up to 90% off!

Since ALL courses on Udemy on sale, if you want any course not listed here, just click the general (site-wide) link, and search for courses from that page.

https://www.udemy.com/recommender-systems/?couponCode=DEC2018

### PREREQUISITE COURSE COUPONS

And just as important, \$11.99 coupons for some helpful prerequisite courses. You NEED to know this stuff to understand machine learning in-depth:

General (site-wide): http://bit.ly/2oCY14Z
Python http://bit.ly/2pbXxXz
Calc 1 http://bit.ly/2okPUib
Calc 2 http://bit.ly/2oXnhpX
Calc 3 http://bit.ly/2pVU0gQ
Linalg 1 http://bit.ly/2oBBir1
Linalg 2 http://bit.ly/2q5SGEE
Probability (option 1) http://bit.ly/2p8kcC0
Probability (option 2) http://bit.ly/2oXa2pb
Probability (option 3) http://bit.ly/2oXbZSK

### OTHER UDEMY COURSE COUPONS

As you know, I’m the “Lazy Programmer”, not just the “Lazy Data Scientist” – I love all kinds of programming!

iOS courses:
https://lazyprogrammer.me/ios

Android courses:
https://lazyprogrammer.me/android

Ruby on Rails courses:
https://lazyprogrammer.me/ruby-on-rails

Python courses:
https://lazyprogrammer.me/python

Big Data (Spark + Hadoop) courses:

Javascript, ReactJS, AngularJS courses:
https://lazyprogrammer.me/js

### EVEN MORE COOL STUFF

Into Yoga in your spare time? Photography? Painting? There are courses, and I’ve got coupons! If you find a course on Udemy that you’d like a coupon for, just let me know and I’ll hook you up!

# Neural Ordinary Differential Equations

December 15, 2018

Very interesting paper that got the Best Paper award at NIPS 2018.

“Neural Ordinary Differential Equations” by Ricky T. Q. Chen, Yulia Rubanova, Jesse Bettencourt, and David Duvenaud.

Comes out of Geoffrey Hinton’s Vector Institute in Toronto, Canada (although he is not an author on the paper).

For those of you who have ever programmed simulations of systems of differential equations, the motivation behind this should be quite intuitive.

Recall that a derivative is the same thing as the slope of a tangent line, and can be approximated by the usual “rise over run” formula for small time steps $$\Delta t$$.

$$\frac{dh}{dt} \approx \frac{h(t + \Delta t) – h(t)}{\Delta t}$$

Here’s a picture of that if you forgot what it looks like:

Normally, the derivative is known to be some function $$\frac{dh}{dt} = f(h, t)$$.

Your job in writing a simulation is to find out how $$h(t)$$ evolves over time.

Here’s a picture of how that works (using different symbols):

Since our job is to find the next value of $$h(t)$$, we can rearrange the above to get:

$$h(t + \Delta t) = h(t) + f(h(t), t) \Delta t$$

Typically the time step is just $$1$$, so we can rewrite the above as:

$$h_{t+1} = h_t + f(h_t, t)$$

Researchers noticed that this looks a lot like the residual network layer that is often used in deep learning!

In a residual network layer, $$h_t$$ represents the input value, $$h_{t+1}$$ represents the output value, and $$f(h_t, t)$$ represents the residual.

Here’s a picture of that (using different symbols):

At this point, the question to ask is, if a residual network layer is just a difference equation that approximates a differential equation, can there be a neural network layer that is an actual differential equation?

How would backpropagation be done?

This paper goes over all that and more.