O algoritmo projeta modelos de aprendizado de máquina otimizados até 200 vezes mais rápido do que os métodos tradicionais
p Os pesquisadores do MIT desenvolveram um algoritmo eficiente que pode fornecer uma solução de "botão" para projetar automaticamente redes neurais de execução rápida em hardware específico. Crédito:Chelsea Turner, MIT
p Uma nova área em inteligência artificial envolve o uso de algoritmos para projetar automaticamente sistemas de aprendizado de máquina conhecidos como redes neurais, que são mais precisos e eficientes do que aqueles desenvolvidos por engenheiros humanos. Mas esta técnica chamada de pesquisa de arquitetura neural (NAS) é computacionalmente cara. p Um dos algoritmos NAS de última geração recentemente desenvolvido pelo Google levou 48, 000 horas de trabalho por um esquadrão de unidades de processamento gráfico (GPUs) para produzir uma única rede neural convolucional, usado para tarefas de classificação e identificação de imagens. O Google tem os recursos para executar centenas de GPUs e outros circuitos especializados em paralelo, mas isso está fora do alcance de muitos outros.
p Em um artigo apresentado na Conferência Internacional sobre Representações de Aprendizagem em maio, Os pesquisadores do MIT descrevem um algoritmo NAS que pode aprender diretamente redes neurais convolucionais especializadas (CNNs) para plataformas de hardware de destino - quando executado em um conjunto de dados de imagem enorme - em apenas 200 horas de GPU, o que poderia permitir um uso muito mais amplo desses tipos de algoritmos.
p Pesquisadores e empresas com poucos recursos poderiam se beneficiar do algoritmo de economia de tempo e custo, dizem os pesquisadores. O objetivo geral é "democratizar a IA, "diz o co-autor Song Han, professor assistente de engenharia elétrica e ciência da computação e pesquisador dos Laboratórios de Tecnologia de Microsistemas do MIT. "Queremos permitir que especialistas e não especialistas em IA projetem arquiteturas de rede neural com eficiência com uma solução de botão que roda rapidamente em um hardware específico."
p Han acrescenta que tais algoritmos NAS nunca substituirão os engenheiros humanos. "O objetivo é descarregar o trabalho repetitivo e tedioso que vem com o projeto e o refinamento de arquiteturas de rede neural, "diz Han, que é acompanhado no artigo por dois pesquisadores de seu grupo, Han Cai e Ligeng Zhu.
p
Binarização e poda "no nível do caminho"
p Em seu trabalho, os pesquisadores desenvolveram maneiras de excluir componentes de projeto de rede neural desnecessários, para reduzir o tempo de computação e usar apenas uma fração da memória do hardware para executar um algoritmo NAS. Uma inovação adicional garante que cada CNN gerado funcione com mais eficiência em plataformas de hardware específicas - CPUs, GPUs, e dispositivos móveis - do que aqueles projetados por abordagens tradicionais. Em testes, as CNNs dos pesquisadores foram 1,8 vezes mais rápidas medidas em um telefone móvel do que os modelos tradicionais de padrão ouro com precisão semelhante.
p A arquitetura de uma CNN consiste em camadas de computação com parâmetros ajustáveis, chamados de "filtros, "e as possíveis conexões entre esses filtros. Os filtros processam os pixels da imagem em grades de quadrados, como 3x3, 5x5, ou 7x7 - com cada filtro cobrindo um quadrado. Os filtros basicamente se movem pela imagem e combinam todas as cores de sua grade coberta de pixels em um único pixel. Camadas diferentes podem ter filtros de tamanhos diferentes, e se conectar para compartilhar dados de maneiras diferentes. A saída é uma imagem condensada - das informações combinadas de todos os filtros - que pode ser analisada mais facilmente por um computador.
p Como o número de arquiteturas possíveis para escolher - chamado de "espaço de busca" - é tão grande, aplicar NAS para criar uma rede neural em grandes conjuntos de dados de imagens é computacionalmente proibitivo. Os engenheiros normalmente executam NAS em conjuntos de dados de proxy menores e transferem suas arquiteturas CNN aprendidas para a tarefa de destino. Este método de generalização reduz a precisão do modelo, Contudo. Além disso, a mesma arquitetura produzida também é aplicada a todas as plataformas de hardware, o que leva a problemas de eficiência.
p Os pesquisadores treinaram e testaram seu novo algoritmo NAS em uma tarefa de classificação de imagem no conjunto de dados ImageNet, que contém milhões de imagens em mil classes. Eles primeiro criaram um espaço de busca que contém todos os "caminhos" candidatos possíveis da CNN - significando como as camadas e os filtros se conectam para processar os dados. Isso dá ao algoritmo NAS rédea solta para encontrar uma arquitetura ideal.
p Isso normalmente significa que todos os caminhos possíveis devem ser armazenados na memória, que ultrapassaria os limites de memória da GPU. Para endereçar isto, os pesquisadores utilizam uma técnica chamada "binarização no nível do caminho, "que armazena apenas um caminho amostrado por vez e salva uma ordem de magnitude no consumo de memória. Eles combinam essa binarização com" poda no nível do caminho, "uma técnica que tradicionalmente aprende quais" neurônios "em uma rede neural podem ser excluídos sem afetar a saída. Em vez de descartar neurônios, Contudo, o algoritmo NAS dos pesquisadores poda caminhos inteiros, que muda completamente a arquitetura da rede neural.
p Em treinamento, todos os caminhos recebem inicialmente a mesma probabilidade de seleção. O algoritmo então rastreia os caminhos - armazenando apenas um de cada vez - para observar a precisão e a perda (uma penalidade numérica atribuída para previsões incorretas) de suas saídas. Em seguida, ele ajusta as probabilidades dos caminhos para otimizar a precisão e a eficiência. No fim, o algoritmo remove todos os caminhos de baixa probabilidade e mantém apenas o caminho com a maior probabilidade - que é a arquitetura CNN final.
p
Ciente de hardware
p Outra inovação importante foi tornar o algoritmo NAS "ciente do hardware, "Han disse, o que significa que usa a latência em cada plataforma de hardware como um sinal de feedback para otimizar a arquitetura. Para medir essa latência em dispositivos móveis, por exemplo, grandes empresas como o Google empregarão uma "fazenda" de dispositivos móveis, o que é muito caro. Em vez disso, os pesquisadores construíram um modelo que prevê a latência usando apenas um único telefone celular.
p Para cada camada escolhida da rede, o algoritmo mostra a arquitetura nesse modelo de predição de latência. Em seguida, ele usa essas informações para projetar uma arquitetura que seja executada o mais rápido possível, ao mesmo tempo em que atinge alta precisão. Em experimentos, a CNN dos pesquisadores funcionou quase duas vezes mais rápido que um modelo padrão-ouro em dispositivos móveis.
p Um resultado interessante, Han disse, foi que seu algoritmo NAS projetou arquiteturas CNN que foram rejeitadas por muito tempo como sendo muito ineficientes, mas, nos testes dos pesquisadores, eles foram realmente otimizados para determinado hardware. Por exemplo, os engenheiros basicamente pararam de usar filtros 7x7, porque eles são computacionalmente mais caros do que vários, filtros menores. Ainda, o algoritmo NAS dos pesquisadores encontrou arquiteturas com algumas camadas de filtros 7x7 que funcionaram perfeitamente em GPUs. Isso ocorre porque as GPUs têm alta paralelização - o que significa que calculam muitos cálculos simultaneamente - portanto, podem processar um único filtro grande de uma vez com mais eficiência do que processar vários filtros pequenos, um de cada vez.
p "Isso vai contra o pensamento humano anterior, "Han diz." Quanto maior o espaço de busca, as coisas mais desconhecidas que você pode encontrar. Você não sabe se algo será melhor do que a experiência humana anterior. Deixe a IA descobrir. "