Bryn Mawr College
CS 372: Artificial Intelligence
Fall 2000
Written Work: Week#5 (October 3, 5)

Sharon Rose Alterman

This week was somewhat strange, and the three parts of the class integrated together for me better than they have in previous weeks. I thought that the lecture and movie about genetic programming were very interesting, but I was left with many unanswered questions. Reading the textbook and following the detailed example there answered most of the questions for me.

The movie and experience in lab both made me think once again about how much of intelligence is in the eyes of the beholder. We each had done roughly the same program for our robots, and yet, each of them acted slightly differently, though they were made of roughly the same constituent parts. Although I understand how my group did each of the exercises, I do not know exactly what each of the other groups did that produced roughly the same result. Then I think about people who would not even understand what my group did, and I am amazed by what we really can do.

I see a strong analogy to a stage production. When you know what is going on behind the scenes, it is not as dazzling and exciting as when you are seeing it for the first time in the audience. Thus, the movie we watched was not as incredible to us as it might have been to someone who had never worked with robots or computer programming before.


Rohit Apte

I was fascinated by Genetic Algorithms ­ the concept of "mutating" code until we arrive at an acceptable solution. The Wall-following robot algorithm described in the book takes only 10 generations to arrive at a suitable solution. The book also mentions how genetic algorithms have successfully evolved reactive agents similar to those studied by AI researches, including box pushing, etc. I would like to see a lot more of GP techniques.

On another note, we finally demonstrated our robot Marvin (in paranoid state) to other people, and got a positive response. Most people were impressed and would like to see him develop further.


Durell Bouchard

 


Brianne Brown

 


Grace Chou


Dan Crown

The most interesting part of this week's lectures for me was mentioned only in passing. Deepak spoke very briefly about the combination of neural nets and genetic algorithms. It is such an obvious next step to combine these two complete methods to form another that performs even better, but it's probably one that most people would miss if not told about it directly.

One of the biggest problems I noticed with the neural nets is how long the network takes to learn what it is supposed to output. With Elman Networks, this time is greatly reduced, however, the problem of finding the correct weights for each input is still present. Genetic algorithms seem to be a great way of solving this problem. This is a completely self-contained algorithm that can produce a string that can represent an answer to almost anything you can think of. Why not weights for inputs in a neural net? Using the genetic algorithm to produce random weights, then using the neural net to test these weights seems like a very efficient, very fast, and non-problem-specific method of helping a neural net learn.


Renee Findley

 


Scott Goldstein

The new idea of memory of state is really interesting. It looks like it could expand the capabilities of the robots. I am still not sure what I could use it for.

The questions that I have focus primarily around the discussion of genetic algorithms and programming. The first one is: from where do I get all the algorithms/programs in the f0 generation? Are there programs that generate random programs? To create the initial set looks like it would take more effort than to simply program from scratch in the traditional fashion. The film that discussed this was very heavily hyped and while interesting and entertaining was not all that educational. The lecture was far more useful in terms of the class.

The new robots we have to design are much more interesting. From the handout, it looks like they are starting to require a subsumption architecture to make them work. It should be fun to program. The question is: how many processes are we going to need to create in order for the robots to work properly.


Maria Hristova

From this week's class I found the ABC News video very interesting and intriguing. Unfortunately, the material was not covered in enough depth to make it as interesting as it could be but I guess that's what you get in a feature presentation for a wide audience. I wished they had explained some more about the actual graphic representation of the
penguins from the first part of the video and if the program that they used to draw the figures was the same one that the animators used to actually create the digital penguins. I would also like to know how random the selection of the actions that the penguins could perform was because the director wanted them to be a part of a non-chaotic scenario. In the part about the lamps, I wished they had again talked a little more about the process behind what they were presenting instead of just "fascinating" the audience with their newly evolved baby-lamps.

The reading from the textbook made some of the points made in class clearer like the difference between an Elman network and an agent that uses iconic instead of a feature representation. I think I was getting the two of them confused since they both seem to involve some kind of memory (context vs. a full data structure). I was wondering that nothing was mentioned about a combination of both - an agent that would have a full iconic representation of its world one step earlier. If the time frame of the action function was moved one step earlier so that the agent has a representation of its world one step before it makes a decision this will solve the problem of a potential minima.


Agata Jose-Ivanina


Archana Joshee

I liked the concept of Elman net where you are able to feed in the previous outcomes of the hidden layer back again as an input. In the class demonstration, when we were trying to decrease the error we had several options. Increasing the number of epochs, or the number of hidden layers did not make a very significant difference. However, building a memory of experiences in such a case would make some significant contributions. This seems to me to be an important aspect of machine learning, since the computer gets to learn from its previous mistakes. "If an expert system--brilliantly designed, engineered and implemented--cannot learn not to repeat its mistakes, it is not as intelligent as a worm or a sea anemone or a kitten."

I think it would be interesting to watch the long term outcomes of genetic programming. Like it was mentioned in class, we do not always get the best genes to transfer from a parent to an offspring. It is based on probability and depending on the situation and the environment, the definition of what is fit could also vary. And this very inconsistency in gene transfer can give us surprisingly different offsprings. For example, in the documentary shown in class, the transfer of genes from generations of table lamps was able to produce an offspring that was able to bend in a way that nobody had taught it before.


Kip Lewis

This first lab assignment has me very excited for all of the labs this semester. Whenever a program works, it is very satisfying, but to actually have it do something physical rather than simply produce something on the screen is an entirely new experience. It was great to see such simple programs manifest themselves as different behavior traits in our robots. While Timid, Indecisive, and Paranoid wouldn't stand up to many notions of intelligence, creating them did make the entire realm of AI seem a little less daunting and mysterious. It was promising to consider the vacuum robot that can sense when its batteries are low and then goes into a search mode to find an outlet. Most people on the street would call that a pretty intelligent machine, and yet the programming wouldn't be much more difficult than the programming for our robots this week.

The video that we saw in class on evolutionary programming was great. In many of the examples shown in the video, while the creation of the working, "fit" agent wasn't terribly hard to do, the actual setting up of the evolution process looked awfully rather difficult. In the hopping lamp example, you would need to incorporate many of the laws of physics into the grid world, and you would need to deal with mass, center of gravity, and all sorts of other properties in the agent. You would also need to determine what in the chromosome would effect the various aspects of hopping. I was curious to know if the team of academics that created a program to predict the stock market were using neural nets or not. It's been explained to us that neural nets can be used for predicting the stock market, and it's also been shown that you can apply evolutionary programming to neural nets by stringing the weights together to make the "chromosome."


Creence Lin

I guess our group had some trouble in the lab this week with Insecure. Once the robot actually gets going and follows the wall it works, but we think it should move the other way in the default mode if the whisker is in the left. It was interesting to see the robot do things we hadn't actually programmed, especially after we learned about emergent properties in class (ie., Nettalk's first grade corpus, the limbo lamp, and straying penguins, in the genetic algorithms video, etc.) Of course, what we are doing in lab is kind of different from what we are learning in class right now, in the sense that our lab is more like S-R agents and maybe subsumption architechture and our robots don't exactly seem to be learning. We just tell it what to do and it does it. On the other hand neural networks and genetic algorithms can take so long before producing the right output. Neural nets work well with establishing patterns, but not as efficiently for other things. People can learn through one experience, for example, I don't know, if I swallowed a penny or something because I thought it was food I would know not to do it again the first time I had the experience. This is not true with a neural net (that it can learn something through one experience); it needs to genralize. In the neural net handout it talks about how neural nets were first invented in the 1950's, but because of some intrinsic limitiations shown in 1969 it did not become popular until later. The text is difficult to read, because the background color kind of just meshes with it. Anyway, it's interesting to speculate what those limitations might be. I guess that's what we have to think about for the exam.


Martin Lukac

Well... The most interesting thing this week was something Deepak mentioned in lab. He said that we will see unexpected behaviors in robots. Now thats not something that I wasn't expecting to hear, its just that i wasn't expecting to hear about robots that have such simple behavior programmed into them with such simple code. When I think of
unexpected results in the kind of programming we are doing, I think of huge complexity and mad code that involves more that just a simple boolean function... especially in AI, i see complex code being used to be used in generic situations instead of just a ton of situations. But, the more i think about it, it does seem just as likely in simple code. This is because with simple code, you are usually defining a simple process or a set of rules, and when you apply the process or rules to a situation that doesn't fall into the scope of the process or rules, you are going to get results that you don't expect (either an action that was programmed in, and is being miss used in the situation, or something totally out of nowhere). So, i guess its not at all strange that unexpected behavior arises from simple code for simple behaviors.

I never knew what genetic algorithms were until they were presented in class. The concept seems to make a lot of sense, but as usual, i've been thinking about the implementation. It seems to me that the most difficult part would be coding the traits, and creating them so that are able to be passed down. What confuses me is the whole concept of fusing traits with code. I understand it in terms of the little lamp hoping across the table, but in terms of real world applications like the stock watchers. Hopefully we will discus this in class.


Reshma Menghani

I have to admit watching the ABC news nightline: machines like us didn't thrill me as much as it could have. Perhaps it would have if I didn't have the backgraound in AI and computer science that I do have now. They made it seem that the projects shown on the show almost had a life of their own. For instance, the "lamp" project could have babies. Essentially we all know that it's following a genetic standard algorithm that was mentioned in class.

However at this point in the semester of AI I have to point out an interesting fact about this field. Never before have I taken a computer science class that overlapped with biology as much as this class has. The whole chapter devoted to genetic programming is a prime example. The neurodes/nodes is another.


Todd Miller

 


Maria Pace


Heather Palmeter

This week we began the discussion of genetic programming algorithms and I found it to be particularly interesting. Part of it might have to do with the fact that, for what ever reason, my high school was heavily into biology. The other sciences were treated like most high school subjects but biology was sort of on a pedestal. Consequently, we learned a lot about evolution. Of course, the techniques we discussed in class only resemble biological topics in a limited capacity but still, the resemblance was there.

We also had a chance to watch a 'demo' of a neural net and it was an exercise that I found quite helpful, especially when it came to demonstrating the Elman Net. I don't think I would have actually believed that the structure of an Allman net would enhance the net's capabilities to the extent that it did. I guess it falls into the 'have to see it to believe it' category. As it was however, the Elman net's ability to learn and distinguish a pattern with a sequential component was rather impressive. I must admit that, while I can visualize the learning process of a non-sequential pattern, the method of learning a sequential pattern is a little more elusive, though the various examples given in the book were quite helpful.


Megan Rutter

The one thing that really stands out in my mind from the movie we watched in class last week was the 6-legged robot that taught itself to walk. It was incredible to watch the robot in the process of teaching itself. It was especially useful to see the things that we have been learning in class applied in the real world.

I also found the class lecture on genetic algorithms very interesting. It incorporates biology and psychology with computer science, which needs to be done in order to fulfill adequately the goal of AI. If it is possible to create a machine that most closely resembles a human, there must exist a unification of cognitive sciences, pure sciences, and computer sciences.


Brian Simms

Elman networks seem fairly interesting, telling the network what the previous weights were and allowing it to alter itself accordingly. Between this extra set of input and a variable beta value we can greatly alter the rapidity with which our network can learn. It is useful to see that certain types of networks learn certain types of things more quickly than others. However, the most interesting stuff we've seen so far is the genetic model for AI programming.

I am amazed at how well certain agents learn using genetic algorithms and descendants. The idea that chance and mutation not only affect learning, but that these play a huge part, seems almost counter-intuitive compared to other computer science ideas. Usually we are interested in reducing unknowns. Here we are introducing them on purpose! We were able to see the results watching the video in class where a programmer used this idea to create a luxo-lamp that could hop, dance, or limbo amazingly well. The diversity in the field continues to surprise me. There are so many different ideas about how to implement AI. It seems like the field is still in its infancy, and we are in the midst of a very exciting time to get started with AI.


Matthew Spigleman


Andreas Voellmy

Genetic Programming is an incredibly interesting topic. The book's treatment of GP is rather short and superficial. Although the general principle of GP is clear from the reading, there seem to be many important issues that are not touched. For one, I'd like to know if there is only a certain class of problems that can be solved with this technique. Maybe, for some types of problems, genetic programming gets stuck and never finds an acceptable solution. Also, with GP it seems you are not guaranteed to get an optimal answer to the problem, but rather only an acceptable solution. Also, Nilsson leaves me with little sense of how GP might work without the tree-based representation of programs. I imagine there are many programs which cannot be represented by a binary tree diagram, or that there may be program operations which do not always lead to a computable answer. In these cases, how can GP be implemented?

In any case, I'm left thinking that GP is just an intelligent searching method. Also, it seems limited in that, although you don't have to know the structure of the solution, you must provide the initial generation of programs with all the logical elements it may need to construct the solution. Therefore, it requires some clever insight from the programmer to set the evolution in process.


Nicholas Yee

Special news segments like the one from Nightline remind me how much "badness" there can be when the media tries to pick up on pop science. Aside from the dramatically embellished "you mean they actually have sex?" comment, I don't see how the penguin segment had anything to do with genetic algorithms. Nonetheless, it was entertaining and a great lead-in to the lecture material.

Having taken the Evolution class at BMC and the Evolutionary Psychology class at HC, letting algorithms compete against each other made a lot of sense to me. Designing an agent that needs to compromise between many conflicting tasks/needs is not easy, but all living organisms today managed to solve this problem, and it is a problem more easily solved by cumulative trial-and-error rather than by design.

I also liked the comment that optimal solutions may lie in any particular point in the x-dimension of variables, and that to use assumptions would shut off parts of this space, such that the best optimal solution may never be found. From a biological perspective, this is compounded with the fact that legacy also shuts off part of the space. Organisms are stuck on their evolutionary branch once they have chosen one solution, and the implementation that easily solved a low-level problem may prove unable to solve higher-level problems, but the organism will be stuck forever in what it's ancestors choose to do.


Back to CS 372 Course Materials | Back to Written Work Main Page