Teaching
Machine Learning for Engineers
I’m instructing a graduate-level course, Machine Learning for Engineers, at the University of Massachusetts Amherst (UMass Amherst) this Spring. This course, with 64 registered students, has been meticulously designed to cover the breadth and depth of machine learning, with a special emphasis on its applications in engineering. From foundational principles to cutting-edge technologies, the curriculum has been tailored to empower students to harness the potential of machine learning in solving complex engineering challenges.
Course Highlights
The Machine Learning for Engineers course offered a robust exploration of key machine learning concepts and techniques, including but not limited to:
-
Introduction to Machine Learning: Students were introduced to the fundamentals of machine learning, including supervised, unsupervised, and reinforcement learning paradigms, setting the stage for a deep dive into more complex algorithms and applications.
-
Data Preprocessing and Feature Engineering: This section emphasized the critical steps of data preparation, including cleaning, normalization, and feature extraction, to ensure models receive high-quality inputs for accurate predictions.
-
Regression and Classification: We explored core algorithms for both regression and classification tasks, providing students with the tools to tackle a wide array of engineering problems through supervised learning.
-
Neural Networks and Deep Learning: A significant portion of the course was dedicated to deep learning techniques, including the architecture and application of neural networks, CNNs, and RNNs, highlighting their role in advancing fields such as computer vision and natural language processing.
-
Graph Neural Networks (GNNs): Recognizing the importance of graph-structured data in engineering applications, we delved into GNNs, exploring how they can model relationships and interactions in complex systems, from social networks to molecular structures.
-
TinyML and Machine Learning on the Edge: Developing efficient, low-power ML models capable of operating on resource-constrained devices. This module covers: 1) Introduction to TinyML: Provides an overview of the Tiny Machine Learning (TinyML) field, its significance, and its applications in real-world scenarios where computing resources are limited. 2) Quantization and Pruning: Discusses techniques for reducing model size and computational requirements, making them suitable for edge devices. Students will learn about quantization methods to lower precision and pruning strategies to remove unnecessary weights. 3) Neural Architecture Search (NAS): Explores NAS methodologies for automatically designing optimal neural network architectures for specific tasks, emphasizing efficiency and performance on edge devices. 4) Practical Applications: Includes hands-on projects and case studies demonstrating the deployment of ML models on edge devices, such as smart sensors and IoT devices, to solve engineering challenges with real-time data processing and analysis.
-
Large Language Models (LLMs): The course provided an in-depth look at the architecture, training, and applications of Large Language Models, such as GPT and BERT. Students learned about the transformative potential of LLMs in generating human-like text, understanding language, and automating tasks in various engineering domains.
-
Reinforcement Learning: We covered the principles of reinforcement learning, including strategy optimization and decision-making in dynamic environments, applicable in robotics and automated systems.
Hands-On Projects
Practical application was a cornerstone of the course, with projects designed to challenge students to apply machine learning algorithms, including GNNs and LLMs, to real-world engineering problems. These projects will fostere not only technical skills but also critical thinking and innovation.
Digital Signal Processing
In the Fall of 2024, I’m instructing a graduate-level course, Digital Signal Processing (DSP), at the University of Massachusetts Amherst (UMass Amherst). This course, designed for 48 registered students, focuses on the theory, algorithms, and practical applications of signal processing, with a strong emphasis on engineering challenges and solutions. The curriculum has been tailored to provide students with both foundational knowledge and hands-on experience in processing digital signals across various domains.
Course Highlights
This course offers a comprehensive exploration of key DSP concepts and methodologies, including:
-
Fundamentals of Discrete-Time Signals and Systems: Students are introduced to the basic principles of discrete-time signals and systems, laying the groundwork for understanding the core operations of DSP, including convolution, difference equations, and Z-transforms.
-
Digital Filter Design: This section covers the design of both Finite Impulse Response (FIR) and Infinite Impulse Response (IIR) filters, providing students with the tools to shape signals for desired applications in areas such as communication, audio, and control systems.
-
Sampling and Reconstruction: Students learn the theory and techniques of converting analog signals into digital form and reconstructing them, emphasizing the importance of Nyquist theory and practical considerations for avoiding aliasing.
-
Linear Algebra for Digital Signal Processing: Describe a range of signal processing problems using the language of bases and vector spaces, and using the singular value decomposition to solve and analyze a range of least-squares problems.
Digital Image Processing
In the Fall of 2023, I had the privilege of instructing 15 graduate and undergraduate students in Digital Image Processing course at the University of Massachusetts Amherst (UMass Amherst). This course was designed to equip students with both foundational and advanced knowledge in the field of digital image processing.
Course Overview
-
Fundamentals of Image Processing: Students were introduced to the basics of digital images, including image representation, sampling, and quantization. We explored the core concepts necessary to understand how images are processed and analyzed by computers.
-
Image Enhancement Techniques: We delved into various techniques to improve the appearance of images, covering topics such as histogram equalization, spatial filtering, and frequency domain processing. These sessions were aimed at teaching students how to enhance images for better visualization and analysis.
-
Image Restoration: The course covered methods to restore images that have been degraded by factors such as noise or motion. Techniques such as Wiener filtering and deconvolution were explored, providing students with tools to recover information from imperfect images.
-
Color Image Processing: Students learned about color models and algorithms for processing color images, understanding the complexities of working with color data in digital image processing.
-
Edge Detection and Image Segmentation: Key techniques for identifying edges and segmenting images into meaningful regions were covered, giving students insights into how images can be analyzed and interpreted by machines.
-
Advanced Topics: The course also included advanced topics such as image compression, morphological processing, and object recognition. These areas allowed students to explore the latest technologies and research trends in digital image processing.
Hands-On Learning
The course was not just theoretical; students engaged in hands-on projects using state-of-the-art software tools to apply the concepts learned in class. These projects were designed to challenge the students and provide them with practical experience in solving real-world image processing problems.
Outcome
By the end of the course, students were not only proficient in the technical aspects of digital image processing but were also equipped with the critical thinking and problem-solving skills necessary to apply this knowledge creatively in their future endeavors.