## Description and Objectives

Welcome to the Probabilistic Foundations of Machine Learning! This course will provide an introduction to probability theory, probabilistic graphical models, learning using graphical models, prediction in graphical models, and connections with supervised and unsupervised machine learning.

We will explore probabilistic models in service of a variety of interesting problems captured in data, including tasks from natural language processing, image processing, bioinformatics, and other areas of artificial intelligence. The course is motivated by the fact that much of the current work in machine learning is now statistical (actually probabilistic) in nature. The primary languages of statistical machine learning are graphical models, both directed and undirected. Students require a sound foundation in these methods in order to succeed in modern machine learning, NLP, and AI research and in working with real data. As the 400-level number indicates, the intended audience consists of advanced undergraduate and early graduate students.

In addition to learning the concepts and techniques of graphical models, this course aims to help the student build real tools, to learn techniques that are applicable to other problems, to prepare for careers in machine learning, data science, NLP, AI, or related fields, and to jump into graduate courses and research in those areas. Relevant problems that build on these methods include web search, speech recognition, machine translation, document recognition, spam filtering, question answering, computer vision, autonomous navigation, and many more. We will touch on some of these problems throughout the course. Course assignments will highlight several core tasks. There will also be a final project, which will allow a student to investigate a single topic or application in greater depth.

The course is new and will still have some rough edges. Your constructive feedback is helpful and welcome.

## Learning Outcomes

The expected learning outcomes for the course are as follows:

• The student will acquire a breadth of expertise and a strong foundation in statistical machine learning, including Bayesian methods.
• The student will establish basic competentence with graphical models and inference in those models.
• The student will grow in confidence in their mathematical abilities.
• The student will be able to formulate new models to solve new problems – and old problems in new and better ways – in multiple disciplines.
• The student will be able to implement probabilistic models in code, estimate parameters for such models, and run meaningful experiments to validate such models.
• The student will master concepts in probability theory that do not appear anywhere else in our curriculum.
• The student will understand the connection between statistical machine learning and traditional forms of machine learning (CS 478).
• The student will build on and apply earlier foundation topics (CS 252 and CS 312). In particular, the student will apply core computer science concepts and algorithms, such as dynamic programming.
• The student will begin to see where opportunities for research await and prepare to conduct research.
• The student will also analyze experimental results, write reports for each course project to develop scientific writing skills.

## Course Number

CS 401R: Probabilistic Foundations of Machine Learning

Section 001

Fall 2014

## TAs

Paul Felt & Kevin Black

• Email: byunlpta AT gmail DOT com
• for individual inquiries only
• all HW and Project questions should be directed to the Google Group for the benefit and participation of others
• Location: 3346 TMCB (NLP Lab)

## Lecture

• Days: MWF
• Time: 9:00-9:50pm
• Place: 134 TMCB

## Help Sessions

• Per the schedule (see below)

## Resources

Textbook: “Probabilistic Graphical Models” by Koller & Friedman. : Companion Website

Supplemental Textbook: Machine Learning: A Probabilistic Perspective by Murphy. : Companion Website

Supplemental Textbook: Foundations of Statistical Natural Language Processing by Manning & Schuetze. : Promo and Companion Website

Schedule: On BYU Learning Suite.

Announcements: Google Group - BYU CS 401R Announce : The announcements Google group is used for announcements only. Please give messages on that group high priority.

Discussion Forum : Google Group - BYU CS 401R Discussion : The discussion Google group is used by all class members to discuss ideas and questions concerning the homework assignments and projects. TAs and instructor will participate on the group when available.

Assignment Submission : On BYU Learning Suite

• If you submit after the due date, please send email to the TA email address to inform the TAs of your late submission, so that the responsible TA will know to look for your assignment.

Grades : On BYU Learning Suite

• To view feedback on a graded assignment, use the 'Grades' page on Learning Suite, and click on the assignment's 'Feedback' button.

Homework Keys : On Learning Suite

Examples : here

## Preparation

### Essential

• Ability to program in Java, Python, C++, or C#, or some other language readable by the TAs
• CS 312 - Algorithms Design & Analysis (or exception from instructor)
• Familiarity with basic probability and statistics (as in Statistics 121 or 321)
• Desire to solve tough learning problems

## Out-of-class Learning Experiences

Interviews with students suggest that how and what students do outside of class is the strongest predictor for engagement and learning in a given class (Light, Richard J., “Making the Most of College: Students Speak their Minds”, Harvard University Press, 2001). The same study suggests that working in groups is also well-correlated with successful engagement and learning in class. So you are welcome to work in groups outside of class and to help one another. However, you must each write and turn in your own work, unless the assignment explicitly states otherwise. Furthermore, if you work with others, you must acknowledge that you did so by listing your collaborators on your work.

There will be three types of out-of-class learning experiences: readings, projects, and exams.

All assigned readings are indicated in the course schedule. Most lectures on the schedule have associated readings. Typically for one reading per week (check the schedule), students are required to write a reading report that must include the following elements:

• Be sure to include the title of the reading and page number in order to make it easy to track down the context of a question.
3. Answers, if you found them. (Include the question and answer, rather than erasing a question when you find the answer.)
4. After each unanswered question, leave enough room so that you, the TAs, or instructor could write an answer, if they wish.

If the student has no questions about the reading (hard to imagine!), then the student should say so clearly at the top of the reading report and then go on to select from the following items to include in the report.

• main points / key ideas of the reading
• problems encountered
• solutions to the problems
• data or code resources available to help solve the problems
• methods of evaluation
• response / personal reaction to key ideas

If the report includes key ideas, then the ideas themselves should be included (not statements about the ideas). For example, rather than reporting “Smith ran a parsing experiment”, give meaningful details: “Smith's parsing experiment employed a novel generative constituent model and scored an F-measure of 89.5.”

Reading reports should be typed for readability and be no longer than one page. The required reading reports are due at the beginning of class (in class) on the day indicated on the schedule. No late reading reports will be accepted. A student who cannot be in class can contact the instructor to submit by email ahead of time. Each respectable reading report will receive a check mark for on-time submission and a second check mark for completeness and correctness. An incorrect or incomplete reading report will be returned to the student (typically) on the subsequent class day without the second check-mark but with a couple of comments. After receiving this feedback, the student will have one class day to amend the report and can resubmit the reading report at the beginning of the subsequent class for reconsideration for the second check-mark. The first version should be stapled to the back of the new version.

### Assignments

There are several individual assignments and a final project. Each assignment is introduced with written requirements and sometimes a written tutorial. For each assignment involving programming there is also an optional, out-of-class help session with the instructor and/or TAs (see the schedule). The intent is that the written tutorial on the wiki should be sufficient to get you up and running on each assignment. The tutorial documents are indispensable in answering your questions and helping you succeed. Help sessions don't go beyond the tutorial but provide students with an opportunity to engage in Q&A. If you wish to work ahead through the assignments, be sure to consult with the instructor first, since the assignments may be in the process of improvement or replacement ahead of the class schedule.

The assignments are the most intensive part of the course. Each programming assignment will require that you read and understand the guidelines and get started early. Past experience shows that students who start early and get their questions answered early are far more successful with the projects.

This course is a work in progress, hence the “401R” designation. Part of being a work in progress is that additional assignments are in development for the class during the semester. The full list of assignments does not currently appear on Learning Suite (incl. in the gradebook) or the wiki. Future assignments on the wiki will be modified. Additional assignments will be added. Consequently, the grade weights for the assignments – as they appear currently on LearningSuite – are not set in stone. They will shift a bit as new assignments arrive on the scene. This is relevant to how you prioritize your work, so be aware.

Each programming assignment requires a report. The report is the primary way for you to communicate your results and success on the assignment. Most programming assignments also require that you submit your work for external evaluation by the TAs. Be sure to follow the requirements for each assignment and to include the required items in your report. Past students have observed that the analysis of results and writing the report can take almost as much time as coding the solution, so be sure to budget your time accordingly. Furthermore, the written reports initially involve only reporting results or “answers” but increasingly require more exploration and exposition. Be sure to employ good technical writing skills when writing your reports.

The TAs give thoughtful feedback on your submitted assignments using Learning Suite. Be sure to take advantage of the feedback. To view feedback on a graded assignment, use the Learning Suite 'Grades' page and click on the assignment's 'Feedback' button.

## Exams

There will be one mid-term exam and a final exam. The mid-term exam will be available in the testing center for three consecutive days to allow for schedule flexibility. Preparation for and completion of the mid-term exam is intended to be a useful learning exercise. The final exam will be scheduled according to the University's calendar in the classroom. It is intended primarily as an evaluation.

## Course Policies

Consult the Learning Suite list of assignments for the official weights contributing to the final grade.

The following table shows the guaranteed lowest final grade for any given percentage (i.e., if you earn 93.0% of the possible points above, you will get a final grade no lower than an A). I use three significant digits in course grades. I reserve the right to adjust final grades slightly upward at the end of the semester in order to account for your diligence in the class.

A 93.0
A- 90.0
B+ 87.0
B 83.0
B- 80.0
C+ 77.0
C 73.0
C- 70.0
D+ 67.0
D 63.0
D- 60.0
E 0.0

The University policies on I (Incomplete) grades will be strictly followed.

### Early Policy

I encourage early submissions to help keep the course moving forward smoothly. For each assignment, early submission (at least by 11:59pm on the early date specified on the schedule) will earn a bonus of up to 1% (absolute), pro-rated by the assignment weight and the earned score on the assignment, toward the final course grade. See the schedule for early submission deadlines (in blue). Thus, for $N$ early submissions, a student could earn up to $N \%$ toward the final course grade.

If a final project proposal is assigned, then there is also a bonus for turning in the final project proposal early, on the condition that the student first consults with the instructor regarding the content of the proposal (see the Final Project directions for more information about the proposal).

If part of an assignment is considered extra credit, then the required part of the assignment can be handed in early and separately from the extra credit part, thereby making it possible to get the early bonus on the required part. The extra credit part of the project would still be due by the normal due date & time, with late policies applying. There may be no extra credit available in a given semester.

There is no special early policy for reading reports (an early reading report counts as much as an on-time reading report).

### Late Policy

Reading reports are not accepted late, as they are meant to help students prepare for the lectures. The project reports are due in PDF format by 11:59pm on the specified due date (see the red fields on the schedule). For project reports, each student has a budget of five penalty-free late days which can be spent at any time, except that no more than two may be used on any single assignment. Penalty-free late days are consumed greedily. This budget should allow for some flexibility in the schedule, given a student’s other class constraints and unexpected life events. Once the penalty-free late days for an assignment have been spent, each additional late day results in a penalty of 10% (of the total possible) per day, up to 10 days (at which point no credit is possible). Each late day ends at 11:59pm. Weekends, University holidays, and scheduled mid-term exam days are not counted as late days.

There are no late days for the final project, as the final project may involve a presentation about the completed project during the final days of class.

All work must be submitted by the last day of instruction for the semester. The University does not permit me to accept any work thereafter.

In this class, our early and late policies should allow you enough flexibility for most special circumstances during the semester. Additionally, special circumstances can be accommodated by prior arrangement. If you anticipate you need some kind of accommodation to handle a special circumstance for which our early and late policies will not suffice (e.g., for homework), talk to your instructor as soon as possible. In all but the most dire circumstances, further special circumstances will not be accommodated after the fact. For example, if you are planning to get married during the semester, arrange with your instructor in advance to make up missed work, extend deadlines etc. If you got married the third week of classes and missed a project, but did not make prior arrangements, then no accommodations will be made. If you were in a car accident and at the Emergency Room and could not make prior arrangements, then of course we can make accommodations. Needless to say I hope the latter problem doesn’t happen.

### Cooperation Policy

Students are welcome (and encouraged!) to discuss the general topics of the class, including details of specific algorithms or methods appearing in the lectures or readings. Use of the Google Group for this purpose is strongly encouraged. Please feel free to post your questions there. The instructor, the TAs, and your classmates are all ready to help. If you want a quicker average response time, the group is the way to go! Furthermore, others benefit from the discussion. Note that the instructor and TAs will probably not reply on Sundays.

Actual reading reports and write-ups of the individual assignments, including project code, should be completed individually, unless otherwise specified in an assignment. However, as noted, you may ask others for clarification and help. The BYU honor code applies here.

Code reviews are also permissible and encouraged if both parties have given the project serious effort individually (for example, someone who has not started the project should not code review for someone who is almost done). All collaboration must be attributed. Be sure that before you rely on someone else's idea that you have taken the time to think things through yourself. The experience of working through a solution on your own is an important learning experience and an important part of this class. First-round code reviews should be conducted by a classmate. If you have a stubborn bug that you cannot find in the first round, then you may ask a TA to help you with a second-round code review, but only after having attempted with a classmate. The instructor is available for third-round code reviews as a last resort.

The final project can be done either individually or in a group. The required scale of the project will increase with the size of the group (more details are forthcoming in the final project guidelines). Also, for a group project, the project proposal and report must indicate clear lines of ownership for each member of the group.

### Third-Party Code Policy

You are required personally to solve the problems in the homework and the assigned projects (e.g., write the pseudo-code yourself). Beyond the conceptual solution, the implementation thereof must also be yours. However, you may use a third-party class for a useful data-type if it and you satisfy the following conditions:

• it supports your solution and does not constitute the solution to the assigned problem
• it is accessible to all
• you explicitly acknowledge the third-party code and explain how to acquire it in your report
• you know and report the worst-case efficiency (as a Big-O or Big-Theta bound) of each method on the class

### Inappropriate Use of Course Materials

Some course materials are designated as sharable via a Creative Commons license as directly noted on the relevant materials (e.g., course lectures and PowerPoint presentations). All course materials not so designated (e.g., exams) are proprietary. Students are prohibited from posting or selling proprietary course materials without the express written permission of the professor teaching this course. To do so is a violation of the Brigham Young University Honor Code.

### Preventing Sexual Harassment

Harassment of any kind is inappropriate at BYU.

Title IX of the Education Amendments of 1972 prohibits sex discrimination against any participant in an educational program or activity that receives federal funds. The act is intended to eliminate sex discrimination in education and pertains to admissions, academic and athletic programs, and university-sponsored activities. Title IX also prohibits sexual harassment of students by university employees, other students, and visitors to campus. If you encounter sexual harassment or gender-based discrimination, please talk to your professor; contact the Equal Employment Office at 801-422-5895 or 1-888-238-1062 (24-hours), or http://www.ethicspoint.com; or contact the Honor Code Office at 801-422-2847.

### Disabilities

BYU is committed to providing reasonable accommodation to qualified persons with disabilities. If you have any disability that may adversely affect your success in this course, please contact the University Accessibility Center at 801-422-2767. Services deemed appropriate will be coordinated with the student and instructor by that office.

• Computer Science 470 “Intro. to Artificial Intelligence”
• Computer Science 478 “Machine Learning and Data Mining”
• Computer Science 653 “Information Retrieval”
• Computer Science 676 “Data Mining”
• Computer Science 677 “Bayesian Methods”
• Computer Science 678 “Advanced Neural Networks (and Machine Learning)”
• Computer Science 679 “Advanced Natural Language Processing” with emphasis on Text Mining
• Linguistics 480 “Problems in Translation”
• Linguistics 485 “Corpus Linguistics”
• Linguistics 581 “Natural Language Processing” - stronger emphasis on linguistics and language diversity and less emphasis on programming and mathematics
• Computing in the Humanities 260 “Text Processing and Analysis”

## Acknowledgments

A debt of gratitude is owed to Dan Klein of UC Berkeley for some of the materials used in this course. Lecture credits are noted on the title slide of each lecture. Thanks also to Robbie Haertel and other lab members for their significant contributions to the (optional) course code-base.