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: |
|
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. |