O que é TinyML?

O que é TinyML?

A ciência de dados não permaneceu apenas um campo de computação e pesquisa científica. No mundo conectado à Internet, a ciência de dados, o aprendizado de máquina e a inteligência artificial são muito mais aplicáveis ​​do que jamais se imaginou. Sem dúvida, o primeiro salto nas aplicações práticas da aprendizagem automática e da inteligência artificial aconteceu quando os websites empresariais, incluindo plataformas de redes sociais, portais de comércio eletrónico e websites de streaming de vídeo, perceberam que precisavam de informações significativas a partir dos dados e comportamento dos utilizadores. Foi quando as grandes empresas de tecnologia começaram a usar ML e IA em seus servidores web e infraestruturas em nuvem. A inteligência artificial tem consumido muitos recursos computacionais e os servidores mal têm recursos computacionais suficientes para executar aplicativos apoiados por IA 24 horas por dia, 7 dias por semana.

Arduino Nano 33 BLE Sense para TinyMLEntão, os smartphones se tornaram um fenômeno global, e o conceito de aplicação de inteligência artificial a dispositivos de ponta teve seu início. Até os smartphones tinham recursos de hardware suficientes para executar modelos de aprendizado de máquina. Esses computadores de bolso são cobrados regularmente, pois têm esse tipo de uso. O Android da Alphabet Inc. (Google) e o iOS da Apple emergiram como os sistemas operacionais móveis mais populares em todo o mundo. Vários aplicativos foram desenvolvidos para esses sistemas operacionais móveis que usavam inerentemente algoritmos de aprendizado de máquina.

Ao mesmo tempo, o Google também estava trabalhando em um projeto interno para desenvolver uma estrutura de aprendizado de máquina que pudesse ser executada em dispositivos de borda de baixo consumo de energia, com recursos limitados e baixa largura de banda, tendo microcontroladores de 32 bits ou processadores de sinal digital em seu coração. O resultado deste projeto é o TensorFlow Lite.

O Tensorflow Lite introduziu o conceito de minúsculo aprendizado de máquina ou TinyML. TinyML é um termo cunhado por Pete Warden, líder de engenharia do TensorFlow Lite no Google. Em termos gerais, TinyML refere-se à aplicação de aprendizado de máquina em uma pequena área ocupada por alguns kilobytes em plataformas incorporadas que possuem consumo de energia ultrabaixo, alta latência (internet), RAM e memória flash limitadas. Atualmente, TensorFlow Lite é sinônimo de TinyML, pois não existe outra estrutura de aprendizado de máquina para microcontroladores. O TensorFlow Lite foi desenvolvido para rodar em Android, iOS, Embedded Linux e microcontroladores. Atualmente, a única referência para TinyML é o livro de Pete Warden e Daniel Situnayake “TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers” publicado em 2020 e a documentação do Tensorflow Lite.

O que é TinyML?
Atualmente, podemos definir TinyML como um subcampo de aprendizado de máquina que aplica modelos de aprendizado de máquina e aprendizado profundo a sistemas embarcados executados em microcontroladores, processadores de sinal digital ou outros processadores especializados de baixíssimo consumo de energia. Tecnicamente, esses sistemas embarcados devem ter um consumo de energia inferior a 1 mW para que possam funcionar por semanas, meses ou até anos sem recarga ou substituição de bateria.

Freqüentemente, esses sistemas embarcados são dispositivos IoT que permanecem conectados à Internet. Os dispositivos incorporados habilitados para TinyML são projetados para executar algum algoritmo de aprendizado de máquina para uma tarefa específica – geralmente uma parte da computação de ponta dentro do dispositivo.

Um modelo de aprendizado de máquina TinyML em execução no sistema geralmente tem alguns kilobytes de tamanho e executa uma função cognitiva específica, como reconhecer uma palavra de ativação, identificar pessoas ou objetos ou obter insights de dados de um sensor específico. Com o modelo de aprendizado de máquina TinyML funcionando 24 horas por dia, 7 dias por semana, o dispositivo ainda deve ter consumo de energia na faixa de miliwatts ou microwatts. Os seguintes recursos caracterizam um aplicativo TinyML:

  1. Ele é executado em um microcontrolador, processador de sinal digital, microcomputador de baixo consumo que hospeda Linux embarcado ou uma plataforma móvel com RAM, memória flash e energia de bateria explicitamente limitadas para implementar um modelo de aprendizado de máquina.
  2. Ele é executado em dispositivos de consumo de energia ultrabaixo com consumo de energia em mW ou µW enquanto deriva inferências do modelo de aprendizado de máquina em execução 24 horas por dia, 7 dias por semana.
  3. Deve estar implementando aprendizado de máquina na borda da rede, portanto não necessitando de transferência ou troca de dados com nuvem ou servidor, ou seja, o modelo de aprendizado de máquina deve ser executado dentro do dispositivo de borda sem qualquer necessidade de comunicação de dados pela rede. A rede usada pelo dispositivo deve ser usada apenas para comunicar resultados de inferências do modelo de aprendizado de máquina para um servidor/nuvem/controlador, se necessário.
  4. O modelo de aprendizado de máquina TinyML deve ocupar um espaço mínimo, normalmente algumas dezenas de kilobytes, para ser executado em microcontroladores e microcomputadores.

Como funciona o TinyML
TensorFlow Lite é a única estrutura de aprendizado de máquina executada em microcontroladores e microcomputadores. O TensorFlow Lite é, na verdade, uma estrutura de aprendizado profundo que usa redes neurais recorrentes (RNN) para aprendizado de máquina.

A interface do microcontrolador captura os dados dos sensores (como microfones, câmeras ou sensores incorporados). Esses dados são fornecidos a um modelo de aprendizado de máquina treinado em uma plataforma em nuvem antes de serem transferidos para o microcontrolador.

O treinamento para esses modelos geralmente é um treinamento em lote no modo offline. Os dados do sensor que devem ser utilizados para aprender e derivar inferências já estão determinados de acordo com a aplicação específica. Por exemplo, se o modelo tiver que ser treinado para reconhecer uma palavra de ativação, ele já está projetado para processar um fluxo contínuo de áudio de um microfone. A seleção do conjunto de dados, a normalização, underfitting ou overfitting do modelo, regularização, aumento de dados, treinamento, validação e teste, tudo já é feito com a ajuda de uma plataforma em nuvem como o Google Colab no caso do TensorFlow Lite. Após o treinamento em lote offline, um modelo totalmente treinado é finalmente convertido e portado para o microcontrolador, microcomputador ou processador de sinal digital.

Uma vez portado para um sistema embarcado, o modelo não necessita mais treinamento. Em vez disso, ele consome apenas dados em tempo real de sensores ou dispositivos de entrada e aplica o modelo a esses dados. Portanto, um modelo de aprendizado de máquina TinyML precisa ser altamente robusto e pode ser retreinado após anos ou nunca ser retreinado. Todas as possibilidades de underfitting e overfitting do modelo precisam ser verificadas para que o modelo permaneça relevante por um período muito longo ou, idealmente, indefinidamente. É por isso que os modelos de aprendizado de máquina TinyML geralmente passam por um rigoroso procedimento de treinamento, teste e validação antes da conversão. A relevância do modelo depende em grande parte da seleção do conjunto de dados correto e apropriado e da normalização e regularização adequadas do conjunto de dados.

Por que TinyML?
O TinyML começou como uma iniciativa para erradicar ou reduzir a dependência da IoT em plataformas de nuvem para tarefas simples de aprendizado de máquina em pequena escala. Isso exigiu a implementação de modelos de aprendizado de máquina nos próprios dispositivos de ponta. TinyML oferece as seguintes vantagens notáveis:

  1. Pouco espaço ocupado: um modelo de aprendizado de máquina TinyML tem apenas algumas dezenas de kilobytes de tamanho. Isso pode ser facilmente portado para qualquer microcontrolador, DSP ou dispositivo de microcomputador.
  2. Baixo consumo de energia: Idealmente, um aplicativo TinyML deve consumir menos de 1 miliwatt de energia. Um dispositivo pode continuar derivando inferências dos dados do sensor por meses ou anos com um consumo de energia tão pequeno, mesmo que uma bateria tipo moeda o alimente.
  3. Baixa latência: um aplicativo TinyML não requer transferência ou troca de dados pela rede. Todos os dados dos sensores nos quais ele trabalha são capturados localmente e um modelo já treinado é aplicado a eles para derivar inferências. O resultado das inferências pode ser transferido para um servidor ou nuvem para registro ou processamento posterior, mas a troca de dados não é necessária para o funcionamento do dispositivo. Isso reduz a latência da rede e erradica a dependência de uma nuvem ou servidor para tarefas de aprendizado de máquina.
  4. Largura de banda baixa: idealmente, um aplicativo TinyML não requer comunicação com uma nuvem ou servidor. Mesmo que a conexão com a Internet seja usada, ela será usada para outras tarefas além do aprendizado de máquina. A conexão com a internet só pode comunicar inferências a uma nuvem/servidor. Isso não afeta a tarefa incorporada principal ou a tarefa de aprendizado de máquina executada pelo dispositivo de borda. Portanto, o aparelho consegue manter seu pleno funcionamento mesmo em internet com pouca largura de banda ou sem internet.
  5. Privacidade: A privacidade é um problema significativo na IoT. Em aplicativos TinyML, a tarefa de aprendizado de máquina é executada localmente sem armazenar ou transferir dados do sensor/usuário para um servidor/nuvem. Portanto, esses aplicativos são seguros para uso mesmo se estiverem conectados a uma rede e não apresentam problemas de privacidade.
  6. Baixo custo: o TinyML foi projetado para rodar em microcontroladores ou DSPs de 32 bits. Esses microcontroladores geralmente custam alguns centavos, e todo o sistema embarcado construído a partir deles custa menos de US$ 50. Esta é uma solução muito econômica para executar pequenas aplicações de aprendizado de máquina em larga escala e é particularmente útil quando o aprendizado de máquina precisa ser aplicado em aplicações de IoT.

Como começar?
Para começar com o TinyML no TensorFlow Lite, em primeiro lugar, você precisa de uma placa microcontroladora compatível. A biblioteca TensorFlow Lite for Microcontrollers tem suporte para os seguintes microcontroladores:

  1. Arduino Nano 33 BLE Sense
  2. Borda SparkFun
  3. Kit de descoberta STM32F746
  4. Adafruit EdgeBadge
  5. Kit Adafruit TensorFlow Lite para Microcontroladores
  6. Circuito Adafruit Parque Infantil Bluefruit
  7. Espressif ESP32-DevKitC
  8. Espressif ESP-EYE
  9. Terminal Wio: ATSAMD51
  10. Placa de desenvolvimento Himax WE-I Plus EVB Endpoint AI
  11. Plataforma de desenvolvimento de software Synopsys DesignWare ARC EM
  12. Sony Spresense

Para executar um modelo de aprendizado de máquina, são microcontroladores de 32 bits com memória flash, RAM e frequência de clock suficientes. As placas também vêm com vários sensores integrados que podem executar qualquer aplicativo incorporado e aplicar modelos de aprendizado de máquina à aplicação pretendida.

Além de uma plataforma de hardware, você precisa de um laptop ou computador para projetar um modelo de aprendizado de máquina. Diferentes ferramentas de programação estão disponíveis para cada plataforma de hardware que utiliza a biblioteca TensorFlow Lite for Microcontrollers para construir, treinar e portar modelos de machine learning. O TensorFlow Lite é de código aberto e pode ser usado e modificado sem nenhuma taxa de licença. Para começar com o TinyML usando o TensorFlow Lite, você precisa apenas de uma das plataformas de hardware incorporadas listadas acima, um computador/laptop, um cabo USB, um conversor USB para serial — e uma determinação para aprender aprendizado de máquina com sistemas embarcados.

Modelos de aprendizado de máquina compatíveis com TinyML
A biblioteca do TensorFlow Lite para microcontroladores oferece suporte a um subconjunto limitado de operações de aprendizado de máquina. Essas operações podem ser vistas em all_ops_resolver.cc. O TensorFlow Lite também hospeda alguns exemplos de modelos de aprendizado de máquina no link a seguir que podem ser usados ​​diretamente para fins de aprendizado ou desenvolvimento de um aplicativo incorporado com tecnologia de aprendizado de máquina. Esses modelos de exemplo incluem classificação de imagens, detecção de objetos, estimativa de pose, reconhecimento de fala, reconhecimento de gestos, segmentação de imagens, classificação de texto, recomendação no dispositivo, resposta a perguntas em linguagem natural, classificador de dígitos, transferência de estilo, resposta inteligente, super-resolução, classificação de áudio , aprendizado por reforço, reconhecimento óptico de caracteres e treinamento no dispositivo.

Exemplos de TinyML
Além dos modelos de aprendizado de máquina hospedados no TensorFlow Lite, os exemplos clássicos da biblioteca TensorFlow Lite para microcontroladores – Hello World, Micro Speech, Magic Wand e Person Detection – são bons pontos de partida para explorar o TinyML. Esses exemplos podem ser acessados ​​na documentação do TensorFlow Lite e no livro sobre TinyML escrito por Pete Warden e Daniel Situnayake.

Aplicações do TinyML
Embora o TinyML ainda esteja em sua infância, ele já encontrou aplicações práticas em muitas áreas, incluindo:

Automação Industrial: O TinyML pode ser usado para tornar a fabricação mais inteligente, por exemplo, usando manutenção preditiva de máquinas e otimizando as operações das máquinas para maior produtividade. O TinyML também pode melhorar o desempenho da máquina para melhorar a qualidade do produto e detectar precocemente falhas e imperfeições em um produto de fabricação.

Agricultura: TinyML pode ser usado para detectar doenças e pragas em plantas. Como o TinyML opera independentemente de uma conexão com a Internet, ele pode implementar perfeitamente a automação e a IoT em fazendas agrícolas.

Saúde: o TinyML já está em uso para a detecção precoce de doenças transmitidas por mosquitos. Também pode ser usado em dispositivos de fitness e equipamentos de saúde.

Varejo: TinyML pode ser usado para automatizar o gerenciamento de estoque em lojas de varejo. Um aplicativo TinyML pode rastrear itens nas prateleiras das lojas e enviar um alerta antes que eles fiquem fora de estoque com câmeras habilitadas para IA. Também pode ajudar a derivar inferências sobre as preferências dos clientes no setor retalhista.

Transporte: os aplicativos TinyML podem ser usados ​​para monitorar o tráfego e detectar engarrafamentos. Esse aplicativo pode ser combinado com o gerenciamento de semáforos para otimizar o tráfego em tempo real. Também pode ser usado para detecção de acidentes para fazer alertas automáticos para o centro de trauma mais próximo.

Aplicação da lei: o TinyML pode ser usado para detectar atividades ilegais, como tumultos e roubos, usando aprendizado de máquina e reconhecimento de gestos. Um aplicativo semelhante também pode ser usado para segurança de caixas eletrônicos de bancos. Um modelo TinyML pode prever se o usuário é um cliente genuíno que faz uma transação ou um intruso tentando hackear ou quebrar o caixa eletrônico, monitorando a atividade do usuário.

Conservação da vida oceânica: os aplicativos TinyML já estão em uso para monitoramento em tempo real de baleias nas hidrovias de Vancouver e Seattle, para evitar que as baleias atinjam cursos de água movimentados. Aplicações semelhantes podem monitorar a caça furtiva, a mineração ilegal e o desmatamento. Os dispositivos TinyML também podem ser implantados para monitorar o bem-estar dos recifes de coral.

Futuro do TinyML
Com uma pegada pequena, baixo consumo de energia e nenhuma ou limitada dependência da conectividade com a Internet, o TinyML tem um escopo enorme no futuro, onde uma grande parte da inteligência artificial restrita será implementada em dispositivos de ponta ou dispositivos incorporados autônomos. O TinyML aproveitará os aplicativos IoT e os tornará mais privados e seguros. Embora atualmente o TensorFlow Lite seja a única estrutura de aprendizado de máquina para microcontroladores e microcomputadores, algumas outras estruturas semelhantes, como uTensor e CMSIS-NN da ARM, estão em desenvolvimento. Embora o TensorFlow Lite seja um projeto de código aberto em desenvolvimento que teve um ótimo começo com a equipe do Google, ele ainda requer iniciativa da comunidade para se tornar popular.

Conclusão
O próprio TinyML é uma ideia revolucionária que combina sistemas embarcados com aprendizado de máquina. A tecnologia pode emergir como um subcampo importante no aprendizado de máquina e na inteligência artificial à medida que a IA estreita atinge o pico em vários setores e domínios. TinyML oferece uma solução para muitos problemas enfrentados atualmente pela indústria de IoT e pelos especialistas que aplicam aprendizado de máquina em vários campos específicos de domínio. A ideia de usar o aprendizado de máquina em dispositivos de ponta com pegada computacional e consumo de energia mínimos pode trazer uma mudança significativa na forma como os sistemas embarcados e os robôs são projetados. As estruturas atuais exigem mais apoio da comunidade e dos projetistas de chips. O TinyML está destinado a se tornar popular à medida que o hardware e as ferramentas e bibliotecas de programação suportadas se expandem em breve.

Conteúdo Relacionado

Uma rede de sensores é incorporada em todos os...
O controlador do motor é um dos componentes mais...
ESP32-CAM é um módulo de câmera compacto que combina...
A evolução dos padrões USB foi fundamental para moldar...
A SCHURTER anuncia um aprimoramento para sua conhecida série...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Você provavelmente já se deparou com o termo 'arrastar'...
Você provavelmente tem um Isolador de suporte Se você...
Você provavelmente já viu permanecer um isolante sente-se em...
Você provavelmente já viu Isoladores de manilha entronizados em...
Você provavelmente já passou por situações em que o...
Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.