Inteligência artificial
As GPUs Podem Ser Melhores, Não Apenas Mais Rápidas, no Treinamento de Redes Neurais Profundas

Pesquisadores da Polônia e do Japão, trabalhando com a Sony, encontraram evidências de que sistemas de aprendizado de máquina treinados em GPUs em vez de CPUs podem conter menos erros durante o processo de treinamento e produzir resultados superiores, contradizendo a compreensão comum de que as GPUs simplesmente realizam essas operações mais rapidamente, e não necessariamente melhor.
A pesquisa, intitulada Impacto da Incerteza da GPU no Treinamento de Redes Neurais Profundas Predativas, vem da Faculdade de Psicologia e Ciências Cognitivas da Universidade Adam Mickiewicz e de duas universidades japonesas, juntamente com os Laboratórios de Ciência da Computação da SONY.
O estudo sugere que as ‘incertezas’ que as redes neurais profundas exibem diante de várias configurações de hardware e software favorecem unidades de processamento gráfico mais caras (e cada vez mais escassas) e encontrou em testes que uma rede neural profunda treinada exclusivamente em CPU produziu taxas de erro mais altas ao longo do mesmo número de épocas (o número de vezes que o sistema reprocessa os dados de treinamento ao longo de uma sessão).

Neste exemplo suplementar do artigo, vemos (duas últimas linhas), resultado de qualidade semelhante obtido de uma variedade de GPUs, e (primeira linha), os resultados inferiores obtidos de uma gama de CPUs muito capazes. Source: https://arxiv.org/pdf/2109.01451.pdf
Fenômenos Estranhos
Essas descobertas preliminares não se aplicam uniformemente a todos os algoritmos de aprendizado de máquina populares, e no caso de arquiteturas de autoencoder simples, o fenômeno não aparece.
No entanto, o trabalho sugere que pode haver uma possível ‘velocidade de escape’ para a eficácia do treinamento em redes neurais complexas, onde realizar as mesmas operações a uma velocidade mais baixa e com tempos de treinamento mais longos não obtém a paridade de desempenho que se esperaria de rotinas de iteração matemática.
Os pesquisadores sugerem que essa disparidade de desempenho pode ser particular a certos tipos de redes neurais, e que os aspectos indeterminados do processamento específico da GPU, frequentemente vistos como um obstáculo a ser superado, podem não apenas fornecer benefícios notáveis, mas também podem ser eventualmente incorporados intencionalmente em sistemas posteriores. O artigo também sugere que as descobertas podem oferecer insights mais profundos sobre o processamento computacional relacionado ao cérebro.
Identificar as peculiaridades que aumentam a eficiência e a qualidade dos resultados dessa forma em GPUs holds o potencial para obter uma compreensão mais profunda sobre arquiteturas de ‘caixa preta’ de IA, e até mesmo para melhorar o desempenho da CPU – embora, atualmente, as causas subjacentes sejam difíceis de encontrar.
Autoencoder Vs. PredNet
Ao estudar as anomalias, os pesquisadores usaram um autoencoder básico e também a Rede Neural Predativa da Universidade de Harvard PredNet, pesquisa de 2016 que foi projetada para explorar e tentar replicar o comportamento do córtex cerebral humano.
Ambos os sistemas são redes neurais profundas projetadas para sintetizar imagens apropriadas por meio do aprendizado não supervisionado (com dados dos quais as etiquetas foram omitidas), embora o autoencoder lide linearmente com uma imagem por lote, que então produziria uma saída como a próxima imagem em um pipeline recorrente. O autoencoder foi treinado no banco de dados MNIST de escrita à mão.

O autoencoder nos testes dos pesquisadores foi treinado no banco de dados MNIST, que compreende 60.000 imagens de treinamento de 28×28 pixels, anti-aliasadas para indução de escala de cinza, bem como 10.000 imagens de teste.
Em contraste, o PredNet avalia a entrada de vídeo complexa, e no caso dessa pesquisa, foi treinado no conjunto de dados FPSI, que apresenta extensas filmagens de vídeo de um dia no Disney World em Orlando, Flórida (Disney foi um dos associados de pesquisa no artigo de 2012).

Sequências de imagens do FPSI, mostrando vistas em primeira pessoa de um dia no Disney World.
As duas arquiteturas são muito diferentes em termos de complexidade. O autoencoder é projetado para reconstruir imagens em vez de prever valores-alvo. Em contraste, o PredNet apresenta quatro camadas, cada uma das quais consiste em neurônios de representação que usam memória de longo prazo convolucional (LSTM).
As camadas produzem previsões contextuais que são então comparadas a um alvo para produzir um termo de erro que se propaga por toda a rede. Cada um dos dois modelos utiliza aprendizado não supervisionado.

A arquitetura simples e linear do autoencoder, e a rede mais labiríntica e recursiva do PredNet.
Ambos os sistemas foram testados em uma variedade de configurações de hardware e software, incluindo CPUs sem GPUs (Intel i5-4590, i7-6800K, i5-7600K, ou AMD Ryzen-5-3600) e CPUs com GPUs (Intel i5-7600K + NVIDIA GTX-750Ti, i5-7600K + GTX-970, i7-6700K + GTX-1080, i7-7700K + GTX-1080Ti, i7-9700 + RTX-2080Ti, i5-7600K + RTX-2060 super, AMD Ryzen-5-3600 + RTX-2070 super, ou i5-9400 + Titan-RTX).
O visualizador de processo interativo htop foi usado para garantir que todo o treinamento ocorresse em uma única thread (em um Intel i7-6800K), em quatro threads (em um Intel i5-4590 e i5-7600K), ou seis threads (em um AMD Ryzen-5-3600).
Pontos de Sela
No autoencoder, a diferença média em todas as configurações, com e sem cuDNN, não foi significativa. Para o PredNet, os resultados foram mais surpreendentes, com diferenças notáveis na avaliação de perda e qualidade entre o treinamento da CPU e da GPU.

Os resultados de perda médios para o treinamento do PredNet em quatro CPUs e oito GPUs, com a rede treinada em 5000 quadros de vídeo em 250 lotes, com perda média para os últimos 1000 quadros (50 lotes) representada. O cuDNN foi desativado.
Os pesquisadores concluem que ‘Embora o mecanismo seja incerto, o hardware da GPU parece ter a capacidade de avançar o treinamento das DNNs.’
Os resultados indicam que as GPUs podem ser melhores em evitar pontos de sela – as áreas em uma descida de gradiente que descrevem o fundo de uma encosta.

O nadir das encostas em uma descida de gradiente é o ‘ponto de sela’, nomeado por razões óbvias. Source: https://www.pinterest.com.au/pin/436849232581124086/
Os pontos de sela, embora sejam um impedimento, têm sido amplamente descartados como facilmente contornáveis na otimização recente do descenso de gradiente estocástico (SGD), mas o novo artigo sugere que as GPUs podem estar singularmente equipadas para evitá-los, e que a influência dos pontos de sela talvez deva ser revisitada.












