Textbooks and Resources

As an applied course, PY-599 covers materials from different branches of Artificial Intelligence. As a result, the materials will be from different textbooks and resources and there is no single book that contains all the topics. This page lists these books and resources for the course. The list will be updated as we move forward in the semester.

Books

1- Deep Learning, Ian Goodfellow, Yoshua Bengio, and Aaron Courville.

Arguably the most famous and the most comprehensive book in its field, Deep Learning covers machine learning in general and deep learning in particular. And the authors of this book are the pioneers and the heroes of deep learning. This book is not an introductory book to machine learning. As a result, students who do not have prior experience in machine learning might find this book overwhelming at the beginning. In PY-599, Applied AI class, we will start from introductory topics and then will switch to cover sections of this book.

You can access and read this book for free online: https://www.deeplearningbook.org/

 

2- Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems, Aurélien Géron.

This is not a theoretical or an academic textbook, and it never claims to be! This is a good hands-on book on the basic mainstream machine learning and deep learning, and it comes with many good example codes. Example codes and solutions are available on Github to download and use: https://github.com/amitanalyste/aurelienGeron

No free copy online, but the book is very reasonably priced ($27.27 on Amazon, price checked on Aug 15, 2018, it may slightly vary over time).

 

3- The Elements of Statistical Learning: Data Mining, Inference, and Prediction By Trevor Hastie, Robert Tibshirani, Jerome Friedman

This is a great theoretical book on the statistical Learning. This book does not include modern machine learning and deep learning topics, however it discusses the statistical foundation and aspects of learning.

A link to a free PDF file of this book is posted on the website of one of the authors: https://web.stanford.edu/~hastie/Papers/ESLII.pdf

 

4- Machine Learning Yearning, Andrew Ng

Andrew Ng does it again and delivers another top-notch resource for deep learning! Machine Learning Yearning is focused not on teaching you machine learning algorithms, but on how to make them work! There is a gap between knowing an algorithm and making it work on a real-world problem. This book covers this gap and proposes good practices to bridge the gap. This is a must read book for anyone who practices machine learning. You can download an early draft version of this book for free from here (it requires registration, but it is free):

https://www.deeplearning.ai/machine-learning-yearning/

 

5- Deep Learning with Python, François Chollet

Image result for deep learning python manning

With 351 pages, this is a relatively slim book on deep learning. And the main focus of the book is on the programing and development aspects of deep learning with very little attention to the theoretical foundations. But what makes this book interesting is its author, François Chollet.

François Chollet is a member of Google’s brain team, and much more interestingly, he is the author of popular Keras library for deep learning. As a result, this book is arguably the best book on Keras for deep learning. Also this book is published in 2018, making it one of the newest books in the field of deep learning.

You can find the codes of this book with very good amount of explanation on Github for free:

https://github.com/fchollet/deep-learning-with-python-notebooks

No free copy online, but the book is very reasonably priced ($30.05 on Amazon, price checked on October 31, 2018, it may slightly vary over time).

 

6- Advanced Deep Learning with Keras, Rowel Atienza

Advanced Deep Learning with Keras is another slim book on deep learning that focuses on the practical and programing aspects of deep learning. You will not find a lot of theory in this book, and this book is not about theoretical foundations of learning. Instead, it follows a practical and hands-on approach to the field, and walks the reader through coding and implementation details of deep learning. This book is published in October 2018, making it one of the newest books in this field (as of November 29th, when this part is updated.)

What makes this book interesting is that this is an advanced practical, hands-on book on deep learning. Many of the existing hands-on books on deep learning are usually elementary to intermediate, but this book focuses on more advanced topics. A good portion of this book, %40 to be more precise, is allocated to GANs and the more advanced versions of GANs, making this book very unique compared to the rest of the books in this field. Granted, you can find a similiar content in a collection of recent research and review articles. However, it is always convenient to have all of those information spread across multiple papers in one, well-organized book, accompanied by codes all in the same programing language and framework.

Codes of this book can be found on its Github page:

https://github.com/PacktPublishing/Advanced-Deep-Learning-with-Keras

No free copy online, but the book is very reasonably priced ($39 on Amazon, and the publisher is selling the book at a discounted price as of November 29, 2018):

https://www.packtpub.com/big-data-and-business-intelligence/advanced-deep-learning-keras

 

Online Resources

1- Scikit-learn: a machine learning library for the Python programming language.

Scikit-learn, also known as SKLearn, is a free Python module for machine learning that you can easily import, and use its machine learning functions. Powered by Scikit-learn, you can develop a machine learning solution with just a few lines of codes!

http://scikit-learn.org is Scikit-learn’s official website. This website includes a Quick Start to Machine Learning with Scikit-learn, Scikit-learn Tutorials, and plenty of Examples.

Scikit-learn is not intended for deep learning, and it does not include or support deep neural networks. Scikit-learn mostly covers traditional machine learning techniques. Scikit-learn has a Multi-layer Perceptron (MLP) function, but this is an implementation for shallow neural networks. In PY-599, we use Keras library for deep learning.

 

2- Keras: a free, open source neural network library for Python.

Keras is a high-level API to design and prototype deep neural network solutions. It is developed with a focus on enabling fast experimentation, enabling the designer to go from idea to result with the least possible delay.

https://keras.io, Keras’s official website, contains really good learning materials. Getting started section walks you through Keras with simple examples, and helps you write your first deep learning example within minutes with a few lines of codes.

 

3- Google Colaboratory (Colab): Colab is Google’s research tool for machine learning education and research.

The mission of Google’s Colab project is to help disseminate machine learning education and research. Colab allows you to develop machine learning solutions without having to download, install, or run anything on your own computer other than a browser. It comes with the entire stack for machine learning, including access to free GPU, to develop, test, and execute machine learning programs.

https://colab.research.google.com is the official website for Google Colab, and it offers useful resources, including Getting Started section, code snippets, etc.