Welcome to CSCI 1470 / 2470! Deep Learning belongs to a broader family of machine learning methods. It is a particular version of artificial neural networks -- a version that emphasizes learning representation wi th multiple layers of networks. Deep Learning, plus the specialized techniques that it has inspired (e.g. convolutional neural networks, recurrent neural networks, and transformers), have led to rapid improvements in many applications, such as computer vision, machine learning, sound understanding, and robotics. This course intends to give students an overview of the prominent techniques of Deep Learning and its applications in computer vision, language understanding, and other areas. It also aims at providing hands-on practice of implementing deep learning algorithms in Python.
Learning Goals:Students who complete this course will:
- Learn the basic concepts and tools that underlie all modern deep learning systems (e.g. back-propagation and automatic differentiation).
- Know which model architectures to use for processing different types of data (images, sequences, and graphs).
- Grow hands-on experience implementing models for vision, language, or robotics applications.
- Be practiced in critically analyzing the potential societal impacts of the deep networks they develop.
- Team up and implement an existing research paper or something new.
- A basic programming course: (CSCI 0150, 0170 or 0190)
- A linear algebra course: (CSCI 0530, MATH 0520 or 0540)
- A stats / probability course: (CSCI 0220, 1450, 0450, MATH 1610, APMA 1650 or 1655)
Grading:There are six assignments, and a final project. The grade breakdown is:
- 60% Assignments
- 10% Labs
- 30% Final project
Textbook:None required. Students are encouraged to refer to the following textbooks, all of which are available online:
- Deep Learning by Ian Goodfellow, Yoshua Bengio, and Aaron Courville.
- Probabilistic Machine Learning: An Introduction, by Kevin Murphy.
- Patterns, Predictions, and Actions: A Story about Machine Learning by Moritz Hardt, and Benjamin Recht.
Assignments consist of a programming component (e.g. implementing and training some neural network model) as well as a written component. The written component contains both algorithmic conceptual questions as well as an open-ended ethics question that requires students to reflect on societal ramifications of the machine learning models they are building in the programming portion of the assignment. Answers to the written questions will be due before the programming component is due, i.e. there are two separate deadlines: one for the written component, followed by one for the programming component.
Late Policy: Each of the assignments is due by 11:59pm Eastern Time on the given due date — thus, you have until the end of the day listed as the due date to complete the assignment. You will have four (4) free late days to use towards all but the last project. After your late days are expended you will lose 10% of your project grade for each extra day your handin is delayed. At the end of the term, we will calculate how to best divvy out your late days to best help your final grade. There is no need for you to do anything special for this, other than keep track of submission dates for your own records. Note that because we do this, use of late days will not be reflected in the initial grade report for your assignments.
Exceptions to the Late Policy: Sometimes there are special circumstances during the semester that result in exceptions to this late policy. All such circumstances require an official note from the Deans. In general, they only provide support notes on behalf of students who are experiencing disruptive medical or personal circumstances, including those related to Title IX situations, that affect their ability to do academic work in a timely way. If you believe an extension is warranted for you, and you have a note from the Deans, please notify the instructor by sending him an email. What you should not do:
- Do not send a dean’s note to a UTA/HTA. These often contain sensitive personal information, the receipt of which by anyone other than the instructor is a FERPA violation.
All students will be required to complete a final project in groups of 2-3. At minimum, this should entail re-implementing the methods described by a recent deep learning research paper. The course staff will provide resources to help students find and select appropriate papers for their projects. Expectations are higher for 2470 students and 1470 capstone students: they will be required to go above-and-beyond re-implementing an existing research paper, and will be required to attempt a novel research project. This could involve investigating a new model architecture to solve an existing problem, adapting methodology from a different problem to solve an existing problem, or defining and solving a new problem of interest.
This course may be used as a capstone course for an Sc.B. degree. Interested students should email a filled-out copy of the capstone form (which is being revised and will be located here soon!) to the instructor for him to sign and return. All 1470 students who use the course as a capstone will be expected to fulfill the same final project requirements as students taking 2470. Accordingly, 1470 capstone students may form final project groups with 2470 students.
Academic Integrity & Collaboration:
Academic dishonesty will not be tolerated. This includes cheating, lying about course matters, plagiarism, or helping others commit a violation. Plagiarism includes reproducing the words of others without both the use of quotation marks and citation. Students are reminded of the obligations and expectations associated with the Brown Academic and Student Conduct Codes. Discussion of course material with your classmates is both permitted and encouraged. However, showing, copying, or other sharing of actual code or verbatim answers to written questions is forbidden. This includes publishing projects on Github or any other public platform. This policy will be enforced.
One of the ways that we enforce the collaboration policy is by running MOSS on all code submissions. For those who are new to the department or otherwise unfamiliar with it, MOSS (short for “measure of software similarity”) is a software tool which detects similarities between pieces of code. The course staff manually examines the output of MOSS to look for cases where two students’ submitted code is similar in such a way that it is sufficiently unlikely for them to have independently produced it (i.e. an instance of cheating or code plagiarism).
We expect everyone to complete the course on time. However, we certainly understand that there may be factors beyond your control, such as health problems and family crises, that prevent you from finishing the course on time. If you feel you cannot complete the course on time, please discuss with the instructor the possibility of being given a grade of Incomplete for the course and setting a schedule for completing the course in the upcoming year.