Hacker News new | past | comments | ask | show | jobs | submit login
Top-down learning path: Machine Learning for Software Engineers (github.com/zuzoovn)
250 points by zuzoovn on Dec 27, 2016 | hide | past | favorite | 29 comments

There are some valuable resources listed here.

The field of deep learning is moving really fast, and a lot of that research is available on arXiv. Andrej Karpathy built a tool that surfaces interesting papers: http://www.arxiv-sanity.com/

r/machinelearning tends to vote up significant work and news https://www.reddit.com/r/MachineLearning/

And this list of papers may be helpful: https://github.com/songrotek/Deep-Learning-Papers-Reading-Ro...

For total beginners, we created this page: https://deeplearning4j.org/deeplearningforbeginners

My biggest challenge with CS papers is figuring out how to actually read them. I've tried to read multiple CS papers and I still can't understand them. Am I doing something wrong?

1) Have a reasonable math background, or at least be willing to take it slow and google.

2) Read the abstract, intro, and conclusion and see if the problem and result are worth the effort.

3) Read the body. The whole body may or may not be relevant to you depending on your interest. If you are starting out in a field, try to read and understand the whole thing. You will learn lingo, what is expected of a published paper in the field, improve your math skills, and make reading other papers easier.

If you are having a lot of trouble with 1 or 3, find a MOOC relevant to the subfield and go through it then go back to the literature.

Read the abstract and confirm it is relevant to you. In general, you will need to read papers if you want to be on the bleeding edge of the latest in research. That is machine learning research, and that is very specialized. But you do not necessarily need to be on the bleeding edge to be an effective machine learning engineer. For that you can use often less abstract and more digestible sources, including MOOC courses, tutorials, books of multiple levels, vendor-specific docs, etc.

Seems interesting. I haven't been able to look through all of the links, but I assume there are practical exercises and "homework"?

When people say "I don't do or have the opportunity to do ML at work" it's because they don't have data to analyze or actual things to program or do in order to gain the experience they need to make the videos worthwhile to watch.

If I were to watch 10 videos on ML, but not actually go write code or analyze data, then the videos aren't going to get me a ML job or be that helpful other than learning a little about the topic.

It's kind of like watching a open course on ancient history or some similar topic, but without writing a paper on it. Yes the video is interesting, but what gets me a job and experience is the thought and work that goes into the homework.

But even if these were just videos, it's a good resource.

When people say "I don't do or have the opportunity to do ML at work" it's because they don't have data to analyze or actual things to program or do in order to gain the experience they need to make the videos worthwhile to watch.

One thought about that: If you don't have "work data" to work on, there's still TONS of other "stuff" out there that you can work with. And given how much Open Data / Linked Data datasets are out there, for many industries I'd bet there's a pretty good chance one could find some interesting analysis of one of those datasets that would have value for their employer. Digging in and building something like that could help with bridging into an ML role. Or, if it's obvious that it just Isn't Going To Happen with one's current employer, it's always possible to just build something cool around an Open Data dataset and plop it up on GitHub to show other people. And in either case, it provides the motivation of having a project to work on.

There are also Kaggle competitions.

It has a lot of practical exercises, homework and dataset.


I appreciate a list of ML learning resources, but does anything about this strike you as strange?

Over 9000 github stars and 1,260 forks for a repo started on 9th October????

GitHub has no concept of bookmarks, so people star repos instead.

Disclaimer: I am the author of this guide. My main goal was to find an approach to studying Machine Learning that is mainly hands-on and abstracts most of the Math for the beginner. This approach is unconventional because it’s the top-down and results-first approach designed for software engineers. You can read more here: http://sdtimes.com/sd-times-github-project-week-machine-lear...

It's great, but it's a mess - a heap of articles, github repos, books and such. A new learner can't deal with that. What a new learner needs is an interactive system to guide a learner through the process. Not a static list - one size doesn't fit all. I might know Python and not know math, another one might come from stats and Matlab but not know Python. One might know about SVMs and Naive Bayes but not about neural nets, another might have played with Keras neural nets but neglected to read up on basic ML. We need an adaptive learning system. Who's going to make one?

It's a step-by-step guide on how to learning machine learning from overview to detail. Any comments are welcome.

If you want the interactive system, please check "A Visual Introduction to Machine Learning:http://www.r2d3.us/visual-intro-to-machine-learning-part-1/"

I can easily infer your URL, but I think it includes an extra slash and double-quote.

Oops, this is my typo. Sorry about that.

It was absolutely amazing! I suggest everyone who doesn't really know a thing about machine learning to take a look at this.

I use http://dataquest.io and it works pretty well.

It's also $30-50/month.

Check out Metacademy

General ML question: is there some tool, supposedly based on ML, that can learn from my editing behavior, and automatically deduce and apply editing commands for repetitive editing tasks? This would be great e.g. when refactoring code.

This looks excellent, thank you for this! I actually get a chance to be involved with some very very basic/light ML at work, but i'm also completely new to the field. I really appreciate this style of guide, as i can hopefully jumpstart my knowledge, while i work to gain the required math knowledge.

The Math will be my most difficult challenge, and i'm starting to brush up / learn courses to hopefully enable the proper skillset. /fingerscrossed

Really appreciate that. I will be looking into that tonight, thank you!

My main source will likely be Khan, any sources you like more than Khan? Ie, class room / instructor style (class room is probably good, given the ease of testing math)

There still seems to be a lot of people out there who believe they can never become proficient at mathematics. This really holds a lot of people back and it shouldn’t.

Once you have the motivation to learn something, because it solves an immediate problem you have, you will learn it.

I don't think i can't be, i just know i have a lot to learn. My understanding of math is criminally small (despite enjoying the subject). Furthermore, ML seems to be on the advanced side of things.. at least, for those like myself.

I'm going to put in the work to learn it proper, but i suspect it will take me a fair bit of time. I've got many years to make up for.

Luckily there are many institutions online to aid in fundamental education like this :)

Looks to be both a thoughtful listing of resources / tutorials, but also reinforces that to become ML capable, there is considerable effort involved. Things worth doing may require a lot of work, and I'm happy this wasn't another "Learn ML is 24 hours!" type resource.

Thanks, this is my multi-month study plan.

This is a great resource. I'd add Practical Deep Learning for Coders [0] to the video series list.

[0] http://course.fast.ai/index.html

I added. Thanks

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact