Sharon Rose Alterman
This week seemed to have two very distinct parts that are intrinsically related. The first part was our discussion of neural nets and machine learning. The second part was beginning to work with the robot.
Math is not my strong point, so my first reaction to looking at the diagram was something along the lines of, 3that1s a really interesting network, but where did all those numbers come from?2 I was interested to see how the machine could be trained to respond correctly to a set of stimuli. However, I did not follow how it could be made to respond correctly to degraded or corrupted stimuli. It still seemed to me that it had to follow a rule and that something that we recognize as a water stained 3a2 would still be unintelligible to the robot. I understand that it will make a response if the input is over or under a certain threshold, but I have difficulty believing that it would work for corrupted stimuli that a child would still be able to interpret.
Working in the lab was a bit overwhelming this week. I felt a bit like we were made to jump in swimming. This was mostly because we had not been able to get our robot running beforehand so I was in the dark as to how it was working in the first place. I now feel like I have a better handle on how we are supposed to work the robots, but I1m not sure how to make it exhibit the different behaviors, since the directions said to have just one 3.c2 file.
I have to run off to a dance class right after lab, and I couldn1t help but draw a comparison between the new dancers that are still learning the orientation of a set and to connect the various terms with the actions that they were taught, and the learning in a neural net. We learn a figure in one context, and then we have to recognize it again in a different context. This seems similar to the neural net that is trained on one set of possible inputs and then tested on another set of possibilities
Rohit Apte
Durell Bouchard
The task of programming an AI that is able to learn without a programming language that is able to modify itself seems like and impossible one. So the concept of neural nets, a non-algorithmic approach, seemed as though it would have the potential to create an AI that is able to learn, and it is. But as before with fly and intelligence the definition of learn must be broadened to include learning other than what we normally associate with human learning, because neural nets do learn, just not like a human does. After learning about what kind of learning neural nets really do, and how it is not like human learning, I was a bit let down. But at the same time I was amazed that the structured learning could generate algorithmic behavior without a program. I have associated algorithms and programming together since first learning to program. So neural nets have forced me to re-examine both what algorithms and learning are.
Brianne Brown
Although the idea of neural nets makes sense, intuitively, to me, I still had a very hard time getting through the reading. It's been a long time since I've had a math class....Still, the basic ideas are pretty clear. What I find most intriguing about neural nets is the idea that there are multiple solutions to every problem, that still give the same results. (Which, as Prof. Kumar pointed out in class, has interesting implications for studies of the human mind.)
It is a little frustrating though, isn't it, to build a machine
that does what you tell it to do, but not really know how it's
doing it? I mean, you just set up the neurons, feed it a lot of
data, and then let it go. It's kind of a black box. What's interesting
is that this is how most speech recognition is done. (As I learned
this summer--I was in a workshop at a research center that does
a lot of work on speech recognition.) The basic idea is that for
any given perceived phoneme (speech sound), the computer has to
be able to predict what the is the most likely phoneme to follow.
(Because often noise interferes with the data, or people chop
phonemes off of their words, etc. You can't always directly understand
what a given sound was.) The technique for solving this is to
build probabilistic models (that behave a lot like neural nets,
as far as I can tell with my *limited* understanding) and then
train the models on an adequate amound of data.
The thing is, linguists have already done lots of work on what
phonemes are more likely to follow others in language, and even
for specifically English. For example, most obviously, it is known
that after a "thr" or a "shr" consonant combination,
in English, you are likely to find a vowel. (Something which is
clear to English speakers.) So, early
researchers in speech recognition consulted with linguists and
tried to build these rules into their models. It turns out, though,
that when you build in linguistic rules the models perform WORSE
than when they simply use probabilistic models!
So why on earth would this be? It doesn't seem to make any sense. And, indeed, the people working on these problems don't know why using linguistic findings hurts performance. And, being engineers, they don't really care. (Obviously, I'm making broad general statements about people. But as an outside observer, this was the impression that I got.) So that, to me, is the problem with neural nets. Since you can't really take them apart and see what, exactly, the computer is doing, you have limits on the extent of your analysis.
Grace Chou
This week's introduced many mathematical algorithms that allow the computer to "learn" from its mistakes. I was slightly confused about why each TLU in the network unit are considered a sigmoid unit. However, I was impressed by the results produced by the various algorithms. I was also impressed by the elegant mathematical analysis of the behavior of the functions. The exercises we did in class shows how each iteration of correction changes the function and converges to the desired behavior. It reminds me of some of the mathematica exercises we did in my differential equation class. With some algorithms, even one is very deviant from the equilibrium position of the overall function, one eventually reaches the equilibrium, which is the correct behavior of the machine in this case. In other cases, a small deviation from the starting point will make the end result something totally different.
Dan Crown
One of the main reasons I have been able to keep up my interest in computer science is the feeling of accomplishment I get after watching a program work exactly as I had intended it to. I'm sure all programmers feel this way to some extent. For me, this is a great feeling. It's proof that I can hold my own, that I might be worth something to someone. It's an even better feeling when it comes after hours of struggling
In lab on Thursday, I found that this feeling gets even better.
With software I can get a program to run, but even when it runs,
not much happens. Some objects on a screen move around, or some
text appears and some equation is solved. With our robots, the
response is much better. We're entering simple, one-line programs
and all we can do is make the
robot turn in a circle or run into a wall. Even so, watching the
robot perform these simple tasks is amazingly exciting. I can
only imagine that it will get even better in the coming weeks.
Renee Findley
One of the things I have to marvel in AI is what has been done with so very little. It was mentioned in class that our type of robot, or something very similar to it, was all that a piece of equipment like the Mars Pathfinder was made of.
And other robots really aren't always much more. Sometimes small, remote controlled robots are used to explore mine fissures, underwater caves, etc, under the means of monitoring and programs within. But while in lab, the most our robot did was slam into a wall, back up a little, and slam back into the wall.
This is something my dog does, but I do not consider it intelligent.
It took very little to make the robot my group made begin to react, and given enough sensors, it would have bounced around safely enough. The robot wouldn't have recognized danger. And it wouldn't have understood the difference between a human and a pillar. All the Mars pathfinder does is take tests in places, and send back signals of conditions. Our robot, in fact, no robot, is really able to discern very much of its surroundings, or synthesize that information. We can teach a robot to do things successfully with few materials, but we can't teach it to understand, not the way we do. I'm not sure how much of a failure this is.
After all, we say robots cannot consistently percieve their backgrounds, but neither can many other creatures, including ourselves, that are reputedly intelligent. If you tried to take one moment and explain everything you could possibly percieve, how much would you miss? 10%? 25%? 50%? More? Perhaps we underestimate robots, and overestimate our own skills in some situations. This week, it seemed to me as though Artificial Intelligence is working twofold, towards making robots smarter, and making people less dumb.
Scott Goldstein
The readings this week have me, as someone who is less than completely in love with math, fairly confused. Class discussion cleared up much of my problems, however. The idea that learning, for a computer, can be reduced to a simple mathematical equation is fascinating. There appear to be some serious limitations to the model shown in the interactive lesson, however. The usefulness of a determination program that cannot tell one object from the other if they are sufficiently mixed together is limited.
The lab seems fairly straightforward. The code to actually make the robot do what is required of it is not complex. I was wondering if the point of the three types of robot behaviors we are modeling is supposed to be an example of a sort of subsumption. They build off each other. The indecisive and paranoid behaviors are merely supercharged versions of the timidity program. I think it is interesting that the basic behavior of response to visual stimulus can be modeled in so little code. Things are starting to look more interesting.
Maria Hristova
I am really not sure what to base this response on since it is kind of hard to write an informal 1-page paper on what is mostly math in Chapter 3. The class session made it much easier to understand the material and was very helpful in the sense that it progressed on build on knowledge gained in the last 3 weeks while the book has a somewhat scattered way of presenting the ideas. Also, if I ever thought that Math and Computer Science intersect only at Boolean Algebra I now know that I was wrong. It seems like there is a lot of Math, not just pure calculations, but also a good chunk of theory behind the idea of the perceptron and its development.
One very important point that the book describes really well in this chapter and that was not clear to me so far was the idea of action selecting among S-R agents. Before last week I thought that an S-R agent needed a full description of its environment in order to exist and perform some set of actions. In Chapter 3 Nilsson explains that as long as the S-R is given a learning rule and some randomly chosen weights as well as a training set it can perform the act of simple learning. I think this point is very important and I really like the way the book addresses it because I think that it is important to make that kind of distinction between agents that only respond and agents that take input for their previous response.
Focusing on neural networks and the technicalities behind it, I think that I found the Error-Correction procedure one that needs some more detailed explanation. The book does a pretty good job at it but I wished it explained how the field of AI came up with it and what sparked the idea behind it. In a lot of the writing in the book it seems like the field of AI does not have a continuity or at least the text lacks to fluidity inpresenting it. Regardless of that the book gives very clear definitions of the material in focus and succeeds in presenting the material well.
Agata Jose-Ivanina
When we started talking about networks I remembered the experiment that I participated in this summer. In the experiment they tested the memory of their subjects and the tests where based on the ability of a human mind to recognize characters flashing on the screen. In the beginning the letters appeared and disappeared so quickly that it seemed that you saw nothing. But as you looked at the screen and got used to the task, you could see the letters and even have time to recognize them. Sometimes you needed time to identify the letter, sometimes you knew right away. In the beginning I was trying to analyze what I have seen, the lines that were lit, the shape of the character. However, my results were not good and I was advised to stop to try and examine what I see and just press the appropriate keys. And guess what, it worked. My results improved almost instantaneously. So, when we were looking at the neural net that could learn the characters, I was wondering whether if the learning rule could in fact explain the way my mind was working when I was trying to recognize those characters... Why was it that when I was trying to apply some rule consciously, I failed, but when I let my brain work without any interference, it managed better than before.
The other example could be our learning of movements or other physical skill. We adjust when we don't achieve what we want and we keep on trying until we are satisfied, which differs for every person. In this case in contrast to the first one, it is actually easy to follow the process, even though most of us don't pay too much attention to it. Nevertheless, we are still unable to explain how exactly learning happens, we just learn. But there are still things that we just know. There is some machinery that operates within the body and mind without us being conscious of it (apriori knowledge). And what about those things that we "feel", we don't make explicit calculations, we just let some mechanism inside decide what is the best thing to do... Does that mean that our body actually knows everything, and we just need time to discover it within ourselves? Can we be someone's attempt to solve some Universe-complete problem?
Archana Joshee
This week's reading was kind of dense. I wish the author used more examples to clarify the methods that he describes.
It was mentioned in class and also in the text about how a hyperplane divides the space of input vectors. I understand that if the subsets of inputs do not intersect, a hyperplane can separate them. The textbook says somewhere that a separating hyperplane can be obtained either by the training procedures mentioned in this chapter or by linear programming methods. I am not quite sure I understand the concept of creating this hyperplane that can separate the sets of inputs.
I am also confused about exactly how the backpropagation algorithmworks. I think what we discussed in class is that since we know the desired output for the output layer, we can calculate its error. But as for the middle layer, we modify its weight depending partly on the output layer since it has some contribution to the middle layer. So we are propagating back to the middle layer...??.. This is what I got from class but I could not follow the calculations done in the book.
I was surprised by how much can be achieved by neural nets considering that they are trained and not programmed, ie.,processing systems that are non algorithmic but parallel. Especially with the unsupervised training, I am not quite certain about how it is capable of recognizing the weights and connections on its own.
Kip Lewis
Various random thoughts and reactions:
It was mentioned at various times that humans have often tried to fly using the same method as birds, and that the method that actually worked is very different from how birds fly. Thus, as we changed our definition of flying, we must in the same way change our definition of thinking and of intelligence to include things that aren't human - or at least that is how I understood the argument. Not really wanting to accept non-human entities as intelligent just yet, my temporary counter-argument is that our definition of flying on involves the result - "traveling by air" - while our definition of think involves the process more than the result.
Nilson says that networks of Threshold Logic Units are called neural networks because of their similarities to biological networks. This seems to contradict what the movie that we watched the first week of class said. I thought that the movie said that the way computers were working was very different than how the human nervous system works. Does this imply that perception and action were processed differently in agents before the movie was made, and since then we have changed the basis of how they work to be more like how we work?
Finding out the algorithm behind one method of learning for agents was very interesting. Professor Kumar said that this method of learning can be very robust, in the sense that once an agent has set it's weights correctly, it will often give the correct result even when some of the input is wrong or missing. This makes me wonder whether or not a Pavlovian experiment might work with one of these agents. If an S-R agent was trained to give a certain output with a certain set of inputs, but that set of inputs was always accompanied by another set of unrelated inputs, might the robot still give the correct result if the second set of unrelated inputs was given with out the first set?
Martin Lukac
This weeks subject matter from lecture was really interesting. The fact that you can have multiple 'solutions' all leading to the same output/reaction in a neural net is astounding. It's almost like the way a neural net 'learns' is like the way humans learn and even experience. A good example of this in regards to human learning is that two students might remember the same material, but how they memorized it, and the manner in which they recall it can be very different. We can also see a similar thing in human experience. A good example is if I got to a movie with a couple friends, we might all end up thinking the same thing about the movie, but for different reasons. Considering the above to examples i guess it shouldn't come as a surprise that there are multiple 'solutions' to certain outputs created by a neural net... especially since the neurod is basically like a neuron.
Above I mentioned human experience. Does AI have the capability to experience? Is experience something different than learning? I think that they are sort of similar, but they still are two separate things. I consider experience to be something that orders and organizes things that have already been learned. An analogy is dynamic binary optimization: when you compile code, the compiler can only optimize code to a certain extent. A dynamic binary optimizer watches the program as it runs, and makes adjustments according to trends and redundancies it finds that the complier couldn't have predicted because of the way the program is run. The dynamic binary optimizer can be compared to experience... you don't know how to use what you learned, until you 'execute' what you've learned and make observations.
To answer my question above (Can AI experience?), i suppose it can. An example could be the robot that was shown in the small video at the end of class on tuesday. It was programed in that it was supposed to move when light was shined on it, but it couldn't differentiate between certain intensities/degrees of light. Until it experience those intensities and gets feedback about what its reaction should be, then it will 'get confused' and do wrong things.
Reshma Menghani
A student in class asked how a perceptron is useful. Its uses among the many are in correcting radar tracking, reducing noise in modems, and predicting weather. I was really surprised. For one thing, its uses seem to be alot and in the most random places. Who would have guessed that such a concept would help in reducing noise in modems! Also I really wonder how it helps in any of these uses. I understand the concept of the perceptron more or less from the reading and in class, but i'm curious on how for example it would help in reducing noise in modems.
Thursday's lab was a thrill. Who would have guessed that we would have started to program our little robots to move around! I didn't expect that until the middle of the semester. I have to admit though I really can't imagine us doing anything else with the robots. So far we have or we are in the process of moving the robots and having them "sing". What else is there to do........?
I was surprised to find out that that the idea of the perceptron was found in the 1940's. The perceptron rule came out in the 1950's. It's really great to learn concepts in class that have been recently discovered in history. Usually in many of my classes such discoveries are made long before this time.
Todd Miller
So a backpropogated neural network is Turing complete, but does not have memory. This is somewhat disturbing, as it indicates that sufficiently distributed/parallel general computation does not require memory -- that is, that memory is either an artifact of serial computation or of algorithmic computation. (Incidentally, for the special case of boolean functions, a neural can be trained down to no error, because it can perfectly simulate a network of AND/OR/NOT gates, as I described previously. If whatever is necessary to add to these gates for Turing-completeness can also be perfectly simulated, this should indicate that we don't have to accept /any/ error from a neural network. An information-theoretic approach may be useful for determining if the network's error is essential to its resiliency and resistance to noise.)
In the progression of finite automata, from regular expressions to context-free grammars to turing machines, the changes that are made are made to add memory to the system; initially, it has none, then it has a single arbitrarily deep stack, then it has an arbitrarily long string (relative-addressed heap). The problem is that the machines are both serial and algorithmic. Consider -- could a parallel machine decide a context-free grammar without memory? It looks like the answer is that it depends -- the parallel machine would need to be at least as wide as the longest string it was looking at. This may be the critical issue with this idea: memory allows for an unboundedly large input, because the input can be processed in bounded-size chunks with more than one step. The only way to feed an arbitrarily long input into a bounded neural network is to clock it through in several chunks. Without memory (directly equivalent to feedback?) how can the NN determine if, for instance, the parentheses are correctly nested? It can't; any answer for a chunk of size X will be wrong if I add an extra closing parenthesis and therefore need two clocks.
That is, suppose I have a NN that's four inputs wide, and it accepts ()(), and rejects ((((, as it should. It can't accept (((()))), as it should, because it /must/ reject (((( when it sees it. Furthermore, two rejections can't be interpreted as an accept; just feed it ))))((((, as a counter-example. Something is terribly wrong here. Could there be some way for the NN to set its own weights according to what the next input should be?
Maria Pace
Heather Palmeter
This week we really started to get into the business of computer learning, which was quite enjoyable. It's quite the cliché at this point but, whenever anyone brings up the topic of artificial intelligence the first question that comes to mind is 'Can computers learn?' Of course, we didn't totally answer the age old question in two lecture periods but it is always nice to hit upon something that has actually come up in "casual" conversation.
Also enjoyable was the fact that we began to discuss neural networks, if only for the reason that they are something I've been interested in for a while now. I think it's because, no matter where the research leads, the fact that neural nets are being created and studied makes it sound and feel like we are truly on our way to an understanding of artificial intelligence. I know that it's totally faulty logic but computers constructed with neural nets just sound like they should embody intelligence.
I think it's good for researchers moral, at any rate.
Megan Rutter
"How old are you?" she wanted to know.
"Thirty-two," I said.
"Then you don't remember a world without robots. To you, a robot is a robot. Gears and metal; electricity and positrons. Mind and iron! Human-made! If necessary, human-destroyed! But you haven't worked with them, so you don't know them. They're a cleaner better breed than we are."
--from I, Robot by Isaac Asimov
After I found this quotation, I visited a website about botball and watched a videoclip of a competition. There were young children competing, and it amazed me what they were doing. They've grown up with computers and robots, so, to them, they're just playing with the robots. I don't think they can possible comprehend how much they are doing in terms of AI. In this competition, "Robots must be completely autonomous and use no remote control. In addition to playing the game of Botball, they must turn themselves on and off." It simply amazed me that children could do this, but, at the same time, while it is challenging for them, it is also fun, a form of play. This summer I worked in Guild, and I saw the gifted children come in and work on their programming assignments. It was just amazing to see how much they could do, and how quickly they could do it. Just like the botball, they were just having fun. It's amazing how easy it is for them when they've grown up with it. But that's beside the point...
I also watched some clips of Cog and Kismet. It was really fun watching Cog shake his head with Mickey Mouse, and I actually laughed out loud at Kismet's facial expressioins. It reminded me of a Furby. Speaking of Furbies, are they considered "intelligent?"
Oh, and I saw the Matrix this weekend, but that deserves a whole other response entirely. I've also wanted to mention the robot competetions I've seen on TV. Has anyone else seen them?
Brian Simms
This past week the readings were pretty much the same material as we covered in class...
The interesting things happened in lab. We discovered some interesting issues regarding touch sensors, light sensors, and movement. Firstly, one thing that needs to be taken into account that we usually wouldn't think of is movement. The wheels on the robot need traction, and often when we tried to make the robot turn one way or another the wheels would spin and the robot wouldn't go anywhere. There aren't easy answers to this, other than to change the wheels or the surface the robot is moving on.
The light sensor needs to be initialized, and the knob is able to help fine-tune performance. However, the initialization is highly finicky due to shading and local light sources.
The touch sensors need to hit an object almost exactly squarely for them to activate. This could lead to some interesting glancing collisions that can't be accounted for in the programming. Additional hardware could help this problem.
I think a large problem with programming a robot to simulate human behavior is that we tend to think either in terms of what we are capable of, or what can be easily programmed. It's hard to surpass many of the inherent limitations that we face when we disjoint the mind from the body (as seen in our in-class demonstration of the previous week). It is interesting when we examine how our robot behaves in a non-controlled environment, and I'm looking forward to seeing how some of the other groups have accounted for unusual situations.
Matthew Spigleman
Much of this past week was spent discussing perceptrons and the methods, which have been, developed to combine them into networks. The piece of this discussion that most interested me was the history of the perceptron. When first "invented" in the 1950's or 60's (I believe the date was around then?) the perceptron was touted as a logic device capable of computing any problem. When it was proven that some problems could not be solved using perceptrons the technology went out of style. Obviously, since we are studying it today, it has come back into style and modern researchers are once again using them. This chain of events brings several questions to my mind.
Are there other old technologies which have been discarded yet could prove useful in solving the AI problems of today?
And perhaps a more fundamental question:
Are there flawed technologies which are passed by, when in fact
they could prove useful in other contexts, or should researchers
even go so far as to look for them?
The "fuzzy" or "tolerant" logic which is inherent in networks, such as the ones constructed of perceptrons or adalines, which learn their weighting values is forcing me to shift my whole way of thinking. Previously I believed that computer science was only done with algorithms and a right or wrong answer was produced. Now I see that there are programming techniques that are non-algorithmic and have tolerance inherent in their design. These issues, tolerance and technologies which are capable of solving only a set of problems, are very hard for me to fully except and understand. They do not readily fit into the ways in which I commonly think about computers and programming.
Andreas Voellmy
Nicholas Yee
Back to CS 372 Course Materials | Back to Written Work Main Page