This hands-on course provides a practical introduction to deep neural networks (DNNs), designed to deepen students’ understanding of advanced deep learning (DL) techniques. Modeled after the brain’s architecture, DNNs drive powerful applications in natural language processing (NLP), computer vision (CV), and speech processing—especially with unstructured data like text, images, video, and audio.The course begins with a four-week refresher on machine learning (ML), focusing on model evaluation and feature engineering using Python and Scikit-Learn (SKL). Prior experience with Python and SKL-based ML models is expected. From there, we transition to TensorFlow and Keras, exploring key DNN architectures including convolutional neural networks (CNNs), recurrent neural networks (RNNs), long short-term memory (LSTM), attention mechanisms, generative adversarial networks (GANs), deep reinforcement learning (DRL), transfer learning, and more. Students will read seminal DL papers and collaborate in teams on weekly Kaggle challenges to apply their skills. Teamwork is central to the course, which concludes with a final presentation based on a public ML/DL competition.
This course is taught by Oleg Melnikov (LinkedIn).
Relevant abbreviations/acronyms:
ACC=accuracy, Adam=adaptive moment estimation, AE=autoencoder, AGI=artificial general intelligence, AI=artificial intelligence, ANN=artificial neural network, API=application programming interface, AUC=area under the (ROC) curve (AUC), AWS=Amazon Web Services, BASH=Bourne Again SHell, BERT=bidirectional encoder representations from transformers, BL=baseline, BN=batch normalization, BP=backpropagation, BS=bachelor of science, BTW=by the way, CC=carbon copy, CC=creative commons (copyright license), CLI=command line interface, CNN=convolutional neural network, CPU=central processing unit, CS=computer science, CV=computer vision, CV=cross validation, DAG=directed acyclic graph, DB=database, DB=decision boundary, DL=deep learning, DNA=deoxyribonucleic acid, DNN=deep neural network, Doc=document or documentation, DRL=deep RL, DT=decision tree, ed=edition, EDA=exploratory data analysis, ELU=exponential linear unit, ESL=Elements of Statistical Learning (textbook), ET=eastern time, ETL=extract transform load, FC=fully-connected, FFNN=feedforward neural network, FFT=fast Fourier transform, FNN=feedforward neural network, FNR=false negative rate, FP=final project, FPIP=FP interim presentation, FPR=false positive rate, FPVP=FP video presentation, FYI=for your information, GAN=generative adversarial network, GCE=Google Cloud Engine, GCP=Google Cloud Platform, GD=gradient descent, GMM=Gaussian mixture models, GNN=graph neural network, GPU=graphics processing unit, HC=hierarchical clustering, HOML=Hands on Machine Learning (textbook), HTML=hypertext markup language, hr=hour(s), I/O=input/output, ICA=independent component analysis, IDE=integrated development environment, ISL=Introduction to Statistical Learning (textbook), JHU=Johns Hopkins University, kNN=k-nearest neighbor, LB=leaderboard, LDA=linear discriminant analysis, LLE=locally linear embedding, LLM=large language model, LMS=learning management system, LOO=leave one out, LR=learning rate, LSTM=long short-term memory, M=Monday, MAE=mean absolute error, MAPE=mean absolute prediction error, MD=markdown, ML=machine learning, MLE=maximum likelihood estimation/or, MLP=multi-layer perceptron, mo=month(s), MS=master of science, MSE=mean squared error, MWF=Monday-Wednesday-Friday, NB=Naive Bayes, NLP=natural language processing, NLU=natural language understanding, NMF=nonnegative matrix factorization, NN=neural network, OOB=out-of-bag, PCA=principal component analysis, PCR=principal component regression, PhD=doctor of philosophy, PII=personally identifiable information, pt=point, QDA=quadratic discriminant analysis, R=high level programming language, R=Thursday, RAM=rapid access memory, ref=reference, ReLU=rectified linear unit, ResNet=residual network, RF=random forest, RGB=red green blue, RL=reinforcement learning, RMD=R markdown, RMSE=root MSE, RNN=recurrent neural network, ROC=receiver operating characteristic curve, RSS=residual sum of squares, RTL=runtime limit, sec=seconds, SGD=stochastic gradient descent, SKL=scikit-learn (library), SL=supervised learning, SOM=self-organizing maps, SVC=support vector classifier, SVD=singular value decomposition, SVM=support vector machine, T=Tuesday, TA=teaching assistant, TB=TensorBoard, TD=temporal difference, TF=TensorFlow (library), TLU=threshold logic unit, TMI=too much information, TNR=true negative rate, TOC=table of contents, TPR=true positive rate, TPU=tensor processing unit, TR=Tuesday and Thursday, t-SNE=t-distributed stochastic neighbor embedding, TTT=the teaching team, U=university, UL=unsupervised learning, URL=uniform resource locator, VAE=variational autoencoder, W=Wednesday,, wk=week(s), WSE=Whiting School of Engineering, YOLO=you only look once.
More ML abbreviations (or ask LLM). Did we miss any? Be a ⭐! Let us know. 🥳
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 or 3rd edition): Géron, Aurélien. Hands-on machine learning with Scikit-Learn, Keras, and TensorFlow. 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 TTT. Do not post your solutions (coding or quizzes) in public space since this will hinder creativity of future students.
We use Google Colab Notebooks for programming assignments, which is pre-configured with Python 3.x and most packages/versions already installed. Google frequently updates Colab's environment occasionally causing incompatible settings or packages, so please let us know if any of this comes up and you notice an error in Colab's code. We'll fix it for everyone.
Final grades will be determined by the following weighting:
Participating teams are graded generously, typically earning 80-100% (per assignment overall) if exceeded the baseline and adhered to the rules. Note: there is no "correct" solution in these competitions. Each week, we introduce new concepts and techniques, providing a range of approaches for you to explore/learn. Success in these competitions is not about being the best but about engaging with the process, teamworking, meeting the baseline criteria, and demonstrating effort, which can typically result in earning 80-90% per assignment. See grading rubric.
Grades for the Kaggle competition assignments are determined as follows (percentages are approximate, subject to change; see grading rubric):
The "baseline score" refers to the Starter Colab's LB performance provided to all students. 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 (see grading rubric):
Top LB 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:
There are 2 evaluations for each week's Kaggle assignment:
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 TTT 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 is committed to providing welcoming, equitable, and accessible educational experiences for all students. If disability accommodations are needed for this course, students should request accommodations through Student Disability Services (SDS) as early as possible to provide time for effective communication and arrangements. For further information about this process, please refer to the SDS Website.
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.