Tips for a young dreamer and developer [Help]
Hello, I've just turned 18 years old and since my 08 years I program (Visual Basic, Python, C, C + +, Ruby, D, Javascript and others) and in these 10 years I have learned a lot!
Currently I am dedicated to making startups and projects, and I have great interest in furthering me in math (currently reading "Discrete Mathematics with Applications") and artificial intelligence.
My big problem is:
- What language study the background to artificial intelligence? (Clojure, Lisp, Haskell, Scala, Python?)
- Which books to be read based on artificial intelligence and then continue in other subdivisions?
Thanks to everyone, and unfortunately I did not know whom to seek to take these doubts. Today I live in Brazil, and is very difficult to find people who can help me with this, most young people are in parties or playing games ):
8 comments
[ 3.9 ms ] story [ 31.1 ms ] threadAs for learning AI it is best to learn it in the language that you are strongest in or a language that is easy to understand the semantics from it. For that matter Lua, Ruby, and Python are fairly commonplace for people trying to learn how to use AI. But AI algorithms can be written in any language really.
I'd suggest books with common examples of AI; like https://github.com/jbrownlee/CleverAlgorithms. He uses ruby for most of their examples but they are fairly understandable.
If you cannot get the books you want. You may be better off checking out the source codes at least. There are tons of free online books if you do some more searching. And you can even read some online ipython notebooks or blog posts about AI that may be more helpful.
Anyways, the more the merrier for discussions. So feel free to join our group. Just give me a message and I'll add you :D.
But isn't better use a Functional Language, for example, math functions act like a function in a functional language?
Theano is a python library that basically compiles graphs of mathematical functions into highly-optimized C code. For computationally-intensive AI applications (ie, all the fun stuff), there's nothing that I've found better than Theano.
If you work through the tutorials (I re-wrote each example from scratch using them as a guide), you'll get a pretty good feel for how to use it.
I would strongly recommend Andrew Ng's coursera course on ML as a starting point, though.
A fun place to start is video game AI because it is visual. For example, path-finding algorithms, the ghost AI in pacman, chess/checkers, bots which play video games.
Another fun visual subfield is computer vision. If you have a webcam, you could get OpenCV and play around with recognizing faces and motion detection.
If you are really into math, I always think that attempting an automated theorem prover would be fun. It is an up and coming science (in fact there was a HN post today about it), and I bet there are a lot of ad hoc approaches you could take if you choose a specific area of math.
If you want something very practical, nowadays search/recommendations/etc. are important on the web. There are some high-rated books on Collective Intelligence that are more practical-minded than the academic AI classics. And mining the web for a dataset could be a fun project.
As for the best language, it depends on which subfield you want to pursue. Scheme/Lisp are probably the most strongly associated with AI. However, in practice they are rarely used. I would say it does not matter, as long as you are motivated :)
You have some recommendations in math books?
I think it's great that you are motivated to study such topics. First, I think it would be useful for you to define what you actually want to learn. There is a difference in what has traditionally been called "AI" and what is called "Machine Learning" today. While these two fields are related and some people say that ML is a subfield of AI, both tend to focus on very different problems. Today, "Machine Learning" has taken a lot of the attention away from traditional AI (mainly due to the lack of results in making truly intelligent machines)
Here are some topics I think of when hearing AI vs. Machine Learning:
AI
- Robotics
- Intelligent Machines, e.g. for question answering
- Natural Language understanding (Not NLP, I mean understanding)
- Game playing/planning
Machine Learning
- Making predictions (Often synonymous with "big data analytics" these days)
- Recommendation Systems
- Finding Patterns (Data Mining)
- "Data Science" techniques
In Machine Learning, Python is the de-facto standard language both in Academia and Industry, mainly because because of its excellent libraries. In terms of resources, I can also highly recommend the Coursera ML class, as well as statistics classes to get started. From there you can dive deeper into any of the topics you are interested in.
Artificial intelligence is a complex and messy subject. I would recommend following recent work on exploring the nature of consciousness since much intelligence appears to emerge from awareness which itself may be a result of attention.