Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: From programming to AI, how?
68 points by siscia on June 8, 2016 | hide | past | favorite | 19 comments
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?

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.

Is this the course that you were referring to in 4)?


Yes, that's the one.


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/

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.

Oh yeah, Ng talks pretty slow. 1.25 is a minimum cruising speed and I often go faster.

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.


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

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

I'm in the same boat - so far it seems like the plan would be 1) Get more familiar with Linear Algebra; 2) Take Ng's coursera course "Intro to Machine Learning" and 3) start trying some kaggle.com challenges.

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 

  -  2. Write basic  Machine Learning code

  - 3. Understand the Mathmatics involved 

  - 4. Get some important concepts, 

  - 5. Finnish off.

This seems to be a good introduction if you like to learn by reading while building something: http://neuralnetworksanddeeplearning.com

It basically walks you through building a neural net that can make sense of hand written digits.

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

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!

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.

You can try "Expect Syetem" https://en.wikipedia.org/wiki/Expert_system

This answer would have been good 40 years ago..

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"

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