About site: Artificial Intelligence/Machine Learning/Software - Machine Learning & Agent-Based Computing
Return to Computers also Computers
  About site: http://www.ddj.com/184411104

Title: Artificial Intelligence/Machine Learning/Software - Machine Learning & Agent-Based Computing Examination of applying machine-learning technology to control software agents in the changing Internet environment. Introduction of MLEngine -- a general-purpose AI engine with real-time learning ca
Richmond_Computer Builds custom built computers, refurbishes older computers and writes custom software.

Up_24/7 Providers of Linux based web hosting solutions for small and medium businesses.

BitC_Language_Specification Compiled, garbage collected; merges ideas and syntax (impure s-expression) of functional languages (Lisp Sheme) with close hardware interaction of low-level languages (C). Emits C source code.

Robert\'s_World Features free Christian ringtones in Nokia composer and keypress formats. Includes instructions and information.

Coalesys,_Inc_ Focusing on .ASP.NET User Interface controls.

Speaking_Email_Notifier Innovative email notification software that reads out email messages aloud and notifies you of new messages as they arrive with an adorable animation wizard.


  Alexa statistic for http://www.ddj.com/184411104





Get your Google PageRank






Please visit: http://www.ddj.com/184411104


  Related sites for http://www.ddj.com/184411104
    Fat_Cow_Hosting Offers web site hosting services.
    Aus_Everything Domain name registration, Web site hosting, Web site design, Web site creation.
    Learn_SMIL_with_a_SMIL_Presentation Examples and tutorials with links to the official site and a player.
    TriKinetic Manufacturer of a high-performance line of multi-monitor computer workstations designed and optimized for use by active online traders and investors.
    Erez_Business_Softwares_Ltd_ Producer of Erez Print Preview ActiveX controls for VB6. The controls were designed to give developers an easy tool to make print and preview of software.
    Free_Web_Hosting Unlimited space with unlimited bandwidth. Header and footer ads on each page. FTP uploads. Web-based email. Domain hosting. URL: 'http://yoursite.sohounion.com/'.
    ASPRunner Creates set of ASP pages to access and modify Oracle, SQL Server, MS Access , DB2, MySQL, FileMaker database or any other ODBC datasource. Using generated ASP pages users can search, edit, delete and
    EzMTS_org Full-featured SMTP/POP3 based email server. Includes features, bugtracker, trial version download, FAQ, mailing list, documentation and source code. [Windows NT4/2000/XP]
    Worlds_com Chat in a virtual reality 3D world.
    Actionscript-Toolbox_com Resource site for Flash 5 and Flash MX Actionscript.
    I-Tech_Romania Webdevelopment using PHP/MySQL/PostgreSQL especially content management systems, XML applications, data mining.
    IRCmmm IRC Client written in C# .NET. Similar look to MSN messenger.
    TerraService The Microsoft TerraServer .NET Web Service is designed to simplify the task of accessing TerraServer programmatically.
    CATC Provides test and measurement solutions for computer I/O, storage and networking protocols, enhancing productivity and time to market.
    Heartfelt_Greets A gallery of cards spotlighting friendship, love, inspirational designs. Includes holiday and everyday designs.
    Teach_Yourself_Apache_2_in_24_Hours Sams book by Daniel López Ridruejo.
    InTime_Web_Design Offers design, graphic and Flash design, promotion, and programming. Camarillo, California, United States.
    Outsidethebox_Studios Provides development, animation, graphic design and hosting.
    PageTrends Offers design, hosting, database integration and e-commerce solutions. Based in Tennessee, United States.
    GDN_Background_Images Seamless tiles.
This is websites2007.org cache of m/ as retrieved on 2008.10.12 websites2007.org's cache is the snapshot that we took of the page as we crawled the web. The page may have changed since that time.
Dr. Dobb's | Machine Learning &amp; Agent-Based Computing | November 1, 1999 var ckRef=document.referrer; if(ckRef && ckRef.indexOf('/as5/redirect/')==-1 || !ckRef) { document.write(''); document.close(); } Site Archive (Complete) ABOUT US | CONTACT | ADVERTISE | SUBSCRIBE | SOURCE CODE | CURRENT PRINT ISSUE | NEWSLETTERS | RESOURCES | BLOGS | PODCASTS | CAREERS function launcher(art_id,urlPrefix,siteUrl) { uri = "/article/emailBox.jhtml?articleID=" +art_id+"&urlPrefix="+ urlPrefix+"&host_url="+siteUrl; window.open(uri,"","toolbar=no,scrollbars=auto,location=no,status=no,width=480,height=415,resizable=1"); } Zhimin is the founder of the Learning Machines Technology Group and can be contacted at learning@lmtg.com. Li is a software design engineer at Hewlett-Packard. She can be reached at liliu@hpl.hp.com.As the Internet becomes ubiquitous, software is becoming increasingly exposed to complex and dynamic environments. Consequently, the concept of agent-based computing has emerged as a useful model for software that has to deal with an uncertain and changing environment that consists of many distributed software systems. Agents are software entities that not only gather and present information, but also act intelligently to accomplish one or more assigned goals. Agents can often be described as finite state machines whose state transition dynamics drives them to achieve the goal. A state-machine model whose state transition dynamics has to be entirely hardwired and manually maintained offers little value to programmers. In this article, We'll examine the application of machine-learning technology to control an agent. Based on Markov process, this technology enables an agent to automatically identify the statistical structure of its environment and synthesize optimal feedback strategies at run time. As the result, a software agent powered by this technology will be able to adapt to its environment and continuously learn and improve its ability to achieve the goal. To this end, we present MLEngine, a general-purpose AI engine with real-time learning capability. MLEngine can be used to control simulated game characters or software agents through interface with (simulated) sensors and actuators. MLEngine can synthesize goal-oriented behavior at run time and therefore make the characters under its control learn. MLEngine, available from both DDJ (see "Resource Center," page 5) and at http://www .lmtg.com/, includes Win32 run-time libraries, API documentation, sample source code, and demo programs. Agent DynamicsAgain, the dynamics of an agent can often be conveniently described as a state machine. The basic elements of a state machine are: At any instance, the dynamic state of an agent can be uniquely described by a set of variables called "state variables." These variables can be analog or discrete. An agent can receive input stimuli from its environment, and the state variables will undergo changes. The new state is a function of both the environment input and the previous state. An agent can pass stimuli back to its environment. The output is uniquely determined by the state variables. The environment could include other agents.If the states are discrete and finite, this mechanism is called a "finite state machine." An intuitive way to illustrate the idea is to use a game character such as that in Figure 1. Suppose that as this game character moves around in space, you could use its position in space to describe its dynamic state. Additionally, a character usually has an orientation. An orientation indicator can serve as another state variable. Imagine that this character can also sense whether it is in touch with an obstacle. Touch-sensing input can also become a state variable. So to completely describe the character, you need to specify its position, orientation, and whether or not it is in touch with an object.The state variables undergo changes over time. For example, the character can move in space and flip. The way it moves can be expressed as transitional probability between states. Obviously, the agent state transition will be influenced by inputs from its environment under certain conditions, so that it will not become a completely self-indulging entity. For example, the character's position change depends on its environment, such as whether or not an obstacle is present.The character's state should also be able to undergo changes without any environment stimuli under certain conditions (so that the new state depends only on its previous state). This is important for implementing any oscillatory or self-driven sequencing behavior such as walking in a legged character.Assume that you are interested in an agent whose behavior could evolve as it adapts to its environment. A sensible approach toward that goal is to separate constraints from voluntary control in the agent design. A suitable analogy is the human model. Human behavior is determined partly by the brain and partly by the constraints imposed by the physical body (for example, you couldn't jump 100 feet in the air even if you wanted to). In Figure 2, you divide an agent into a physics block and a control block. The physics part of the agent is a state machine. The controller has access to state information and issues a set of actions. Along with the other inputs, the action input will influence state transitions. So now the state transition is determined not only by external input and the previous state, but also the action input from the controller.The character in Figure 1, for example, has five movement actions -- left, right, up, down, and flip. The probability of the character falling into any state depends not only on its previous state, but also on the environment input as well as the voluntary action input from the controller.Setting Up the GoalBefore learning can take place, it is necessary to come up with a formal definition of a goal. After all, the purpose of learning is for the agent to achieve the goal. A convenient way to define a goal is to choose one or more states and assign them as the goal. The fact that the goal is expressed as one or more states means that the goal has to be a part of the state space that can be sensed by the controller. Intuitively, this makes sense because no matter how intelligent an agent is, it would never be able to learn and improve if it cannot sense whether or not it has achieved the goal. To make learning happen, you have a few obvious and tempting choices: You simply observe and see which actions cause the state transitions that lead to the goal. You then enhance the probability of taking these actions. This is essentially a conditioning based on reward and penalty. You reward the actions that bring favorable results and penalize those that do not. The problem with this approach is that learned behaviors tend to be too simplistic. The character can only learn simple reflexes that seek immediate rewards. It will not learn to plan ahead and carry out sequential behaviors. You try different combinations of features in the feedback strategy and see which one yields the best overall result. If we try long enough, a good combination of features in the controller can be found. And the character could become very smart. Experience suggests that combinatorial approaches only work well for simple problems. As the state space grows big, the amount of time needed to perform trial-and-error quickly becomes intractable, even if it is done in a simulation environment.Mathematical Analysis of LearningFor convenient analysis, you can encode the states in the state space into a linear array 1,2,3...n, assuming there are a total of n mutually exclusive states. Once the states are encoded into a linear array, the state transition can be described by an n×n matrix. Since the state transitional probability depends on the action input from the controller, to completely describe the physics of a character you need m such n×n matrices, assuming there are m actions. In Example 1, for instance, represents the transitional probabilities from state i and state j under action k. If the state transition is fully deterministic, then aij is either 1 or 0; otherwise, it is some positive value in between. In Example 2, the controller can be described by an n×m matrix, where xij is the probability of taking action j when the character is in state i. The combined system that includes both the physics and the controller can be described by a transitional probability matrix T (see Example 3), whereSuppose that on average, the state probability can be described by P={p1,p2,...pn}, where pi is the longterm average probability for the system to be in state i. According to Markov process theory, under a certain condition (the ergotic condition), the state probability will converge to a stable value that satisfies P=PT. Suppose that the goal is state o, the purpose of learning is to enhance Po by manipulating control variables. Obviously, you cannot directly manipulate P, which is the consequence rather than the cause of the system behavior. You can, however, manipulate transition probabilities tij through xik. This will, in turn, influence P in the long term, based on the relationship P=PT. In other words, the goal of optimization is to select the appropriate xik so that po is at its maximum. There is one missing piece in this analysis. The learning algorithm depends on knowledge about state transition probabilities So, before learning could occur, you need to fill in the state transition matrices.As mentioned earlier, state transition probability depends on the character's physics, as well as its interaction with its environment. The process of trying to find out state transition information from knowledge about the character's physics is called "system identification."Our approach here is to come up with a run-time algorithm that calculates state transitional probabilities by observing the character's physics in action.The advantage of a run-time approach is that the controller is adaptive. If the physics of the character and its environment undergo changes, the controller will reorganize and adapt the changes. The end result is that the character can maintain and improve its capability to achieve its goals in response to environment changes.Here is how system identification works. The controller issues actions and observes changes in state. If action k is issued and the state undergoes a change from i to j, you will make adjustments to in Example 4, where is the learning rate. It is usually a small positive number less than 1. For all the other with i'i, you make adjustments according to the amount in Example 5. If you keep doing that, over a period of time, matricesconverge to best represent the state transition probabilities.Putting It TogetherBased on this analysis, you have put together an agent controller such as MLE, which can be integrated into an agent and make it capable of learning. The learning is carried out in stages. In the explore phase, MLE drives the agent to interact freely with its environment. MLE passes out quasirandom action commands and monitors the state input. As a result, the agent will start to explore its environment. Internally, MLE associates sensory and action information and builds an internal representation of the agent and its environment. This is essentially a nonmodel-based system identification process. A parameter called "association entropy" can be obtained from MLE by calling GetAssociationEntropy. This value (which ranges from 0 to 1) should go down as the association phase is being carried out. The smaller this value is, the more deterministic MLE has become while it builds an internal representation of the system under its control. It represents the confidence level of the agent in terms of its understanding of the environment.In the optimization phase, MLE will synthesize a strategy, which drives the agent to achieve the goal defined by SetGoal. The strategy is essentially a sensory feedback controller that determines how the system should react to sensory inputs and interact with its environment. A parameter called "optimization entropy" can be returned from the MLE by calling GetOptimizationEntropy. This value should go down as the optimization phase is being carried out. The smaller this value is, the more deterministic the synthesized strategy is. The estimated probability to achieve the goal can be obtained from GetGoalProbability.The three phases can be switched back and forth by monitoring association entropy, optimization entropy, and the goal probability. For example, during the optimization phase, the application can keep statistics of the average probability of achieving the goal and compare it with the estimated goal probability returned by GetGoalProbability. If the two are sufficiently different, the application can start to explore and associate again, during which the association entropy is monitored. Once the association entropy goes down to a stable value, an optimization phase can be started. The optimization entropy should go down while the goal probability will go up; see Figure 3.We've included two demos (available electronically) of agent learning. The first is a boxer trying to hit its opponent. At first, the opponent does not really respond well to the boxer's moves. The boxer learns to carry out coordinated arm movement to hit the opponent repeatedly at the highest frequency. Later, we change the opponent's strategy by making it more responsive. The opponent moves his fist to block the boxer's punch. After some adjustment, the boxer learns to fake fist movements and trick the opponent to move its fist to the wrong location, and then hits from another direction. The second demo is Picker, a cartoon character whose goal is to eat the fruit at various locations. It learns to associate its visual information with its movement and approach the fruit efficiently. You could cause Picker to mutate so that its mouth and its eye will be located on a different side of the body. The picker learns to flip around so that it can see where the fruit is and approach it with its eye facing the fruit. Once there, it turns around again and eats it. For a Pentium-class PC, it usually takes one or so minutes to learn a new strategy if the size of the state space is less than 50.We have also tried MLE with (analog) simulations that faithfully emulate physics. For example, we coupled MLE with a quadruped simulator that simulates human body mechanics. we set the goal as the model making forward motion while maintaining an upright body position. The model learned to walk and run realistically like a human (see Figure 4).The MLE APIBased on the aforementioned method, We've designed a general-purpose AI engine called MLEngine (MLE); its interface functions are presented in Listing One. To prepare the character for learning, you need to follow these steps:1. Design the character's physics.2. Encode the state information into a linear array ranging from 0 to dim_state -1. For example, if an agent has three state variables, each represents three possibilities. It is sufficient to represent the dynamics of the agent into 27 discrete, mutually exclusive states (or less since some combinations may not be possible).3. Create an instance of MLEngine. Specify the dimension of the state space and the action space.4. Select one or more states as the goal and call SetGoal to set them up. In the boxer example, the goal is the state when the arm is extended and the fist is landed on the opponent's body.5. Connect the controller to the character physics by calling Perform, which accepts state information as the input and pass out actions.The learning process is carried out in three phases (see Figure 3). Phase control is accomplished by calling SetPhase.Comparison with Other ApproachesAt the beginning of AI, intelligence was thought of as the ability to manipulate symbols and abstract concepts. An intelligent system based on this assumption consists of a reasoning engine and database that stores common sense knowledge (an expert system, for example). To make it useful, real-world information has to be mapped into abstract concepts or symbols before machine reasoning can take place and the expert system database can be updated. The task of recognizing real-world patterns and mapping them into concepts often turns out to be prohibitively difficult. Symbol-based automatic reasoning is becoming less popular these days because it never produced interesting results. Recently, a school of thought has emerged that believes logical reasoning is more an afterthought that justifies actions that are already taken, than the cause of actions. For example, when you face a situation and make a decision, it is often after you have made that decision that you come up with the thought: "I did that because of such and such reasons..." We all have a tendency to consciously justify what has been decided unconsciously.The literature on neural networks is vast. The most popular models focus on pattern association and classification. For example, back-propagation models can map a set of input patterns into some output patterns according to a set of examples. A back-propagation neural net can be used as a controller that maps sensory input patterns into actuator outputs provided one supplies examples about what to do under all situations. The controller can only generalize from these examples. A second class of neural net models can learn to categorize analog patterns into discrete clusters without supervision. The purpose of learning is to reduce encoding error. The best known example is the Kohonen neural net model.There is yet another class of neural net models that are able to generate sequences of spontaneous patterns. The output of these neural net models can be used to control motor actions. Most of these neural net models have recurrent topology and dynamics (Hopfield neural networks and Bolzman machine, for instance). Markov process theory has often been used to mathematically describe the dynamics of recurrent structures. Our learning algorithm is similar to some aspects of these models, but only at the mathematical level.Learning automata are a set of mathematical models that address learning directly without worrying about the underlying brain substrate. The heart of this approach is conditioning based on reward-and-penalty. The main problem with this class of methods is that the results are usually too simplistic. For example, a typical learning automaton can only learn to perform actions that will directly lead to reward. It will not learn to plan ahead and accomplish the goal through indirect action sequences. More sophisticated learning automata are being developed today. Most of them try to give credit to actions that indirectly contribute to achieving the goal. Some of these models borrow ideas from neural network models.It is said that if you give a monkey a typewriter and allow it to type randomly, you will eventually see beautiful poems coming out of that typewriter. Many tough problems can indeed be solved by random searches in the solution space if we do not worry about the time it takes. Simulated annealing and genetic algorithms (GA) are two such techniques. Combinatorial optimization techniques such as GA and simulated annealing search through the control parameter space to optimize the performance measured by a predefined index or criterion. The search is usually guided by some sort of heuristic. For example, simulated annealing uses gradient information to guide the search. GA recombine simulated gene segments to come up with control parameters for new trials. The main problem with this class of approaches is the computational requirement. For example, if you use GA to optimize the performance of a game character, the algorithm has to simulate the game character through many generations. In each generation, a large population of individual characters has to be simulated also. The algorithm will come up with many sets of control parameters for those individual characters. Each of these characters has to perform long enough to come up with a fitness measurement. A character will not adapt in its lifetime. Combinatorial algorithms are fundamentally difficult to implement in real time.ConclusionThere is not a one-size-fits-all solution for machine learning. A practical solution has to inherit the best of what is available. Learning as an optimization algorithm may take many forms. A successful one converges to an optimal result not because it is a neural net, learning automata, or whatever else, but because its underlying mathematics is correct. It is therefore best to deal with learning at the mathematics level.DDJListing Onetypedef state int;typefef action int;class MLEngine {public: MLEngine(int dim_sate, int dim_action, int dim_order); ~MLEngine(); void SetGoal(state); //one of the states is assigned as the goal void SetGoal(state*, int); //when multiple states are assigned as the goal action Perform(state); //0--explore, 1--associate, 2--optimize and perform void SetPhase(int); void Associate(); double GetAssociateEntropy(); void Optimize(); double GetOptimizeEntropy(); double GetGoalProbability(); void SetAssociationRate(double r); //0<r<1 void SetOptimizationRate(double r); //0<r<1}Back to ArticleCopyright © 1999, Dr. Dobb's Journal 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 Next Page RELATED ARTICLES NIST Releases Guide to Bluetooth Security Microsoft Kicks Off Embedded Device Competition Automatic Photo Tagging and Visual Image Search WiFi, Networked Cars, and Personalized Commutes SafeCode Releases Guidelines for Secure Code TOP 5 ARTICLES No Top Articles. DR. DOBB'S CAREER CENTER Ready to take that job and shove it? open | close Search jobs on Dr. Dobb's TechCareers Function: Information Technology Engineering Keyword(s): State:   Post Your Resume Employers Area News & Features Blogs & Forums Career Resources Browse By: Location | Employer | City Most Recent Posts: MEDIA CENTER  more Audio 2008 International Mathematica Conference Dr. Dobb's interviews Wolfram Research's Theo Gray, co-founder and Director of User Interfaces, and Roger Germundsson, Director of Research and Development, about the upcoming 2008 InternationalMathematica Conference. NetSeminar Extending Enterprise Value with Web 2.0 In this webcast we will talk about how to simply build and quickly remix Web 2.0 applications and the role of the IT department and how they support mashups. We will discuss how IBM can help IT teams adapt existing enterprise systems as well as develop unique ones that can support end user driven mashups in a reliable, scalable and secure way. We will highlight a simple scenario adapting an enterprise information source for mashups and how to test it. We will also cover how IBM can help you build agile, fast and simple web applications based on dynamic scripting languages that dramatically reduces development time. Wednesday, September 24, 2008 - 12pm PT / 3pm ET The Great Debate: PostgreSQL vs. MySQL Common industry perceptions of MySQL and PostgreSQL aren't as true with the current generation of releases as they used to be. DBAs, developers, and IT managers and decision-makers will benefit from this presentation and live Q&A about the pros and cons of using PostgreSQL or MySQL, which will include a discussion about the ongoing trend towards using open source in the enterprise.Tuesday, October 7, 2008 - 9:00 AM PT / 12:00 PM ET                                 DEPARTMENTS Home Architecture & Design C/C++ Database Development Tools Embedded Systems High Performance Computing Java Mobility Open Source Security Web Development Windows/.NET EVENTS Software Development Best Practices 2008October 27-30, 2008Boston, MAJoin us for Software Development Best Practices 2008, Dr. Dobb's premier east coast event, featuring world-class training on the entire software development lifecycle. Register today for a conference pass or a FREE Expo Pass! SD West 2009 Call for PapersSD West 2009 Call for Papers is Now Open!Please submit your speaking proposals by October 10, 2008 to be considered. Nominations for the Jolt Awards - the “Oscars” of the software development industry - are now open. Submit your Jolt-worthy products, books and technologies by October 24 to save 20%. INFO-LINK Dr. Dobb's DVD: Release 4...ORDER YOUR COPY TODAY! ">Register for a FREE Software Development Best Practices 2008 Expo Pass today! Resource Links: | All Feeds © 2008 Think Services, Privacy Policy, Terms of Service, United Business Media LLC Comments about the web site: webmaster@ddj.com Related Sites: DotNetJunkies, SD Expo, SqlJunkies var clickstream='http://as.cmpnet.com/event.ng/Type=click&FlightID=129543&AdID=208599&TargetID=5537&Segments=3108,3448,4875,7725&Targets=2625,2878,5537&Values=34,46,51,63,77,87,90,102,140,265,442,944,945,975,1388,1431,1767,1785,1925,1935,1936,1945,1970,2262,2299,2310,2313,2352,2678,2942,3714,3904,4079,6393,6422,6489,6541,6567&RawValues=&Redirect=' ;
 

Examination

of

applying

machine-learning

technology

to

control

software

agents

in

the

changing

Internet

environment.

Introduction

of

MLEngine

--

a

general-purpose

AI

engine

with

real-time

learning

ca

http://www.ddj.com/184411104

Machine Learning & Agent-Based Computing 2008 October

dvd rental

dvd


Examination of applying machine-learning technology to control software agents in the changing Internet environment. Introduction of MLEngine -- a general-purpose AI engine with real-time learning ca

Rules




© 2008 Internet Explorer 5+ or Netscape 6+

Recommended Sites: 1. Arts - Business - Computers - Games - Health - Home - Kids and Teens - News - Recreation - Reference - Regional - Science - Shopping - Society - Sports - World Miss Gallery - Top Anime Hentai - DVD rental by mail - Credit Cards - Turbo Tax - Loans - Secured Loans - Mobile Phone
2008-10-12 10:52:43

Copyright 2005, 2006 by Webmaster
Websites is cool :) 243Torebki - Geoma.pl - Omilo¶ci Poradnik - Aparaty Cyfrowe - Pozycjonowanie Strony