Option 1: Pac-Man Capture the Flag
Implement an agent for a multiagent game of
Pac-Man Capture the Flag,
working in teams of up to four people.
Option 2: Application to Robocup Soccer
Apply one or more AI techniques to the Nao robots for Robocup
soccer, working in teams of up to four people. Please see
Prof. Doug Blank for assistance if you are interested in this
option. Submit a one page (single-spaced) report of your
application, and demonstrate the technique/code to me in-person.
Option 3: Machine Learning Implementation
Choose one of the following machine learning algorithms and
implement it in any language of your choice (Python, Java, Matlab,
etc.) in a team of up to two people:
- polynomial regression (as covered in class),
- 2-class logistic regression (requires outside reading; it's
actually for classification, despite the name),
- ID3 decision tree (requires outside reading)
Run your code on any data set chosen from the
UC Irvine Machine Learning
Repository. Polynomial regression should use one of
the regression data sets; the rest should use one of the
classification data sets.
To test your implementation, load the data set (either write
throwaway code to do this, i.e., don't worry about making it
generic, or "embed" the data into your program), randomize the
order of the instances, and run 10-fold cross-validation over the
data set (each time using one of the folds for testing
and the rest for training).
Turn in your code, the name of the data set you ran it on, the
parameter vector found when trained on the entire data set, and
the classification accuracy on the test data averaged over the 10
folds in a brief writeup.
For a slightly larger challenge, generate a learning curve of your
classifier for various sizes of the training set and plot it
(using gnuplot, matlab, excel, etc). To generate the various
training set sizes, choose 9 folds as the training data, randomize
the order of the instances, and then train on the first {5, 10,
15, 20, ...} instances, each time evaluating on the test fold.
Then repeat nine more times, using each fold in turn as the test
fold.
Option 4: Machine Learning Applications
Complete any one of the Stanford ML class programming assignments,
available by registering for the course here:
http://www.ml-class.org/.
(If you have any trouble registering, let me know and I can send
you the programming assignments.) All Stanford ML
assignments must be done in either Octave or Matlab.
Option 5: Paper Option (available to PHIL students only)
Write a two page (single-spaced, 12 pt font, 1in margins) dialogue
between two intellectuals debating whether machines are
intelligent. Your paper should read like a conversation
between these two people. One of them should be vigorously
arguing that machines can be considered intelligent through
current AI algorithms, and the other should be vigorously arguing
against this point. For full credit, choose two philosophers
and write the dialogue as if they are debating this point, with
each arguing in his or her own philosophical style. (Be sure
to name those two philosophers so I know who you chose!)
Submit your paper as an electronic document in either MS Word or
PDF.