Tuesday, January 10, 2012

Thinking Cap on Intelligent Agents

[[Folks:
 By now I hope you all had enough time to get yourself signed up to the class blog. As I said, participation is "required" in this class. Participation involves doing assigned readings, being attentive in the class, and most importantly, taking part in the class blog discussions.

While any discussions you want to do on the blog are fine, I will occasionally throw in topics I want you to discuss. For historical reasons, we will call them thinking-cap topics.  Here is the first discussion topic  for your edification.  

As for the quantity vs. quality of your comments, I suggest you go by the Woody Allen's sage advice in Love and Death (start 2:30)   --Rao ]]


Here are some of the things that I would like to see discussion/comments from the class. Please add your thoughts as comments to this blog post. Also, please check any comments already posted to see if your viewpoint is already expressed (remember--this is not a graded homework, but rather a discussion forum). Make sure to sign your posts with your first name (so others can respond by name)


1. Explain what you understand by the assertion in the class that often it is not the hardest environments but rather the medium-hard ones that give most challenges to the agent designer (e.g. stochastic is harder in this sense than non-deterministic; multi-agent is harder than  much-too-many-agents; partially accessible/observable is harder than full non-observable).

2. We said that accessibility of the environment can be connected to the limitations of sensing in that what is accessible to one agent may well be inaccessible/partially accessible to another. Can you actually think of cases where partial accessibility of the environment has nothing to do with sensor limitations of the agent?

3. Optimality--given that most "human agents" are anything but provably optimal, does it make sense for us to focus on optimality of our agent algorithms? Also, if you have more than one optimality objective ( e.g., cost of travel and time of travel), what should be the goal of an algorithm that aims to get "optimal" solutions? 

4. Prior Knowledge--does it make sense to consider agent architectures where prior knowledge and representing and reasoning with it play such central roles (in particular, wouldn't it be enough to just say that everything important is already encoded in the percept sequence)? Also, is it easy to compare the "amount" of knowledge that different agents start with? 

5. Environment vs. Agent complexity--One big issue in agent design is that an agent may have very strong limitations on its memory and computational resources. A desirable property of an agent architecture should be that we can instantiate it for any <agent, enviornment> pair, no matter how complex the enviornment and how simplistic the agent. Comment on whether or not whether or not this property holds for each of the architectures we saw. 

6.  We said goals and performance metrics are set from outside. But often talk about "setting their own goals". How does this square with the external nature of performance metric?

7. Anything else from the first two classes that you want to hold-forth on. 

Rao



22 comments:

  1. My comment is on the third point that deals with optimality. It is true that often actions of "human agents" result in sub-optimal outcomes. However, we consider "acting rationally" as opposed to "acting humanly" as the goal of the intelligent agents that we aspire to build. Now the idea of rationality is intricately related to notion of optimization (as in maximizing the benefit or minimizing the cost etc). Hence focusing on the optimality for our agents seems to make sense.

    I think the second question is even trickier. When there are multiple objective functions that we are trying to optimize, we are basically dealing with a vector of performance score. Clearly, we won't have a perfect ordering on the set values the objective function vector can assume, hence making it harder to choose a optimum one. However, we may settle with something less demanding in such situations. One possible solution may be to assign certain weightage to each of the objectives we care about and then take a linear combination of the objective functions with the assigned weightage as our ultimate objective function.

    Another solution may be to settle for some kind of "Pareto" optimal solution. A Pareto optimal solution is one such that no other solution exists with all the components at least as good as the chosen one and one component strictly better than the chosen one.

    ReplyDelete
    Replies
    1. I agree that acting rationally is, for some purposes, much better than acting "humanly". For instance, using the taxi driver example that Rao pointed out in class, we can see this much easier. Since humans are fallible it makes sense to optimize an agent for taxi driving beyond the capabilities of a human driver: for safety and speed sake.

      To address the second issue I think we would definitely want to optimize some parameters more than others e.g. Safety over Speed. In the case of that example the driver was being reckless and got no tip. The same could be expected of any AI because we want to get to our destination alive foremost and the duration and cost of the cab ride would of course have to come after that.

      Also, I agree that we'd have to come up with a solution to optimize for our requirements but not so much as to cause any one of them to hinder the others. Using the taxi, yet again, we can argue that almost no one would pay a hundred times more for an AI taxi if a human taxi was much cheaper and reasonably close to the same speed and safety levels. I'm exaggerating the cost but I'm trying to point out that on average the human taxi is "good enough" for most people. We also assume that the average taxi driver won't drive like a maniac. I think the "Pareto" solution you mention is a fine line that is hard to pinpoint.

      Delete
    2. The argument that we should seek for optimality in our agent algorithms simply because "humans are irrational" sounds very weak to me---I'm quite sure that most people will wish to have the best outcome for any of their decisions, as much as you want for your agent. A more relevant issue to me is realizing that whether optimality or rationality can be achieved or not depends on both the complexity of the environment and how much "resource" (such as knowledge, money, time etc) that an agent or a human possesses. Some people with enough knowledge and training can actually quantify various important decisions in an environment as complicated as the real life (*), and to me this is human rationality. Insisting on the optimal (i.e. shortest) plan for an agent, on the other hand, can take you several years even in a static logistic domain. Optimality is a compelling criterion for your agent agorithms, but may not always that helpful.

      The answers on multiobjective optimization are well put. There is also an assumption for linear combination of individual objective functions that those objectives are preferential independent to one another (roughly speaking, e.g. whether you prefer a cheap flight to a long flight does not depend on a specific airline). When implementing Pareto optimality, one issue is that the number of Pareto optimal solution may be huge, and thus many people consider how to approximate the whole Pareto set with a set of "representative" solutions.

      --
      (*) Value-Focused Thinking: A Path to Creative Decisionmaking. Ralph L. Keeney, 1992. (see in particular chapter 13).

      Delete
  2. 1. Agent takes perception from environment to act rationally. As per my understanding, designing an agent with the knowledge that no perception/information would be available from environment makes it easier for the designer because in this case designer needs not to worry about the information passed from environment. Then the aim of designer would be to develop an agent for goal optimization by giving attention to only goal. But in case of medium hard environment, as the information/perception from the environment is not consistent, designer has to consider various cases(such as type of perception, amount of information etc.) while developing an agent to achieve the optimization of goal.

    2. Suppose we have an online shopping agent which checks various shopping sites before making a deal. In a special case when few shopping websites are down due to some "XY" reason and it has nothing to do with agent network. In this case partial accessibility of network has nothing to do with sensor limitations of agent.

    3. Optimal agent algorithm do make sense but before making an optimal agent algorithm, designer has to decide upon the overall objective function of agent by taking into accounts all the goals of agents and weighing them properly as per the importance/priority.

    4. Prior knowledge plays an important role. Perception sequence provides a snapshot/state of the current environment to the agent on which he has to act rationally. To make a decision on actions, agents prior knowledge of how the world evolves and what a particular action will do in that state of environment is very important.
    No, it is not easy to compare the agent on the basis of "amount" of knowledge that different agents start with because amount of knowledge depends upon the environmental perception.

    6. Agent are provided with perception from environment and they use that perception to fulfill the goal and perception set externally. Here "setting their own goal" means that agent set their own goal internally depending upon the perception/information provided by the environment to achieve optimal goal of agent with specific performance criteria.

    ReplyDelete
  3. 1. Non Observable is easiest as the expectation of the system is very less and all each system can do is try to build in basic movement techniques and let the system figure how to maneuver.
    Fully Observable can be either programmed for each change in environment and can be tested and verified for all changes that can be possible in the environment but needs intense coding for the same.
    But Partially Observation on the other hand can be converted to more nearer to fully observable by more intelligent coding and deduction and neared you get to fully observable, the better your output becomes. Hence it depends on how intelligent the code is and how much you can deduce from partially observations.

    ReplyDelete
  4. 1. This reminds me of the "flow state" discussed in psychology, which (this is a simplification) refers to how people are drawn into activities whose difficulty meets or just barely exceeds their skill level. These activities are perceived as challenging, because controlling or solving them require most or all of a person's abilities and focus, but is perceived as possible. Activities whose difficulty vastly exceed a person's skills are perceived as uncontrollable and as sources of anxiety. Their difficulty is so severe that a person's abilities cannot be brought to bear on them, and so the person does not experience a "challenge" as their abilities are not being used.

    Similarly, modelling a multi-agent system falls within the skill level of many programmers and researchers, but as the number of agents increase, the number of people who can deal with the added complexity diminishes. Thus a far-far-to-many-agent problem isn't perceived as a challenge but rather as "currently impossible". In theory, a sufficiently skilled person with sufficiently powerful tools could solve these very hard problems, and would find them more difficult than the medium-hard problems that the field is dealing with now. In reality, though, there are not currently people or tools capable of dealing with these very hard problems.

    Thus, for the average person working in the field, the very hard problems are too daunting to engage their skills, while medium-hard problems are solveable with a great deal of effort. This causes medium-hard problems to be almost universally perceived as more challenging (and often described as "more difficult", or "harder", as these terms are often used to refer to personal challenge) than the very hard problems, even though years from now these very hard problems may become solveable, and thus regarded as more difficult/challenging.

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. 4. Prior knowledge can be an incredibly important part of the structure of any agent, but the importance depends greatly upon the environment that the agent is dealing with. When considering only static environments it is not necessary to keep track of any information except when you interact as it will not change until this interaction. Now with complex dynamic environments things other than the agent (and even the agent sometimes) change without direct interaction from the environment requiring the constant updating of information about the environment. To circumvention this it is possible to predict the future state of the environment (within reason) by have prior knowledge of multiple states of said environment and the laws that persist through it. Without this there can be no sure interaction with anything.

    ReplyDelete
  7. 6. Well seeing that my first 2 paragraph comment was completely wiped for no reason.... I will keep this one brief. I believe that if the AI has the ability to set it's own goals, then it was obviously given the metrics of surveying the environment and adjusting goals to be a better fit than the original nature set in place. Yes it might be able to contradict the original nature but then it defeats the purpose of making a competent AI unless you are willing inhibit it. Its a very catch 22 situation.
    Colin

    ReplyDelete
    Replies
    1. Colin-

      That is a great point. As an example, consider an agent that is responsible for a certain task - say a household robot that helps the elderly at home. Now if this agent had the power to define its own goals and rationalizations for those goals, could it actually get to the stage where it was making "excuses" for itself? Could it say to the human "I think you'd be better suited to that task, why don't you do it?" And should it have the ability to do all of these (because we humans certainly do this in our daily lives)?

      - kartik

      Delete
  8. 3. I think agent designer should always consider programming agents to have high optimality because the whole point of creating agents is to make robots/machines that are smarter than humans. Therefore, if the machine has higher optimality than humans, then we have succeeded in creating our agent.
    Finding optimal solutions depends on the information the agent perceives from the environment. The agent should a solution that gets the best out of all the variables involved. For example, the cheapest ticket possible for the lowest time cost.

    Mahmoud

    ReplyDelete
  9. 4. For the 4th one, it's not enough to just say that everything important is already encoded in the percept sequence. Cause each percept the agent received will be added to the percept sequence. The intelligent agent takes the next step on how to act based on both current percept, and the whole percept sequence. But there are four major things we need to consider when we actually do the next step. We have the agent functions that decide the next step for the agent. Environment and action and goals are also important. Also for the percept sequence we already have, the environment might change after you receive the percept. If we are dealing the static environment, we will be fine. But if we have dynamic environment, we need to change things since the environment is changing. So I would say a lot of important information has been stored in the percept sequence, but not all of them.
    For the second question, I would say there are different situations. As mentioned in class, we already had a discussion with the test on whether you are having discussion with a human or a machine. So the "amount" of knowledge each agent has cannot be compared because they may deal with different questions. Also the idea for intelligence agent is to learn things like humans. SO if they are set to deal with similar questions, they can be compared at the beginning. Then they start Learning and getting new knowledge.

    ReplyDelete
  10. For the sixth question: This seems to me like at least one example has to do with the agent deciding to set intermediate goals which it would reach along the way, in the interest of ultimately reaching the goal or goals given to it externally. These self-given goals would not be those evaluated by the performance metric, but would assist in completing the final goal. For example, we can imagine an intelligent agent playing a complex game like soccer. The end goal for the agent could be to score a point but it may decide that, given his current position, he needs to set an intermediate goal of moving closer to the goal. This goal may require a number of other decisions along the way. Eventually, it serves to advance the original agenda of meeting the externally given objective.

    - Elliot

    ReplyDelete
    Replies
    1. Elliot - This is a good point, and you will see parallels to this discussion when you start discussing planning for agents in class. In specific, you will see that a top-level goal may require the fulfilment of several "sub-goals", and that there is an entire process of going backwards from the top-level goals through the various sub-goals. But sub-goaling is still different from evaluating the achievement of goals, and the performance metrics used (see Colin's comment above).

      Delete
  11. Concerning the first sentence of point #3, it's interesting to notice that many important human inventions were done by accident, like vulcanized rubber, plastic, pacemakers and penicillin. Supposing that in place of human agents were artificial agents, which had prior knowledge given by those human agents, would they have succeeded in making those discoveries, given their optimal behavior? Or would they simply end their work concluding that their primary goal can't be achieved? Also, their goal would be the one given by their makers, so if a discovery other than their goal should appear, would they simply discard it for not being their primary goal (from which they can't deviate), or could they have the ability to conclude that this new opportunity would also be something great to work on?

    - Victor

    ReplyDelete
    Replies
    1. Designing an agent that thinks or acts "optimally" (or even "rationally") does not mitigate the chances of things going wrong in the external environment. The agent does not have control of the "world"; a perfect agent, with all the imperfections of the world around it perfectly modeled, might stand a chance of being considered optimal. However, the fortunate happenstances that you talk about are all possible even with very sophisticated artificial agents executing in the world in place of humans.

      As a somewhat related comment, you should definitely read up on the qualification and reminification problems (http://en.wikipedia.org/wiki/Qualification_problem) (http://en.wikipedia.org/wiki/Ramification_problem) for reasons as to why representing the world completely is hard.

      Delete
    2. This is a point that I find interesting :-) I believe that "inventions" (such as those that Victor pointed out) are something far beyond capability of an "artificial agent" even with a complete *knowledge* of the world around it (assuming that we know what it means by complete knowledge, and how to model them all). I guess humans are superior because we have ability to *imagine* (which, as Einstein said, is more important than *knowledge*). This is not to reject the helpfulness of AI as a science of designing rational (or, usable and helpful) agents as we have seen such as Watson.

      If you want to know a theory that is against AI, you may want to check "On Intelligence" by Jeff Hawkins, who argued that it is the massive number of neurons in our brain, not their processing speed (which is actually much slower than the speed of a computer chip), that enables human's ability to storage almost infinite amount of "patterns" in our memory, and to retrieve and combine useful "patterns" so quickly which define human intelligence. In this sense, I guess what Victor said about "inventions by accident" is not really accidental at all, but rather connections of patterns that sit deeply inside the memory of inventors, and will be fired in certain conditions, let say when they are sleeping ;-)

      (this guy also had a very funny talk at TED: http://www.ted.com/talks/lang/en/jeff_hawkins_on_how_brain_science_will_change_computing.html)

      Tuan

      Delete
  12. 3. The amount of optimization that is required for an agent depends on the goal that the agent is attempting to achieve. For example, consider the example that was mentioned in lecture today. Artificial intelligence has evolved to the point where it can beat a human at the game of chess. It is not due to the fact that the agent plays optimally, but just that humans generally do not play chess optimally (how do you even measure optimality in the game of chess?). Plus, due to the general nondeterminism of the moves that the human player would make, it would be difficult for the agent to optimize at each turn. And since the game of chess is generally complex, it is difficult for a human to think optimally to begin with. However, a simpler game such as tic-tac-toe should focus on optimality. Even though the moves that the human player would make are still nondeterministric, the search space is much smaller and predictable. Moreover, the game of tic-tac-toe is small enough that every possible scenario can be represented as a state. Lastly, since it is easier for humans to conceptualize and strategize tic-tac-toe, more emphasis must be put on the optimality of the agent.

    ReplyDelete
    Replies
    1. I couldn't agree with Richard more. As I mentioned in a discussion with Kausik and John, I think whether we should look for an optimal algorithm depends on the environment we are facing to, and the resources that we have. On a related issue, optimal algorithms are usually, if not always, so different than those that are obvious to us. Similarly, have you ever seen any piece of code full of dirty tricks, and thus hard to read, but turns out to be optimal? ;-)

      Delete
  13. 4. There are many useful roles that an agent can fill with prior knowledge. Proper reaction of an agent to various situations is nothing less than desirable. Whether or not “everything important is already encoded in the percept sequence” the agent is still demonstrating the “automation of intelligent behavior”. In this sense we can say that the agent is acting rationally. Comparison of the amount of knowledge that different agents start with depends on many factors. What is the particular use of the agent? What type of environment will the agent be functioning in? We could compare physical sizes of memory/hard disks between agents, but that is far from comparing actual knowledge.

    ReplyDelete
  14. 2. Yes, there can be certain cases where partial accessibility can be seen unrelated to the sensory limitations. This is of course true though only in a least number of situations where one agent is provided with sensors more than necessary. For example, in a game where the agents are supposed to play blindfolded, the agent which has visual receptors is of almost equal use as that without those sensors. So, this question is based on what use the agent is put in and the case given above proves that there can exist such situations. In fact, one of our very own ASU students won a normal wrestling match even though he was one-legged. http://www.dailymail.co.uk/news/article-1368189/One-legged-wrestler-finishes-career-high-win-NCAA-championships.html

    ReplyDelete
  15. 1. From a programmer's point of view, receiving partial or inconsistent feedback makes things way more complicated to program, and it would mean more lines of code. While in the other hand, if coding with no feedback then there would less headaches since there would not be much decision taking involved, therefore less code. For example with the vacuum, with dirt sensors it would need to have code to check for the dirt level before vacuuming, but on the other hand without them, it would just vacuum either way.

    3. To answer the second question, the optimal algorithm for more than one optimal objective such as cost of travel and time of travel, I would say it should be something like the best bang for your buck. This way the result would be the best cost for the time of travel you are paying.


    -Ivan Zhou

    ReplyDelete