Projects for CSE 415 (Spring 2016).
|
CSE 415: Introduction to Artificial Intelligence
The University of Washington, Seattle, Spring 2016
|
|
Due Dates: Code on Tuesday, May 31 at 23:59, and reports on Friday
at 23:59 Friday, June 3, via Catalyst CollectIt.
|
Group Work.
This assignment should be done in teams of 2 or 3. However,
teams of 1 are also permitted.
|
Purpose.
The project is an opportunity to explore an AI topic in greater
depth than in a normal assignment. It is also a chance to work on
something of personal or team interest, distinct from what others
are doing in the class. Finally, it involves a more independent
style of study than the regular assignments.
|
What to Do.
Choose one of the options. Sign up for a 15-minute meeting with the instructor. I'll post the
schedule on GoPost.. Meetings with the instructor are optional. There will be a conversation
in GoPost for scheduling.
Then follow the guidelines for the option you choose.
|
Options.
-
Conversational agents that manage information, working with
uncertainty and/or retraction of facts, dealing with
inconsistency, etc.
(extensions of Linneus)
-
Reinforcement Learning in Problem Solving:
Explore the use of Q-Learning in solving a combinatorially challenging problem such as
Rubik's Cube. You may adopt the approach suggested in Assignment 6, Part 2, extra credit (Towers
of Humptulips). If you focus on Rubik's cube, consider a variety of simplifications including
180-degree moves only, 2x2x2 size, fewer than 6 distinct colors, combinations of heuristics and
Q-Learning, where heuristics may be based on the use of "pattern databases".
-
Problem formulation: Do an in-depth version of Assignment 4, option
3 (wicked problems)
-
Classifier Inference: Using Python and Numpy/SciPy implement two
different kinds of classifiers. Then compare their performance
on multiple criteria (accuracy, training time, etc). Finally,
implement either bagging or boosting to combine them.
Demonstrate quantitatively what advantages you get from bagging or boosting.
The choice of datasets is up to you. Ideally there will be at least one
standard dataset commonly used in classifier design, plus at least one
original dataset that you either create or find online that has not already
been used in this kind of experiment.
-
Other -- but get instructor clearance. Your technique must be
accompanied by a user interface (either simple NLU or graphical)
must be in Python 3, and should implement a "transparency"
feature to display the intermediate results, so that users can
easily understand what is going on.
|
Criteria.
Each project should address the following criteria.
-
Originality. The project must not be an edited version of something developed elsewhere.
You are encouraged to meet with the instructor to discuss your ideas related to originality of your project.
-
Demonstration of an appropriate artificial intelligence technique. Most AI topics will be appropriate, but each student or team should meet with the instructor and get approval for their topic.
-
Transparency. The implementation should take specific steps or incorporate explicit features to help the user understand how the program works, typically showing in some form, key intermediate results, status of longer computations, and relationships among key data structures, rules, states, or constraints.
-
Interactivity. The program should allow the user to control the computation through interaction. There can be default parameter settings, but it must be possible for the user to easily override many of the defaults.
|
Demonstrations.
Project presentations are currently scheduled to take place during class on June 1 and June 3. During this time, each student should complete two peer evaluations on each day. Printed copies of the forms will be available in class.
Each team should bring a laptop to class that day in order to demo your project to small groups.
We will spend part of each period having a few volunteer teams present to the whole class, but most of the time will
be spent with multiple presentations to small groups happening simultaneously.
|
What to Turn In.
Turn in the following files (zipped up or tarred) by the project turn-in deadline.
Report.pdf; code files; data files; an optional Presentation.pptx (or other standard format);
|
Reports
The report should be an electronic document in the form of a PDF file. The key elements of your report include:
-
title of project;
-
names and roles of each teammate;
-
what the program is supposed to do;
-
technique used and brief description (half a page) of how that
technique works. If you use multiple AI techniques
then describe each one but with somewhat less detail for each one;
-
either a screen shot or a transcript of an interesting sample session;
-
brief demo instructions;
-
code excerpt showing some interesting part(s) of your Python code and some explanation of it;
-
brief description of what each team member learned in this project;
-
what you would like to add to your program if you had more time;
-
citations for any references you used in the project. This should include the names and URLs of
any websites that you used and whose ideas or other resources were incorporated into your project.
In each case, describe in a sentence what role that website played in your project and what you incorporated from it.
|
Project Plans Due May 20
Fill out the online
project planning questionnaire
by Monday, May 23 at 6:00 PM.
|
Peer Evaluations:
Peer evaluations will take place in class during the last week of classes. Each project team should
bring a laptop computer on which to demonstrate their program. If you cannot bring your own laptop,
please arrange with a classmate to use his or hers. If you cannot locate a suitable classmate,
then at least do bring your necessary files on a USB drive in a folder set up in such a way that
it will be very easy to start a demonstration on another computer.
|
Updates and Corrections:
The draft version of this page was updated to the official version at 5:00 PM on May 18.
The deadlines for code and reports were separated (as of May 26), with a later deadline for
the reports (Friday, June 3 at 23:59).
If necessary, additional updates and corrections will be posted here and/or mentioned in class, in GoPost,
or via the mailing list.
|