CS 478 – Introduction to Machine Learning
Winter
2013, TuTh 9:30-10:45am, 373 MARB
Professor:
Tony Martinez, 3326 TMCB, 422-6464, Office hours: by appointment
martinez@cs.byu.edu,
http://axon.cs.byu.edu/~martinez
TAs: Mike
Smith and Joseph Heydorn, 422-1660, 3304 TMCB,
e-mail: cs478ta@axon.cs.byu.edu
Office
Hours – Mike Smith : M 4-5, Tu 12-1, Wed 9-10, Th 1-2, F 11-12
Joseph Heydorn: M 11-12, Tu 3-4, Wed
4-5, Th 4-5, F 4-5
You can
also e-mail the TAs for a specific appointment if none of these times work
Course Website: http://axon.cs.byu.edu/~martinez/classes/478/
Goals: Introduction to the philosophy, utility, and models
of machine learning, such that students are able to understand the basic
concepts and issues of machine learning.
Students will be prepared to use machine learning approaches in real
world applications and/or to continue in a graduate research program.
Topics covered include neural networks, decision trees, instance based
learning, data mining, feature selection, clustering, performance measures,
etc.
Text: The text for the class is Machine Learning by Tom Mitchell. We
will cover much of the text following the provided schedule.
You are responsible for reading the material for a given day prior to
that day's lecture. Because class time is limited, we may not cover everything
in the text. However, except where specifically noted, you are responsible to
know the entirety of each chapter assigned. There will also be supplemental required readings made
available on the schedule. To help
encourage quality reading, I will pass around a sheet each day for you to mark
whether you have done a complete and careful reading, a partial reading, or no
reading. A complete and careful reading counts for 2 points, partial gets
1 point, and none receives 0 points. Each day you will mark if you have
done the reading for the lecture to be given that day. If you are absent
a day, fill in later what your reading status would have been for that
day. The grading will be
non-linear such that missing one or two readings does not hurt much, but it
picks up fast after that.
Programming Projects
and Assignments: Most assignments will
be in the form of programming projects
and an associated written report. For most of the machine learning models
we study in depth, there will be a programming project involving the
implementation of the model and experimentation with its abilities on one or
more learning tasks. Much of the learning for this class will come in the
development, experimentation, and analysis of the specific models. These
programming projects will help you gain not only a mastery of the models
themselves but also a beginning understanding of the major issues involved in
designing machine learning solutions.
By the end of the course, you will have developed a suite of machine
learning algorithms that will be usable (and useful) in the future. A
written report will also be due describing your efforts, results and
conclusions. Details for what is expected in the reports are found at the projects
page.
Final Group
Project: We will break into groups of 3-4 people each to do a group
project. About a month into the semester, we will have you propose real world
machine learning projects which could be done in a semester. We will then vote as a class on the projects
we feel most appropriate. I will
then assign the groups based on your project preferences (as best as I
can). Each group will then a)
gather and prepare data for the application, b) select a machine learning
approach, c) train the model and gather results, d) consider and implement ways
to improve the results, e) present the work as a conference style paper and
also give an oral presentation.
More details can be found in projects.
Tests: There will be one mid-term (administered in the testing
center) and one final (administered in class). They will consist of written
problems testing your understanding of the machine learning models and issues
covered in class. If you put in the effort on reading, class discussion, and
programming projects, then the tests should go well for you.
TAs: We have tried
to stagger the TA hours to give best possible coverage. If you cannot make any of those times,
e-mail the TAs to set up an appointment.
When you have questions regarding content of the class, assignments, or
grading, please see the TAs first as that is their specific responsibility.
Appealing grades on projects and on tests begins with you. Make an effort to
understand why you received the score that you did and make sure that you have
a good reason to appeal. If after making these efforts, you still feel like you
have a concern, the next step is to calmly and intelligently discuss it with
the TA. Don’t wait until the end of
the semester to appeal a grade. If
after taking both of these steps you still are not satisfied, come see
me. Make sure you have done the reading and tried your best to understand
the problem. If you have done
this, then the question and answer effort will be effective.
Grading: (approximate):
Grading is on a curve and some amount of subjectivity is allowed for
attendance, participation, perceived effort, etc. If you think,
you'll be all right. Class attendance and participation is expected. This is
not because I feel the need to have students in class; instead, it is because
your attendance and participation leads to a better learning experience. You can see your grades on BYU learning
suite, but ignore any grade scales given there as they are not correct.
|
Reading |
5% |
|
Individual Projects/Assignments |
45% |
|
Group Project |
10% |
|
Mid-term |
20% |
|
Final |
20% |
Late Projects: Projects/Assignments are expected on time. Most projects are due by midnight of
the published due date (midnight means the very end of the specified day). Late papers will be marked off at 5%
for each day late, not including Sundays. However, if you have any
unusual circumstances (e.g. extended sickness, out of town, an issue unique
from what all the other students have, etc.), which you inform me or the TA of,
then you will not receive a late penalty for those days. All late work
should be e-mailed as mentioned above.
Late days will accumulate up to a maximum penalty of 50% off. Per University policy, nothing will be
accepted after the last day of class instruction.
Working Together: You may discuss course topics together with other
members of the class to enhance your understanding of the topics.
However, do NOT turn in other people's work. This is a fine line that may
require some judgment on your part.
If you are not sure about a particular situation just come ask. Examples
of acceptable collaboration are discussing homework and programming problems
and potential solution paths with others in the class, and comparing learning
results and conclusions from programming projects with other class members.
Unacceptable collaboration would be simply copying homework, code or test
answers from a friend or allowing someone else to copy homework, code or test
answers. When you start writing
actual code, reports, etc., the work should just be yours. Academic dishonesty will be grounds for
failure of the course; however, I do not anticipate that we will have any
problems in this area.
We will set up a class discussion group in learning suite which you can sign up for
if you would like. You can use
this group to post questions and discussion with your class mates. The TAs will also monitor this group
and answer questions which come up.
This is a good place to post and ask about performance results so you
can see if your solution is in the “ballpark.” This is also a good place to discuss high level algorithmic
issues etc. Obviously, actual code
should not be published on this group.