Machine Learning

From GICL Wiki
Revision as of 02:03, 8 September 2007 by J Dobies (Talk | contribs)

Jump to: navigation, search

Machine learning is a section of computer programming which improve automatically over time. It refers to the ability for a machine or program to improve performance over time through user inputs. This technique is in many real world applications including the detection of credit card fraud, speech and handwriting recognition, natural language processing and game playing. Machine learning covers several different sections of AI including but not limited to Evolutionary Computation and Artificial Neural Networks

There are many types of learning algorithms for machine learning. These algorithms each have a different desired outcome. Two common algorithms are supervised learning and unsupervised learning. Supervised learning refers to a learning algorithm that that are provided with example inputs. The program can 'ask the teacher' for answers. This usually relies on Inductive reasoning which generalizes based on the available examples. Unsupervised learning is an algorithm that gets no feedback on whether its answers are right or wrong, it instead relies on recognizing patterns of data. This is a very difficult class of learning.


Why Machines Must Learn

Many people believe that by creating a machine that is able to learn, we will be able to discover more about how humans and other animals learn. This is not the only reason for machine learning. Certain tasks are hard to define without using examples making it impossible to solve without "teaching" the computer. Other reasons for machine learning include finding hidden relationships in large amounts of data, or it might just be too much knowledge that needs to be coded by people. One example of a simple program that utilizes this is the 20 questions game. It attempts to guess your word based on the player's answers to 20 different questions. At the end if the user has outsmarted the game they enter the answer into the game. This not only adds a new word to the game, but also attaches a set of identifiers to the word. A version of this game can be played here


<p> Machine learning has recently been adopted into major gaming releases after a period of lacking enthusiasm towards the field. This lack was do to the feeling that the ability for the computer to "learn" from its opponents would not be appreciated or noticed by gamers and therefore would be a waste of both time and money.

Gaming companies are now looking into the development of games that harness the power of creating a game that can learn from its opponent. Games have standardly used difficulty levels to challenge its players to become better at the game. However these difficulty settings are easily mastered by discovering a routine that will allow them to beat the computer opponent and then using that routine to repeatedly beat the computer. If machine learning is used to control these computer opponents, this unbeatable routine will begin to breakdown. The computer will begin to learn what techniques are being used (such as where the player usually hides or what forces they usually attack with) and will be able to use this to make the game not only more challenging but also different for each user. This would hopefully improve the play-life of each game.

Re-volt is one of many games that uses machine learning in game play and development.


Various games have used machine learning for different tasks. Some real world application of this technique includes the following:
ReVolt used genetic algorithms to discover optimal paths for the computer to take along the racing paths.
Several fighting and driving games have used machine learning to capture the styles of various professionals This is much more complex than just gathering motion capture data. It also determines when each animation should be triggered and when the transitions are necessary.
An internal version of Command & Conquer Renegade learned the paths taken by human players after changes to the terrain.

Downfalls of Machine Learning

Learned Stupidity- Because the computer adapts to the play style of the gamer, it is possible for the AI system to "learn" the habits of an inexperienced player making it less intelligence.
Overfitting- The AI agent does not develop overall intelligence. If a gamer repeatedly plays one level the AI agents will become very intelligent at that level, but what it has learned would not always apply to later levels causing for the learning to hinder the agent.

Links and References
Rabin, Steve : AI Programming Wisdom - Charles River Media, INC. 2002
Russell, Stuart and Norvig, Peter : Artificial Intelligence 'A Modern Approach' - Prentice Hall 1995