Olá leitores! Bom dia e bem vindos e bem vindas a versão de texto do episódio de número 1542 do Spin de Notícias, o seu giro diário de informações científicas… em escala sub-atômica. Aqui é o Marcel Ribeiro-Dantas, falando de Paris mas natural de Natal, e esse é um texto do spin lançado no dia 1 Borean no calendário Dekatrian, e Domingo, dia 30 de Janeiro de 2022 no historicamente consolidado calendário gregoriano, falaremos sobre Inteligência Artificial e um pouquinho de Filosofia.
Em muitos casos, nos sentimos compelidos a dar uma resposta, mesmo para perguntas que não entendemos bem, ou perguntas englobando assuntos que não conhecemos bem o suficiente para dar uma resposta minimamente correta. A própria definição de hipótese científica, por exemplo, remete a um “educated guess”, algo como um palpite instruído, de como um experimento científico irá se comportar.
Aqui, como ficou claro na tradução, o educated tem relação com instrução, conhecimento, e não polidez. Ou seja, ao menos em ambientes mais técnico-científicos, é importante reconhecer quando não sabemos algo, e se soubermos, colocar nossa contribuição da forma mais clara e correta possível.
Saindo desse ambiente para o nosso dia a dia informal, ainda é visto como uma atitude sábia dizer que não sabemos algo, quando de fato não sabemos. Esse comportamento é muitas vezes apresentado como o paradoxo socrático: “Só sei que nada sei”. Pesquisadores da Georgia Tech, o Instituto de Tecnologia da Geórgia, nos Estados Unidos, decidiram trazer essa reflexão para a área de Inteligência Artificial. Pera lá, como assim?!
Nós, pesquisadores da área de Inteligência Artificial que trabalhamos implementando modelos inteligentes, temos como objetivo desenvolver sistemas que nos ajudem com algumas tarefas. E como são modelos inteligentes, supomos que essa ajuda ocorrerá de forma inteligente, instruída, e não como alguém que é compelido a responder qualquer coisa só para não admitir que não sabe. O problema é que na prática nem sempre é possível identificar se isso está ocorrendo, ou controlar se isso em algum momento irá acontecer.
Vamos pensar em um problema bem simples e um algoritmo inteligente mal implementado. Em uma determinada escola, há um exame no final do ano com um propósito que foge ao escopo desse exemplo. Vamos manter as coisas simples. Após coletar dados de inúmeros alunos ao longo de anos, eu tenho uma grande quantidade de dados com duas variáveis, principalmente: o número médio de horas que os alunos estudaram para essa prova, e sua nota.
Alguns alunos tiraram 0, alguns alunos tiraram 10, mas a maioria tirou notas nesse intervalo. Alguns poucos alunos estudaram 1 hora em média, mas boa parte dos alunos estudou ao menos 2 horas, com alguns poucos alunos estudando em média 4 horas por dia em um determinado período de preparação para esse exame.
Com base nisso, utilizamos uma técnica qualquer, como uma regressão linear simples, e foi possível realizar predições razoáveis da nota que um aluno naquele ano do ensino médio tiraria no exame final com base na média do número de horas que o aluno se preparou para o exame.
Esse cenário, segue com profissionais que não entendem direito como fazer esse tipo de coisa, já que o objetivo desse exemplo é ser algo bem simples e absurdo, para deixar claro o problema mesmo para quem não entende nada de inteligência artificial ou estatística.
Foi visto que quanto mais horas, maior a nota. Com esse modelo pronto, os novos alunos informavam o número de horas estudadas em média e era possível dar um palpite, uma predição da nota que possivelmente seria obtida no exame. E aí surge o problema: Um determinado aluno não tinha estudado nada, e o sistema previu uma nota negativa e um outro aluno estudou muitas e muitas horas em média, e o sistema previu uma nota acima de 10.
Como a nota do exame necessariamente pertence ao intervalo de 0 a 10, essas notas são inválidas. Esse modelo deveria ter condições de dizer que não sabia responder, pois nunca tinha visto alunos, e notas, com essas características, mas ele preferiu extrapolar o que tinha aprendido e deu um péssimo palpite.
É evidente que aqui a culpa é mais de quem projetou o sistema do que qualquer outra coisa, mas o importante desse exemplo é mostrar que existem cenários em que podemos identificar esse problema e treinar nosso modelo inteligente a entender que ele não tem conhecimento o suficiente para responder, de forma educada, no sentido de ter conhecimento, uma determinada pergunta. E que, portanto, o mais adequado seria admitir que ele sabe que não sabe, que ele é incapaz de responder adequadamente essa pergunta.
Nesse caso, como é algo bem simples, também teria uma simples solução, no entanto nós temos hoje modelos extremamente complexos que, na prática, sequer podem ser compreendidos em sua totalidade por seres humanos. Por que eu digo isso!? Porque são modelos com milhares de equações matemáticas e bilhões, isso mesmo, bilhões de parâmetros. E a classe de problemas que esses modelos inteligentes tentam abordar também são igualmente complexas, o que torna muito menos trivial quantificar a incerteza e chegar a uma conclusão de que o modelo não tem condições de responder adequadamente aquela pergunta.
Com base nas características que levantei, quem é da área já suspeitou que estou me referindo a redes neurais artificiais, e é justamente para essa classe de algoritmos que os pesquisadores da Georgia Tech, mais especificamente Aditya Prakash e Chao Zhang, acreditam que é possível quantificar essa incerteza e instruir o modelo a dizer que não sabe quando de fato ele não sabe.
É um projeto que ainda está bem no início, mas uma vez podendo quantificar essa incerteza sobre a predição ou classificação, será possível fazer o modelo reconhecer que em alguns casos, a melhor resposta é o “não sei” 😁.