Evaluating classification models for resource-constrained hardware

Detalhes bibliográficos
Autor(a) principal: Silva, Lucas Tsutsui da
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