Evaluating classification models for resource-constrained hardware
Autor(a) principal: | |
---|---|
Data de Publicação: | 2020 |
Tipo de documento: | Dissertação |
Idioma: | eng |
Título da fonte: | Biblioteca Digital de Teses e Dissertações da USP |
Texto Completo: | https://www.teses.usp.br/teses/disponiveis/55/55134/tde-11112020-180216/ |
Resumo: | Machine Learning (ML) is becoming a ubiquitous technology employed in many real-world applications in diverse areas such as agriculture, human health, entomology, and engineering. In some applications, sensors measure the environment while supervised ML algorithms are responsible for interpreting these data to make an automatic decision. Generally, these devices face three main restrictions: power consumption, cost, and lack of infrastructure. Most of these challenges can be better addressed by embedding ML classifiers in the hardware that senses the environment. Thus, we need highly-efficient classifiers suitable to execute in unresourceful hardware. However, this scenario conflicts with the state-of-practice of ML, in which classifiers are frequently implemented in high-level interpreted languages (e.g., Java or Python), make unrestricted use of floating-point operations and assume plenty of resources such as memory, processing and energy. In this work, we present a software tool named Embedded Machine Learning (EmbML) that implements a pipeline to develop classifiers for low-power microcontrollers. This pipeline starts with learning a classifier in a desktop or server computer using popular software packages or libraries as WEKA or scikit-learn. EmbML converts the classifier into a carefully crafted C++ code with support for resource-constrained hardware, such as the avoidance of unnecessary use of main memory and implementation of fixed-point operations for non-integer numbers. Our experimental evaluation on benchmark datasets and a variety of microcontrollers shows that EmbML classifiers achieve competitive results in terms of accuracy, classification time, and memory cost. Compared to classifiers from some existing related tools, ours achieved the best time and memory performances in at least 70% of the cases. Lastly, we conduct experiments in a real-world application to describe the complete pipeline for using EmbML and assessing its classifiers with an intelligent trap to classify and capture flying insects. |
id |
USP_545deb1b183cf4527ba6a6f24ddc1d78 |
---|---|
oai_identifier_str |
oai:teses.usp.br:tde-11112020-180216 |
network_acronym_str |
USP |
network_name_str |
Biblioteca Digital de Teses e Dissertações da USP |
repository_id_str |
2721 |
spelling |
Evaluating classification models for resource-constrained hardwareAvaliação de modelos de classificação para hardware com limitação de recursosAprendizado de máquinaClassificaçãoClassificador embarcadoClassificationEmbedded classifierMachine learningScikit- learnScikit-learnWEKAWEKAMachine Learning (ML) is becoming a ubiquitous technology employed in many real-world applications in diverse areas such as agriculture, human health, entomology, and engineering. In some applications, sensors measure the environment while supervised ML algorithms are responsible for interpreting these data to make an automatic decision. Generally, these devices face three main restrictions: power consumption, cost, and lack of infrastructure. Most of these challenges can be better addressed by embedding ML classifiers in the hardware that senses the environment. Thus, we need highly-efficient classifiers suitable to execute in unresourceful hardware. However, this scenario conflicts with the state-of-practice of ML, in which classifiers are frequently implemented in high-level interpreted languages (e.g., Java or Python), make unrestricted use of floating-point operations and assume plenty of resources such as memory, processing and energy. In this work, we present a software tool named Embedded Machine Learning (EmbML) that implements a pipeline to develop classifiers for low-power microcontrollers. This pipeline starts with learning a classifier in a desktop or server computer using popular software packages or libraries as WEKA or scikit-learn. EmbML converts the classifier into a carefully crafted C++ code with support for resource-constrained hardware, such as the avoidance of unnecessary use of main memory and implementation of fixed-point operations for non-integer numbers. Our experimental evaluation on benchmark datasets and a variety of microcontrollers shows that EmbML classifiers achieve competitive results in terms of accuracy, classification time, and memory cost. Compared to classifiers from some existing related tools, ours achieved the best time and memory performances in at least 70% of the cases. Lastly, we conduct experiments in a real-world application to describe the complete pipeline for using EmbML and assessing its classifiers with an intelligent trap to classify and capture flying insects.Aprendizado de Máquina (AM) está se tornando uma tecnologia ubíqua empregada em muitas aplicações do mundo real em diversas áreas, como agricultura, saúde, entomologia e engenharia. Em algumas aplicações, sensores monitoram o ambiente, enquanto algoritmos de AM supervisionado são responsáveis por interpretar os dados para tomar uma decisão automática. Geralmente, esses dispositivos enfrentam três restrições principais: consumo de energia, custo e falta de infraestrutura. A maioria desses desafios pode ser melhor resolvida com a implementação de classificadores de AM no hardware que monitora o ambiente. Portanto, precisamos de classificadores altamente eficientes, adequados para serem executados em hardware com poucos recursos. No entanto, esse cenário entra em conflito com o estado-da-prática de AM, no qual os classificadores são frequentemente implementados em linguagens interpretadas de alto nível (e.g., Java ou Python), fazem uso irrestrito de operações de ponto flutuante e assumem muita disponibilidade de recursos, como memória, processamento e energia. Neste trabalho, apresentamos uma ferramenta de software chamada Embedded Machine Learning (EmbML) que implementa um pipeline para desenvolver classificadores para microcontroladores de baixa potência. Esse pipeline começa com o aprendizado de um classificador em um computador desktop ou servidor, utilizando pacotes ou bibliotecas de software populares como WEKA ou scikit-learn. A ferramenta EmbML converte o classificador em um código C++ adaptado com suporte para hardware com recursos limitados, como prevenção do uso desnecessário da memória principal e implementação de operações de ponto fixo para números não-inteiros. Nossa avaliação experimental com conjuntos de dados de benchmark e uma variedade de microcontroladores mostra que os classificadores da ferramenta EmbML alcançam resultados competitivos em termos de acurácia, tempo de classificação e custo de memória. Comparados aos classificadores de algumas ferramentas relacionadas existentes, os nossos obtiveram o melhor desempenho de tempo e memória em pelo menos 70% dos casos. Por fim, realizamos experimentos em uma aplicação real para descrever o pipeline completo de uso da ferramenta EmbML e avaliar seus classificadores com uma armadilha inteligente para classificar e capturar insetos alados.Biblioteca Digitais de Teses e Dissertações da USPBatista, Gustavo Enrique de Almeida Prado AlvesSilva, Lucas Tsutsui da2020-09-11info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://www.teses.usp.br/teses/disponiveis/55/55134/tde-11112020-180216/reponame:Biblioteca Digital de Teses e Dissertações da USPinstname:Universidade de São Paulo (USP)instacron:USPLiberar o conteúdo para acesso público.info:eu-repo/semantics/openAccesseng2020-11-11T23:08:02Zoai:teses.usp.br:tde-11112020-180216Biblioteca Digital de Teses e Dissertaçõeshttp://www.teses.usp.br/PUBhttp://www.teses.usp.br/cgi-bin/mtd2br.plvirginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.bropendoar:27212020-11-11T23:08:02Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)false |
dc.title.none.fl_str_mv |
Evaluating classification models for resource-constrained hardware Avaliação de modelos de classificação para hardware com limitação de recursos |
title |
Evaluating classification models for resource-constrained hardware |
spellingShingle |
Evaluating classification models for resource-constrained hardware Silva, Lucas Tsutsui da Aprendizado de máquina Classificação Classificador embarcado Classification Embedded classifier Machine learning Scikit- learn Scikit-learn WEKA WEKA |
title_short |
Evaluating classification models for resource-constrained hardware |
title_full |
Evaluating classification models for resource-constrained hardware |
title_fullStr |
Evaluating classification models for resource-constrained hardware |
title_full_unstemmed |
Evaluating classification models for resource-constrained hardware |
title_sort |
Evaluating classification models for resource-constrained hardware |
author |
Silva, Lucas Tsutsui da |
author_facet |
Silva, Lucas Tsutsui da |
author_role |
author |
dc.contributor.none.fl_str_mv |
Batista, Gustavo Enrique de Almeida Prado Alves |
dc.contributor.author.fl_str_mv |
Silva, Lucas Tsutsui da |
dc.subject.por.fl_str_mv |
Aprendizado de máquina Classificação Classificador embarcado Classification Embedded classifier Machine learning Scikit- learn Scikit-learn WEKA WEKA |
topic |
Aprendizado de máquina Classificação Classificador embarcado Classification Embedded classifier Machine learning Scikit- learn Scikit-learn WEKA WEKA |
description |
Machine Learning (ML) is becoming a ubiquitous technology employed in many real-world applications in diverse areas such as agriculture, human health, entomology, and engineering. In some applications, sensors measure the environment while supervised ML algorithms are responsible for interpreting these data to make an automatic decision. Generally, these devices face three main restrictions: power consumption, cost, and lack of infrastructure. Most of these challenges can be better addressed by embedding ML classifiers in the hardware that senses the environment. Thus, we need highly-efficient classifiers suitable to execute in unresourceful hardware. However, this scenario conflicts with the state-of-practice of ML, in which classifiers are frequently implemented in high-level interpreted languages (e.g., Java or Python), make unrestricted use of floating-point operations and assume plenty of resources such as memory, processing and energy. In this work, we present a software tool named Embedded Machine Learning (EmbML) that implements a pipeline to develop classifiers for low-power microcontrollers. This pipeline starts with learning a classifier in a desktop or server computer using popular software packages or libraries as WEKA or scikit-learn. EmbML converts the classifier into a carefully crafted C++ code with support for resource-constrained hardware, such as the avoidance of unnecessary use of main memory and implementation of fixed-point operations for non-integer numbers. Our experimental evaluation on benchmark datasets and a variety of microcontrollers shows that EmbML classifiers achieve competitive results in terms of accuracy, classification time, and memory cost. Compared to classifiers from some existing related tools, ours achieved the best time and memory performances in at least 70% of the cases. Lastly, we conduct experiments in a real-world application to describe the complete pipeline for using EmbML and assessing its classifiers with an intelligent trap to classify and capture flying insects. |
publishDate |
2020 |
dc.date.none.fl_str_mv |
2020-09-11 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
https://www.teses.usp.br/teses/disponiveis/55/55134/tde-11112020-180216/ |
url |
https://www.teses.usp.br/teses/disponiveis/55/55134/tde-11112020-180216/ |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.relation.none.fl_str_mv |
|
dc.rights.driver.fl_str_mv |
Liberar o conteúdo para acesso público. info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
Liberar o conteúdo para acesso público. |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.coverage.none.fl_str_mv |
|
dc.publisher.none.fl_str_mv |
Biblioteca Digitais de Teses e Dissertações da USP |
publisher.none.fl_str_mv |
Biblioteca Digitais de Teses e Dissertações da USP |
dc.source.none.fl_str_mv |
reponame:Biblioteca Digital de Teses e Dissertações da USP instname:Universidade de São Paulo (USP) instacron:USP |
instname_str |
Universidade de São Paulo (USP) |
instacron_str |
USP |
institution |
USP |
reponame_str |
Biblioteca Digital de Teses e Dissertações da USP |
collection |
Biblioteca Digital de Teses e Dissertações da USP |
repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP) |
repository.mail.fl_str_mv |
virginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.br |
_version_ |
1815256878913945600 |