views:

1366

answers:

20

I think that AI might be a precious tool in the developer's toolbox, and I'd like to know more about this field hoping that it will make my life easier as a developer.

Can you recommend some classics, books, links, essays, authors, reading, and bloggers? What is the Code Complete of the AI field ?

+1  A: 

"Programming Game AI by Example" is a very good book for game AI containing both theory and practical examples and algorithms.

Check it out: http://www.wordware.com/files/ai/

For some online resources you can check out: http://www.aaai.org/AITopics/pmwiki/pmwiki.php/AITopics/StudentResources

A: 

"The Art of Computer Programming" by Donald Knuth.

There are lots of AI and other algorithms and this book will "turn your brain" in correct direction.

Roman
Great book(s). Not an answer to the question.
Max Strini
A: 

Goldberg, David E (1989), Genetic Algorithms in Search, Optimization and Machine Learning

hypoxide
+5  A: 

Machine Learning by Tom Mitchell is a bit on the older side, but almost everything in there is still just as applicable now as it was in the 80's. AI is the sort of field where a good, broad understanding of core concepts is needed in order to be able to work with the more advanced/cutting edge things.

The book also goes over a bunch of good experimental methodology stuff as it relates to AI so you can test how well your algorithms work.

cdeszaq
I have heard a lot about this book. Must be the standard textbook for machine learning.
kunjaan
+21  A: 

Artificial Intelligence: A Modern Approach by Stuart Russell and Peter Norvig

Corbin March
this book is an excellent starting point and I have found that the Lecture Notes in Artificial Intelligence books are perfect for more in depth reading
SpaceghostAli
Saw the topic and wanted to answer it asap. Got me. I used the book this summer and it's very good to read and covers a lot of topics.
pmr
+2  A: 

Programming Collective Intelligence by Toby Segaran is a modern, hands-on guide with real world example applications. The examples are in Python, but it's still worthwhile even if you program in other languages.

Dan Dyer
+5  A: 

Machine Learning by Thomas Mitchell

This book is a classisc and a must for anyone who want to learn about machine learning.

Artificial Intelligence : The Modern Approach by Stuart Russell & Peter Norvig

This is a book that touches on a lot of topic on AI and machine learning. This is probably the closest to "Code Complete" of AI. Peter Norvig, one of the authoer, is now working at Google.

There are a lot of sub-fields of AI including Machine learning, Data mining, Computer vision, Pattern Recognition, Natural Language Processing, Genetic Programming and etc so I probably could not list all the books here but if I have to pick some of the most influential books, I would pick the two above.

Nathan Wong
A: 

http://en.wikipedia.org/wiki/Prolog and also for the intro Kowalski, R. A.. The early years of logic programming.

b0x0rz
+1  A: 

AI-junkie has it all. Genetic algorithm, neural networks, finite state machines and a lot more. The algorithms are explained clearly with good examples.

nhaa123
+1  A: 

Stanford has posted several courses on-line (lectures + materials) including one on Machine learning.

Search google with "stanford engineering course machine learning", the first URL is the machine learning course. The lectures are available from there or even on itunes.

Or from here : http://academicearth.org/courses/machine-learning

(sorry for no url, unable to add hyperlinks as a new user)

gregd
A: 

Elements of Statistical Learning by Hastie, Tibshirani, and Friedman surveys just about every Machine Learning method worth knowing while also developing some unifying theory.

It doesn't directly address computation but it has lots of exercises that you could use to figure it out.

othercriteria
+3  A: 

I'm quite suprised not to find Pattern Recognition and Machine Learning from C.M. Bishop. But yes, definitely in my top 3 with Thomas Mitchell and Stuart Russell & Peter Norvig.

SnippyHolloW
+6  A: 

This was my answer to a similar question:

  • AAAI is an excellent site that has all the important resources for students including discussions, links, videos and books. Highly recommended.

  • AAAI Machine Learning Resourse

  • An awesome survey of all the important sections i.e learning, planning, problem solving techniques, including some philosophical implications are discussed in the AI:Modern Approach. The writing is very lucid ,the chapters are self-contained , you can select what you like and start hacking immediately. The site also has links to courses that used this book so you can get a lot of cool project ideas, assignments etc.

  • Peter Norvig's PAIP is another good book. I have not read this but many of my friends say that the projects in the book are top notch and some even claim that this is the best programming book ever. It should be fun to implement Prolog. However you should know Lisp. There was an attempt to port it into Ruby by Olan Bini.

  • The open directory project also has good handpicked resources ,books ,links to softwares and algorithm implementations that you can use in your project.

  • I have a wishlist in Amazon if you are interested.

  • Or you could see lists like these at Amazon

  • Collection of Good Theoritical Video Lectures

  • Machine Learning at Stanford.. Awesome Professor.

  • Stuffs at Internet Archive. Old historical discussions.

kunjaan
+1  A: 

"Paradigms of Artificial Intelligence Programming"- Peter Norvig

Amit
+2  A: 

The Machine Learning subreddit has interesting links for all levels.

kunjaan
Thanks for starting this group. It could become a very cool resource.
StompChicken
+1  A: 

What Computers Still Can't Do: A Critique of Artificial Reasoning

By Professor Hubert Dreyfus.

It is a thought provoking philosophical assessment of AI. It approaches the problem in much more fundamental, phenomenological terms and outlines much of the why and how computer AI can't surpass human experience and understanding. A useful counter balance to the hubris of AI research. While not very technical at the very least it helps to understand the domain of problems that are only really solved by humans and why exactly it is that only humans are able to solve certain problems.

Gordon Potter
I'm not very philosophical, I don't care about the word "intelligence" in the AI field, what I know is that it can resolve some problems very easily, so I will be a better developper. I think that the philosophical debate with AI, is only a vocabulary one. If AI was named Adaptive Computing, I don't think any philosopher would write something on it.For curiosity, what kind of problem AI cannot resolve ?
Nicolas Dorier
An example, AI could not identify all the possible kinds of chairs in the world. There is embodied understanding that is required to identify all forms of chairs, and understand it in the abstract. Point to an object and ask a human is this a chair? They would have no problem at all. A computer might identify a certain subset of chair, but would find many cases where it breaks down. It has a hard time adapting to modest novelty. The argument is that living and experiential knowledgeis what creates the possibility for expertise. How might one go about writing AI that could do this task?
Gordon Potter
I do agree Adaptive Computing is probably a better term. But there are structural limitations to how a computer program can learn, if at all. This is not to say that AI is not useful. I think the philosophical debate helps articulate what is fruitful to focus on what is not. Think about OCR as an example. It would seem trivial for a computer to convert images to text. But there are many cases where it fails significantly. And I am not convinced it is for lack of computing power. This is why we must leverage human perception in a project like re-captcha.
Gordon Potter
@Gordon Potter A human might have no problem identifying all forms of chairs, but two or more would. That is, they would not agree on all the "edge" cases, things that are on the cusp of chair/not chair. "That's not a chair, it's a stool." "That's not a chair, you're just sitting on a cushion." If you really did get widespread total agreement on chair-ness, you probably could get a computer to recognize it.
mpez0
+1  A: 

You might want to check out Heaton Research. We host the Encog project, and also have quite a few articles to read on neural network programming. The site focuses primarily on C# and Java. We also host the Encog project which is a neural network framework for C# and Java.

JeffHeaton
A: 

One of the best book I have read on AI that should be read in first is :

Society of Mind - Marvin Minsky

It gives to you a perfect introduction to ideas and concepts of artificial intelligence.

Xavier V.
A: 

I found this article to be very helpful.

GWW
A: 

As already said, Mitchell and Russell&Norvig are the 'best first' :P

I'd like also to highlight Ivan Bratko - Prolog Programming For Artificial Intelligence, a must for Prolog programmers and a supernice compendium for AI students (the spectrum of AI topics is complete and coherent :P)

rano