CS 478 – Introduction to Neural Networks and
Machine Learning
Fall 2007, TuTh 9:30-10:45pm, 120 TMCB
Professor: Tony Martinez, 3360 TMCB, x6464, http://axon.cs.byu.edu/~martinez
Office hours: by appointment
TA: Mike Gashler, 422-1660, 1130 TMCB, e-mail:
gashlerm@yahoo.com
Office Hours: Mondays 2-3pm, Wednesdays 10-11am,
Thursdays 1-2pm, or by appointment
Goals: Introduction to the philosophy, utility,
and models of machine learning, such that students are able to understand the
basic concepts and issues and be prepared to take the next step of proposing
original research with potential follow-up in a graduate research
program. Models covered will include neural networks, decision trees,
instance based learning, Bayesian learning, rule-based learning, genetic
algorithms, and others.
Text: The text for the class is Machine
Learning
by Tom M. 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.
Programming Assignments and Homework: Most tasks will be in
the form of programming assignments
and an associated written report. A few written problems will be due as the
first homework assignment. For most of the machine learning models we
study in depth, there will be a programming assignment 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.
A short written report will also be due
describing your efforts, results and conclusions. The report is limited to no
more than four single-spaced pages using 12 point font, including all figures.
Figures are not to be hand-drawn and should be large enough to be easily
legible. You must work to include all important information in the allotted
four pages. Communicating clearly and concisely what you have to say is an
important skill you will use throughout your career. These programming
assignments 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 methods. Finally, 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. Programming assignments will be primarily graded on
positive completion and technical accuracy in the discussion. Most parts
of the assignments require a clear measurable result (e.g. working program,
graphs of results, etc.) and some questions where you analyze your
results. Most of the questions will have objective answers which you are
expected to get right. A few questions are more open-ended and
subjective, and in these cases you will be graded based on perceived effort and
thought. Assignments are to be done on a word processor and be neat and
professional. Good writing, grammar, punctuation, etc. are important. All
assignments are due at the beginning of class on the date indicated on the schedule.
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 assignments, then the tests should go well for you.
Grading: (approximate): Programming assignments
and homework: 50%, Midterm: 25%, Final: 25%. 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.
Appealing grades on assignments 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. 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.
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 guarantee you a better learning experience.
Late assignments: Assignments are
expected on time (beginning of class on due date). Late papers will be
marked off at 5% per late day, not including Sundays. However, if you
have any unusual circumstances (sick, out of town, unique from what all the
other students have, etc.), which you inform the TA of, then you will not
receive a late penalty. All late work should be turned in directly to the
TA. 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. 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 assignments 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.