CS 478 – Introduction to Machine Learning

 

Winter 2014, TuTh 1:35-2:50pm, 373 MARB

Professor: Tony Martinez, 3326 TMCB, 422-6464, Office hours: by appointment

 martinez@cs.byu.edu, http://axon.cs.byu.edu/~martinez

TAs: Logan Mitchell and Mike Smith, 422-1660, 3304 TMCB, e-mail: cs478ta@cs.byu.edu

Office Hours – Logan: Mon 1-3, Wed 12-2, Fri 11-1

Mike: Tu 3:30-5:30, Th 9-10

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.  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 about 3 people each to do a group project. 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(es), c) train the model and gather results, d) consider and implement ways to improve the results, e) write-up the work as a conference style paper and f) 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. More information can be found in the study guide.

 

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 most of 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:  For projects you will be allotted a total of 4 late days throughout the semester (hopefully, you will not need any of them).  As an incentive, 1 extra point (out of 100, and up to a maximum of 4 points) will be allotted for each day (excluding Sunday) you turn in a project earlier than the due date.  If/after you use up your 4 day allotment, late projects will be marked off at 5%/day late (excluding Sundays) up to a maximum of 50% off.  Each late day ends at midnight.  Finally, if you have any extremely unusual circumstances (sickness, or issue very unique from what all the other students have, etc.), which you inform us of, then we will not take off any late points for homework or projects (this should be rare).  Nothing can 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 (Google group) 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 or detailed pseudocode should not be published on this group.

 

Schedule:

Projects and Assignments

University Legal Issues: