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.
Related
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.
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"
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.
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.
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
What do you consider the most significant progress / breakthroughs in real world applications of present-day AI research? (including, but not limited to: machine learning, statistical data processing, and other disciplines spinned off from AI).
Please spare / do not want: ramblings about AI winters / disappointment;
Do want: links, and pointers to concrete real-world applications.
I think the most significant breakthrough is that real world consumer applications actually utilize AI routinely today. It has become common, and is not just mere curiosity of academic research and special applications any more, like it was ten years ago. Some examples:
Speech and text recognition (e.g. iPhone).
Face recognition in digital cameras.
Search engines.
Email spam filtering.
Automatic gearboxes of cars.
Games.
etc.
It's all around us! :-)
I would add autonomous robots like those in the DARPA challenges to the list. Driving through a desert or rural area, recognizing the terrain, avoiding ostacles, finding paths and so on are definitely tough AI problems.
Actually, AI research is having a renaissance and has been for the past 5-8 years or so.
Back when neural networks were all the rage in the 70s and 80s, they were showing such promise in solving simple tasks that people's hopes were sky-high for the whole field of AI. Then, when it turned out to be very difficult to move on from the very simple tasks to real-world problems like language acquisition, a lot of people became disillusioned. Until recently, that is.
I am not the best person to ask -- being no AI expert -- but I believe some of the most promising areas are:
Semantic search and data mining (including text classification)
Statistical machine translation
'Real intelligence' HTMs (read Jeff Hawkins' On Intelligence)
Relevance / Recommendation engines (essentially a hybrid of data mining and network analysis)
Visual object recognition
as per #mad-j game bots A.I. has come a long way: link to bots get smart
alt text http://www.spectrum.ieee.org/images/dec08/images/bot01.jpg
I think real/strong AI has lost it way, for decades the speaking/understanding computer was going to be available 'in the next 5 years'. Then we ended up with Dragon (no connection) which doesn't understand anything, it's a clever microphone, and it's a while since I've heard anything about AI - it's just not mainstream anymore, because it is too damn hard. One thing I think has been proven beyond doubt real AI, as in thinking machine, Turing Test passing AI - is still a (very) long way away. Don't get me wrong, there's tons of good research going on, but we'll have to wait 200-500 years for a result.
My gut feel is they'll be some interesting stuff coming out of massively parallel systems, especially ones built with really simple nodes. And if I had to point at a single AI breakthrough I'd be looking at spin offs from the nano-tech field, getting really small and seeing what cells in the brain are up to - science fiction it is, but we'll crack it one day.