The Embedded Learning and Sensing Systems (ELSS) group is a young team of researchers working on low-power sensing systems, information processing in IoT devices, embedded and mobile machine learning. State-of-the-art computational models that, for example, recognize a face, or detect events of interest are increasingly based on deep learning principles and algorithms. Unfortunately, deep models exert severe demands on local device resources and this limits their adoption within mobile and embedded platforms. Our group works on solving the challenges when running these models on embedded and mobile devices. We care about data privacy, energy consumption and environmental sustainability, which is reflected in applications of our work and deployed prototypes of the developed systems.
We offer a number of courses, seminars, and labs focusing on algorithms and information processing in embedded, distrubuted and mobile systems. Additional details about the individual classes can be found below:
This course covers essential algorithms in modern computing and communications systems. Today’s computing and information systems are highly distributed. Many companies are operating on a global scale, with thousands or even millions of machines on all the continents. Data is stored in various data centers, computing tasks are performed on multiple machines. Also a personal mobile phone is a distributed system. Not only does it share some data with the cloud, also the phone itself contains multiple processing and storage units. This course introduces the basic techniques when building distributed systems. We study distributed algorithms with the focus on their fault-tolerant operation and learn real systems that implement these algorithms.
Machine learning is becoming increasingly popular in mobile systems, IoT devices and autonomous vehicles. Running machine learning models on microcontrollers, however, faces severe resource constraints and presents a very young field of research. This course will cover recent advances in the field of embedded machine learning, i.e., how to create efficient implementations of deep learning models on embedded systems. In this course you will get an overview of 1) the theoretical foundations and motivations behind optimizations of deep learning models for resource-constrained devices, 2) software frameworks, system support and optimization techniques for these models, and 3) hardware platforms and architectures to support efficient execution of machine learning models. The course assumes the students have a basic understanding of machine learning, a knowledge of Python and C, and some background in computer architecture. The students will get hands-on experience in the design and optimization of deep machine learning models, as well as the analysis of these models on embedded devices.
The course provides an introduction to the current research trends in the area of smartphones. The course will be based on a programming project, where students will form groups of two to develop a smartphone app for Android. To program a smartphone app, a developer needs to be familiar with (1) the signals and data that smartphones can gather, and (2) the mathematical tools necessary to process this data. This course will provide a solid background for the above two points. During the workshops we will analyze the latest research papers on this emerging field. We will dissect these papers to understand how techniques from algorithms, signal processing, and machine learning are used to develop some exciting applications. The students will then use these basic technical tools to develop their own apps.
BSc/MSc theses that have been completed in our group can be found here.
Demos of projects completed by our students as part of Mobile Computing Lab can be viewed here.