Quais são as principais estruturas de aprendizado de máquina para microcontroladores

O aprendizado de máquina (ML) está se tornando cada vez mais importante para microcontroladores porque permite a tomada de decisões inteligentes e autônomas em sistemas embarcados. As muitas aplicações da Internet das Coisas (IoT) — muitas vezes chamadas de “dispositivos inteligentes” — só se tornam inteligentes graças ao ML.

Microcontroladores são comumente usados ​​em dispositivos de computação de ponta, onde os dados são processados ​​localmente, em vez de serem enviados para um servidor centralizado. O ML em microcontroladores permite o processamento de dados em tempo real na origem, reduzindo a latência e os requisitos de largura de banda.

Antes do surgimento de estruturas concretas de aprendizado de máquina no espaço dos microcontroladores, os modelos de ML eram usados ​​em máquinas minúsculas, otimizando manualmente algoritmos e modelos para as restrições específicas dos dispositivos microcontroladores. Desde então, o ML tornou-se muito mais customizado, principalmente para microcontroladores. A personalização é baseada em modelos específicos de aprendizagem de ML para aplicações de nicho específicas no espaço incorporado.

O TensorFlow Lite foi a primeira e mais significativa estrutura para usar ML em microcontroladores. O TensorFlow foi lançado em 2015, e o TensorFlow Lite veio logo em seguida. É voltado especificamente para dispositivos móveis e incorporados.

“TensorFlow Lite for Microcontrollers” foi projetado para executar modelos de ML em microcontroladores e outros dispositivos com apenas kilobytes de memória. Forneceu ferramentas e modelos pré-treinados que poderiam ser facilmente implantados. Isso abriu as portas para uma gama mais ampla de desenvolvedores e aplicativos em Tiny Machine Learning (TinyML, a prática de implantar modelos de ML em dispositivos incorporados ou com recursos extremamente limitados).

Hoje, muitas outras estruturas permitem a implantação de modelos de aprendizado de máquina em microcontroladores. Para um engenheiro integrado, é essencial estar familiarizado com pelo menos uma dessas estruturas, pois o ML é o futuro dos dispositivos incorporados. Depois dos servidores web e das nuvens, a maioria das outras aplicações de inteligência artificial (IA) surgirão de dispositivos incorporados. A IA também provavelmente experimentará uma mudança da computação em nuvem para a computação de ponta.

Neste artigo, discutiremos diferentes estruturas que podem ser usadas para implantar modelos de ML em microcontroladores.

Por que usar ML em microcontroladores?
O aprendizado de máquina é importante para dispositivos embarcados, especialmente IoT. A eletrônica cotidiana pode se tornar “mais inteligente” integrando diretamente modelos de ML em microcontroladores. Isso significa que eles não exigem conexão com um processador externo ou serviço em nuvem para funções como reconhecimento de fala, detecção de gestos, manutenção preditiva e outras.

A execução de modelos de ML diretamente em microcontroladores permite o processamento em tempo real com latência mínima. Isto é essencial para aplicações, incluindo sistemas críticos de segurança e dispositivos interativos com o usuário que exigem reações rápidas.

Como os microcontroladores são projetados para serem altamente eficientes em termos de energia, o que é vital para dispositivos operados por bateria, a execução de modelos de ML nesses dispositivos pode levar a economias de energia significativas em comparação com o envio de dados de e para um servidor em nuvem para processamento.

O ML em microcontroladores também resolve dois grandes desafios no caminho dos dispositivos inteligentes – segurança e privacidade:

  • Reduzindo a dependência de dispositivos em um servidor ou serviço em nuvem
  • Eliminar a necessidade de transmitir dados pela Internet aumenta a segurança e a privacidade.

Como os dados são processados ​​localmente em um dispositivo seguro, há menos chances de violação de dados. O processamento local de dados elimina ainda mais a necessidade de conectividade constante e a largura de banda que a acompanha. Isto é especialmente útil em locais onde o acesso à Internet é irregular ou inexistente.

Incorporar o aprendizado de máquina em microcontroladores é mais econômico do que configurar uma infraestrutura baseada em nuvem para processamento de dados. Isto também abre possibilidades para novas aplicações e inovações, especialmente em áreas onde a implantação tradicional de ML não é viável devido a limitações de tamanho, potência ou conectividade.

As principais estruturas de ML
O TensorFlow Lite para microcontroladores não é mais a única estrutura para implantação de aprendizado de máquina em microcontroladores. Existem vários, já que o TinyML é um dos campos que mudam mais rapidamente. Alguns dos mais significativos deles são mencionados abaixo.

1. TensorFlow Lite para microcontroladores
2. Impulso de Borda
3. MicroML
4. Cubo.AI
5. TinyMLPerf
6. TinyNN

TensorFlow Lite para microcontroladores é a estrutura mais antiga para implantação de modelos de ML em microcontroladores, que podem ser encontrados em tudo, desde wearables até dispositivos IoT. É uma extensão do TensorFlow Lite, a solução leve do Google para dispositivos móveis e incorporados. Seu tempo de execução pode caber em apenas 16 KB para alguns modelos de microcontroladores, tornando-o ideal para dispositivos alimentados por bateria ou de coleta de energia.

O TensorFlow Lite pode ser executado em microcontroladores bare-metal sem a necessidade de um sistema operacional completo, fornecendo um conjunto de modelos pré-treinados otimizados para desempenho em dispositivos com recursos limitados. Ele suporta diversas arquiteturas de microcontroladores e é facilmente integrado às configurações de hardware existentes.

No entanto, a implementação de ML em dispositivos tão restritos apresenta desafios. Os principais problemas são limitações de memória, restrições de energia e a necessidade de otimização do modelo. O TensorFlow Lite aborda isso por meio da quantização do modelo (reduzindo a precisão dos números no modelo), remoção (removendo partes do modelo que são menos críticas) e uso eficiente de aceleradores de hardware, quando disponíveis. Alguns casos de uso notáveis ​​incluem dispositivos vestíveis, dispositivos domésticos inteligentes, manutenção preditiva em IIoT, monitoramento de colheitas e monitoramento de saúde em tempo real.

Impulso de Borda é uma plataforma completa que permite aos desenvolvedores coletar dados, treinar um modelo na nuvem e, em seguida, implantá-lo em um microcontrolador. Ele integrou o TensorFlow Lite para microcontroladores e oferece uma interface fácil de usar, tornando-o adequado para quem é novo na área. Ele foi projetado para ML de borda, fornecendo ferramentas e recursos para coletar, processar e analisar dados do mundo real e, em seguida, desenvolver, treinar e implantar modelos de ML diretamente em dispositivos de borda. Esses dispositivos variam desde pequenos microcontroladores em sensores até computadores de placa única mais potentes.

Esta plataforma permite que os desenvolvedores coletem dados de várias fontes, incluindo sensores e conjuntos de dados existentes. Eles podem então projetar, treinar e validar facilmente modelos de ML nesses dados por meio de um painel. A plataforma também possui técnicas de otimização automática para garantir que os modelos sejam leves, mas eficazes para implantação na borda. Depois que um modelo é treinado, os desenvolvedores podem implantá-lo em um dispositivo de borda alvo a partir da plataforma.

Edge Impulse oferece suporte a uma extensa lista de hardware e arquiteturas. Os desenvolvedores podem testar seus modelos em tempo real e monitorar seu desempenho após a implantação, permitindo melhoria e otimização contínuas. Algoritmos de IA mais sofisticados, suporte de hardware mais amplo e integração mais profunda com serviços de nuvem para soluções híbridas de nuvem de ponta são esperados em breve.

MicroML é uma estrutura leve de aprendizado de máquina que roda diretamente em microcontroladores sem sistema operacional. Permite o processamento no dispositivo, o que é fundamental para aplicações que exigem tomada de decisões em tempo real, como veículos autônomos ou dispositivos médicos.

MicroML está à frente de uma mudança de paradigma de computação, permitindo que o ML funcione mesmo em ambientes limitados. Ao implementar diretamente a tomada de decisões inteligentes em microcontroladores, o MicroML está levando a novos nichos de aprendizado de máquina. Com os avanços nas técnicas de compressão de modelos e o desenvolvimento de microcontroladores mais poderosos, o alcance e a eficácia das aplicações MicroML só aumentarão. Além disso, à medida que a IoT continua a crescer, também aumentará a demanda por soluções inteligentes de computação de ponta, como MicroML. Embora esta seja uma solução de nicho em comparação com as outras, é adequada para diversas aplicações.

Cubo.AI, desenvolvido pela STMicroelectronics, faz parte da plataforma de software STM32Cube, um conjunto abrangente de software para microcontroladores e microprocessadores STM32. Ele permite que os desenvolvedores convertam redes neurais pré-treinadas em código C otimizado para microcontroladores STM32.

Cube.AI pega modelos de redes neurais, normalmente desenvolvidos e treinados em recursos computacionais poderosos, e os converte em um formato otimizado para microcontroladores STM32. Ele oferece suporte a modelos treinados em estruturas de ML populares, como TensorFlow e Keras, proporcionando flexibilidade aos desenvolvedores. A ferramenta otimiza os modelos para rodar nos recursos limitados dos microcontroladores (memória e poder de processamento) sem comprometer o desempenho. Cube.AI poderia suportar mais tipos de redes neurais e melhores algoritmos de otimização e oferecerá compatibilidade mais ampla com estruturas de ML emergentes no futuro.

TinyNN é uma estrutura de rede neural pequena e eficiente para microcontroladores, projetada para ser leve e facilmente portátil. O TinyNN foi projetado para ser minimalista, exigindo memória e poder de processamento mínimos, tornando-o ideal para microcontroladores de baixo custo e baixo consumo de energia. Ele se concentra em modelos de redes neurais simplificados que são suficientemente poderosos para uma variedade de tarefas, mas simples o suficiente para serem executados em microcontroladores. Ele enfatiza a eficiência no uso da memória e nos requisitos computacionais, o que é crucial para aplicativos operados por bateria ou sensíveis à energia.

Espera-se que as capacidades do TinyNN aumentem à medida que os desenvolvimentos no design de redes neurais, métodos de compressão de modelos e computação com eficiência energética abrem novas aplicações para microcontroladores.

TinyMLPerf não é uma estrutura, mas uma importante ferramenta de benchmarking. Faz parte do conjunto MLPerf para benchmarking de soluções TinyML, medindo e comparando o desempenho de modelos de ML em sistemas microcontroladores. Isso é crucial para determinar quais estruturas ou ferramentas usar.

Enquanto o MLPerf se concentra em uma ampla gama de plataformas e aplicativos de ML, o TinyMLPerf visa especificamente microcontroladores de baixo consumo de energia e com recursos limitados, comumente usados ​​em IoT e sistemas embarcados. Oferece um conjunto de testes padronizados, facilitando a comparação de diferentes soluções de ML em termos de eficiência, velocidade e tamanho. Esses benchmarks podem ser executados em hardware real, refletindo o desempenho no mundo real.

Os benchmarks normalmente funcionam executando uma série de tarefas de ML predefinidas e medindo parâmetros importantes como tempo de execução, consumo de energia e tamanho do modelo. Os resultados mostram o desempenho de uma determinada configuração sob cargas de trabalho típicas do TinyML.

TinyMLPerf cobre tarefas relevantes para TinyML, como reconhecimento de imagem, processamento de áudio e análise de dados de sensores. Ele permite que desenvolvedores e pesquisadores comparem objetivamente o desempenho de diferentes modelos de ML e plataformas de hardware em um contexto TinyML. Também ajuda a identificar os pontos fortes e fracos de diversas abordagens, orientando melhorias futuras.

Conclusão
O TensorFlow Lite for Microcontrollers foi a primeira estrutura para implantação de aprendizado de máquina em microcontroladores. Com as mudanças no cenário da IA, surgiram outras estruturas notáveis. Por exemplo, Edge Impulse é uma plataforma completa onde os desenvolvedores podem integrar as soluções de ML do TensorFlow Lite com várias plataformas de hardware e avaliar seu desempenho em tempo real.

Além disso, MicroML surgiu como uma solução para implementar modelos de ML diretamente em microcontroladores. Cube.AI está otimizando muitos modelos de ML em Tensor e Keras para microcontroladores. Além disso, TinyNN introduziu redes neurais em plataformas de microcontroladores. E o TinyMLPerf avalia o desempenho real de modelos e ferramentas de ML em vários sistemas microcontroladores.

Related Content

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.