Site Navigation:
Machine Learning for the Built Environment - Course year 2025
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 lower than 5.5 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 familiar 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,
scikit-learn, and
PyTorch). 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: 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.
Teachers
Copyright @Liangliang Nan. 2021