I'm sure you'll agree that Artificial Intelligence, in particular Deep Learning, has made huge strides in the last 5 years or so.

But what began as a relatively niche field with just a handful of researchers, has now become so mainstream that the apps and services that we use everyday now use Deep Learning to perform tasks that were unthinkable not that long ago.

But Deep Learning isn't new. It's been around since the 1940s when Warren McCulloch and Walter Pitts created a computational model for neural networks based on mathematics and algorithms.

However "Deep Learning" only began to gain in popularity in the mid-2000s when Geoffrey Hinton and Ruslan Salakhutdinov released a paper showed how a multi-layered neural network could be pre-trained one layer at a time.

In 2009 it was discovered that with large enough datasets, you didn't actually need the pre-training and that error rates could drop significantly as a result.

Fast forward to 2012 and Google's Deep Learning system achieved a human-level ability to discover cats.

In 2017 Google's DeepMind built an algorithm called AlphaGo which can teach itself to master games like chess, Go, Shogi and other games without human intervention.

But this is just the start. Deep Learning is going to continually improve as datasets become larger and processors get fast enough to be able to train on even more vast amounts of data.

So, if you want to be part of this revolution, there's no better time to start learning about Deep Learning than at the present moment.

With GPUs and big data sets readily available, there's a huge opportunity to learn Deep Learning. And doing so will enable you to train machines to perform some incredible tasks such as facial recognition, cancer detection and even stock market prediction.

That's where these books come in handy as they will allow you to learn Deep Learning from scratch.

Each of the books in this roundup have their own merits and each of them are excellent in their own right.

However, I have ranked them starting from which I think is the best and the order in which I would recommend buying.

So without further ado, here are the 12 best Deep Learning books on the interwebs at the moment. Enjoy.

## Hands-On Machine Learning with Scikit-Learn and TensorFlow

First up, and the best one in this roundup in my opinion, is a book that takes a "hands-on" approach to Deep Learning using the popular machine learning library Scikit-Learn and Google's TensorFlow.

Like many "Deep Learning" books, and especially the next book in this roundup, it is packed full of equations but it's much less of a reference book and more readable than one too.

The author tries to explain complex topics in a way that almost anybody can understand, which is a big plus in my oppinion.

What I like about Hands-On Machine Learning is that it takes you through a machine learning project from beginning to end. So you can see what it's like to work with real data, how to visualize the data to gain insights and importantly, how to prep the data for machine learning algorithms.

Later on in the book, you'll look at the famous MNIST classifier, how models are trained and some basic machine learning classifiers such as SVMs, Decision Trees, Random Forests etc.

All this is written to prepare you for the second part of the book which deals with Tensorflow (including installation) and a look at basic neural networks and deep neural networks.

I think the way this book is structured is excellent and introduces topics in the correct order. Despite the fact that there are lots of equations in this book, the ideas and concrete examples in the book are explained very well.

## Deep Learning

OK, so next up is Deep Learning. Probably the most comprehensive and complete book in this roundup.

The book has been written by three experts in the field, Ian Goodfellow, Yoshua Bengio and Aaron Courville.

Also this book is the only book in this roundup to have an endorsement by the entrepreneur Elon Musk.

This bool is considered by many to be the bible of Deep Learning and rightly so - it brings together years and years worth of learning and dedicated research in one single book.

This book is not for the faint hearted though and may be better used for bedtime reading, because it is crammed full of equations and written in a typical textbook fashion - so it's not written in the most interesting style.

It does however start from the beginning so to speak and introduces basic mathematics such as Linear Algebra, Probability Theory before moving onto Machine Learning Basics and finally Deep Networks and Deep Learning.

So, if you're an aspiring student looking to master the subject and get into Deep Learning research or even if you want to teach it, then this book will definitely benefit you. It's probably the most comprehensive book on the subject at the moment.

## Deep Learning for the Layman

I've included this book because, as the title suggests, it is written for a general audience.

Deep Learning for the layman starts off with an introduction to Deep Learning, specifically, what it is and why it's needed.

The next part of the book explains the differences between supervised learning, unsupervised learning and reinforcement learning and also introduces topics such as classification and clustering.

Later on in the book, Artificial Neural Networks are discussed including how they are constructed and the parts that make up each layer in the network.

Finally Deep Learning is discussed including Convolutional Neural Networks which form part of many computer vision algorithms that are in use today.

I see this book really as an introduction to Deep Learning and to get an idea of the concepts involved. Practically though, I'm not sure this book will be of benefit, but if you want a plain English guide which at the same time cuts through the hype, then this book could be for you.

## Make Your Own Neural Network

This is not strictly a 'Deep Learning' book but this book will take you on a journey to fully understanding neural networks and how they work, which should aid your understanding of deep neural networks.

In this book, you'll be guided through the mathematics of neural networks and will enable a complete beginner to fully understand how neural networks work.

Not only are you guided through how they work, you'll actually implement two examples of neural networks in Python which will help cement your understanding of the subject.

The book starts off with a high level overview of machine learning and then drills down further into the the specifics of a neural network.

The maths involved doesn't go much beyond secondary school level but does include a slight introduction to calculus which is explained in a way that is accessible to as many people as possible.

There are two parts to make your own neural network, the first part is all about the ideas and the theory whilst the second part is more practical.

In the second part, you'll learn the Python programming language and gradually build up your own neural network that is capable of recognising hand-written numbers.

As a bonus, you'll also learn how to get your neural network running on a Raspberry Pi!

This is a fantastic book for those looking to learn the nitty gritty of basic neural networks and could be a great prerequisite to one of the other books on Deep Learning in this roundup.

## Deep Learning for Beginners

Deep learning for beginners doesn't focus so much on the mathematics of Deep Learning, but uses graphs to help you understand the basic concepts and algorithms of Deep Learning.

This book takes a different approach than many other books by providing simple examples of how Deep Learning algorithms work and then builds on those examples step-by-step and gradually introducing more complex parts of the algorithms.

The target audience for this book is quite varied, ranging from newbies in computer science, through to data science professionals and tutors looking to explain the subject to students in the simplest possible way.

In terms of the book structure, you'll first learn the basics of artificial neural networks and learn the differences between machine learning and Deep Learning.

Following on from this you'll learn all about the Multilayer Perceptron (MLP) before progressing onto Convolutional Neural Networks (CNN) and other Deep Learning algorithms.

This is a great beginners book that explains the concepts well, but if you're looking for something that is more practical, then you should probably look to the other books in this roundup.

## Neural Networks and Deep Learning: Deep Learning explained to your granny

A book that explains things so simply that your granny can understand deserves a place on any list in my opinion!

Neural Networks and Deep Learning takes you on a step-by-step journey through the basics of neural networks and Deep Learning and is a great book for those that want to understand the topic but don't necessarily want to get into all the maths behind it.

So, after a brief introduction to machine learning, you'll learn about supervised and unsupervised learning and then delve into things like neurons, activation functions and different types of network architectures.

Finally you'll learn how Deep Learning actually works, what the main types of deep neural networks are (including convolutional neural networks), how to give neural networks memory and it also discusses the various frameworks and libraries that are available.

## Fundamentals of Deep Learning: Designing Next-Generation Machine Intelligence Algorithms

This book by Nikhil Buduma and contributions from Nicholas Locascio is designed to get you started with Deep Learning but is aimed at those that are familiar with Python and have a background in calculus.

Despite this, Fundamentals of Deep Learning does cover the foundations of machine learning and neural networks and teaches you how to train feed-forward neural networks.

One of the highlights of this book in my opinion is that it makes heavy use of Tensorflow, which is Google's API for building neural networks. In fact there's a whole chapter dedicated to it, which is a massive plus point in my opinion.

In terms of the rest of the book, it goes into some quite advanced features such as the problems with gradient descent, convolutional filters, deep reinforcement learning and more.

However, the book does have some excellent diagrams, the maths is kept to a minimum and there are some excellent explanations in here.

## Learning TensorFlow: A Guide to Building Deep Learning Systems

Next up is a book that focuses entirely on Tensorflow - an end-to-end guide if you will.

The book provides a practical hands-on approach to Tensorflow and is written for a broad technical audience ranging from data scientists through to engineers, students and reserarchers.

The book starts out slowly by providing some basic examples in Tensorflow but then moves onto more in-depth topics such as neural network architectures like convolutional neural networks, how to work with text and sequences, TensorBoard visualization, TensorFlow abstraction libraries, and multi-threaded input pipelines.

The ultimate goal of Learning TensorFlow is to teach you how to build and deploy production-ready Deep Learning systems in Tensorflow by saving and exporting your models and how to use the Tensorflow Serving API.

## Deep Learning with Python

Deep learning with python as the title suggests introduces Deep Learning using the Python programming language and the open-source Keras library which allows for easy and fast prototyping.

The great thing about this book is that the author is very engaging which makes the book very readable. As such some of the more challenging aspects of AI and Deep Learning are laid out simply which makes it easy to understand.

The book also avoids mathematical notations and instead focuses on explaining concepts via code snippets (of which there are over 30 of them).

Inside deep learning with python you'll learn about Deep Learning from the very beginning, you learn all about image classification models, how to use Deep Learning for text and sequences and you'll even learn how to use neural networks to generate text and images.

The book is written for those that have intermediate Python skills but you don't have to have any previous experience in machine learning, Tensorflow or Keras.

Oh and you don't need an advanced maths background either, just basic high school level maths should allow you to follow along and understand the core ideas.

## Deep Learning: A Practitioner's Approach

Number ten on my list is Deep Learning: A Practitioner's Approach.

Unlike the other books in this roundup, this book focuses on Deep Learning For Java (DL4J) which is a Java framework/library for training and implementing deep neural networks.

Now most AI research is carried out in Python because it's generally quicker to do rapid prototyping, but as more organizations (many of which use Java) embrace AI, we're probably going to see more AI algorithms shift to Java like DL4J.

The book is first and foremost a beginners book on Deep Learning, but if you already have experience in Java or Deep Learning, then you can head straight over to look at the examples.

If you have no experience in Deep Learning, but strong Java experience, then you should read it from cover to cover.

If you don't know Java at all, then I highly recommend reading one of these Java beginners books.

By reading this book you will learn about machine learning concepts in general, with a particular focus on Deep Learning.

You'll learn how deep neural networks have evolved from basic neural networks and you'll also look at some deep network architectures such as Convolutional and Recurrent neural networks.

If you're familiar with Hadoop and Spark, then you'll be able to learn how you can use these technologies natively with DL4J.

## Pro Deep Learning with TensorFlow

This book will teach you Tensorflow in a hands-on, practical manner enabling you to learn Deep Learning from scratch, get up to speed quickly with the Tensorflow API and learn how to optimize the various Deep Learning network architectures.

Pro Deep Learning will help you develop the mathematical knowledge and the intuition required to tweak existing neural network architectures or even invent completely new architectures that could challenge the state-of-the-art.

All the code in this book is available in the form of iPython notebooks, and having used Tensorflow in the past, I found it very useful to use the iPython notebooks during development.

The book is aimed at Data scientists and machine learning professionals, software developers, graduate students, and open source enthusiasts and will give you the mathematical foundation and the machine learning principles to enable you to carry out research and also deploy Deep Learning solutions into production.

## TensorFlow for Deep Learning

At the time of writing, TensorFlow for Deep Learning has not yet been released but is available for pre-order.

The book will teach you the concepts of Deep Learning through practical examples from the ground up and is designed for developers experienced in building software systems but with no experience of Deep Learning architectures.

So this book will show you how to design systems that can perform object detection, translate human speech, analyze video and even predict the properities of potential medicines!

You'll gain in-depth knowledge of the Tensorflow API, how to train neural networks on large datasets and how to use TensorFlow with convolutional networks, recurrent networks, LSTMs, and reinforcement learning.

The book does assume some background in basic linear algebra and calculus, but this is a practical book designed to teach you how to create systems that can learn.

## Wrapping up

So that's it guys, the best Deep Learning books out there at the moment.

Artificial Intelligence, particularly Deep Learning, has been very effective and extraordinary things have been already been achieved with this technology. However, it is still in its infancy and many organizations have yet to embrace it.

But this provides opportunity, and an opportunity for those that are willing to learn the subject.

Deep Learning has the power to transform many industries and there's many ideas for startups that haven't been dreamt up yet. I feel we're just at the beginning of a revolution.

As a Java developer, I have had some experience of Deep Learning, but I know many of my colleagues have yet to learn the subject.

So why not take this opportunity to stand out from the crowd and learn all you can about Deep Learning and maybe you could bring the next big AI startup to Silicon Valley?

Even if you don't create a startup, it's a fantastic addition to any Resume.