Embedded artificial neural networks optimized for low-cost and low-size-memory devices

Detalhes bibliográficos
Ano de defesa: 2020
Autor(a) principal: Guimarães, Caio José Borba Vilar
Orientador(a): Fernandes, Marcelo Augusto Costa
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal do Rio Grande do Norte
Programa de Pós-Graduação: PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO
Departamento: Não Informado pela instituição
País: Brasil
Palavras-chave em Português:
MLP
AI
Link de acesso: https://repositorio.ufrn.br/handle/123456789/30829
Resumo: Redes Neurais Artificiais (RNAs) são sistemas bioinspirados com um alto nível de paralelização e beira a infinidade de aplicações. Entretanto, o esforço computacional associado a essa tecnologia requer que hardwares usados em suas aplicações sejam de alta capacidade de processamento, o que implica em altos custos e formatos de encapsulamento que ocupam muito espaço. Este trabalho apresenta uma implementação de uma Rede Neural Artificial (RNA) do tipo Perceptron de Multiplas Camadas (MLP) para microcontroladores µCs de 8-bits em dois cenários diferentes com trainamento e inferência embarcados. Sâo apresentadas análises de convergência de treinamento, tempo para inferência e ocupação de código-fonte nas memórias internas do microcontrolador. Uma técnica de otimização de armazenamento de pesos sinápticos na memória de programa é apresentada, com o intuito de aumentar a capacidade de aplicações de RNAs com arquiteturas maiores. O objetivo deste trabalho é apresentar uma implementação de RNA e a viabilidade deste tipo de aplicação em dispositivos de baixo custo e baixa capacidade de armazenamento em memória, conhecidos como microcontroladores. Este trabalho apresenta duas aplicações de RNA-MLP de uma operação XOR e um sistema que previne colisões para um robô virtual, analisados em três mapas virtuais. Além, disso, é implementada uma classificação de dígitos numéricos do dataset MNIST, com inferência em 1,6 segundos e 50 neurônios em um µC com 256kB de memória de programa e 8kB de memória de trabalho.