O que é o TinyML? Uma introdução ao aprendizado de máquina minúsculo
Os modelos de aprendizado de máquina desempenham um papel importante em nossa vida diária, quer saibamos disso ou não. Ao longo de um dia comum, é provável que você interaja com algum modelo de aprendizado de máquina, já que eles estão presentes em quase todos os produtos digitais com os quais interagimos; por exemplo, serviços de mídia social, assistência pessoal virtual, mecanismos de pesquisa e filtragem de spam pelo seu serviço de hospedagem de e-mail.
Apesar dos muitos exemplos de aprendizado de máquina na vida cotidiana, ainda há várias áreas que a tecnologia não conseguiu alcançar. A causa? Muitos modelos de aprendizado de máquina, especialmente as arquiteturas de última geração (SOTA), exigem recursos significativos. Essa demanda por capacidade de computação de alto desempenho confinou vários aplicativos de aprendizado de máquina à nuvem - provedor de recursos de sistema de computador sob demanda.
Além de o treinamento desses modelos ser computacionalmente caro, a execução da inferência neles também costuma ser bastante dispendiosa. Para que o aprendizado de máquina possa expandir seu alcance e penetrar em outros domínios, é necessária uma solução que permita que os modelos de aprendizado de máquina executem inferências em dispositivos menores e com mais recursos limitados. A busca por essa solução é o que levou ao subcampo do aprendizado de máquina chamado Tiny Machine Learning (TinyML).
Neste artigo, veremos:
- Definir o TinyML e seus benefícios
- Abordar alguns aplicativos do TinyML
- Discuta os requisitos de fluxo de trabalho envolvidos nos aplicativos TinyML.
O que é o TinyML?
"As redes neurais também são chamadas de redes neurais artificiais (RNAs). A arquitetura forma a base da aprendizagem profunda, que é apenas um subconjunto da aprendizagem automática relacionado a algoritmos que se inspiram na estrutura e na função do cérebro humano. Em termos simples, as redes neurais formam a base de arquiteturas que imitam a forma como os neurônios biológicos sinalizam uns para os outros."
Fonte; Tutorial do PyTorch: Criação de uma rede neural simples
O aprendizado de máquina é um subcampo da inteligência artificial que fornece um conjunto de algoritmos. Esses algoritmos permitem que as máquinas aprendam padrões e tendências a partir de dados históricos disponíveis para prever resultados previamente conhecidos sobre os mesmos dados. No entanto, o principal objetivo é usar os modelos treinados para generalizar suas inferências além do conjunto de dados de treinamento, melhorando a precisão de suas previsões sem serem explicitamente programados.
Um desses algoritmos usados para essas tarefas são as redes neurais. As redes neurais pertencem a um subcampo do aprendizado de máquina conhecido como aprendizado profundo, que consiste em modelos que normalmente são mais caros de treinar do que os modelos de aprendizado de máquina. Você pode saber mais sobre a criação de modelos de rede neural no R em um tutorial separado.
Figura 1. Uma visualização de uma rede neural de três camadas
De acordo com o site tinyml.org, "o aprendizado de máquina minúsculo é amplamente definido como um campo de rápido crescimento de tecnologias e aplicativos de aprendizado de máquina, incluindo hardware, algoritmos e software capazes de realizar análises de dados de sensores no dispositivo com baixíssimo consumo de energia, normalmente na faixa de mW ou menos, e, portanto, possibilitando uma variedade de casos de uso sempre ativos e visando dispositivos operados por bateria".
O crescimento do TinyML nos últimos anos foi atribuído, em grande parte, ao desenvolvimento dos ecossistemas de hardware e software que o suportam. Como as técnicas podem ser implementadas em sistemas de baixo consumo de energia (ou seja, sensores, microcontroladores etc.), o aprendizado de máquina pode ser levado ao limite de forma extrema, permitindo que esses aplicativos funcionem com capacidade de resposta em tempo real. Em essência, a ideia é permitir que os profissionais de aprendizado de máquina façam mais com menos.
Mas por que isso é tão importante? Vamos dar uma olhada em por que o TinyML é atraente.
Os benefícios do TinyML
- Latência: Os dados não precisam ser transferidos para um servidor para inferência porque o modelo opera em dispositivos de borda. As transferências de dados normalmente levam tempo, o que causa um pequeno atraso. A remoção desse requisito diminui a latência.
- Economia de energia: Os microcontroladores precisam de uma quantidade muito pequena de energia, o que lhes permite operar por longos períodos sem precisar ser carregados. Além disso, não é necessária uma infraestrutura de servidor extensa, pois não há transferência de informações: o resultado é a economia de energia, recursos e custos.
- Largura de banda reduzida: É necessária pouca ou nenhuma conectividade com a Internet para a inferência. Há sensores no dispositivo que capturam dados e os processam no dispositivo. Isso significa que não há dados brutos do sensor sendo constantemente entregues ao servidor.
- Privacidade de dados: Seus dados não são mantidos em servidores porque o modelo é executado na borda. A ausência de transferência de informações para servidores aumenta a garantia de privacidade dos dados.
Casos de uso: Como o TinyML está sendo usado?
As aplicações do TinyML se estendem por uma ampla gama de setores, principalmente aqueles que dependem de redes e dados da Internet das Coisas (IoT) - A Internet das Coisas (IoT) é basicamente uma rede de itens físicos incorporados com sensores, software e outras tecnologias que se conectam e trocam dados com outros dispositivos e sistemas pela Internet.
Visão computacional, palavras de alerta visuais, localizadores de palavras-chave, manutenção preditiva, reconhecimento de gestos, manutenção de máquinas industriais, etc., são casos de uso comuns do TinyML. Vamos também dar uma olhada em alguns setores em que o TinyML tem sido usado para alimentar aplicativos:
Agricultura
Os dados da agricultura e da pecuária em tempo real podem ser monitorados e coletados usando dispositivos TinyML. A Imagimob, empresa sueca de produtos de IA de ponta, criou uma plataforma de desenvolvimento para aprendizado de máquina em dispositivos de ponta. Cinquenta e cinco organizações de toda a União Europeia colaboraram com a Imagimob para aprender como o TinyML pode oferecer um gerenciamento eficiente de colheitas e gado.
Manutenção preditiva industrial
O TinyML pode ser implantado em dispositivos de baixo consumo de energia para monitorar continuamente as máquinas em busca de defeitos e prever problemas antes que eles ocorram; esse tipo de aplicativo tem o potencial de ajudar as empresas a reduzir os custos que geralmente surgem de máquinas com defeito.
Um excelente exemplo de manutenção preditiva é a Ping Services. Eles desenvolveram um dispositivo de monitoramento para monitorar continuamente a assinatura acústica das pás das turbinas eólicas para detectar e notificar qualquer alteração ou dano. De acordo com o site da Ping, "os operadores de monitoramento contínuo podem dar uma resposta oportuna a danos nas pás, reduzindo os custos de manutenção, os riscos de falhas e o tempo de inatividade, além de melhorar o desempenho e a eficiência das turbinas eólicas".
Experiência do cliente
A personalização é uma ferramenta de marketing fundamental que os clientes exigem à medida que suas expectativas aumentam. A ideia é que as empresas entendam melhor seus clientes e os direcionem com anúncios e mensagens que correspondam ao seu comportamento. A implantação de aplicativos TinyML de borda permite que as empresas compreendam os contextos dos usuários, inclusive seu comportamento.
Requisitos de fluxo de trabalho
Muitas ferramentas e arquiteturas implementadas em fluxos de trabalho tradicionais de aprendizado de máquina são usadas na criação de aplicativos para dispositivos de borda. A principal diferença é que o TinyML permite que esses modelos executem várias funções em dispositivos menores.
O Tensorflow Lite para microcontroladores (TF Lite Micro) é uma das estruturas mais populares para aprendizado de máquina em dispositivos de borda; ele foi projetado especificamente para a tarefa de implementar o aprendizado de máquina em sistemas incorporados com apenas alguns kilobytes de memória.
O Python costuma ser a linguagem preferida para a criação de modelos de aprendizado de máquina. No entanto, o TensorFlow Lite permite desenvolver facilmente modelos em C, C++ ou Java e implantá-los sem se conectar à Internet.
Do ponto de vista do hardware, é necessário ter uma placa de microcontrolador compatível para começar a usar o TinyML in TF Lite; a biblioteca atualmente é compatível com os seguintes microcontroladores:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- Kit de descoberta STM32F746
- Adafruit EdgeBadge
- Kit Adafruit TensorFlow Lite para microcontroladores
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Terminal Wio: ATSAMD51
- Placa de desenvolvimento de endpoint AI Himax WE-I Plus EVB
- Synopsys DesignWare ARC EM Software Development Platform
- Sony Spresense
Com o suporte do TinyML, é possível aumentar a inteligência de bilhões de dispositivos que usamos todos os dias, como eletrodomésticos e dispositivos de IoT, sem gastar uma fortuna em hardware caro ou em conexões de Internet confiáveis, que são frequentemente limitadas por largura de banda e potência e produzem latência significativa.
Recursos de aprendizado
- Fundação TinyML
- Tiny ML: Aprendizado de máquina com Tensorflow Lite em Arduino e microcontroladores de ultrabaixo consumo (Livro)
- Aprendizado de máquina incorporado em dispositivos de borda (Podcast)
- Entendendo o aprendizado de máquina
- Introdução à aprendizagem profunda em Python
- Tutorial de aprendizagem profunda
Resumo
O TinyML vem ganhando força em vários setores nos últimos anos devido ao desenvolvimento de ecossistemas de hardware e software que o suportam. A ferramenta possibilitou a implementação de modelos de aprendizado de máquina em sistemas de baixo consumo de energia, como microcontroladores, o que abre as portas para várias novas oportunidades. A baixa latência, a economia de energia, a privacidade dos dados e a ausência de dependências de conexão são alguns dos fatores que tornam o TinyML tão atraente para os desenvolvedores que buscam desenvolver aplicativos para dispositivos da Internet das Coisas (IoT).
Perguntas frequentes
O que é o aprendizado de máquina minúsculo (TinyML)?
O TinyML é um tipo de aprendizado de máquina que permite que os modelos sejam executados em dispositivos menores e menos potentes. Ele envolve hardware, algoritmos e software que podem analisar dados de sensores nesses dispositivos com consumo de energia muito baixo, o que o torna ideal para casos de uso sempre ativos e dispositivos operados por bateria.
Quais são os benefícios do TinyML?
Os benefícios do TinyML incluem latência reduzida, economia de energia, largura de banda reduzida e privacidade de dados aprimorada. O TinyML permite que os dados sejam processados em dispositivos de borda, eliminando a necessidade de transferências de dados para um servidor, o que pode causar atrasos. O TinyML também requer muito menos energia do que os modelos tradicionais de aprendizado de máquina, o que permite que ele funcione por longos períodos sem precisar ser carregado.
Para que o TinyML é usado?
O TinyML pode ser usado em uma ampla gama de setores, incluindo agricultura, manutenção preditiva industrial e experiência do cliente. Ele também pode ser usado para visão computacional, wake words visuais, localizadores de palavras-chave, reconhecimento de gestos e muito mais.
Quais são os requisitos de fluxo de trabalho para aplicativos TinyML?
Os requisitos de fluxo de trabalho dos aplicativos TinyML são semelhantes aos dos fluxos de trabalho tradicionais de aprendizado de máquina. No entanto, o TinyML permite que esses modelos executem várias funções em dispositivos menores. O TensorFlow Lite para microcontroladores (TF Lite Micro) é uma das estruturas mais populares para aprendizado de máquina em dispositivos de borda e foi projetado especificamente para a tarefa de implementar o aprendizado de máquina em sistemas incorporados com apenas alguns kilobytes de memória.
Quais são alguns recursos de aprendizado para o TinyML?
Alguns recursos de aprendizado para o TinyML incluem a TinyML Foundation, o livro "Tiny ML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers" e o podcast "Embedded Machine Learning on Edge Devices,". O DataCamp também tem muitos recursos, como este tutorial de aprendizagem profunda, este curso sobre como entender a aprendizagem de máquina e muito mais neste hub Aprenda IA.
blog
8 modelos de aprendizado de máquina explicados em 20 minutos
blog
O que é aprendizado de máquina? Definição, tipos, ferramentas e muito mais
blog
O que é aprendizado de máquina on-line?
blog
O que é aprendizagem incremental?
blog
25 projetos de aprendizado de máquina para todos os níveis
tutorial