Site Navigation:
Machine Learning for the Built Environment - Course year 2024
About
This course is introductory to machine learning to equip students with the basic knowledge and skills for further study and research in machine learning. It introduces the theory/methods of well-established machine learning and a few state-of-the-art deep learning techniques for processing geospatial data (e.g., point clouds). Students will also gain hands-on experiences by applying commonly used machine learning techniques to solve practical problems through a series of lab exercises and assignments.
Contents
The topics of this course cover the fundamentals of machine learning and deep learning, including:
-
Introduction to machine learning: the history of machine learning, applications of machine learning, the scope of machine learning, the challenges (e.g., datasets, class imbalance, generalization) in machine learning, the limits and dangers of using machine learning techniques.
-
Unsupervised learning: k-means clustering, hierarchical clustering, density-based clustering.
-
Supervised learning: linear regression and nearest neighbor classification.
-
Classification: Bayesian classification, logistic regression, support vector machine (SVM), decision trees, and random forest. We will also discuss data collection and features.
-
Neural networks: multi-layer perceptron (MLP), loss functions, gradient descent.
-
Deep learning (focusing on CNN): convolution, CNN architecture; practical techniques for training.
Goals
After finishing this course, the students will have gained the theory of commonly used machine learning techniques and the skills to apply them for processing geospatial data. Specifically, the students will be able to:
-
explain the impact, limits, and dangers of machine learning; give use cases of machine learning for the built environment;
-
explain the main concepts in machine learning (e.g., regression, classification, unsupervised learning, supervised learning, overfitting, training, validation, cross-validation, learning curve);
-
explain the principles of well-established unsupervised and supervised machine learning techniques (e.g., clustering, linear regression, Bayesian classification, logistic regression, SVM, decision tree, random forest, and neural networks);
-
preprocess data (e.g., labeling, feature design, feature selection, train-test split) for applying machine learning techniques;
-
select and apply the appropriate machine learning method for a specific geospatial data processing task (e.g., object classification);
-
evaluate the performance of machine learning models.
Assessment
The assessment of this course consists of two group assignments and the final exam. The final grade is based on the evaluation of both the assignments and the final exam, breaking down into:
-
group assignments (40%). All assignments have equal weight in the final grade. It is possible to resubmit your work after incorporating the feedback/suggestions received from the teachers. However, the evaluation of an assignment is mainly based on the first submission. Students who have improved their work may receive a slightly higher grade depending on the significance of the improvement (but no more than 5%). Assignments submitted after the deadline: the grade will be deducted with 10% per day late, and not accepted after 3 days late.
-
final exam (60%). The final exam consists of multiple-choice questions and open questions. Example questions will be given two weeks before the exam.
Pass or fail? Grading is done on a 10-point scale, and the final marks are rounded off to the nearest full and half figures. To pass the course, all assignments and the final exam must be graded greater or equal to 5.5, and a total of 5.75 or above is required to pass the course.
Repair and retake options. Any component of the assessment graded 5.5 or lower is eligible for one more opportunity to retake (for the exam) or repair (for assignments). A repair is a revision or addition to an existing assignment, and a successful repair will only be assessed with a 6.0. A retake is an entirely new examination.
Prerequisites
To embark on this exciting journey through the course, it is crucial to have a solid grasp of fundamental calculus, linear algebra, and statistics. Additionally, we assume you have completed a basic Python programming course in the past. Here is a breakdown of the key prerequisites:
-
Basic calculus and linear algebra.
You should be comfortable with matrix-vector operations and notation and familiarity with taking derivatives and gradients.
-
Basic probability and statistics.
You should know fundamental concepts such as probabilities, Gaussian distributions, mean, standard deviation, etc.
- Proficiency in Python programming.
All assignments will be in Python (utilizing libraries like Numpy). If you have significant programming experience in other programming languages like C/C++/Matlab/Javascript, you will probably be fine. For those unfamiliar with Python, consider checking out this tutorial and another great tutorial.
To ensure your readiness, we have designed a set of
questions for self-assessment. Please complete this assessment to determine if you are ready for the course:
-
If you were confident to answer at least 2/3 of the questions: Congratulations! You are well-prepared for this course.
-
If you were familiar with the tested concepts (e.g., you had taken related courses in the past) but needed a refresher: You must revisit relevant books or study materials before the course begins.
-
If you faced challenges during the assessment (e.g., you had difficulty recognizing the concepts tested): This course might not be for you. However, you can still enroll in the course, provided that you dedicate (approximately) 30-50 hours to self-study before the course commences to ensure a smooth learning experience. See the recommended self-study materials.
Course logistics
-
Lectures: on campus. Check here for the course schedule and the time/location of each lecture.
-
Slides and lecture notes: slides and lecture notes will be posted here shortly after each lecture.
-
Contact: we will also use Discord channels for announcements and all course-related questions. We highly recommend raising questions on the Discord text channel, so others can also benefit from the Q&A. For external inquiries, emergencies, or personal matters that you don't wish to put in a private post, you can email the teacher(s) or schedule a private meeting (to make an appointment, please indicate a few time slots during the office hours and include a Zoom link).
Teachers
Copyright @Liangliang Nan. 2021