top | item 11859165

Ask HN: From programming to AI, how?

68 points| siscia | 9 years ago | reply

Hi HN,

I am a fairly decent programmer by now, but I would like to explore AI more deeply.

I do have basics of statistic, I know about mean mean square error, linear regression, regression tree, k-mean etc...

I would like to get into deep learning but actually I don't know what direction I should take.

I would like to do like I did with programming, exploring simple problem first and then moving into more sophisticated stuff.

However I feel like that the problem of the field are pretty expensive to work on either from a monetary point of view (GPU) and from a duration point of view.

Anybody has took this same path before? What would you suggest? What problem did you learn the most from?

19 comments

order
[+] vaibkv|9 years ago|reply
Here's a tentative plan- 1. Do fully AndrewNg's course from Coursera

2. Do a course called AnalyticsEdge by MIT folks from edx.org. I can't recommend this course highly enough. It's a gem. You will learn practical stuff like RoC curves, and what not. Note that for a few things you will need to google and read on your own as the course might just give you an overview.

3. Keep the book "Elements of Statistical Learning" by Trevor Hastie handy. You will need to refer this book a lot.

4. There is also a course that Professor Hastie runs but I don't know the link for it. I highly recommend it as it gives a very good grounding on things like GBM, which are used a lot in practical scenarios.

5. Pick up twitter/enron emails/product reviews datasets and do sentiment analysis on it.

6. Pick up a lot of documents on some topic and make a program for automatically producing a summary of those documents - first read some papers on it.

7. Don't do Kaggle. It's something you do when you have considerable expertise with ML/AI.

8. Pick up flights data and do prediction for flight delays. Use different algorithms, compare them.

9. Make a recommendation system to recommend books/music/movies (or all).

10. Make a Neural Network to predict moves in a tic-tac-toe game.

These are a few things that can get you started. This is vast field but once you've done the above in earnest I think you have a good grounding.

Pick a topic that interests you and write a paper on it - it's not such a big deal.

[+] civilian|9 years ago|reply
I just started the Coursera Machine Learning course. I know that it's probably a bit under your skill level, but the second half of the class might give you some broad education about what's possible in the field of machine learning. https://www.coursera.org/learn/machine-learning/
[+] mlennox|9 years ago|reply
I started this course to learn the maths, technical terms, approaches and 'philosophy' of machine learning. I'd highly recommend it even with the stats knowledge you have, you'll still get a lot out of it. I wanted to be able to understand articles about deep learning and this course allowed me to do that.

I recommend watching the videos at a higher speed at least, and you can skip ahead if you are not doing the course to get a validated grade, although I suggest working through the whole choose.

[+] macromaniac|9 years ago|reply
After taking Andrew Ngs course I highly recommend you take cs231n afterwards.

Assuming you know a little bit of calculus you'll be able to create and train fully connected networks, convolution networks, recurrent networks, and long short term memory networks using only numpy. You will feel very comfortable with deep learning after taking this class.

http://cs231n.stanford.edu/syllabus.html

The lecture videos for the course got taken down due to complaints, but you can recover them via google

[+] lampington|9 years ago|reply
+1 to that. I'm on week 4 and every week apart from the first one I've learned interesting stuff that wasn't covered in my undergrad CS course.
[+] max_|9 years ago|reply
Hello, my background is just like yours. Assuming you are a total noob

I learned that AI is not like programming, where anyone with basic knowledge of computation can dive in. You can NOT just learn AI by reading other people's code.

Its like Physics, there are solid principles you need to understand before you get in.

The point: AI does not come with the "batteries included". If you are in deed a noob you MUST learn the prerequisites.

Follow these steps in order and I guarantee you will be competent with AI in six months tops.(from my past experience)

  -  1. Know what AI actually is 
https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PL77aoaxdgE...

  -  2. Write basic  Machine Learning code
https://www.youtube.com/watch?v=cKxRvEZd3Mw&list=PLOU2XLYxms...

  - 3. Understand the Mathmatics involved 
http://www.heatonresearch.com/book/introduction-neural-netwo...

  - 4. Get some important concepts, 
http://neuralnetworksanddeeplearning.com/

  - 5. Finnish off.
https://www.deeplearningbook.org/
[+] genos|9 years ago|reply
It sounds like you've got the beginnings of Machine Learning (classification & regression), but I'd still recommend checking out Coursera. The JHU Data Science series is good, but more geared towards DS than AI. There are others on there as well; if you're looking to get into deep learning, I echo the recommendation to check out Ng's course, though this might be good, too: https://www.coursera.org/course/neuralnets
[+] hluska|9 years ago|reply
This may not be entirely in line with what you're looking to do, but Kaggle is one heck of a good way to learn data science and machine learning. Some of the competitions in particular lend themselves to a deep learning methodology.

The best part is that the competitions keep it fun, and the eventual winners share the methods they used to get such good results.

Good luck!

[+] crypto5|9 years ago|reply
Start your pet project in AI, you will gain real hands-on experience and skills, will have some portfolio and will understand is it for you or not.
[+] dcdulin|9 years ago|reply
I recently did exactly this, and currently think of the process as several layers working in parallel.

(1) implementation skill building: tensorflow udacity MOOC, and tutorials on the TF website

(2) implementing projects: find a research paper you're interested in, and try implementing it. e.g. "A Neural Algorithm of Artistic Style"

(3) foundational ML learning: Bengio's textbook, Michael Nielsen's textbook, cs231n, the Udacity ML MOOCs which end with the course on Reinforcement Learning, ... this list could go on for quite some time, which can be anxious for autodidactics because teaching yourself a thing means that your knowledge will be quite lean, but that's OK.

(4) cutting-edge ML learning: join a deep learning reading group / meet-up, and read influential papers weekly

(5: optional) write a technical blog, where the audience is yourself before understanding something.

Also, having high-level conceptual maps when entering an unfamiliar space is useful. For this, I recommend reading all of colah.github.io and Bengio's paper "Representation Learning: A Review and New Perspectives"