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

Underlying:

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)

8

2 comments, sorted by Click to highlight new comments since: Today at 12:03 PM
New Comment

Hi Raemon! This is a topic I'm very bad ad writing structured answers about, and much better at chatting about, because there are tons of things to say and I'd need more details to know how to steer my advice.

That being said, I recommend you this repository for resources, aimed at people with a tech, but not necessarily math, background. Reading though some of the guides there should help you solve some of your last-section questions.

I'd say that staying up to date on AI developments with a goal of AI safety is entirely tractable as long as you're not looking for the particular techniques that will lead to unsafe AI. Most AI literature is entirely disconnected from AI safety concerns, and if you dive into the field enough, you will become proficient enough to understand the papers that are relevant to safety concerns.

Cute little ML projects almost always have hidden depths, if you're dealing with real-world data. I suggest to try them after tutorials, not as tutorials, so that you'll be able to split whatever you're trying to do in manageable chunks (and understand why things fail or succeed).

I wish you the best for your endeavor!

Thanks! That repository looks helpful.