course_tinyML

Curso de aprendizado de máquina em sistemas embarcados

Tiny Machine Learning - TinyML

Professora: Rosana Rego

Este repositório abriga uma coleção de slides, material de leitura, solicitações de projetos e exemplos para você começar a criar seu próprio projeto de aprendizado de máquina em sistema embarcado.

Pré requisitos

Os alunos devem estar familiarizados com os seguintes tópicos para completar os exemplos de perguntas e tarefas práticas:

Hardware e Software Necessários

Os alunos precisarão de um computador e acesso à Internet para realizar treinamento em modelo de aprendizado de máquina e exercícios práticos com o Edge Impulse Studio e o Google Colab.

Cronograma de Estudos

Material de apoio


Módulo 1: Machine Learning Embarcado

Este módulo fornece uma visão geral do aprendizado de máquina e como ele pode ser usado para resolver problemas. Ele também introduz a ideia de executar algoritmos de aprendizado de máquina em dispositivos com recursos limitados, como microcontroladores.

Material
ID Descrição Links Fonte
1.1.1 O que é machine learning video slides [1]
1.1.2 Machine learning em sistemas embarcados video slides [1]
1.1.3 O que é tiny machine learning slides [3]

Módulo 2: Iniciando com Deep Learning

Este módulo fornece uma visão geral das redes neurais e como elas podem ser usadas para fazer previsões.

ID Description Links Attribution
2.1.1 O paradigma do aprendizado de máquina slides [3]
2.1.2 Pensando na perda slides [3]
2.1.3 Minimizando perdas slides [3]
2.1.5 Primeira rede neural slides [3]

Módulo 3: Fluxo de trabalho com Machine Learning

Neste módulo, os alunos compreenderão como os dados são coletados e usados para treinar um modelo de aprendizado de máquina. Eles terão a oportunidade de coletar seu próprio conjunto de dados, carregá-lo no Edge Impulse e treinar um modelo usando a interface gráfica. A partir daí, eles aprenderão como avaliar um modelo usando uma matriz de confusão para calcular precisão, recall, exatidão e pontuações F1.

Material

ID Descrição Links Fonte
3.1.1 Aplicações TinyML slides [3]
3.1.3 Ciclo de vida do Machine learning slides [3]
3.1.3 Coletando dados com Edge Impulse video slides [1]

Treinando e validando o modelo de ML

ID Descrição Links Fonte
3.2.1 Extração de recursos (features) video slides [1]
3.2.2 Seleção de features com Edge Impulse video tutorial [1]
3.2.3 Machine learning pipeline video slides [1]
3.2.4 Treinamento do modelo no dge impulse video slides [1]
3.2.5 Como avaliar um model video slides [1]
3.3.6 Underfitting e overfitting video slides [1]

Módulo 4: Implantação de modelos

Este módulo aborda as etapas para implantar um modelo de machine learning treinado no Edge Impulse em uma placa Arduino.

Microcontroladores embarcados

Material
ID Descrição Links Fonte
4.1.1 Sistemas embarcados slides [3]
4.1.2 Arduino Nano 33 BLE Sense doc [3]
4.1.3 Hardware de computação embarcado slides [3]
4.1.4 Microcontroladores doc [3]
4.1.5 TinyML kit peripherals slides [3]
4.1.6 Software de ML embarcados slides [3]

Implantando um modelo em uma placa Arduino

Material
ID Descrição Links Fonte
4.2.1 Usando um modelo para inferência video slides [1]
4.2.2 Testando inferência com um smartphone video [1]
4.2.3 Implantar modelo no Arduino video slides [1]
4.2.4 Implantar modelo no Arduino tutorial  

Módulo 5: Classificação de imagens com aprendizado profundo

Este módulo apresenta o conceito de classificação de imagens, por que ela é importante no aprendizado de máquina e como pode ser usada para resolver problemas. São abordadas operações de convolução e pooling, que formam os blocos de construção para redes neurais convolucionais (CNNs).

Classificação de imagens

Material
ID Descrição Links Fonte
5.1.1 O que é visão computacional? video [2]
5.1.2 Visão geral das imagens digitais video [2]
5.1.3 Coleta de conjunto de dados video [2]
5.1.4 Visão geral da classificação de imagens video [2]
5.1.5 Treinando um classificador de imagens com Keras video [2]

Convolutional Neural Network (CNN)

Material
ID Descrição Links Fonte
5.2.1 Convolução de imagem video [2]
5.2.2 Camada de pooling video [2]
5.2.3 Rede neural convolucional video [2]
5.2.4 CNN no keras slides [3]
5.2.5 Treinando uma CNN no Edge Impulse video doc [2]

Analisando CNNs, Data Augmentation e aprendizagem por transferência (transfer learning)

Material
ID Descrição Links Fonte
5.3.1 Visualizações da CNN video [2]
5.3.2 Data augmentation video [2]
5.3.3 Evitando overfitting com aumento de dados slides [3]
5.3.4 Explorando funções de perda e otimizadores doc [3]
5.3.5 Transferir aprendizagem e MobileNet video [2]
5.3.6 Transfer learning com Edge Impulse video slides [2]

Fontes

[1] Slides and written material for “Introduction to Embedded Machine Learning” by Edge Impulse is licensed under CC BY-NC-SA 4.0

[2] Slides and written material for “Computer Vision with Embedded Machine Learning” by Edge Impulse is licensed under CC BY-NC-SA 4.0

[3] Slides and written material for “TinyML Courseware” by Prof. Vijay Janapa Reddi of Harvard University is licensed under CC BY-NC-SA 4.0


UFERSA - Campus Pau dos Ferros