Métodos eficientes de aprendizado de máquina baseados em instâncias
Resumo
Os resultados obtidos através de soluções de machine learning têm causado impacto positivo nas áreas de negócios, tributos, locomoção, processamento de áudio e vídeo, alimentação, comunicação, jogos, etc. Em comparação com algumas soluções tradicionais de problemas destas áreas, a performance da aplicação de algoritmos de machine learning (Reinforcement Learning, supervisionados, não-supervisionados, Deep Learning, Adversarial Neural Networks, Convolutional Neural Networks, k-Nearest Neighbor e outros) tem sido superior. No entanto estes resultados vêm com elevados custos, sendo os principais a necessidade de imensas bases de dados para o treinamento, hardwares de estado da arte para processamento dos algoritmos e o elevado tempo investido na execução destes. Estes três aspectos, muitas vezes, são fatores limitadores e/ou inviabilizadores de pesquisas e aplicações baseadas em machine learning. Portanto o objetivo deste trabalho é, através da utilização de métodos baseados em instâncias (como o k-Nearest Neighbor, que possui maior eficiência amostral), acelerar o processo de aprendizagem por reforço (Reinforcement Learning) mantendo ou superando a performance de algoritmos de machine learning atuais baseados em gradientes. Os algoritmos das soluções desenvolvidas nesta pesquisa estão sendo implementados na linguagem Python, fazendo uso da biblioteca NumPy, e apoio do Google Colaboratory e do OpenAI Gym. A métrica escolhida foi o desempenho destes algoritmos em jogos digitais e em problemas clássicos da área de controle e automação. Até o momento, foram explorados problemas como o da classificação de imagens (com solução baseada em k-Nearest Neighbor e hashing), Tic-Tac-Toe e Cart Pole (com soluções baseadas em reinforcement learning: tabular solutions e hashing). Ainda serão investigadas soluções alternativas (também baseadas em instâncias) para outros clássicos problemas de automação e jogos digitais, como o Acro Bot, Mountain Cart, Mario e outros. Ainda dentro do escopo deste estudo, está prevista a medida do desempenho de soluções compostas por algoritmos como Boundary-Tree e Convolutional Neural Network junto de k-Nearest Neighbor. Quanto às soluções já investigadas, foram obtidos resultados parciais promissores em todos os experimentos.