Machine Learning

Objectives

At the end of this course unit, the student will have acquired the knowledge, skills, and competencies that enable them to:

o   Understand the paradigms and challenges of Machine Learning, distinguishing Supervised, and Unsupervised learning.

o   Know the fundamental methods and their applications in data-oriented knowledge discovery. Understand data features, model selection, and model complexity.

o   Understand the advantages and disadvantages of the different methods.

o   Be able to implement and adapt Machine Learning algorithms

o   Be able to model real data experimentally.

o   Be able to interpret and evaluate experimental results.

o   Be able to validate and compare different Machine Learning algorithms.

o   Be able to evaluate the suitability of each method to concrete applications and data sets.

o   Be able to critically evaluate the results.

o Be able to apply and deepen knowledge in Machine Learning.

General characterization

Code

11157

Credits

6.0

Responsible teacher

Claudia Alexandra Magalhães Soares, João Alexandre Carvalho Pinheiro Leite

Hours

Weekly - 4

Total - 48

Teaching language

Português

Prerequisites

Students entering the class are expected to have a pre-existing working knowledge of probability, linear algebra, statistics and algorithms; one recitation session will be held to review basic concepts.

  1. Before starting this course, you need to have significant experience programming in a general programming language. Specifically, you need to have written from scratch programs consisting of several hundred lines of code. For undergraduate students, this will be satisfied, for example, by having passed 15-122 (Principles of Imperative Computation) with a grade of ‘C’ or higher, or comparable courses or experience elsewhere.

    Note: For each programming assignment, you will be required to use Python. You will be expected to know, or be able to quickly pick up, that programming language.

  2. You need to have, before starting this course, basic familiarity with probability and statistics, as can be achieved at NOVA by having passed the Probability and Statistics course or comparable courses elsewhere, with a grade of ‘C’ or higher.

  3. You need to have, before starting this course, college-level maturity in discrete and continuous mathematics, as can be achieved by having passed mathematical analysis 1 and 2, linear algebra and analytic geometry, discrete mathematics or comparable courses elsewhere, with a grade of ‘C’ or higher.

You must strictly adhere to these pre-requisites! Even if the registration system does not prevent you from registering for this course, it is still your responsibility to make sure you have all of these prerequisites before you register.

 

Bibliography

 

Murphy, Kevin P., "Probabilistic Machine Learning: An Introduction, 1st Edition" (2022). eTextbooks for Students. 498.

 

Bishop, Christopher M. Pattern Recognition and Machine Learning. New York :Springer, 2006.

 

James, G., Witten, D., Hastie, T., Tibshirani, R.,, Taylor, J. (2023). An Introduction to Statistical Learning with Applications in Python. Cham: Springer. ISBN: 978-3-031-38746-3

 

Teaching method

Available soon

Evaluation method

Course Assessment

The evaluation of this course consists of two components: theoretical/problems (T) and projects (P). The theoretical/problems (T) component contributes 70% to the final grade and the projects (P) contribute with 30%. Both components are graded on a scale from 0 to 20.

To pass, the student must obtain a grade of at least 9.5 in the theoretical/problems component and a grade of at least 9.5 in the project component. The final grade is then calculated as the weighted average of the two evaluation components (0.7×T + 0.3×P) on an integer scale from 0 to 20 points. If the final grade is higher than 17 points, an oral test will be conducted to defend the grade obtained. After the oral examination, the grade will not be lower than 17 points. If a student has a final grade larger than 17 and does not attend the oral examination, the final grade will be set at 17 points.

Theoretical/problems component (T)

This component is evaluated through two written tests, with the grade being the average of the two tests. Alternatively, this component can be evaluated through a written exam consisting of two parts. If the student does better on the exam, their grade will replace the average of the two tests. Additionally, an extra point may be awarded for submitting a report that transcribes and deepens the contents of one theoretical class, or for meaningfully answering material-related questions or posting followups with further experiments/visualizations/discoveries on the Discord server. Another extra point will be given if all OODA forms are meaningfully answered. When only a fraction of them is answered, the corresponding fraction of the point will be credited.

Project component (P)

This component is evaluated through two mini-projects. Some tutorial classes will be allocated to the mini-projects, which are completed in groups of students, but are evaluated individually.

The grading of the different evaluation components is rounded to the first decimal place and the final grade is rounded to the closest integer value.

During an assessment, a student may not have any electronic devices capable of accessing the internet or with Bluetooth connectivity (e.g., smartphones, smartwatches, smartglasses, tablets, laptops) with them, even if they are turned off.

Violation of this rule results in immediate failure of the curricular unit by exclusion and will be reported to the Scientific Committee of the respective program.

Oral exam (when the final grade > 17)

If you are admitted to an oral exam, here are some tips on how to prepare:

  1. Formalities: The exam lasts 25 minutes and has two examiners. You cannot bring any materials. We will ask you questions about the lecture material, not actual implementations. We may ask for simple calculations, but not complicated ones. We will provide writing materials.
  2. Typical questions: We start with simple questions to test your understanding and recall of the material. Then, we may ask you to apply the material to new situations. If you are an excellent student, we may ask for the proof ideas of the main results in the lectures.
  3. Strategies: To prepare for the exam, practice on your own by asking yourself typical questions without any materials. Additionally, simulate a test exam with fellow students. Make sure you can answer basic questions about each topic covered in the course. If you haven''t studied all the material, let us know in advance so we can focus on what you know.
  4. Timing matters: Correct answers are important, but speed is also crucial for optimal performance. Taking too long to answer will limit the amount of material we can cover. If you are too slow to answer a certain minimum number of questions, your score will be discounted, similar to a written exam where unanswered questions result in a lower grade.

😢 Plagiarism

Plagiarism is any attempt to make you seem the author of text, code, or any work which is not really yours. Plagiarism breaks the necessary trust for fair evaluation and any student submitting plagiarized work will fail the course immediately. If you rely on any material other than what was provided in this course you must identify it and credit your sources. Copying verbatim course material is also not permitted, without proper credit. Also note that you will be graded on the work you actually did, so even if you avoid plagiarism by crediting your sources you still need to do your own implementation and write text in your own words.

🤖 Language Model Policy

You can use language models for spell-checking and to obtain code structures not related with the course topic, e.g., to develop the Python code that produces a plot. It is explicitly not allowed to use language models to code model structure, training loops and inference calls. Relying on language models will not be sufficient for completing assignments and definitely not for studying for tests and exams.

Take the model’s notice seriously: Model responses can be inaccurate or misleading. To know more about Deep Learning and Large Language Models, enroll in the Deep Learning course next semester 😃.

 

 

Subject matter

The course focuses on the foundational concepts and techniques of Machine Learning (ML): 

Foundations of Machine Learning

1: Introduction to ML, regression, optimization.

2: Generalization, overfitting, and regularization.

3: Classification and feature engineering.

4: Non-parametric learning (k-NN).

Models

5: Generative models and Naive Bayes.

6: Decision trees.

7: Ensemble methods (bagging, boosting).

Learning without labels

8:  Unsupervised learning.

9: Non-linear manifold learning and PCA.

10: Clustering concepts and techniques.

11: Clustering and density estimators.

12: Introduction to deep neural networks.

 

Practical-Laboratorial Classes: Reviews of Python and mathematics, supervised learning, optimization, overfitting, generative models, decision trees, ensembles, principal component analysis, and clustering. Each week combines theory, practical exercises, and discussions on real-world applications of ML, aligning with the principles of the ACM Computer Science curriculum.