Proposta de implementação em FPGA de máquina de vetores de suporte (SVM) utilizando otimização sequencial mínima (SMO)

A importância do uso de FPGAs como aceleradores vem crescendo fortemente nos últimos anos. Companhias como Amazon e Microsoft estão incorporando FPGAs em seus data centers, objetivando especialmente acelerar algoritmos em suas ferramentas de busca. No centro dessas aplicações estão algoritmos de apr...

ver descrição completa

Detalhes bibliográficos
Autor principal: Noronha, Daniel Holanda (author)
Formato: masterThesis
Idioma:por
Publicado em: 2017
Assuntos:
Texto completo:https://repositorio.ufrn.br/jspui/handle/123456789/24416
País:Brasil
Oai:oai:https://repositorio.ufrn.br:123456789/24416
Descrição
Resumo:A importância do uso de FPGAs como aceleradores vem crescendo fortemente nos últimos anos. Companhias como Amazon e Microsoft estão incorporando FPGAs em seus data centers, objetivando especialmente acelerar algoritmos em suas ferramentas de busca. No centro dessas aplicações estão algoritmos de aprendizado de máquina, como é o caso da Máquina de Vetor de Suporte (SVM). Entretanto, para que essas aplicações obtenham a aceleração desejada, o uso eficiente dos recursos das FPGAs é necessário. O projeto possui como objetivo a implementação paralela em hardware tanto da fase feed-forward de uma Máquina de Vetores de Suporte (SVM) quanto de sua fase de treinamento. A fase feed-forward (inferência) é implementada utilizando o kernel polinomial e de maneira totalmente paralela, visando obter a máxima aceleração possível ao custo de uma maior utilização da área disponível. Além disso, a implementação proposta para a inferência é capaz de computar tanto a classificação quanto a regressão utilizando o mesmo hardware. Já o treinamento é feito utilizando Otimização Sequencial Mínima (SMO), possibilitando a resolução da complexa otimização da SVM através de passos simples. A implementação da SMO também é feita de modo extremamente paralelo, fazendo uso de técnicas para aceleração como a cache do erro. Ademais, o Kernel Amigável ao Hardware (HFK) é utilizado para diminuir a área utilizada pelo kernel, permitindo que um número maior de kernels seja implementado em um chip de mesmo tamanho, acelerando o treinamento. Após a implementação paralela em hardware, a SVM é validada por simulação e são feitas análises associadas ao desempenho temporal da estrutura proposta, assim como análises associadas ao uso de área da FPGA.