Em termos práticos e de acordo com os paradigmas mais recentes, robôs são máquinas que fazem uso de inteligência artificial para atuar fisicamente no mundo. Mas programar um robô não é uma tarefa fácil. Pense, por exemplo, num braço mecânico que deve pegar uma peça delicada presente em posição aleatória numa bancada de trabalho e encaixá-la em um equipamento. Esse robô deve ser capaz de reconhecer a peça, determinar sua posição, movimentar o braço até ela, pegá-la com a quantidade de pressão correta, movê-la até sua posição final e fazer o encaixe. Cada etapa pode ser decomposta em uma tarefa independente que depende de um modelo de inteligência artificial distinto. O nível de complexidade aumenta consideravelmente quando todas essas tarefas são interligadas para que o robô seja capaz de realizar seu objetivo total: são tantos parâmetros que impactam no desempenho final que é muito fácil, se não inevitável, que nós, programadores, não tenhamos levados em consideração algo relevante mas que não nos seja intuitivo. É possível, por exemplo, que pequenas variações normais na superfície da peça dificultem sua captura, já que o algoritmo foi treinado num mundo ideal onde todas as peças são absolutamente idênticas.
É por isso que treinar robôs tem duas etapas. Na primeira, o algoritmo treina num mundo virtual, uma simulação, onde de fato as leis regentes são limitadas e muito bem definidas. Mas na segunda, seu desempenho deve ser testado no mundo real, muito mais impreciso e caótico. É nessa segunda etapa que os erros de desempenho são de fato determinados, e servem para corrigir os parâmetros da etapa virtual. Depois que o modelo foi recalibrado, ele volta a ser testado numa bancada real com peças reais.
Atualmente, essa etapa de refinamento do modelo que depende do feedback dado pelo mundo real é feita por pessoas. Um observador vai quantificar os desvios de comportamento do robô e fazer a calibração (tuning) dos parâmetros do modelo, informado em grande parte por sua intuição. Sem a presença de uma pessoa, a inteligência artificial até consegue identificar esses desvios, mas não sabe o que fazer para corrigi-los.
Isso até a apresentação de um trabalho de pesquisadores da NVIDIA, em parceria com a Universidade do Sul da Califórnia e da Universidade de Washington, que está sendo primeiro divulgado essa semana na Conferência Internacional de Robótica e Automação, em Montreal. Usando um novo modelo matemático, eles conseguiram transferir os erros de desempenho diretamente para a etapa virtual de treinamento, e assim a inteligência artificial faz o tuning dos parâmetros automaticamente. O comportamento no mundo real é capturado por um sensor 3D, a inteligência artificial investiga quais parâmetros resultaram no comportamento virtual mais parecido com o real, e os ajustes são realizados adequadamente.
Os pesquisadores garantem que a performance do sistema é comparável com aquela obtida por pessoas fazendo tuning manual. Ainda assim, o tuning inicial – como a definição de pesos iniciais do modelo, por exemplo – deve ser realizado por uma pessoa, levando em consideração a natureza da tarefa a ser realizada. Mas começando com parâmetros conservadores dá conta do recado: o modelo é bem-sucedido se sua tarefa for a de otimizar parâmetros generalistas passados pelo programador.
A inteligência artificial tem se tornado cada vez mais independente, agora também na sua interação com o mundo físico. Essa independência tende a aumentar exponencialmente sua aplicabilidade em tarefas específicas – como montar equipamentos sensíveis – e cotidianas – como, fiquemos na torcida, lavar a louça.