Intelligent agents "tutorial" [closed] - artificial-intelligence

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I've recently come across Intelligent Agents by reading this book :
link text
I'm interested in finding a good book for beginners, so I can start to implement such a system.
I've also tried reading "Multiagent Systems : A modern approach to distributed artificial intelligence" (can't find it on amazon) but it's not what I'm looking for.
Thanks for the help :).

The agent view point is simply an abstraction of convenience. There is nothing magical about agents. It is a way of thinking about software processes that may be migrated from one system to another.
So, yes, if you want your agents to be intelligent, then you need to understand AI algorithms.

There is numerous classical books:
David MacKay's classic (for free here)
Norvig's AIMA, of which a new version came out recently
Bishop's Neural Networks for Pattern Recognition
Bishop's Machine Learning and Pattern Recognition
The first two are the easiest, the second one covers more than machine learning. However, there is little "pragmatic" or "engineering" stuff in there. And the math is quite demanding, but so is the whole field. I guess you will do best with O'Reilly's programming collective intelligence because it has its focus on programming.

The book you have linked is actually a collection of invited research papers, which means it is quite an advanced book if you are just starting in Intelligent Systems.
Actually, there are two interpretations of Intelligent Systems:
(a) Artificial Intelligence studied mainly by the Computer Science community. AI deals with machine learning, knowledge representation and reasoning, learning and planning methods. AI is about developing algorithms. The absolute reference to AI is: "Artificial Intelligence, A modern approach"
Although you are referring to this interpretation, in case you are interested, here is the second one:
(b) Intelligent Control Systems studied mainly by Electrical Engineers. It deals with designing intelligent systems that are able to adapt to changes in the environment, able to learn, able to make intelligent decisions, etc. Intelligent systems deals with developing mathematical models of "intelligence" that can be applied to real-world systems, so as to optimize their performance (or some other measure). The tools used are mostly adaptive control, neural networks and optimization methods. There isn't an easy to follow book on this subject, however some excellent articles are here and here. Also, an excellent reference on Neural Networks is "Neural Networks, A Comprehensive Foundation"

Related

Difference between weak AI and strong AI? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
can you please explain me both terms and what are the major differences?
How can you determine whether an intelligence is weak or strong?
Why these terms?
Q: How can you determine whether an intelligence is weak or strong?
A: There is no strong AI in existence (yet). Therefore everything is weak AI or less.
Explanation from here:
Artificial Narrow Intelligence (ANI): Sometimes referred to as Weak
AI, Artificial Narrow Intelligence is AI that specializes in one area.
There’s AI that can beat the world chess champion in chess, but that’s
the only thing it does. Ask it to figure out a better way to store
data on a hard drive, and it’ll look at you blankly.
And
Artificial General Intelligence (AGI): Sometimes referred to as Strong
AI, or Human-Level AI, Artificial General Intelligence refers to a
computer that is as smart as a human across the board—a machine that
can perform any intellectual task that a human being can. Creating AGI
is a much harder task than creating ANI, and we’re yet to do it.
Professor Linda Gottfredson describes intelligence as “a very general
mental capability that, among other things, involves the ability to
reason, plan, solve problems, think abstractly, comprehend complex
ideas, learn quickly, and learn from experience.” AGI would be able to
do all of those things as easily as you can.
Both are AI, but one is for single purpose only, so it is regarded as less powerful, hence the term weak. The other is Human level AI, so it is called strong.
But the terminology does not stop here. You also have Artificial Superintelligence, which is even better than Human AI:
Artificial Superintelligence (ASI): Oxford philosopher and leading AI
thinker Nick Bostrom defines superintelligence as “an intellect that
is much smarter than the best human brains in practically every field,
including scientific creativity, general wisdom and social skills.”
Artificial Superintelligence ranges from a computer that’s just a
little smarter than a human to one that’s trillions of times
smarter—across the board.

Beginner's resources/introductions to classification algorithms [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
everybody. I am entirely new to the topic of classification algorithms, and need a few good pointers about where to start some "serious reading". I am right now in the process of finding out, whether machine learning and automated classification algorithms could be a worthwhile thing to add to some application of mine.
I already scanned through "How to Solve It: Modern heuristics" by Z. Michalewicz and D. Fogel (in particular, the chapters about linear classifiers using neuronal networks), and on the practical side, I am currently looking through the WEKA toolkit source code. My next (planned) step would be to dive into the realm of Bayesian classification algorithms.
Unfortunately, I am lacking a serious theoretical foundation in this area (let alone, having used it in any way as of yet), so any hints at where to look next would be appreciated; in particular, a good introduction of available classification algorithms would be helpful. Being more a craftsman and less a theoretician, the more practical, the better...
Hints, anyone?
I've always found Andrew Moore's Tutorials to be very useful. They're grounded in solid statistical theory and will be very useful in understanding papers if you choose to read them in the future. Here's a short description:
These include classification
algorithms such as decision trees,
neural nets, Bayesian classifiers,
Support Vector Machines and
cased-based (aka non-parametric)
learning. They include regression
algorithms such as multivariate
polynomial regression, MARS, Locally
Weighted Regression, GMDH and neural
nets. And they include other data
mining operations such as clustering
(mixture models, k-means and
hierarchical), Bayesian networks and
Reinforcement Learning
The answer referring to Andrew Moore's tutorials is a good one. I'd like to augment it, however, by suggesting some reading on the need which drives the creation of many classification systems in the first place: identification of causal relationships. This is relevant to many modeling problems involving statistical inference.
The best current resource I know of for learning about causality and classifier systems (especially Bayesian classifiers) is Judea Pearl's book "Causality: models, reasoning, and inference".
Overview of Machine Learning
To get a good overview of the field, watch the video lectures of Andrew Ng's Machine Learning course.
This course (CS229) -- taught by Professor Andrew Ng -- provides a broad introduction to machine learning and statistical pattern recognition. Topics include supervised learning, unsupervised learning, learning theory, reinforcement learning and adaptive control. Recent applications of machine learning, such as to robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing are also discussed.
Classifiers
As for which classifier you should use, I'd recommend first starting with Support Vector Machines (SVM) for general applied classification tasks. They'll give you state-of-the-art performance, and you don't really need to understand all of the theory behind them to just use the implementation provided by a package like WEKA.
If you have a larger data-set, you might want to try using Random Forests. There's also an implementation of this algorithm in WEKA, and they train much faster on large data. While they're less broadly used than SVMs, their accuracy tends to match or nearly match the accuracy you could get from one.

What kind of artificial intelligence jobs are out there? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
Throughout my academic years in computer science I fell in love with many aspects of artificial intelligence. From expert systems, neural networks, to data mining (classification). I wonder, if I was to transform this academic passion professionally, what kind of AI-related jobs are out there?
You would be surprised at the number of domains where AI-based approaches are used. From optimal industrial control, process management and optimization, to business rules and financial modeling, to text analysis, machine translation, search engines...
Almost anywhere humans have been used to take complex decisions based on data, the amount of data modern electronic communications and acquisitions methods produce has become too much to handle without software. And only "intelligent" (or at least, less single-mindedly stupid) software can handle the complexity of the data, the complexity of the rules, and the numerous failure modes.
Professor for Artificial Intelligence courses. ;)
The most obvious answer to me are games.
I think games present a very interesting challenge for AI, because you're essentially playing to lose but in a fun way.
I know one software company in my city is using AI, that was developed as a Masters in Engineering project, to detect fraudulent bank/financial transactions. It's pretty interesting stuff. They look for strange recurring payments, or compare account numbers based on known terrorist organizations ...etc. I'm not sure how many people are doing similar work, but i'm sure with the lock-down on financial institutions these days these types of applications will become more prevalent (it's working for them).
Aside from direct application - AI people also are usually hardcore algorithms people by nature, and that kind of knowledge is sought after everywhere.

Resources about building an RDBMS [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm looking at implementing an RDBMS. Are there any good resources out there about how a database works internally, and the kinds of things I'd need to know when starting out to build my own? (Please no comments about whether it's a practical idea or not - just imagine it's for a hobby project or something).
Again - interested in the RDBMS design, not the Database design. And efficiency is very important (it seems like it's reasonably easy to design some kind of relational database like structure if I don't care about speed).
There are a few textbooks about this sort of stuff out there, when I was in college, we did this for a class project. This book should really help you on your way Database Systems: The Complete Book
I forgot to mention it, but my code is on googlecode here: cs4420-dbase
Please forgive the fact it is written in java, but I was outvoted by my teammates on that decision. but the basic ideas are all still there. It handles file creation and handling as well as a simple SQL parser and optimizer. It handles basic indexing (b-tree) and "memory" management. Please forgive some of the lack of commenting and strange commenting, many late nights were spent on that project.
I'd suggest starting with Introduction to Database Systems and Transactional Information Systems. They should both have bibliographies to take you further.
Building a RDMS is not trival, you need to combine classic CS knowledge from several fields together with deep knowledge about harddrives, OS specifics, filesystems, memory, cpu, caches to make it efficient.
A good article about architecture we are required to read is:
http://www.nowpublishers.com/product.aspx?product=DBS&doi=1900000002
For theoretical knowledge about databases I would recommend to buy a book on this topic, I can only talk about the book I use for this, which is Database Systems an Application-Oriented Approach by Kifer, Bernstein and Lewis.
You might want to look at some opensource databases for ideas.
I recently came to the same question, and like others, struggled a bit finding a book that helped in building an actual RDBMS from scratch (minimal, of course). Contrary to what occurs in other CS areas (OS, Compilers, etc); the Databases area seems to have fewer resources in this regard. Probably because RDBMS are among the hardest to grasp and implement ;-|
Nevertheless, I finally found what appears to be a satisfying answer. Sciore's book "Database Design and Implementation":
http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP000711.html
The first two parts are dedicated to learning to use RDBMS, which you probably know already. But the last two parts cover implementation details; and the interesting thing is that a minimal RDBMS (SimpleDB) is used to illustrate the concepts, and also can serve as the platform to perform programming exercises. The Wiley site has a quote that says it better:
"Comes with SimpleDB, a free-to-download, fully functional simplified database system that is (unlike commercial DB systems) small, easily readable and easily modified. SimpleDB can be used as the platform on which students complete homework projects and implement the concepts covered in the book."
Do not bother by the fact the sample RDBMS is written in Java; that has the advantage (IMHO) of hiding the low-level details of implementing in C/Unix. If you come like me from the applications world, you may be unfamiliar with system-programming stuff; but learning the RDBMS implementation concepts in a high level language like Java, can serve as a good bridge for the transition.
The Wiley site allows to buy an electronic version of the book, but the source code is available regardless you buy it. I can not post more than two links, but just google this term (including double quotes), and you will easily find the SimpleDB home page (where you can download it):
"The SimpleDB Database System"
If you are unsure about buying the book (which like other core-CS books, are not cheap for the student); probably you can start reading the code and this introductory article:
http://www.cs.bc.edu/~sciore/papers/SIGCSE07.pdf
If you find it appealing, buying the book may be a good investment.
Hope that helps,
Cheers.

Databases from scratch [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
How do I create a database management system from scratch? Are there any books, sites and tutorials with great quality?
With great quality I mean that it should be simple to use and straight forward in explaining the concepts.
Here are examples of caliber quality resources that I'm looking for:
If I were to create an operating system from scratch, I would consider studying MINIX 3.
If I were to create a compiler from scratch, the famous dragon book Compilers: Principles, Techniques, and Tools is a good one.
It would be great if there are working sample of source code available in C or any programming language close to C that would to justice to the task.
"Database Management Systems" by Ramakrishnan and Gehrke.
http://pages.cs.wisc.edu/~dbbook/
The first part is an intro to data modeling, SQL, etc, but it goes very deep into the design of internals in the second half (including transaction control, locking, logging, storage management, ACID guarantees, and so on).
In terms of studying internals, there is educational software called MiniBase, also from Wisconsin, but I'd just start looking at Postgres internals instead. Very clean, does a lot, does a lot right.
The academic textbooks on relational database design are:
An Introduction to Database Systems - C J Date
Database Systems: A Practical Approach to Design, Implementation and Management - Thomas Connolly
Either of these are a good place to start regarding the theory.
I would also add C J Date's other book - Date on Database

Resources