Then for overall curriculum, I'd suggest:
1. start with basic machine learning (not neural networks) and in particular, read through the scikit-learn docs and watch a few tutorials on youtube. spend some time getting familiar with jupyter notebooks and pandas and tackle some real-world problems (kaggle is great or google around for datasets that excite you). Make sure you can solve regression, classification and clustering problems and understand how to measure the accuracy of your solution (understand things like precision, recall, mse, overfitting, train/test/validation splits)
2. Once you're comfortable with traditional machine learning, get stuck into neural networks by doing the fast.ai course. It's seriously good and will give you confidence in building near cutting-edge solutions to problems
3. Pick a specific problem area and watch a stanford course on it (e.g. cs231n for computer vision or cs224n for NLP)
4. Start reading papers. I recommend Mendeley to keep notes and organize them. The stanford courses will mention papers. Read those papers and the papers they cite.
5. Start trying out your own ideas and implementations.
While you do the above, supplement with:
* Talking Machines and O'Reilly Data Show podcasts
* Follow people like Richard Socher, Andrej Karpathy and other top researchers on Twitter
Good luck and enjoy!
The course in general lacks rigor, but I thought it was a very good first step.
Andrew Ng's Coursera course is probably good for some backgrounds. But if your background is as someone who has mostly been programming for the last few years, I feel that Andrew Ng's course has two big drawbacks:
1. It's not very hands-on or practical. You won't actually get the feeling of building anything for a while.
2. It's very math oriented. If the last time you took a math class for your CS degree was a few years ago, you run the risk of not really remembering the background material well.
I'd personally recommend doing two things in parallel, if your background is in programming with less math training:
1. Look for a very hands-on/practical course to try out some examples.
2. At the same time, start refreshing (or learning) some maths that you might not remember, specifically, probability and statistics. Then after, Linear Algebra and maybe calculus.
If you never took calculus it's probably going to be hard going, but almost all modern machine learning requires basic calculus.
I would really recommend going through the first part of the course about linear regression if you haven't encountered it before, it was really eye opening for me.
Again, this really depends on how mathematically competent you already are. I'm just basing this on how I felt coming to the course after having finished my degree about 10 years ago, therefore not really having most prob/statistics fresh in my mind.
It's the very first bit of the course, I think everyone who is interested should try learning it. If not it's fine, but I wouldn't want anyone to not even try to spend a few hours on it because someone on the internet said it would be too hard.
My worry is that people will be put off from the field of machine learning if, 3 lessons into Andrew Ng's course, they will see that they don't understand anything, and that it's not practical to boot.
So my advice (generally applicable) is to try a few different things, because different resources click for different people.
* Jeremy Howard's incredibly practical DL course http://course.fast.ai/
* Andrew Ng's new deep learning specialization (5 courses in total) on Coursera https://www.deeplearning.ai/
* Free online "book" http://neuralnetworksanddeeplearning.com/
* The first official deep learning book by Goodfellow, Bengio, Courville is also available online for free http://www.deeplearningbook.org/
Introduction to Statistical Learning http://www-bcf.usc.edu/~gareth/ISL/
Elements of Statistical Learning https://web.stanford.edu/~hastie/ElemStatLearn/
* Book: Hands-On Machine Learning w/ Scikit-Learn & TensorFlow (http://amzn.to/2vPG3Ur). Theory & code, starting from "shallow" learning (eg Linear Regression) on sckikit-learn, pandas, numpy; and moves to deep learning with TF.
* Podcast: Machine Learning Guide (http://ocdevel.com/podcasts/machine-learning). Commute/exercise backdrop to solidify theory. Provides curriculum & resources.
Disclaimer: I work for Insight
If you're into python programming then tutorials by sentdex are also pretty good and cover things like scikit, tensorflow, etc (more practical less theory)
Although this recommendation doesn't really fit the requirements of the poster, I think it is easy to reach first for modern, repackaged explanations and ignore the scientific literature. I think there is a great danger in that. Sometimes I think people are a bit scared to look at primary sources, so this is a great place to start if you are curious.
2. Deep Learning Summer School Montreal 2016 https://sites.google.com/site/deeplearningsummerschool2016/h...
2. selfdrivingcars.mit.edu + youtube playlist "MIT 6.S094: Deep Learning for Self-Driving Cars" (https://youtu.be/1L0TKZQcUtA?list=PLrAXtmErZgOeiKm4sgNOknGvN...)
3. Coursera: Machine Learning with Andrew Ng
4. Standford Cs231n (https://www.youtube.com/watch?v=g-PvXUjD6qg&list=PLlJy-eBtNF...)
5. Deep Learning School 2016 (https://www.youtube.com/playlist?list=PLrAXtmErZgOfMuxkACrYn...)
6. Udacity: Deep Learning (https://www.udacity.com/course/deep-learning--ud730)
I created a blog (http://ai.bskog.com) to have as a notepad and study backlog. There I keep track of what free courses I am currently taking and which one I will take next.
Although video courses are good. Everyday life makes it sometimes difficult to listen to videos on youtube while for instance doing chores around the house or working out, because you often need to a. see the slides/code examples, and b. put it into practice right away... therefore, podcasts are good to give you a flow of information.
Linear Digression, Data skeptic and (thanks to this thread i now discovered Machine Learning Guide)
Don't be discouraged if there is stuff you do not understand or feel like: i can never remember these terms or that algorithm. Just be immersed in the information and stuff will fall into place. And later when you hear about that thing again it will make more sense. I tend to use a breadth first approach to learning, where i get exposed to everything before digging into details thus getting an overview of what i need to learn and where to start.
Just Q&A - no presentations. Study from whatever books (http://amlbook.com/ and http://www.deeplearningbook.org/ are popular in our group) or courses (Andrew Ng's are also popular) you like throughout the week and then show up with any questions you have. We've been meeting for a couple of months now and new folks are always welcome no matter where you are in your studies!
There was one particular study piece that I remember reading that I believe was written in the late 70's early 80's, but I can't remember its name. It was a HTML unformatted uni course-work document that the guy who wrote it said he'd just keep changing it as required. Really wish I could remember his name.
I have a slightly different bent on what is discussed here, because my particular implementation reflects what I think is important. There are an infinite number of variations. It depends on what you think you think it might be good for.
Since then, I've used Wikipedia and Mathworld when work had needed it. Regression, random forest, simulated annealing, clustering, boosting and gradient ascent are all on the statistics/ML spectrum.
But the best resource was running NVIDIA DIGITS, training some of the stock models, and really looking deeply at the visualizations available. You could do this on your own computer, or these days, rent some spot GPU instance on ECC for cheap.
I highly recommend going through the DIGITS tutorials if you want a crash course in deep learning, and make sure to visualize all the steps! Try a few different network topologies and different depths to get a feel for how it works.
HN thread: https://news.ycombinator.com/item?id=14764700
For AI specifically, MOOCS on Coursera, edx, and Udacity will give you plenty of options. The ones by big names like Thrun, Norvig, and Ng are great places to start.
It really helps to already be comfortable with algorithms. Princeton's MOOCs on Algorithms by Bob Sedgewick on Coursera would be a great place to start.
If you're any good, and have good results to show and talk about, yes, you could totally be employed.
If you show that you're extra willing to do all the heavy data preparation and labeling work yourself as well as the infrastructure that runs the models, you'll have an even easier time. Most people just want to play with models, and believe data preparation is "beneath" them, but that's actually where the meat is and where the success of the model is made or destroyed.
>I can code in Julia, Python, R and Matlab
Finde one course you like, and convert it to Java, NodeJS, PHP, Lua, Swift or Go. You learn the course inside out, and you will build the tutorial you are looking for.
Note that you have Tensorflow for Java, Go and C.
For Java, you can also look at deeplearning4j
>R and Matlab might be good for prototyping
this is what you do in ML...
It is quirky, funny and above all very short and crisp and gives you a quick overview of things. Most of his videos are related to AI/ML.
Again, the cringe isn't the problem directly; but that it's a cover for his bluff. The result is a not-newbie-friendly resource.
> I've been called Bill Nye of Computer Science Kanye of Code Beyonce of Neural Networks Osain Bolt of Learning Chuck Norris of Python Jesus Christ of Machine Learning but it's the other way. They are the Siraj Raval of X
I mean, seriously?
But I wouldn't recommend him as a good resource to learn core ML from or figure out how stuff work internally.
He just pipes input through bunch of libraries that are available off the shelf. Does that produce a useful output? Sure. Could he write any of them himself, or explain how any of them work beyond a superficial overview? I doubt it.