Advanced Deep Learning with Keras

Author: Rowel Atienza
Publisher: Packt Publishing
Pages: 368
ISBN: 978-1788629416
Print: 1788629418
Kindle: B078N8RDCP
Audience: Developers using Keras
Rating: 4.5
Reviewer: Mike James

There's a shortage of books on AI with "advanced" in the title, so how does this one live up to its claim?

Everyone wants to write an introductory book on deep learning - its easy and hopefully rewarding. In short there are lots of deep learning books that are shallow. This book isn't shallow, but it might not suit every reader. The most important thing to say is that this isn't an advanced theoretical text. If you are looking to learn the deeper principles, and more importantly the math, behind deep learning then this isn't going to be for you. As long as you aren't expecting deep theory then this might not be a problem as advanced examples are also useful and this is mainly what this book has to offer.


The book uses Keras, and hence Python, but which language it is in is almost irrelevant as nearly all of the code is composed of function calls, which look the same in most languages. Keras is a good choice because it is widely used by the deep learning community and it supports a range of different backends. The book uses TensorFlow, which is another good choice, running on CPUs and occasionally NVIDIA GPUs. Although the book uses Keras, this isn't a Keras tutorial and if you want to understand the structure of the program you need a different book.

Chapter 1 deals with downloading and installing Keras and TensorFlow and there is a brief overview of the main types of neural network. This doesn't start from the basics, it just tells you that there are three types - multilayer, convolutional and recurrent. In theory terms this is a bit like starting an ascent of Everest from not far below the summit. There is plenty of discussion, but if you don't know your theory I'm not sure how much you are going to get from it. The example uses the well-known MNIST data set.  You also meet ideas such as regularization, activation, loss function and get to build a multi-layer perceptron network. 


From here on each chapter takes a particular type of network, explains it in very high level terms and builds a model to demonstrate it. Chapter 2 for example deals with the simplest deep neural network, resnet and a convolutional network. If you don't know what a convolutional network is you wont know after reading the chapter. If you do know then building one might help you get to grips with the practicalities.

Chapter 3 introduces autoencoders - a much overlooked type of network that is useful as a component of larger archectures. The examples are a denoising autoencoder and automatic colorization autoencoder. Either project could become an obsesion in the right hands.

Chapter 4 moves on to the basic Generative Adversarial Network or GAN. GANs get a lot of publicity because they are responsible for things like deep fakes and generating images of things from a description - they tend towards the arty application. This said they are still interesting in a wider context. This starts a section looking at variations on the basic GAN - Chapter 5 Wasserstein GAN and Least-Squares GAN; Chapter 6 infoGAN, and StackedGAN and Chapter 7 cross domain GANs. Chapter 8 introduces the idea of a variational autoencoder, which is an alternative to the GAN archetecture.

Chapters 9 and 10 look at deep reinforcement learning which is also a hot topic - its the technique used to by AlphaGo to learn to play Go better than humans. Chapter 9 introduces basic Q learning and Chapter 10 policy gradient methods. There are some explanation of the theory but if you don't already know it you probably aren't going understand much of it.

This is not a book that the beginner would find useful, but it does have the warning term "Advanced" in the title. The examples go well beyond the basic introductions to any of the topics that you will find in most other books.

It is very strong on GANs and weak on convolutional networks. The explanations around each example don't really help you understand what is going on - at best they are reminders of what you should already know. The same is true of using Keras - there is no real explanation of how Keras is organized or how it works. You are expected to learn by example.

This might sound as if I think the book isn't valuable - it is, but mainly as a set of advanced examples. If this is what you are looking for then this is exactly the book you need.


To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.


Modern JavaScript for the Impatient

Author: Cay S. Horstmann
Publisher: Addison-Wesley
Date: July 2020
Pages: 352
ISBN: 978-0136502142
Print: 0136502148
Kindle: B08F5HFWBH
Audience: Developers interested in JavaScript
Rating: 4
Reviewer: Mike James
So you're impatient - what next?

Large-Scale C++, Volume I

Author: John Lakos
Publisher: Addison-Wesley
Pages: 988
ISBN: 978-0201717068
Print: 0201717069
Kindle: B0826523GZ
Audience: Programmers with plenty of time to spare
Rating: 3
Reviewer Mike James:
Large Scale C++, what can this mean?

More Reviews

Last Updated ( Tuesday, 15 January 2019 )