A maioria dos erros de software não o matará. Uma possível exceção letal pode ser o erro que leva a AI de um carro auto-dirigido a tomar uma decisão errada na hora errada. É por isso que os pesquisadores desenvolveram um método de busca de insetos que pode expor sistematicamente a má tomada de decisões pelos algoritmos de aprendizagem profunda implantados em serviços on-line e veículos autônomos.
O novo método DeepXplore usa pelo menos três redes neurais – a arquitetura básica dos algoritmos de aprendizado profundo – para atuar como “oráculos de referência cruzada” ao verificar a precisão uns dos outros. Pesquisadores da Universidade de Columbia e da Universidade Lehigh projetaram o DeepXplore para resolver um problema de otimização no qual procuraram encontrar o melhor equilíbrio entre dois objetivos: maximizar o número de neurônios ativados nas redes neurais e desencadear tantas decisões conflitantes quanto possível entre diferentes redes neurais. Ao assumir que a maioria das redes neurais geralmente tomará a decisão certa, a DeepXplore reestrutura automaticamente a rede neural que tomou a única decisão dissidente de seguir o exemplo da maioria em um determinado cenário.
“Esta é uma estrutura de teste diferencial que pode encontrar milhares de erros em sistemas de auto-condução e em sistemas similares de redes neurais”, diz Yinzhi Cao , professor assistente de informática na Lehigh University, em Bethlehem, Pa.
Cao e seus colegas da equipe DeepXplore ganharam recentemente o melhor trabalho depois de apresentar suas pesquisas no Simpósio de 2017 sobre Princípios de Sistemas Operacionais (SOSP) realizada em Xangai, China, de 28 a 31 de outubro. Sua vitória pode sinalizar um crescente reconhecimento da necessidade de ferramentas de depuração, como DeepXplore, em AI de aprendizagem profunda.
Normalmente, os algoritmos de aprendizagem profunda tornam-se melhores em certas tarefas, filtrando enormes quantidades de dados de treinamento que os seres humanos rotularam com as respostas corretas. Isso permitiu que esses algoritmos alcançassem precisão de mais de 90% em determinados conjuntos de dados de teste que envolvem tarefas como identificar os rostos humanos corretos nas fotos do Facebook ou escolher a frase correta em uma tradução do Google entre, digamos, chinês e inglês. Nesses casos, não é o fim do mundo se um amigo ocasionalmente é identificado erroneamente ou se uma certa frase esotérica é traduzida incorretamente.
Mas as conseqüências dos erros aumentam acentuadamente, uma vez que as empresas de tecnologia começam a usar algoritmos de aprendizado profundo em aplicações como aquela em que uma máquina de duas toneladas está se movendo à velocidade da rodovia. Uma decisão errada por uma IA de auto-condução poderia levar o carro a entrar em um trilho de guarda, colidindo com outro veículo ou escorrendo pedestres e ciclistas. Os reguladores governamentais quererão saber com certeza se os carros auto-dirigidos podem atender a um determinado nível de segurança – e os conjuntos de dados de teste aleatório podem não descobrir todos os raros “casos de canto” que poderiam levar um algoritmo para cometer um erro catastrófico.
“Eu acho que esse impulso para um tipo seguro e confiável de IA se encaixa perfeitamente com a AI explicável”, diz Suman Jana , professor assistente de ciência da computação na Universidade de Columbia, na cidade de Nova York. “Transparência, explicação e robustez devem ser melhorados em sistemas de aprendizado de máquina antes que esses sistemas possam começar a trabalhar em conjunto com seres humanos ou começar a correr em estradas”.
Jana e Cao provêm de um grupo de pesquisadores que compartilham origens em segurança e depuração de software . Em seu mundo, mesmo o software que é livre de erros de 99% ainda pode ser vulnerável se os hackers mal-intencionados puderem explorar esse único erro no sistema. Isso os tornou muito menos tolerantes aos erros do que muitos pesquisadores em profundidade que vêem os erros como uma parte natural do processo de treinamento. Também os tornou candidatos bastante ideais para descobrir uma abordagem nova e abrangente para depuração de aprendizado profundo.
Até agora, a depuração das redes neurais nos carros auto-dirigidos envolveu métodos bastante tediosos ou aleatórios. Uma abordagem de teste aleatório envolve pesquisadores humanos criando manualmente imagens de teste e alimentando essas nas redes até que eles desencadeiam uma decisão errada. Uma segunda abordagem, chamada de teste adversarial, pode criar automaticamente uma seqüência de imagens de teste ajustando ligeiramente uma imagem particular até que ele atinja a rede neural.
O DeepXplore adotou uma abordagem diferente criando automaticamente imagens de teste com maior probabilidade de causar três ou mais redes neurais para tomar decisões conflitantes. Por exemplo, o DeepXplore pode procurar apenas a quantidade certa de iluminação em uma determinada imagem que poderia levar duas redes neurais a identificar um veículo como um carro enquanto uma terceira rede neural o identifica como um rosto.
Ao mesmo tempo, DeepXplore também visava maximizar a cobertura neuronal em seus testes, ativando o número máximo de neurônios e diferentes caminhos da rede neural. Essa cobertura de neurônio é baseada em um conceito semelhante no teste de software tradicional chamado cobertura de código, explica Cao. Este processo foi capaz de ativar 100 por cento dos neurônios da rede, ou cerca de 30 por cento mais em média do que os métodos de teste aleatórios ou adversários anteriormente utilizados em algoritmos de aprendizagem profunda.
O teste com 15 redes neurais de última geração que visam cinco conjuntos de dados públicos diferentes mostrava como o DeepXplore poderia encontrar milhares de erros anteriormente não descobertos em uma grande variedade de aplicativos de aprendizado profundo. Os conjuntos de dados de teste incluíram cenários para auto-condução de automóveis AI, reconhecimento automático de objetos em imagens on-line e detecção automática de malware se revelando como software comum.
DeepXplore ainda não pode garantir que encontrou todos os erros possíveis em um sistema, mas é muito mais abrangente no teste de redes neurais de grande escala do que os métodos anteriores, diz Jana. Em comparação, uma equipe da Universidade de Stanford adotou uma abordagem quase oposta, mostrando como garantir que um pequeno conjunto de neurônios esteja livre de erros. Nem é uma solução completa, mas ambos representam passos promissores e cruciais para depurar o futuro do aprendizado profundo .