CISC 5800: Machine Learning
Class times: Wednesday, 4:00 – 6:00pm, Lowenstein (LL) 306
Instructor: Prof. Daniel D. Leeds (my homepage)
Office: LL 815D
E-mail:
Office hours: Wednesday 3 – 4 and by appointment (I may add Tuesday 4-5 as office hours as well depending on demand)
Course website: http://storm.cis.fordham.edu/leeds/cisc5800/
Texts:No text is required, but it will be useful to have
one for reference.
"Pattern Recognition and Machine Learning", C. Bishop, 2007.
Bishop is a classic text in the field. I recommend Bishop for most
students.
"Machine Learning: A Probabilistic Perspective",
K.P. Murphy, 2013.
Murphy is a newer text. It provides more in-depth analyses we will
not cover in class, but may be of interest to mathematically advanced
students.
Course description: Machine learning discovers and responds
to patterns in the rich data sets of the world. It provides powerful
tools for diverse fields, from software development to product
marketing to scientific research. This course introduces a collection
of prominent machine learning models. We will study both theory and
implementation. Topics will include: Bayesian statistics, learning
theory, support vector machines, dimensionality reduction, and
graphical models.
Objectives: To understand the mathematical principles and
algorithmic mechanics behind popular methods in machine learning. A
student who successfully completes this course will be able to:
- Implement “basic” learning algorithms in the Matlab programming
environment
- Apply diverse learning algorithms to complex data
- Understand the advantages and limitations of diverse learning
approaches
Pre-requisites: It is essential each student has a base
level of computer science and math background to be able to succeed in
this class.
- Completion or equivalent experience of at least one semester of
a computer programming course, such as Java, C++, or Python, and be
comfortable with the syntax for arrays/lists, loops, defining new
functions, and evaluating multi-part logical conditions.
- Background in probability — a familiarity with conditional
probabilities and independence, which we will quickly review at the
start of the course.
- Comfort with algebra; prior background in calculus will be
beneficial, but is not required as we will learn needed calculus
topics as we go
Software: We will complete our programming assignments in
Matlab. There are four ways to use Matlab/Matlab-equivalent-software,
listed below. I highly recommend you follow option 1. I will provide
support for programming difficulties you face in Matlab. Due to my own
limited time, I most likely will not be able to provide support
for installation difficulties in Octave or programming difficulties in
Python.
- Recommended: Download your own student license from MathWorks
for $50-$100.
- Second-choice: Run Matlab in the computer lab or (without
graphics) by remote login to our department machines.
- Third-choice: Download and use Octave, which is a free
version of Matlab that is somewhat less powerful and can be tricky
to install, depending on your operating system.
- Least-preferable: If you have a strong computational
background and really want to use Python, you can use numpy, scipy
and matplotlib packages to make Python act somewhat similar to
Matlab. I do not recommend this unless you are dedicated to
configuring Python yourself.
Attendance and class participation: As we do not
directly-follow any one textbook and, instead, rely heavily on
lectures and lecture slides, it is important to attend every class,
and to arrive on time. One unexcused/unexplained absence is permitted
for the semester. Attendance will be taken regularly. Please actively
participate in class since this will make the course more interesting
for everyone! Ask questions if you are unsure about something.
Laptops during lecture: I encourage students NOT to
use laptops during lecture. If you feel you need it, limited
acceptable use includes writing notes and reading lecture material. If
you do use a laptop, please sit near the back of the class. Keep in
mind anyone behind you can see what is on your screen at any time and
you may be distracting your classmates.
Course assignments: There will be 4-5 homeworks and a final
project assigned for the course. The homeworks usually will be
announced at least a week before they are due, e.g., a homework
announced on Wednesday may be due the following Wednesday. All
assignments must be turned in on time.
Academic honesty: All work submitted in this course must be
your own unless it is specifically stated that you may submit work
together. You may discuss the assignment problems with other
students generally, but may not provide complete solutions to one
another. Copying of assignments is never acceptable and will be
considered a violation of Fordham's academic integrity
policy. Violations of this policy will be handled in accordance with
university policy which can include automatic failure of the
assignment and/or failure of the
course. See Fordham's
Graduate Policy on Academic Integrity for more information.
Exams: There will be one mid-term exam in late October and
a final in December. The exact dates will be announced at least 3
weeks in advance of the exams.
Timing conflicts: If you have a significant issue and
cannot complete an assignment on time, or cannot attend class on a
certain day, let me know as early as possible – I tend to be
reasonable in such cases with sufficient notice. Examples of
significant issues include personal illness (with doctor's note) or a
religious holiday on an announced exam day. In general, let me know of
any significant issues that affect your performance early on.
Grading: The percentages given below are guidelines for
both the student and instructor and may be changed as needed to
reflect circumstances in the course. Any changes that occur during the
semester will be minor.
Participation | 5% |
Homeworks | 25% |
Final project | 20% |
Mid-term | 20% |
Final exam | 30% |