[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/sci/ - Science & Math


View post   

File: 29 KB, 590x393, kate-middleton-590sp-053110.jpg [View same] [iqdb] [saucenao] [google]
4812591 No.4812591 [Reply] [Original]

I want to learn about, theorise and write Artificial Intelligence.

I know the basic history, what methodologies should I learn?

I know C++ but should I learn LISP?

>> No.4812621

>>4812591
LISP is a classic AI language and many swear by it as the holy grail of everything.

But there's a lot of other aspects of AI as well, if you're going to focus on neural nets then LISP is hardly of relevance and you might as well stay with C++, the same goes for a lot of different other AI topics as well, there's practically an infinite amount of approaches to AI and you can jump onto any bandwagon you want.

For computationally intensive AI appraoches(machine vision, speech recognition, ANN etc) then C++ is probably your best choice with something like openCV or similar additions, if you want self-modifying code then some script language that doesn't need compiling all the time can probably be of interest.

In my mind you need more capability to reflect on your own being and intelligence than any particular trade skill if you want to do anything but crude game AI or somesuch similarity.

http://en.wikipedia.org/wiki/Intelligent_agent
and other agent type models might be worth a read, how you implement them is a different matter and subject to vast flexibility.

I do like to play with the thought of AI and do some dead ended starts on coding towards it, haven't really got anywhere in the coding department though I guess me capability of theorize about AI have fleshed out quite nicely.

>> No.4812619

Not necessarily. LISP will only make the implementation of certain algorithms easier, but it will run slower than C++ and won't really make it more intuitive. What you should do is use a matrix library in C++ and learn how to vectorize code.

Also, you should focus on prototyping your algorithms first in another language while you get a feel for what you are doing. I highly recommend Octave. It's a super simple language that's matlab compatible and has a bunch of mathfag libraries in it so while it doesn't run as fast as C++ it still runs fairly fast and you can use modern methods on it (like vectorized code since matrices are native datatypes).

There are several different types of artificial intelligence algorithms, applications, etc... Lately a bunch of uni's have started putting up free online intro courses on the material. You may be interested in one of those.

The most important thing when you're trying to learn anything is to pick a project, a problem, anything, and struggle your way through it. If you don't have that then you're essentially flying blind and though you may learn some useful skills and techniques, you won't retain them and will feel like it was a waste later on.

>> No.4812642
File: 170 KB, 532x532, Perfect 10..jpg [View same] [iqdb] [saucenao] [google]
4812642

>>4812621
>>4812619
Thanks guys.

>> No.4812644

Also, you should at least take a look at Prolog. It may be the lesser known cousin in the family of non-procedural languages, but it's really powerful and if you ever plan on drifting towards automated planning (my research area) it helps to know your logical programming

>> No.4812656
File: 238 KB, 556x544, image-macro.jpg [View same] [iqdb] [saucenao] [google]
4812656

>>4812619
>vectorize code

The forced vectorisation of MATLAB/Octave really grinds my gears. It's great most of the time, but in the instances where it's a pain you pay in blood.

>> No.4814611

>>4812656

It's really only hard if you come from a normal programming background where you overly rely on loops. If you're some mathfag who knows his linear algebra then it's actually way easier and more straightforward to vectorize code than to convert it to loops. I guess this is something OP may want to take into consideration.