Machine Learning, Graphs, Stuff

Recently I've been working a lot with machine learning. I'll be presenting a selection of articles on different areas over the next few weeks.

Getting started with machine learning

One of the problems with machine learning is that lots of people have heard of it (and associate it vaguely with their vague ideas of artificial intelligence), but very few people have even a basic idea of how it works. I've been sharing an intro with some of my friends from both technical and non-technical backgrounds and I've had some promising reactions so as soon as I've replaced any of the diagrams from the web I can't find a license for I'll post it up.
Even for people who have a reasonable idea, the thought of digging back into their college maths for linear algebra and derivatives might seem daunting: I'll try and provide some visual intuitions for matrix/tensor operations in machine learning to help you on your way.


The Tensorflow documentation and guides are getting better but they're still pretty thin. Programming through computational graphs takes a little getting used to by itself and if you're not overly familiar with machine learning in the first place it can be a difficult place to start.
There are some resources I've found useful which I'll share links to and I'll be providing some code and projects to make things adoption easier both in python and c++.
I've also got a Nodejs Express project where I show how to get an addon talking to a shared c++ library. There are a lot of large frameworks emerging out there but getting image recognition working as a microservice really only requires a few files. I'll put these up on github and do a walkthrough (There are a few platform details particularly on OSX that I'll detail that should save people a bit of time). There's enough to get started on Tensorflow and Node here and there's more to come soon.

There are a few thoughts on machine learning in a microservice environment here. I'll expand on it as I play around.

Other approaches

Writing your own code is always a good way to familiarize yourself with new ideas. There's a lot of machine learning code knocking around in python - numpy - tensorflow, so I decided to write some in scala... It was an interesting exercise and a good way to find out what's missing from scala linear algebra libraries and what I would look for in other peoples approaches.