Optimizing a Week of Machine Learning Learning

by Raemon2 min read9th Jan 20182 comments


Machine LearningScholarship & Learning
Personal Blog

status: rough braindump. doesn't really attempt to communicate my background assumptions.

tldr: help Raemon optimize a week of Machine Learning reading/practice, with an eye for relevance towards understanding and/or helping with AI safety

I'd like to spend some time in January learning some cursory stuff about machine learning.

I currently know "the layman's gist" of what Machine Learning, Reinforcement Learning and Neural Networks mean, but nothing about how to apply them.

My coding background is in web development.

I have no math bathground.

Some plausible goals

(I'm not actually sure which of these should be highest priority, listed approximately in the order the occurred to me)

Goal 1 Gain some literacy in ML stuff for purposes of understanding technological developments relevant to AI safety. Subgoals:

  • Understand for myself what's going on rather than relying on other people's judgment
  • Be able to communicate with people in the industry and have some idea what they're talking about and vice-versa.

Goal 2: I know of at least a few positions currently for "ML technician that assists a researcher" (the ones I know of are AI safety related, and I have an impression that non-AI-Safety positions might exist as well, or in the future). I want to explore whether this is a plausible thing I might become competent enough at to be hireable.

Depending on how the field of Machine Learning is shaped, this might be something I want to do just to keep up with the world in general for career purposes, or it might be a set of skills useful for projects I care about.

Goal 3: After a brief bit of reading, it became clear this would involve re-acquainting myself with mathematical notation, which currently makes my eyes glaze over. It seemed like re-training that skill might at least make it possible to skim papers and have a rough idea of what they say, and this might be useful even if I don't pursue this professionally.

Time Allotted

Right now I don't have huge amounts of time for this, but will be dedicating the third week of January to putting as much effort into it as I can. (Realistically I'm guessing 5 hours a day of serious effort). Prior to 3rd week of January I'll be doing a few 1-hour sessions of work in the evening

So, goal is to optimize approximately 40 hours total of learning, mostly aiming for "explore value" to verify if I should spend additional time later.

Possible Actions

Things that easily occur to me are:

i. Textbook Reading

  • Read "Reinforcement Learning: An Introduction" by Richard Sutton and Andrew G Barton, a textbook that happens to be in my house. Advantage of this is that it's right there, it's a physical book which is kinda helpful.
  • Or, read some other book if someone highly recommends it over #1.
  • Breadth vs Depth/Learning - Either way, I could read "seriously" (i.e. make sure I fully understand each example as I go) or "quickly" (optimize to skim the book, get an overall feel for the foundations of the field, and then move on)

ii. Practical Practice

  • Find good tutorials on Tensor Flow, or other frameworks
  • Build a neural net in python from scratch so I have a rough idea of what's going on under the hood

iii. Reading Papers

  • Attend what seems to be a higher-level reading group meetup (reading this paper: https://arxiv.org/pdf/1412.3555v1.pdf). This seems like it'd require me to know a bunch of stuff going in to make heads or tails of it. The goal here would be more "train the skill of reading a paper and figuring out what it means"
  • Read some other papers better optimized for entry level training, if anyone has a recommendation or ideas on how to find one.

Questions I notice that'd help


Employability of ML

  • what are the different subgenres of ML programmer?
  • how employable is a roughly-average web developer who hasn't done any actual-factual math who switches to one of those ML subgenres?

How tractable is "stay up to date on AI developments", with a goal of AI Safety?

Motivational questions - what sorts of projects could I do that'd feel like I accomplished something? (I'm a big fan of using projects to learn things, although also a big fan of tutorials giving you superpowers. dunno)

  • is it practical to do "cute little" ML projects that haven't actually been done before (or, at least seem obscure), so it feels like I'm not just doing tutorials?
  • is it practical to do anything using data from LW?
    • cute example: train something on sequence texts and have it spit out random gibberish that sounds like Eliezer or Scott
    • possibly more useful example but I'm less clear how achievable it is: aim for something inspired by Paul Christiano's crowd-sourced auto moderation. (Before re-reading his post, I was thinking of something like "take at all upvotes/downvotes in the LW database. Filter them to particular users you trust/respect. See if this is able to reliably classify new comments as "good" or "bad" after training on historical data". After re-reading, I realize his goals had some stronger requirements, still seems maybe cute if not interesting if not useful)