Deep Learning for Data Science (DL4DS) / Spring 2024
Announcements
-
Jul 26, 2024:
Thanks all for a great semester! The mini-conference page with all the project papers, videos and slides are now posted.
-
Apr 22, 2024:
To make your screen recordings, one free and easy option is to use Kaltura Capture, which is integrated with BU’s MyMedia streaming media solution. The instruction video, including how to download the app, is here.
The project page is also updated with this information.
-
Apr 15, 2024:
Final project instructions have been updated on the project page. A revised report template is posted along with updated instructions on the project video and the project code repository.
-
Apr 11, 2024:
Future lecture topics and schedule have been updated and posted.
Course Abstract
In this course we will dive into Deep Learning. We'll balance important theoretical concepts with hands on network training and applications using modern deep learning python frameworks. We'll explore numerous network architectures like CNNs, transformers, and the rapidly developing state-of-the-art of large pre-trained foundation models. You'll have the chance to apply what you've learned in a final project.
Lectures: Tuesdays and Thursdays, 3:30pm – 4:45pm
Location: CAS 208
Discussion Session I: Wednesdays, 11:15am – 12:05pm
Location: CDS 164
Discussion Session II: Wednesdays, 3:35pm – 4:25pm
Location: CDS 1526
Instructor: Thomas Gardos
- Office: CDS 1623
- Office Hours: Fridays, 1:30 – 3:30pm on Zoom (see Piazza) and on demand. E-mail for appointment.
- email: tgardos <at> bu <dot> edu
Teaching Assistant: Xavier Thomas
- Office Hours: Mondays, 3:00pm – 5:00pm
- Office Hours Location: CDS, 16th Floor
- email: xthomas <at> bu <dot> edu
Course Description
In this course students will gain an understanding of the fundamentals in deep learning and then apply those concepts in exercises and applications in python. We’ll start with the origins of artificial neural networks, learn about loss functions, understand gradient descent, back propagation and various training optimization techniques. Students will be familiar with canonical network architecture such as multi-layer perceptions, convolutional neural networks, recursive neural networks, LSTMs and GRU, attention and transformers. Through explanations, examples and exercises students will build intuition on how deep learning algorithms work and how they are implemented in popular deep learning frameworks such as PyTorch. Students will be able to define, train and evaluate deep learning models as well as adapt deep learning frameworks to new functionality. Students will gain exposure to pre-trained large language models and other foundation models and the concepts of few-shot learning and reasoning. Finally, students will be able to apply many of the techniques they learned in a final class project.
Learning Outcomes
Upon successful completion of this course, students will be able to:
- Grasp foundational theories and practices in the deep learning arena.
- Design and implement various neural network architectures using Python and PyTorch.
- Employ regularization, optimization, and advanced training techniques to enhance model performance.
- Analyze real-world datasets, applying suitable deep learning techniques to derive actionable insights.
- Understand the benefits and drawbacks of various neural architectures in specific contexts.
- Understand the pros and cons of pre-trained large language and other foundation models and how best to employ them
- Complete a data-centric project, showcasing end-to-end deep learning implementation.
Prerequisites
Python Programming – Should be proficient in python and associated data science packages, or studiously working towards proficiency. See for example Scientific Python Lectures for lessons on python language and relevant packages, or The Python Tutorial for a tutorial on the core language.
Packages such as NumPy NumPy - Learn and SciPy (SciPy User Guide have tutorials and documentation as well.
The more proficient you are, the more effective you will be at the assignments and projects. We will dedicate some discussion sessions to ensure your environment is setup correctly and review some of the basics as well as answer any questions.
Math Proficiency – In order to understand the foundational concepts, it is important to have proficiency in a number of areas of mathematics. These include linear algebra, first year calculus and trigonometry as well as some concepts from Real Analysis. We will cover these concepts in the class and some recitation sessions, but refreshing or building your foundation will help.
Reference Material
The primary textbook for this course will be Understanding Deep Learning, by Simon Prince . The book is available online as a preprint and should be available in print from MIT Press in early 2024.
We’ll also reference Introduction to Linear Algebra, Sixth Edition (2023), by Gilbert Strang.
Lecture notes, consisting primarily of Jupyter notebooks will be posted online as well.
Given the fast moving nature of this area, we’ll also be citing many articles available online as well as other online reference materials in each lecture. As part of the class, we will guide the students in constructing their own bibliography and give tips on how to efficiently and effectively read research papers.
Computing Environment
Students are of course free to use their own personal computer, but you will also have access to Boston University’s Shared Computing Cluster and GPUs. Access instructions will be provided. For more information, see:
Learning Management Software
To be added.
- Piazza
- Gradescope
- Blackboard
Course Requirements
- Homework: For the 1st half of the class we’ll assign Jupyter Notebook coding assignments and a few homework questions approximately every week to help anchor the key concepts and python/pytorch coding patterns. These will become less frequent in the 2nd half of the course to allow you to concentrate and make progress on your projects.
- A mid-term deep learning training contest
- A final project where you will apply deep learning methods to a problem or application of interest to you.
Course Assessment
- Final Project: 45%
- Mid-term Project/Competition: 25%
- Jupyter Notebooks: 15%
- Homeworks: 10%
- Class Participation/Attendance: 5%
Final Project
See the Project page for more information.
Student Code of Conduct
All students are expected to abide by University conduct policies as detailed in the following links:
- Boston University Student Codes of Conduct
- College of Arts & Sciences Codes of Conduct
- Boston University Student Responsibilities
Academic Honesty
You may discuss homework assignments with classmates, but you are solely responsible for what you turn in. Collaboration in the form of discussion is allowed, but all forms of cheating (copying parts of a classmate’s assignment, plagiarism from books or old posted solutions) are NOT allowed. We – both teaching staff and students – are expected to abide by the guidelines and rules of the Academic Code of Conduct.
Graduate students must also be aware of and abide by the GRS Academic Conduct code.
You can probably, if you try hard enough, find solutions for homework problems online. Given the nature of the Internet, this is inevitable. Let me make a couple of comments about that:
- If you are looking online for an answer because you don’t know how to start thinking about a problem, talk to the TA or instructor, who may be able to give you pointers to get you started. Piazza is great for this – you can usually get an answer in an hour if not a few minutes.
- If you are looking online for an answer because you want to see if your solution is correct, ask yourself if there is some way to verify the solution yourself. Usually, there is. You will understand what you have done much better if you do that. So … it would be better to simply submit what you have at the deadline (without going online to cheat) and plan to allocate more time for homeworks in the future.
Generative AI Assistance (GAIA) Policy
In general, we follow the policy outlined in the CDS GAIA Policy.
Extracting and paraphrasing from the student responsibilities of that policy. Where there is conflicting information between the CDS policy and below, the policy below should take precedence.
Students shall:
- Give credit to AI tools whenever used, even if only to generate ideas rather than usable text, illustrations or code.
- When using AI tools on written assignments, unless prohibited, add an appendix showing
- the entire exchange, highlighting the most relevant sections;
- a description of precisely which AI tools were used (e.g. ChatGPT private subscription version or DALL-E free version),
- an explanation of how the AI tools were used (e.g. to generate ideas, turns of phrase, elements of text, long stretches of text, lines of argument, pieces of evidence, maps of conceptual territory, illustrations of key concepts, etc.);
- an account of why AI tools were used (e.g. to save time, to surmount writer’s block, to stimulate thinking, to handle mounting stress, to clarify prose, to translate text, to experiment for fun, etc.).
- Optional but recommended: Employ AI detection tools and originality checks prior to submission, ensuring that their submitted work is not mistakenly flagged.
- When using AI tools on coding assignments, unless prohibited
- Add the prompt text and tool used as comments before the generated code. Clarify whether the code was used as is, or modified somewhat, moderately or significantly.
- Not use AI tools during in-class examinations, or assignments, unless explicitly permitted and instructed.
- Use AI tools wisely and intelligently, aiming to deepen understanding of subject matter and to support learning.
As these generative assistive tools become widely deployed and pervasive, we believe they will become integral to most people’s workflow. However, for foundational concepts, as are taught in this course, it is in your best interest and worth it to struggle some in creating your answers and solutions. It is just as important to learn what doesn’t work, and which paths are dead ends, as it is to learn what does work. When you are posed with new and unique problems, that intuition you develop will be vital in choosing directions. More pragmatically, some of the most coveted jobs at the most selective companies require technical interviews where they expect you to know these foundational concepts without assistance.
And finally, to reiterate, it is vitally important, and a core part of academic integrity, to cite when you are using Generative AI Assistive technologies. Arguably, not citing and risking plagiarism is worse than taking short cuts and using and then citing GAIA.
Accommodations for Students with Disabilities
If you have a disability and have an accommodations letter from the Disability & Access Services office, I encourage you to discuss your accommodations and needs with me as early in the semester as possible. I will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with BU Disability & Access Services, I encourage you to find more information at https://www.bu.edu/disability/.
This syllabus provides a general plan for the course; deviations may be necessary depending on the progress of the class.