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.
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.
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)