CS81 Lab1: Robots learning with neural networks

Due by noon next Thursday

In this lab you will familiarize yourself with pyro, a tool for controlling both simulated and physical robots, that is written in python. All of the source code for pyro is located at /usr/local/pyrobot/. Feel free to go check out any aspect that interests you. Pyro includes many machine learning tools, such as neural networks, which we will explore this week. To begin, run update81 to copy some starting point files into your home directory (cs81/labs/1/).

1. Simple neural networks to solve logic problems

I have provided three examples of simple neural networks for solving the logic problems and, or, and xor. Open one of these files in an editor and read through the code. Then execute it in python. Notice that only two layers of units are necessary to solve and and or, but three layers of units are necessary to solve xor.

2. Using neural networks to control robots
One method for teaching a neural network to control a robot is called offline training and involves the following steps. First hand code a robot controller. Second use this controller to collect data to be used to train a neural network. Third train a neural network with the collected data. Fourth use the trained network to control the robot and test its performance.
3. Create your own hand-coded teacher
You will go through the same series of steps as above, but this time using your own hand-coded teacher program. Put all of the files in the cs81/labs/1 directory. Also create a text summary file in this directory to describe what your teacher program does, how you trained the network, and your results.
When you are done, run handin81 to turn in your completed lab work.