CMSE 491: Applied Machine Learning#

Fall 2023#

Instructor#

Dr. Luciano G. Silvestri
Fixed-term Assistant Professor
Dept of Computational Mathematics, Science and Engineering (CMSE)
Engineering Building 2502
silves28@msu.edu

Days and time#

Monday and Wednesday;
3:00 p.m.- 4:20 p.m.

Location:#

STEM 2201

Course Description#

Machine learning (ML) is impacting our lives at an increasing rate. From credit card fraud to robotics to linguistics to weather, ML is powered with better algorithms, more research funding, faster computers and, all important, more data. Here, we will cover ML with two specific goals. First, a balance between theory and practical use ensures that you understand the secrets behind ML but also be able to quickly grab the right Python library for the job and get results. For this reason, there is a lot of coding - every week there is an in-class coding project, using a “flipped-classroom” approach. In addition, there is a large capstone coding project that results in a class poster session open to all MSU researchers. Second, we will focus on the use of ML in the physical and life sciences, which will range from data sets drawn from the sciences to applying ML to enhance methods and algorithms used in the sciences. Your capstone project will be based in the physical and life sciences.

The course begins with basic tools you need to understand ML. This includes mathematical and coding skills beyond what you will have (see the prerequisites) to connect to the ML algorithms we will be using. Then, we will steadily work through the course textbook using these skills, covering the basics of ML using mainly Scikit-Learn all the way to modern deep learning approaches using TensorFlow.

The flow of the class is based on a mixed lecture and flipped classroom. The basic pattern will be lectures on Monday that lead into an in-class coding project the following Wednesday. There may be out-of-class work before the in-class to ensure that you are prepared, mainly in the form of homework assignments. Throughout the semester you will explore and design your capstone project, leading to a public poster session the week before finals. There are no exams in this course, only homeworks, in-class projects and the capstone project. We will use Slack (for communication) and D2L (for assignments).

Topics Covered#

  • Python for AML

  • Linear algebra in AML

  • Statistics for AML

  • Numerical methods (training) in AML

  • Classification

  • Support vector machines

  • Decision trees and random forests

  • Dimensionality reduction

  • Artificial Neural Networks

Required Reading Materials#

The course textbook is Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow, Third Edition, by Aurélien Géron, ISBN 9781098125974. Link to Schuler Books

book image

There will be some content not in this textbook, especially in the beginning of the course; this content will be given as slides in the lectures. All of the slides used in the lectures are available to you through the course’s D2L page. And, the author has most of the content on GitHub - look here.

It is worth skimming the entire textbook as soon as you can so that you know where we are going. Many students choose project topics from the end of the book and you don’t want to wait that long before starting your project.

If there is a topic from near the end of the course you would like to pursue, we can work through that early during office hours.

Required Materials for Class#

In-class programming assignments are a critical part of the learning process in this course. To that end, you are expected to bring your laptop and its power cord every day.

You are expected to join the Microsoft Teams for CMSE 491 (see the front page of the course website for the appropriate link for this semester). Details for doing so are outlined in later sections.

Details regarding the software needed for this course are provided in the Software Setup Guide.

Course Activities#

Class participation: Active class participation (led both by the instructor and by students) is critical to the success of this course. As such, you are expected to attend class every week, bring the required materials (most importantly, your computer and power cord) and to actively participate in the in-class discussion.

Pre-class assignments: We will assign short assignments that are due prior to class. The purpose of these assignments is to introduce new material and give you some practice with it so that we can focus on experimentation and implementation in class. These assignments will typically consist of one or more short videos or reading assignments and related questions or problems and will be due before class via the course’s Desire2Learn page. The deadline for each pre-class assignment is indicated on the course’s Desire2Learn page. Completing these assignments will be critical for your success in this course.

In-class programming assignments: Class sessions will be held twice a week and will be broken up into presentations, discussions, and programming activities that will allow you to immediately implement (and get instant feedback on) what you have just learned. In-class programming activities will be turned in at the end of the class session via the course’s Desire2Learn page.

Homework: You will have periodic programming assignments that will provide a more in-depth exploration of the materials covered in class. These will be pursued individually, and will be turned in by the given deadline via the course’s Desire2Learn page. You can expect that they will require two week’s worth of out-of-class effort, so you are encouraged to start your assignments as early as possible.

Homework assignments that are submitted late will be accepted for up to two days beyond the due date (i.e., 48 hours past the original deadline). If the assignment is submitted within 24 hours of the original deadline, there is a 10% penalty. This applies even if the assignment is 1 minute late. Similarly, if it is submitted in the 24-48 hour window, a 20% deduction is applied. Again, after the 48th hour, the assignment will no longer be accepted.

Midterm exam: This class will have a midterm exam that will take place on TBD during class.

Final project: In place of a final exam, this course will have a final project. You will complete it either individually or in pairs outside the classroom. Your project must include references to all work used to complete your project. The project can be on a topic of your choosing and, if possible, should be related to your research. You will be expected to submit a project proposal to the instructor for approval. You will develop your project across the entire semester and your final grade is determined by not only the final presentation but the steps you take toward that final goal. More details will be made available as the semester progresses.

Other Important Information#

Course website and calendar: This course uses a Desire2Learn page for course organization, which can be found at http://d2l.msu.edu. Accompanying course information, including this syllabus, can be found at this website. All assignments will be handed in via Desire2Learn. Consult the class website for instructions.

Email: At times, we will send out important course information via email. This email is sent to your MSU email address (the one that ends in “@msu.edu”). You are responsible for all information sent out to your University email account, and for checking this account on a regular (daily) basis.

Class discussion: We will be using Teams as our means of communicating about course content as the semester progresses. We believe that this will provide an excellent avenue to have discussions not only with course instructors, TAs, but also between you and your fellow classmates.

The Teams channel will be the place to go for any questions about assignments in the course or issues you’re having with your computer or Python. We encourage you to help out other classmates when you can! The section-specific channel will be used by your instructor for important messages relevant only to your section of the course.

In order to ensure that Teams is an appropriately used tool that does not become overly time-consuming for the course instructors, TA, we have a list of rules for how we expect you to use Teams. They are:

  1. Before you ask a question, be sure to check the main help channel and other section channels to see if the question has already been answered.

  2. The Teams group is primarily for you, the students, so help each other.

  3. The TA will monitor the channels, but will defer to the students to work through things. They will only enter a conversation if students are going down the wrong path and/or there are too few other students involved. However, you should not expect that the TA will always be available. The TA will spend a limited amount of time “logged in” to Teams and we ask that you be respectful of their time.

  4. Teams is meant to be used to help you when you are stuck with a minor issue. If you are having major issues or trouble understanding the concept, go to office hours or help room hours as they are meant for more in-depth discussions of course content.

  5. Course instructors will rarely check Teams, only to examine progress. While they may offer help, do not rely on it. Instructors will not respond to the same student twice within a 30 minute time interval.

  6. Only in rare cases should you contact an instructor through a private channel. But, if you are struggling, feel free to use this option.

  7. Do not post your solutions to out-of-class assignments directly into Teams unless prompted by an instructor.

  8. Be courteous to everyone on Teams. Students who are being rude or who are excessively posting might be banned from posting on the course Teams channel.

Class attendance: This class is heavily based on material presented and worked on in class, and it is critical that you attend and participate fully every week! Therefore, class attendance is absolutely required. An unexcused absence will result in zero points for the day, which includes the in-class programming assignment points. Arriving late or leaving early without prior arrangement with the instructor of your session counts as an unexcused absence. Note that if you have a legitimate reason to miss class (such as job interviews or work-related travel) you must arrange this ahead of time to be excused from class. Three unexcused absences will result in the reduction of your grade by one step (e.g., from 4.0 to 3.5), with additional absences reducing your grade further at the discretion of the course instructor.

Inclusive classroom behavior: Respectful and responsible behavior is expected at all times, which includes not interrupting other students, turning your cell phone off, refraining from non-course-related use of electronic devices, and not using offensive or demeaning language in our discussions. Flagrant or repeated violations of this expectation may result in ejection from the classroom, grade-related penalties, and/or involvement of the university Ombudsperson. In particular, behaviors that could be considered discriminatory or harassing, or unwanted sexual attention, will not be tolerated and will be immediately reported to the appropriate MSU office (which may include the MSU Police Department).

In addition, MSU welcomes a full spectrum of experiences, viewpoints, and intellectual approaches because they enrich the conversation, even as they challenge us to think differently and grow. However, we believe that expressions and actions that demean individuals or groups comprise the environment for intellectual growth and undermine the social fabric on which the community is based. These demeaning behaviors are not welcome in this classroom.

Academic honesty: Intellectual integrity is the foundation of the scientific enterprise. In all instances, you must do your own work and give proper credit to all sources that you use in your papers and oral presentations - any instance of submitting another person’s work, ideas, or wording as your own counts as plagiarism. This includes failing to cite any direct quotations in your essays, research paper, class debate, or written presentation. The MSU College of Natural Science adheres to the policies of academic honesty as specified in the General Student Regulations 1.0, Protection of Scholarship and Grades, and in the all-University statement on Integrity of Scholarship and Grades, which are included in Spartan Life: Student Handbook and Resource Guide. Students who plagiarize will receive a 0.0 in the course. In addition, University policy requires that any cheating offense, regardless of the magnitude of the infraction or punishment decided upon by the professor, be reported immediately to the dean of the student’s college.

It is important to note that plagiarism in the context of this course includes, but is not limited to, directly copying another student’s solutions to in-class or homework problems; copying materials from online sources, textbooks, or other reference materials without citing those references in your source code or documentation, or having somebody else do your in-class work or homework on your behalf. Any work that is done in collaboration with other students should state this explicitly, and their names, as well as yours, should be listed clearly. When collaborating with other students, you should still be coding/writing your own solutions to the assignments and should limit your collaboration to conceptual discussions about how one might go about solving the problems, not sharing exact solutions.

More broadly, we ask that students adhere to the Spartan Code of Honor academic pledge, as written by the Associated Students of Michigan State University (ASMSU):

“As a Spartan, I will strive to uphold values of the highest ethical standard. I will practice honesty in my work, foster honesty in my peers, and take pride in knowing that honor is worth more than grades. I will carry these values beyond my time as a student at Michigan State University, continuing the endeavor to build personal integrity in all that I do.”

Accommodations: If you have a university-documented learning difficulty or require other accommodations, please provide me with your VISA as soon as possible and speak with me about how I can assist you in your learning. If you do not have a VISA but have been documented with a learning difficulty or other problems for which you may still require an accommodation, please contact MSU’s Resource Center for People with Disabilities (355-9642) in order to acquire current documentation.

Instructor Office Hours and Locations#

Office hours will start the week of Sep 4 (Labour Day). An email will be sent to you concerning the location and time of office hours. If you are not available in these hours, please contact the instructor.

Any course personnel can help you with questions pertaining to the course material, including in-class and homework assignments. Technical questions, including issues with Python and/or Jupyter, should be first directed to your professor, but specific issues with [JupyterHub] (https://jupyterhub.egr.msu.edu) can be sent to support@egr.msu.edu. If you have issues relating to class administration, including missed classes, illness, VISA issues, or school-sponsored activities please contact the instructor.

Grading information#

Attendance is mandatory. Because of the flipped nature of a project-based coding course, it is not possible to be successful if you are not present.

There are a variety of course activities, with percentage of total grade listed. More detailed descriptions of each activity can be found elsewhere in the syllabus.

Component

Percentage of total grade

Participation, attendance, in-class assignments

40

Homework/Pre-class assignments

30

Semester projects

30

Total

100

Grading scale#

At the end of the semester, your grade will be calculated using the following scale:

  • 4.0 ≥ 90%

  • 3.5 ≥ 85%

  • 3.0 ≥ 80%

  • 2.5 ≥ 75%

  • 2.0 ≥ 70%

  • 1.5 ≥ 65%

  • 1.0 ≥ 60%

  • 0.0 < 60%

Note: grades will not be curved - your grade is based on your own effort and progress, not on competition with your classmates.

Projects#

This course ends with a final capstone project in which you solve a real-world machine learning problem. Your completed project will be presented to other interested researchers from around MSU. You will develop your project across the entire semester and your final grade is determined by not only the final presentation, but the steps you take toward that final goal.

Projects will be determined through a research and proposal process during the first part of the semester. You will be given some freedom to propose a project that is interesting to you.

Some projects are available with collaborators outside of MSU, who will provide real-world data. These projects will be discussed in class and are limited to a few students who are especially interested in working with, for example, national laboratories.