This course provides a practical introduction to the deep neural networks (DNN) with the goal to extend student’s understanding of the latest and cutting-edge technology and concepts in the deep learning (DL) field. The course starts with a brief review of and competitions in machine learning (ML) and neural networks (NN), including model evaluation techniques and feature/model engineering in Python with TensorFlow (TF) and Keras. It then defines and exemplifies the DL with convolutional neural networks (CNN), recurrent neural networks (RNN), long-short term memory (LSTM) networks with attention mechanism, generative adversarial networks (GAN) and deep reinforcement learning (DRL), transfer learning, etc.. This is a hands-on course with significant Python coding requirements and weekly ML/DL team competitions. Students will apply NN to computer vision (CV), natural language processing (NLP), and structured data tasks. Since DL is a rapidly developing field, the course will also rely on recent seminal publications.
This course is taught by Oleg Melnikov (LinkedIn) and Samuel Nathanson.
Course material is divided into weekly modules in Canvas. Each module runs for a period of seven (7) days and contains the following:
We will closely follow the topics in HOML textbook (2nd edition, not newer or older!). We will rapidly advance through HOML part I to cover classical ML, build up on terminology and Kaggle/Colab/Competition skills/grading. Weekly modules (topics):
To introduce the students to the variety of deep learning (DL) models, their construction, evaluation and application.
To enable students to tie Python programming code to mathematics/statistics in order to solve real world problems we face today and in the future.
To foster the development of teamwork and collaboration skills through weekly competitions, encouraging students to engage in problem-solving within a team setting, and preparing them for the collaborative nature of the modern workplace.
Required:
Students need a Google Drive account (available for free with Gmail account) with a Google Colab plugin. Colab is a Jupyter Notebook-like interface, which provides a seamless access to Python, TensorFlow, visualizations and (free) CPU/GPU/TPU hardware from Google. Colab ensures identical programming environment among all participants of the course.
Note: This is an individual (not a team) assignment. Please don't post the copyrighted material in the public space outside of our course; the content takes many hundreds of hours to create and maintain. See JHU's Code of Conduct, Honor Code, and Academic Integrity Policy. Please report suspected cheating incidents to the Teaching Team.
We use Google Colab Notebooks for programming assignments, which is pre-configured with Python 3.x and most packages/versions already installed.
Final grades will be determined by the following weighting:
Participating teams are graded generously, receiving between 70-100% for any competition as long as they meet the benchmark and adhere to the submission guidelines, which are described in detail. It's important to note that there is no single "correct" solution in these competitions. Each week, we introduce new concepts and techniques, providing a range of approaches for you to explore. Success in these competitions is not about being the best but about engaging with the process, meeting the baseline criteria, and demonstrating effort, which can typically result in earning 80-90%.
Grades for the Kaggle competition assignments are determined as follows:
The "baseline" refers to the initial performance benchmark provided to all students, represented by a notebook that reproduces this score exactly. It serves as the minimum standard that students are expected to meet or exceed in their competition submissions.
The competition assignment grades are adjusted based on several factors, including:
Top leaderboard scores can significantly drop if rules are not followed, while lower-performing submissions can receive higher grades if they adhere to the guidelines or excel in regards to speed, documentation, and references. Colab submissions are peer-reviewed after each competition ends.
Score Range | ≥97 | ≥94 | ≥90 | ≥87 | ≥83 | ≥80 | ≥77 | ≥73 | ≥70 | ≥67 | ≥63 | ≥0 |
Letter Grade | A+ | A | A- | B+ | B | B- | C+ | C | C- | D+ | D | F |
Regrading:
RE: Assignments affected by illness. If you caught a flu or some other short-term sickness, we can give you an extension on quizzes and other autograded assignments (please notify the Teaching Team of your situation, the affected assignments and the proposed deadline). It's a good idea to attach whatever you have completed at the moment to have it timestamped. We cannot pause or postpone deadlines for Kaggle competitions, however. Thankfully, you can coordinate and rebalance the workload with your teammates. Remember, the team is a single entity - you win together and you lose together - as one. Just in case, please familiarize yourselves with the JHU's policy on absences due to illness.
Deadlines for Adding, Dropping and Withdrawing from Courses
Students may add a course up to one week after the start of the term for that particular course. Students may drop courses according to the drop deadlines outlined in the EP academic calendar (https://ep.jhu.edu/student-services/academic-calendar/). Between the 6th week of the class and prior to the final withdrawal deadline, a student may withdraw from a course with a W on their academic record. A record of the course will remain on the academic record with a W appearing in the grade column to indicate that the student registered and withdrew from the course.
Academic Misconduct Policy
All students are required to read, know, and comply with the Johns Hopkins University Krieger School of Arts and Sciences (KSAS) / Whiting School of Engineering (WSE) Procedures for Handling Allegations of Misconduct by Full-Time and Part-Time Graduate Students.
This policy prohibits academic misconduct, including but not limited to the following: cheating or facilitating cheating; plagiarism; reuse of assignments; unauthorized collaboration; alteration of graded assignments; and unfair competition. Course materials (old assignments, texts, or examinations, etc.) should not be shared unless authorized by the course instructor. Any questions related to this policy should be directed to EP’s academic integrity officer at ep-academic-integrity@jhu.edu.
Students with Disabilities - Accommodations and Accessibility
Johns Hopkins University values diversity and inclusion. We are committed to providing welcoming, equitable, and accessible educational experiences for all students. Students with disabilities (including those with psychological conditions, medical conditions and temporary disabilities) can request accommodations for this course by providing an Accommodation Letter issued by Student Disability Services (SDS). Please request accommodations for this course as early as possible to provide time for effective communication and arrangements.
For further information or to start the process of requesting accommodations, please contact Student Disability Services at Engineering for Professionals, ep-disability-svcs@jhu.edu.
Student Conduct Code
The fundamental purpose of the JHU regulation of student conduct is to promote and to protect the health, safety, welfare, property, and rights of all members of the University community as well as to promote the orderly operation of the University and to safeguard its property and facilities. As members of the University community, students accept certain responsibilities which support the educational mission and create an environment in which all students are afforded the same opportunity to succeed academically.
For a full description of the code please visit the following website: https://studentaffairs.jhu.edu/policies-guidelines/student-code/
Classroom Climate
JHU is committed to creating a classroom environment that values the diversity of experiences and perspectives that all students bring. Everyone has the right to be treated with dignity and respect. Fostering an inclusive climate is important. Research and experience show that students who interact with peers who are different from themselves learn new things and experience tangible educational outcomes. At no time in this learning process should someone be singled out or treated unequally on the basis of any seen or unseen part of their identity.
If you have concerns in this course about harassment, discrimination, or any unequal treatment, or if you seek accommodations or resources, please reach out to the course instructor directly. Reporting will never impact your course grade. You may also share concerns with your program chair, the Assistant Dean for Diversity and Inclusion, or the Office of Institutional Equity. In handling reports, people will protect your privacy as much as possible, but faculty and staff are required to officially report information for some cases (e.g. sexual harassment).
Course Auditing
When a student enrolls in an EP course with “audit” status, the student must reach an understanding with the instructor as to what is required to earn the “audit.” If the student does not meet those expectations, the instructor must notify the EP Registration Team [EP-Registration@exchange.johnshopkins.edu] in order for the student to be retroactively dropped or withdrawn from the course (depending on when the "audit" was requested and in accordance with EP registration deadlines). All lecture content will remain accessible to auditing students, but access to all other course material is left to the discretion of the instructor.