Metodologias para desenvolvimento de mapas auto-organizáveis de Kohonen executados em FPGA. - Sousa, Miguel Angelo de Abreu de (2018)
Dentro do cenário de projeto de circuitos elétricos orientados para o processamento de redes neurais artificiais, este trabalho se concentra no estudo da implementação de Mapas Auto-organizáveis (SOM, do inglês, Self-Organizing Maps) em chips FPGA. A pesquisa aqui realizada busca, fundamentalmente, responder à seguinte pergunta: como devem ser projetadas as arquiteturas computacionais de cada etapa de processamento do SOM para serem adequadamente executadas em FPGA? De forma mais detalhada, o trabalho investiga as possibilidades que diferentes circuitos de computação do SOM oferecem em relação à velocidade de processamento, ao consumo de recursos do FPGA e à consistência com o formalismo teórico que fundamenta esse modelo de rede neural. Tal objetivo de pesquisa é motivado por possibilitar o desenvolvimento de sistemas de processamento neural que exibam as características positivas típicas de implementações diretas em hardware, como o processamento embarcado e a aceleração computacional. CONTRIBUIÇÕES PRINCIPAIS No decorrer da investigação de tais questões, o presente trabalho gerou contribuições com diferentes graus de impacto. A contribuição mais essencial do ponto de vista de estruturação do restante da pesquisa é a fundamentação teórica das propriedades de computação do SOM em hardware. Tal fundamentação é importante pois permitiu a construção dos alicerces necessários para o estudo das diferentes arquiteturas de circuitos exploradas neste trabalho, de forma que estas permanecessem consistentes com as premissas teóricas que certificam o modelo de computação neural estudado. Outra contribuição avaliada como de grande impacto, e que se consolida como um objeto gerado pela pesquisa, é a proposta de um circuito processador para SOM em FPGA que possui o estado-da-arte em velocidade de computação, medido em CUPS (Connections Updated Per Second). Tal processador permite atingir 52,67 GCUPS, durante a fase de treinamento do SOM, um ganho de aproximadamente 100% em relação aos trabalhos publicados na literatura. A aceleração possibilitada pela exploração de processamentos paralelos em FPGA, desenvolvida neste trabalho, é de três a quatro ordens de grandeza em relação a execuções em software do SOM com a mesma configuração. A última contribuição considerada como de grande impacto é a caracterização da execução do SOM em FPGA. Tal avaliação se faz necessária porque os processos de computação dos modelos neurais em hardware, embora semelhantes, não são necessariamente idênticos aos mesmos processos executados em software. Desta forma, a contribuição deste ponto de pesquisa pode ser entendida como a análise do impacto das mudanças implementadas na computação do SOM em FPGA em relação à execução tradicional do algoritmo, feita pela avaliação dos resultados produzidos pela rede neural por medidas de erros topográficos e de quantização. Este trabalho também gerou contribuições consideradas como de médio impacto, que podem ser divididas em dois grupos: aplicações práticas e aportes teóricos. A primeira contribuição de origem prática é a investigação de trabalhos publicados na literatura envolvendo SOM cujas aplicações podem ser viabilizadas por implementações em hardware. Os trabalhos localizados nesse levantamento foram organizados em diferentes categorias, conforme a área de pesquisa - como, por exemplo, Indústria, Robótica e Medicina - e, em geral, eles utilizam o SOM em aplicações que possuem requisitos de velocidade computacional ou embarque do processamento, portanto, a continuidade de seus desenvolvimentos é beneficiada pela execução direta em hardware. As outras duas contribuições de médio impacto de origem prática são as aplicações que serviram como plataforma de teste dos circuitos desenvolvidos para a implementação do SOM. A primeira aplicação pertence à área de telecomunicações e objetiva a identificação de símbolos transmitidos por 16-QAM ou 64-QAM. Estas duas técnicas de modulação são empregadas em diversas aplicações com requisitos de mobilidade - como telefonia celular, TV digital em dispositivos portáteis e Wi-Fi - e o SOM é utilizado para identificar sinais QAM recepcionados com ruídos e distorções. Esta aplicação gerou a publicação de um artigo na revista da Springer, Neural Computing and Applications: Sousa; Pires e Del-Moral-Hernandez (2017). A segunda aplicação pertence à área de processamento de imagem e visa reconhecer ações humanas capturadas por câmeras de vídeo. O processamento autônomo de imagens executado por chips FPGA junto às câmeras de vídeo pode ser empregado em diferentes utilizações, como, por exemplo, sistemas de vigilância automática ou assistência remota em locais públicos. Esta segunda aplicação também é caracterizada por demandar arquiteturas computacionais de alto desempenho. Todas as contribuições teóricas deste trabalho avaliadas como de médio impacto estão relacionadas ao estudo das características de arquiteturas de hardware para computação do modelo SOM. A primeira destas é a proposta de uma função de vizinhança do SOM baseada em FPGA. O objetivo de tal proposta é desenvolver uma expressão computacional para ser executada no chip que constitua uma alternativa eficiente tanto à função gaussiana, tradicionalmente empregada no processo de treinamento do SOM, quanto à função retangular, utilizada de forma rudimentar nas primeiras pesquisas publicadas sobre a implementação do SOM em FPGA. A segunda destas contribuições é a descrição detalhada dos componentes básicos e dos blocos computacionais utilizados nas diferentes etapas de execução do SOM em FPGA. A apresentação dos detalhes da arquitetura de processamento, incluindo seus circuitos internos e a função computada por cada um de seus blocos, permite que trabalhos futuros utilizem os desenvolvimentos realizados nesta pesquisa. Esta descrição detalhada e funcional foi aceita para publicação no IEEE World Congress on Computational Intelligence (WCCI 2018): Sousa et al. (2018). A terceira contribuição teórica de médio impacto é a elaboração de um modelo distribuído de execução do SOM em FPGA sem o uso de uma unidade central de controle. Tal modelo permite a execução das fases de aprendizado e operação da rede neural em hardware de forma distribuída, a qual alcança um comportamento global de auto-organização dos neurônios apenas pela troca local de dados entre elementos de processamento vizinhos. A descrição do modelo distribuído, em conjunto com sua caracterização, está publicada em um artigo no International Joint Conference on Neural Networks do IEEE (IJCNN 2017): Sousa e Del-Moral-Hernandez (2017a). A última contribuição deste grupo de aporte teórico é a comparação entre diferentes modelos de execução do SOM em FPGA. A comparação tem a função de avaliar e contrastar três diferentes possibilidades de implementação do SOM: o modelo distribuído, o modelo centralizado e o modelo híbrido. Os testes realizados e os resultados obtidos estão publicados em um trabalho no International Symposium on Circuits and Systems do IEEE (ISCAS 2017): Sousa e Del-Moral-Hernandez (2017b). Finalmente, apresentam-se a seguir as contribuições avaliadas como de menor impacto, em comparação com as contribuições já descritas, ou ainda incipientes (e que possibilitam continuidades da pesquisa em trabalhos futuros), sendo relacionadas a seguir como contribuições complementares: * Pesquisa de literatura científica sobre o estado-da-arte da área da Engenharia de Sistemas Neurais Artificiais. * Identificação de grupos internacionais de pesquisa de execução do SOM em hardware, os quais foram reconhecidos por publicarem regularmente seus estudos sobre diferentes tipos de implementações e categorias de circuitos computacionais. * Enumeração das justificativas e motivações mais frequentes na literatura para o processamento de sistemas neurais de computação em hardware. * Comparação e contraste das características de microprocessadores, GPUs, FPGAs e ASICs (tais como, custo médio do componente, paralelismo computacional oferecido e consumo típico de energia) para contextualização do tipo de aplicações que a escolha pela pesquisa com o dispositivo FPGA possibilita. * Levantamento das propriedades de computação do SOM em hardware mais frequentemente utilizadas nas pesquisas publicadas na literatura, tais como, quantidade de bits usados nos cálculos, tipo de representação de dados e arquitetura típica dos circuitos de execução das diferentes etapas de processamento do SOM. * Comparação do consumo de área do FPGA e da velocidade de processamento entre a execução da função de vizinhança tradicional gaussiana e a função de vizinhança proposta neste trabalho (com resultados obtidos de aproximadamente 4 vezes menos área do chip e 5 vezes mais velocidade de operação). * Caracterização do aumento dos recursos consumidos no chip e da velocidade de operação do sistema, em relação à implementação do SOM com diferentes complexidades (quantidade de estágios decrescentes do fator de aprendizado e da abertura da função de vizinhança) e comparação destas propriedades da arquitetura proposta em relação aos valores publicados na literatura. * Proposta de uma nova métrica para caracterização do erro topográfico na configuração final do SOM após o treinamento.