Advertisement

Starting point with other programs/languages

Started by January 08, 2009 03:08 AM
7 comments, last by wodinoneeye 15 years, 10 months ago
I am wondering what I should do next, I have done the basics, path finding, auction AI, and game AI. But still don't really understand the difference between AI and the programming I have been doing the last year. Most of it seems like normal programming but I have always through AI was something special. I guess it really isn't but if what I just said is wrong let me know. As well I need some assistance on what to do next, I need to learn how AI learns and also computer vision, if anyone has websites that could assist with that or perhaps a book that does computer vision that would be excellent. As well I know of programs such as Jess that help with AI, what other programs work? (I also know Lisp and Prolog are used in AI but I have only done Java) What other languages are useful to learn/do AI in?
I suggest you pick up a copy of "Artificial Intelligence: A Modern Approach" and read through it. That should give you a good overview of what's out there, and then you can go deeper into whatever area you want.

Advertisement
Already have the book, it seems to be the most widely used book out there. Chapter 24 is computer vision but only vaguely goes over the process of computer vision, as well it seems to be a lot more theory based then programming which I simply want to see some code t get an idea of how it all works lol. Also since I have read through some other articles and knew that was the most widely sai book to get I was happy my class was teaching it and why I wanted to know if there was any that was just comp vision at all.
If you need code examples then you don't understand the theory. Get familiar with a language, enough so that if you are presented with a theoretical system you can replicate it in code. Copying from a book won't help at all - you need to learn the principles of the system, then reproduce them as you understand them. In doing this, you will fix any misconceptions you have about the theory behind it, and will ultimately understand the driving concepts in modern AI.
If you want to get a foot in computer vision, I strongly recommend

Introductory Techniques for 3-D Computer Vision, better known as the "Trucco-Verri". Very hands-on.

But yeah, AI *is* theory, and any code just a particular expression of that theory. When you learn the theory, then you can code it in any language that suits your fancy. Looking at code is the worst way to learn AI.
Code helps in understanding for anyone. One can understand an Agent but seeing code for someones Agent helps. My mind differs AI programming from normal programming which it isn't. It is a psychological thing I need to change which seeing code helps with. To me if you do computer vision and it recognizes through an algorithm that there is a square in it, it shouldn't be some if statement like if(square) print square or something, it should actually be some special code. While I know this isn't true seeing code helps me enforce that. You probably don't understand but I am sure others do. IE to me a node for a AI graph of some sort shouldn't be the same type as for Dijksters. But really this doesn't matter, the Comp Vision is more important to me. As well project ideas would be great if anyone had any other then games lol.
Thank You Steadtler for the book suggestion I shall look into it.
Also was wondering what other programs or API's ppl use like Jess.
Advertisement
Well, image recognition essentialy boils down to

if(somevalue > threshhold_for_square)

..where somevalue is derived in a way that is not grokable (likely the output of a neural network, the sum of correlations of some kind, presumably)

Seeing the code wont help you see why it detects a square because the code will not be about squares at all.. it will only be the coefficients/weights that the algorthm uses which will "detect" a square .. and they will be unfathomable magic numbers with absolutely no intuitive relation to what a square is.

Such is the nature of the AI algorithms you seem to be interrested in.

You need to know the theory in order to even understand why those magic numbers even exist, let alone why those specific numbers work.

In the end, once you know the theory, you will no longer care why those specific numbers are used.. but instead you will only care about how to go about deriving them. The kind of AI you are interrested in is all about how to derive such magic numbers: machine learning.
Well I must admit this topic helped me more then I thought it would. I never had a full understanding of the definition of AI programming. As well I will need to read more into the theory indeed, do you (Rockoon) know if that book stated below is a good book or no idea? Guess I am wondering because it says it was published back in 98 which is a very long time for any type of book, especially a programming/theory one.
Quote: Original post by Rockoon1
Well, image recognition essentialy boils down to

if(somevalue > threshhold_for_square)

..where somevalue is derived in a way that is not grokable (likely the output of a neural network, the sum of correlations of some kind, presumably)

Seeing the code wont help you see why it detects a square because the code will not be about squares at all.. it will only be the coefficients/weights that the algorthm uses which will "detect" a square .. and they will be unfathomable magic numbers with absolutely no intuitive relation to what a square is.

Such is the nature of the AI algorithms you seem to be interrested in.

You need to know the theory in order to even understand why those magic numbers even exist, let alone why those specific numbers work.

In the end, once you know the theory, you will no longer care why those specific numbers are used.. but instead you will only care about how to go about deriving them. The kind of AI you are interrested in is all about how to derive such magic numbers: machine learning.



Other kinds of picture analysis use ratios of features (like detected edges found with cell neighbor anaylysis methods) and then using fuzzy like coparisons to recorded patterns.

Most people dont realize (or discount) that most of the work for NN systems is actaully the pre-processing the input into that array of values fed to the NN.
(And then for the NN the whole process of the training which is dependant on extensive lesson examples to cover the likely input domain).

--------------------------------------------[size="1"]Ratings are Opinion, not Fact

This topic is closed to new replies.

Advertisement