Traditionally, data from cameras or sensors was sent to the cloud, where machine learning models, typically deep neural networks (DNNs), were run over the data. However, sending data to the cloud adds delays and raises privacy concerns. To address these issues, recent efforts have targeted running such models on the camera or sensor itself. However, these devices tend to be less well-provisioned than the cloud in terms of resources (e.g., compute, memory, energy), so recent work aims to lower the resource usage of running DNNs. In this project, we focus on how DNNs use energy. Typically, DNNs drain energy quickly, making them challenging to run on low-power devices. We specifically focus on energy-harvesting devices (e.g., powered by solar panels) and seek to understand how such devices can be optimized for resource-intensive machine learning tasks.
The first goal is for students to gain a detailed understanding of how each part of the machine learning pipeline uses energy. To do this, students will set up and build an autonomous camera system using a low power device (Raspberry Pi) attached to solar panels. They will profile their camera system while running common computer vision models to assess energy usage. Students can start by feeding existing images through the Raspberry Pi and later connect a camera. The second goal is for students to build a system that guides the energy-harvesting device to optimally use available energy.
Essay prompt: Please write 1-2 paragraphs explaining why this area of research interests you, what you hope to gain from this summer, and any questions you have about this area.
While machine learning is seeing explosive growth, it's often extremely difficult and expensive to use in real-world scenarios. For example, while computer vision models are getting increasingly robust, they're also getting larger and slower, making them less suitable for tasks such as self-driving cars. The SysML lab applies topics from computer systems to solve such problems in machine learning usability. We look at monitoring resource usage and ways to optimize the end-to-end machine learning pipeline to make deployment more feasible.