As someone without a background in machine learning I decided to take a look at Tensorflow as it made experimenting with ML more accessible. There are many other frameworks and libraries but given the glow of the Google brand, Tensorflow garnered a lot of attention and interest and so I was piqued. Getting started with installing Tensorflow is relatively straightforward and I won’t go in to the details of the mechanics as you can find that information here: https://www.tensorflow.org/install/ However, what I will focus on in this post is the resources I found useful for learning Tensorflow and the basics of Machine Learning.
Learning Machine Learning
I’m one of those people who does things backwards, I dive in the deep end and start to create things, badly, then when my l hit my limits, sometimes really quickly, I RTFM. Here are some resources I found useful to getting to the basics:
- Machine Learning by Stanford University on Coursera
This course taught by Andrew Ng introduces you to ML from the fundamental mathematics and then works through a set of increasingly more complex algorithms and tools. You really need to have a good grips on algebra and matrix operations to get the most from it. But within 3 weeks you will have, according to Andrew, the same level of knowledge that a lot of Silicon Valley engineers have that are making millions of dollar products. So yeah if that’s not a motivator?!
- Practical Machine Learning Tutorial with Python Introduction
This is a programming centred introduction to Machine Learning for those who are more interested in applying algorithms. They do cover the theory and discuss the high level intuitions of the algorithms and how they are logically meant to work.
- Deep Learning by Google on Udacity
I only came across this course recently and I plan to complete it at some stage soon. I’m including it here due to its pedigree for now.
Tensorflow was designed for use by people with familiarity with ML and its terminology. So if you’re new to the field, you’ll find yourself trying to understand the vocabulary and the implications of the numerous choices you’re making all the while you’re coding. So if you’re the impatient type and just want to get started these are tutorials and articles I found helped me to do and learn at the same time.
- Tensorflow Tutorials
These are the tutorials provided by Tensorflow and are a good introduction. There are numerous tutorials of increasing complecity provided but some of them still assume certain level of prior knowledge (in sometimes oddly specific ways). I would highly recommend starting from the first tutorials as they get more complex and assume more ML knowledge fast.
This website I found very useful to work through in parallel to the official tutorials. It takes more baby steps to introducing concepts and the exercises are more self contained which helps you to focus your learning on specific functionality. A lot is happening at the same time in Tensorflow and it’s not always obvious how different parts affect each other.
- Deep Learning with Neural Networks and TensorFlow
This is a sub-section of the Practical Machine Learning Tutorial with Python Introduction from above. This dives quickly in to the principles of neural networks and then applying it in Tensorflow. It uses examples similar to that of the official tutorial but is much more verbose. So if you’re struggling a bit with the official tutorials this tutorial may be better for you.
- A Practical Guide for Debugging TensorFlow Codes
You can’t get away from bugs and I found this presentation to be invaluable in getting to the bottom of some devilish ones.
There are a couple of posts on O’Reilly which cover step by step basics of using Tensorflow in some not always useful example. I found these helpful to clarify my understanding not from the examples but the clear step by step explanations:
If you’ve managed to cover all this material you should be pretty up to speed on the theory of machine learning and confident in starting to implement increasingly complex models in Tensorflow. Your learning objective will be different to mine so in the next section I will list some additional resources that I found interesting or a source of additional learning.
- O’Reilly AI Topic
- One More Robot Learns to See
- Implementing a CNN For Text Classification in Tensorflow
- A TensorFlow Tutorial: Email Classification
- TensorFlow Tutorial – used by Nvidia
- Colah’s Blog
I will update this post as I continue to learn about Machine Learning and Tensorflow.