Did I say training? I meant taking over the world… What do you think it’s actually doing with all that CPU and GPU time?
Today I’m going to focus on things that I’ve been reading to become a better ML practitioner.
Working with Data and Sharing Data
This is a helpful article I found accidentally that provides a great framework for working with data for yourself and for working with other people. It outlines a process that includes a little extra writing, but, on the other hand, leads to repeatable work that is more understandable and easier to share and show off your work. The page comes from the Leek group at Johns Hopkins. They do interesting work in public health and meta-research.
Machine Learning Self Help
This helped me see a couple insights and helped me think about what to track to better understand and evaluate the models that I’m working on. I think that the two biggest things I changed were to move to tracking both training and test accuracy to evaluate variance (overfitting) and tracking precision-recall tradeoffs. The first is generally useful, but the second is even more important for me. I’m working on machine learning for a safety system, so balancing precision and recall amounts to balancing the safety of making sure a robot stops when it sees a moving obstacle and the practicality of not stopping every time it sees something that has a slightly red hue to it.
This is a short read, but it can help you think through why your model’s working (or proactively address potential issues).
Someone Else’s List of Awesome Statistics in 2017
This is a list of good, interesting work in a variety of areas that I’m not super familiar with. I recommend it, I found that the list was very helpful for diving in and I actually didn’t get through all of it because I did more of a depth first search through the first couple of items. The reading time here is only bounded by the number of tabs you’ll open on your browser.
A lot of my knowledge of machine learning started in the classroom, but I’d like to think it’s taken a turn for the more practical. One of the ways that I’ve been able to continue forward with a more applied understanding was reading through the scikit-learn documentation (sounds like lots of fun, right?). I spent a lot of time reading about the different linear models and learning about how they evolved, but more recently I’ve started looking into some of the more complex models. My personal favorites have been the neural networks (with its practical tips section), bagging (reduces variance) and boosting (increases accuracy by weighting missed samples higher). All 3 are techniques introduced in the classroom that I’ve been able to unpack and explore how different parameters affect their performance (prediction latency, accuracy, precision, recall).
There’s where more to read here (even if you don’t look at the code and just read the text) than you could get through while watching AlphaGo Zero train on a Raspberry Pi (is that a even a thing that could happen?). Disclaimer: please don’t try this at home, it has been known to cause extreme boredom and exploration into re-implementing wheels in brainfuck.