CS 372 (Artificial Intelligence) Fall 2004
Week2 (Due 9/13) Reactions & Thoughts
Ioana Butoi
The first time I interacted with agents was at a higher level. I started with direct control brains but I soon moved on to writing neural network based brains. It is interesting now to look from a much simpler perspective at the wall following behavior. The program I wrote is similar to the one based on the grid environment, but it came from a different approach. I was thinking more real life instead in terms of an abstraction.It is interesting now to look at things that I have already used and go back to a lower level. The same thing happened with neural networks. When I was introduced to neural networks I did not fully understand them, but as I used them things started to make sense. Until this week I saw networks in a global way, but now I get to look at them from the basic unit building up.
Andrew Cantino
After reading about Python and Pyro, I'm very excited to get to work with the robots! Pyro looks easy-to-use and powerful and I'd like to see what I can do with it, especially with the computer vision features. I don't know if we're going to get into computer vision or not? I took a year of computer vision at Swarthmore last year, so it would be fun to get to use it on the robots.Learning about the Stimulus-Response robots this week reminded me of a project that I worked on a while ago. A few years ago, I played an online MUD -- a text-based adventure game. I eventually got bored of actually playing it, but I did realize that it would be an excellent challenge to write a bot (a softbot, I guess) that would play it for me. This turned out to be very difficult due to the dynamic and natural language nature of the game. I would classify my softbot as a S-R robot using something resembling the Subassumption Architecture from chapter 2 of Nilsson. It used a stack to store and process 'tasks.' So, for example, if the bot was attempting to explore an area of the MUD world, it's current task might be 'explore.' But if it suddenly found that it couldn't see, it would push a new task on the stack called "get light." The new task would take precedence and the bot would attempt to light a torch so that it could see. Once this task was accomplished, the stack would pop and the bot would go back to exploring.
I got my softbot to perform some basic survival tasks like healing, finding light, and moving around the world using a pre-generated network of interconnected known locations. This was fun, but I eventually stopped working on the project, both because of it's complexity and because I lost interest. It's interesting now to look back and see what parts of AI I was inadvertently exploring. Maybe I'll eventually work more on this old project using techniques that I learn from this class.
Audrey Flattes
Christina Florio
Chapter 2 lead me back to the main question of last week regarding whether or not machines can think. While learning about a robot in a 2-D grid world, I was reminded of a termite program that was discussed last semester in CS361 (Emergence). The termites program is said to be a reflection of how living termites actually work. They were in a 2-D grid and, depending on which version was used, a termite was able to keep track of four or eight of its neighbors, it then performs an action dependent on these results; which is very similar to the S-R agents. This similarity is what lead me back to the thinking question because, it seems to me, that the termite program was able to think and manipulate its “world” according to a set of guidelines, just as live termites, so the programmed termites, then, must be considered thinking machines; then all S-R agents are thinking machines as well. However, I am sure that this conclusion is easily argued because it brings up the following: where is the line drawn between man and machine?
Kathleen Maffei
During class when stimulus-response vehicles were discussed, I was reminded of something I read in Cognitive Science that was also mentioned in the AI book in Chapter 2. Braitenberg’s Vehicles was a very interesting read – I’d recommend it to anyone who’s just looking for something fun.
Braitenberg approaches the issue of artificial intelligence with the idea that the simplicity and/or regularity of certain animal systems are comparable to computing systems. We study animals through observation, and so he considers how it would be if artificially constructed vehicles were observed by people with no idea as to how they work. He presents us with a fictional world in which he constructs very basic vehicles with minimal sensors and actions. His first vehicle begins with one sensor and one motor. The more the sensor detects of something (let’s say light), the faster it moves. Its behavior would seem to indicate that it is at the least alive.
Vehicle 2 has two motors and two sensors, hooked up in one of two different ways. In 2a, the right sensor controls the right motor (and wheel) and the left sensor controls the left motor (and wheel), each moving at a speed relative to how much light is sensed by its sensor (like vehicle 1). With this set-up, if there is, for example, a strong light source to the right of the vehicle, the right sensor will detect more light than the left, so the right motor will move faster than the left, turning the vehicle away from the light source. This vehicle appears to avoid light. Vehicle 2b has its motors and sensors crossed: the right sensor controls the left motor and vice versa. When it detects light to the right, it speeds up the left motor and slows down the right, turning toward the source. It appears to be attracted to the light.
Each succeeding vehicle is slightly more complicated, adding sensors, motors, thresholds and such. The result is that each succeeding vehicle appears to display some more complex sort of behavior, which an uninformed observer might mistake for animal or human qualities. Vehicle 5 actually does perform certain amounts of logic. In the end, Braitenberg demonstrates that some very simple systems can display behavior that can be interpreted as very complex. It’s some interesting food for thought when considering how to approach such a complex subject as artificial intelligence.
Sara McCullough
Tuesday in class we discussed more about what our opinions were on AI, with regard to what everyone wrote for responses last week. My response last week stated that I did not see how we could move on to study AI when we do not even have a solid definition of the word intelligence. I assumed that everything we studied would always go back to the question of how we define intelligence. However, in class last week someone mentioned in response to my thoughts that we do not need a broad, solid definition of the word intelligence. Rather, we just need to understand that we are studying intelligence within a certain scope. This really clarified my ideas and questions. When we are experimenting with stimulus-response agents for instance, we will not be studying intelligence in the scope of self-will or self-realization.
In response to Christina's posting this week, I think it all depends on how you define thinking. If you consider the thought process nothing more than simple rule-obeying, then the termites in the program are thinking. Some might disagree, but I would say that termites in the real world are doing exactly the same thing, just rule-obeying. I don't think that the real-world termite contemplates to itself about where to put the woodchip it picks up. I think that the termite is just following simple rules, or instinct in other words, just as the programmed termite is doing. I think that the rules Christina programmed her termites to obey can be considered one and the same as the instincts of real-world termites. The only difference I see between the termite in the real world and the programmed termite is that I know where the programmed termites instincts come from, but I don't know how to explain the real-world termite's instincts.
William Moss
Karen Pang
Yuna Park
Ben Root
-
I loved the introduction to our future playmates in class on Thursday. They have so much extensibility of sensory equipment and it seems like we already could write simulations for their behavior using our gridworld example (which of course would be dooomed to succeed). I think that the level of abstraction of PYRO is great and I'm looking forward to implementing some of our AI techniques in the lab!
I also have to address an interesting train of thought which came up when thinking about humanity and artificial intelligence:
I'm collecting research for an essay which will address what it means to be human given the sequencing of our genome, which is often referred to as our "blueprint" or our "genetic program". One huge debate which I have stumbled into during my search is "When does a human life begin." There are those that say that the life begins when the sperm fertilizes the egg and the male and female DNA are united (the zygote stage, known as the zygote-is-person viewpoint) and others that say that the line of personhood is much more blurry and occurs some time later when the embryo can think or respond to stimulus or has a brain.
Both learning-AI and the zygote contain code which sets permanent bounds (although loose and indistinct) on the final structure and functionality of the subsequent being. In the zygote stage, like in the untrained AI, all that exists is potential. Both must be imbued with data from their surroundings to become functional agents. In the same way that a baby who was not taught to read could never be asked to decipher a book, a learning AI with no data to feed its condition-action generating function could never satisfactorily accomplish its own task.
I find it at the same time necessary and a hindrance to anthopomorphize AI. It points out shortcomings of the field, but also lends us feelings of hope and optimism for the future of our artificial creations. Since the entire "blueprint" for ourselves is a finite and quantified piece of data, mightn't we produce an artificial "genome" which could drive the development of an artificial intelligence. It seems tantalizingly possible that such a dynamic and functionally diverse code as the genome could be created for an AI. And while testing and exploring the capabilities of this AI, we might have to ask ourselves when it would be too late to hit CTRL-C with a clean conscience.
Sandeep Singh
-
Last week we discussed the basic grid world in which our simple stimulus-response agents will interact. We began to delve further into the production systems and durative processes that will be implemented into the agents. While some of the topics were new to me, the binary and Boolean aspects of the logic were something that I have been very familiar with. I remember learning about Boolean algebra in high school—truth tables, digital circuit logic, etc—and I remember becoming increasingly fascinated with how such rudimentary logic could be employed into so many thought processes. As basic as the ANDs, NOTs, ORs and XORs were, I realized that they could be integrated with one another on a much larger scale to produce something with substance. Taking a step further, the threshold logic unit that we talked about works on the idea that a summation of vector inputs is then compared against a threshold value which then outputs a corresponding value—either 0,1. I found it interesting that with time, there are ways for the TLU to learn correct values for the threshold. This opens up many a door because it diminishes the influence of the programmer on the intelligence of the agent.
While my main concerns with this course are that I have neither programmed with Python, nor haved studied agents in the past as other students in this class have done, I feel confident that I will pick up on things rather quickly. I read through the Python and Pyro introductions and despite the fact that I have very little experience with programming through the command line, I was able to understand the syntax and the basic algorithms presented in the introduction. As I read the sections, I began to experiment with Python a little bit. I launched the terminal on a separate Linux machine I am running and I began to enter in some basic Python code as it had been presented in the readings. I entered the customary “Hello, world” program into the terminal and to my delight, it worked! I played around a bit with lists and for loops and the basic mathematical operators and got a better feel of how Python works. My ability to use Python and Pyro will only get better with time and practice. I am very excited that we are finally getting into the programming aspects of the course and I’m even more thrilled at the thought of interacting with the S-R agents.
Darby Thompson
After the first week I had many questions about what AI included and what behaviors showed signs of ‘thinking’ and ‘intelligence’. Thankfully this past week I began to understand that it really wasn’t incredibly important that we define these illusive terms. Questions and quotes brought up in class such as ‘Who is calling what intelligent?’ and ‘If the brain was simple enough to understand, we would be too simple to understand it’ were very helpful. I especially liked the concept of the intelligence ‘line’ rather than criteria, and relationship of when the environment is more complex, our actions become simpler. It was also very useful to look at the different stages/types of behaviors that we are going to explore. Understanding the processing of percepts/sensors for a simple reflex agent, model based agent, goal based agent and utility based agent clarified my concept of these behaviors. I also liked seeing the robots again, and am excited to see our ideas put into practice in the simulators and hopefully also with the real robots.
