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.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm a 17 year old high school student who just started to learn C programming 1 week ago. I've also had some very basic experience in web design(+ a little web programming with javascript and php. I once made a website with contact form).
Anyway, I'm very interested in AI and as a school project, I thought that i'll build a chess engine and a robotic arm that physically moves the pieces.
Now, my deadline for which i have to finish the engine is 7 months away, (and the arm has to be completed in a year).
Do you think it's feasible for a total beginner to program a chess engine in 7 months(and eventually build a robotic arm using that engine?)
Thank you very much!
lol, great ambition, but it will take a hurculean effort on your part to get it done. Building the engine itself in your spare time will take quite a bit, as the AI for a chess game is pretty complicated, you have to tell the program to think ahead at least 7 moves with an end goal in mind, not to mention you will have to program the piece that interacts with the robot arm. You could theoretically cheat/not reinvent the wheel by utilizing some open source chess game and save yourself a few months of programming just in that piece.
I think, that it is better to choose some real task to start with for practice. Of course, you can divide the task in steps. But in chess the first step - GUI - is real for you. But the second - the most primitive AI - is extremely hard. It is the specific of the game.
If you take reversi/othello as the subject game, then creating a very primitive AI could be possible. I don't believe that you can manage recursive thinking, but one-step thinking, with evaluation of the positions and of course, the GUI for the game is possible. But you will have to work really hard. If you are interested, I could give you a pair of advices for this game realzation - I did it myself twice on different machines. But robotic hand is out of question.
Of course, if you are a genius, you can manage everything. ( I am not joking. You can never tell...)
And C is not the best language for AI. It is not even one of better ones.
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 9 years ago.
I realize the question seems very broad and subjective, but I'm mostly looking for suggestions on a platform choice so that I don't paint myself into a corner later on (I'm more familiar with client-side programming, so excuse the lack of proper server jargon).
First: I am building a game. It will be multiplayer, with some real time interaction between players. Obviously, I'm not talking FPS, or even at the scale of a RTS, but something similar to what the Google Channel API does in terms of messaging.
I'm looking for the best Server/Client pairing.
Now, I've come to the realization as a result of my day job, that C# has become by far my best language. I'm also getting very familiar with WPF, so Silverlight seems like a natural extension of that understanding.
From what I can find search-wise, Silverlight is not a popular Facebook app platform. Is there a reason for this?
What's the "standard" client-server pairing? Is it Flash for the front end, what's the back end?
Does anyone have a favorite pairing? Easy to prototype/dev test?
Is there a good clientside platform choice that has an open source game engine, and can also reach a majority of browsers (i.e. the iPad as well as desktops)?
Edit: I have also stumbled upon the Windows Azure Social Toolkit. Anybody have an opinion on using that as a starting place?
http://watgames.codeplex.com/
Most social games use Flash for the front end because of its market saturation, roughly 98% right now. If you use anything else, you will lose potential users for two reasons: 1) some users cannot install the platform you want to use (e.g. a work computer with no administrator access) and 2) some users can, but they don't want to install the platform you want to use.
As for the back-end, there is no "standard" and is more a matter of taste and preference. Use what you're most comfortable with and prefer to code in.
Just make sure whatever back-end architecture you choose allows you to add more application servers and database servers without having to bring the game down. The easiest solution is probably distributed key-value databases (e.g. Cassandra) for this.
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 12 years ago.
Sorry if this has been asked elsewhere. I am a C,Win32 developer and want to learn similar stuff in the linux world. What are the best and easy opensource projects for learning similar stuff on Linux.
Like in C,Win32 world i want to start off with User space and onto advance stuff like internals,device drivers etc. I am interested in Non UI stuff. As i have a day job and work extensively on Windows i would like to see short little projects and contribute to them in free time.
The GNU coreutils are probably as low-level and as "Linux-ey" (that's not really a word, is it?) as it gets in user space. Not always easy-to-read code, but most of those sections are bugfixes of one kind or another. So, you'll learn about some pitfalls of modern unix-like systems on the way. That, and most of the basic unix programming principles.
As most utilities are very small, just trying to rewrite some only with the spec from the manpage should give you insights into Linux (or unix for that matter) no tutorial can offer.
The book Linux Device Drivers is freely available. You can get a good overview of what's going on "under the hood" reading through that book. It also has several examples of "virtual" device drivers that don't interact with actual hardware. Follow the sample code and you can create things like a driver for /dev/null, /dev/random, etc without having to worry about hardware interfaces.
The best advice would be to pick one and stick with it no matter how overwhelming it is, once you get your feet wet in it, enjoy... this is a $64,000 question -
What specific areas of C/Win32 did you enjoy most?
Was it hardware based?
Writing drivers?
No one can answer that nor expect to pick the answer for you, except yourself....
What was it that gave you a "high" in the Win32 C world...
Once you have that answer, then look for that alternative, somewhere, in the Open Source world....and relax, participate in IRC channels, forums, and engage.
You may have to re-learn using make/gcc toolchains and autotools in order to get your feet grounded...if you're comfortable with that... excellent... :)
Some will have their coding style and standards set down in stone... so pick the easy project that you feel you'll get a kick out of, and above all, ENJOY! :D
what are you interested in ?
The nice thing about linux is that the source for almost everything is available.
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 13 years ago.
One of my interests in AI focuses not so much on data but more on biologic computing. This includes neural networks, mapping the brain, cellular-automata, virtual life and environments.
Described below is an exciting project that includes develop a virtual environment for bots to evolve in.
"Polyworld is a cross-platform (Linux, Mac OS X) program written by Larry Yaeger to evolve Artificial Intelligence through natural selection and evolutionary algorithms."
http://en.wikipedia.org/wiki/Polyworld "
Polyworld is a promising project for studying virtual life but it still is far from creating an "intelligent autonomous" agent.
Here is my question, in theory, what parameters would you use create an AI environment? Possibly a brain environment? Possibly multiple self contained life organisms that have their own "brain" or life structures.
I would like a create a spin on the game of life simulation. What if you have a 64x64 game of life grid. But instead of one grid, you might have N number of grids. The N number of grids are your "life force" If all of the game of life entities die in a particular grid then that entire grid dies. A group of "grids" makes up a life form.
I don't have an immediate goal. First, I want to simulate an environment and visualize what is going on in the environment with OpenGL and see if there are any interesting properties to the environment. I then want to add "scarce resources" and see if the AI environment can manage resources adequately.
Since you said "in theory", that implies you are interested in reading a lot of academic papers on the subject, because I think there's plenty of theoretical work out there, usually supported by proof-of-concept experiments.
I took a class on this 3 years ago, so my knowledge is both introductory and out-of-date, but try searching for something like "neural network language evolution" on Google Scholar*. The simulations in those papers should give you some ideas of what other researchers have tried. Then, a good place to start is to replicate one of the experiments that you find interesting.
Disclaimer: I had to do just that for the class, and it sucked. I decided that I preferred working programs to theoretical experiments. But you said "in theory" so this might be the kind of thing you really like.
*Sorry, I can't remember the exact papers we read.
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.