top | item 11147966

Ask HN: AI is going to be big. How should we learn?

43 points| truebosko | 10 years ago | reply

It's no doubt that understanding AI and the associated knowledge around it is going to be critical for many software developers to thrive in the next 1-2 decades.

What do you think are the ideal resources to learn today, as a beginner, and how to continue to grow that knowledge?

22 comments

order
[+] abcampbell|10 years ago|reply
Well, first, I would try to understand what "AI" you are talking about and why you have so much confidence it will be big.

It's a pretty broad category, and a lot of it is (still) very far from commercialization.

It's almost like asking about "the Internet" in 1992.

Here are some categories that may help to dive into...

-Computer Vision

-Natural Language Processing

AClustering vs classification in machine learning

-Neural nets (convolutional, recursive, hyerparameters and optimizTion techniques)

Read "how to create a Mind" by kurtzweil

Related (but distinct topics)

-Understand rise (and fall) of semantic web

-Open/Linked data

-Relational vs NoSql databases

-distributed/parallel processing (MapReduce ->hadoop-> spark)

*edit - typo

[+] truebosko|10 years ago|reply
Was discussing AI with my wife last night and when she asked "What is it actually?" I did not have a clear answer. This helps, thank you!
[+] CuriouslyC|10 years ago|reply
In terms of gaining a solid understanding of the math and theory underlying most of modern machine learning/AI, the best resource is definitely the book "Information theory, inference and learning algorithms" by David MacKay.

The author is such a stand-up guy, he's made it available for free: http://www.inference.phy.cam.ac.uk/itprnn/book.pdf

[+] p1esk|10 years ago|reply
Learn math. To do any serious work in machine learning, you need to have a solid understanding of calculus, linear algebra, and probability theory.

Note that AI is bigger than machine learning, and there's a chance that the future AI will be heavily modeled after a human brain. So it might be a good idea to take a couple of foundational courses in neuroscience.

[+] aaron695|10 years ago|reply
Knowing AI will be useless, it'll be like knowing and programming assembly language, for high end specialists only.

You'll get a framework/app/api that will deliver you the info programmed by someone really into AI.

It'll be business as usual.

Know API's, frameworks, how to analyse data and tools around this, know people.

AKA Just be a good programmer.

[+] 27182818284|10 years ago|reply
This is an interesting perspective. Often folks do just go around plugging in various libraries and such.

However, the author of this thread I don't think was asking how to go about implementing someone's API as much as how to be the one to create the AIs that the APIs in the future might attach to.

[+] pesfandiar|10 years ago|reply
Part of being a good programmer is knowing, at least from a higher point of view, how the underlying systems work. OP doesn't seem interested in doing AI research, but learning the basics should help you stand out in the pool of other API-using programmers.
[+] S4M|10 years ago|reply
Thank you for this very anti-intellectual answer, now I don't have to wonder anymore why programmers and engineers are getting commoditized.

Seriously, does for you being a good programmer only consist in calling some API or knowing some framework?

[+] ZeroFries|10 years ago|reply
I've been thinking about this as well. Where my head's at right now:

- Conscious AGI is not even close. Many fundamental breakthroughs in philosophy/science required (binding problem, how sensations arise from physical processes, etc)

- Smart non-conscious AI approaching AGI requires getting the balance between many sub-modules correct (see openCog), and probably requires a lot of time and research to get right

- Non-conscious domain-specific supervised-learning has strong potential in the next 5-10 years (any problem a human can solve in a few milliseconds is a good candidate, but usually requires a lot of data to supervise the learning algorithm)

[+] tim333|10 years ago|reply
From a personal point of view as someone also interested in learning a bit I think building something is often a good way to go. I kind of have a plan one day to hack together the neural network from

http://karpathy.github.io/2015/05/21/rnn-effectiveness/

with some personally selected stock market data to see if it can kick out profitable buy/sells.

(There is some how to stuff in the article under 'Source Code')

[+] matheweis|10 years ago|reply
A "good" AI stock trader would in particular require some kind of real-world pseudo real-time data feed (pick your poison; Twitter, FB, news, even generic web crawling)

Anything based purely on the stock charts themselves becomes simply a sophisticated pattern matcher and can't possibly respond to the actual drivers of price movement.

[+] exolymph|10 years ago|reply
[+] exolymph|10 years ago|reply
I don't have any technical knowledge about AI specifically, but my general approach to research is to Google the key term, e.g. "AI for beginners" or "machine learning for beginners", read ~everything that comes up, and go from there. This is a good way to get the necessary base vocabulary in place for deeper searches.
[+] haxpor|10 years ago|reply
I would go for "Programming Game AI by example" by Matt Buckland. Also great resource is aigamedev.com.
[+] mindcrime|10 years ago|reply
Assuming that you consider Machine Learning to be either a subset of AI (as I do) or a sibling field, and want to learn aspects of ML, then consider Andrew Ng's Machine Learning course on Coursera. It's a great introduction and doesn't require a ton in terms of prerequisites. You'll see some multi-variable calculus and linear algebra, but he does the calculus derivations for you, and there's a pretty adequate review of the relevant parts of Linear Algebra.

In addition, if you don't already have a background in Calculus and Linear Algebra, then supplement the Ng course with the Khan Academy stuff on Calculus and Linear Algebra, or other courses you can pick up on Coursera or Edx or whatever.

If you get really interested in neural networks (which are all the rage these days) after the Ng class, there's a freely available book on Neural Network design that you could look at. It doesn't cover all the very latest techniques, but it would help you build the foundation of understanding.

http://hagan.okstate.edu/nnd.html

There's also a MOOC around the Learning From Data book that you could check out.

http://amlbook.com/

https://work.caltech.edu/telecourse.html

OTOH, if you're making a sharp distinction between "Classic AI" and "Machine Learning" and you really care mainly about the classical stuff, then you might want to start with the Berkeley CS188 class. You can take it through EdX (https://www.edx.org/course/artificial-intelligence-uc-berkel...) or just watch the videos and download the notes and stuff from http://ai.berkeley.edu/home.html

And if you just want to dive into reading some classic papers and stuff, check out:

http://publications.csail.mit.edu/ai/pubs_browse.shtml

and/or

http://ijcai.org/past_proceedings

Another good resource is

http://aitopics.org/

[+] mikeskim|10 years ago|reply
compete at www.kaggle.com defeat is the best teacher.