Como e onde devemos estimular o desenvolvimento da Inteligência Artificial

Sob o risco de termos um futuro sombrio ou de simplesmente desperdiçar uma porção de tempo e dinheiro mesmo

Outro dia a gente publicou um texto que falava sobre um supercomputador com Inteligência Artificial capaz de vencer o multi-campeão mundial no jogo mais difícil do mundo.

Outro dia ainda a gente publicou um texto falando sobre a necessidade de aplicar tecnologia na indústria em coisas que realmente vão fazer a diferença (e ainda dar lucro).

Muito bem, chegou a hora de amarrar as pontas.

Mapeando esse mundão da internet em busca de bons textos que poderiam ser traduzidos encontramos este artigo em inglês no Medium do Greg Borenstein. Nele, o autor explica porque tanta energia está sendo desperdiçada no desenvolvimento da Inteligência Artificial e como alguns pesquisadores estão caminhando na direção certa da aplicação dessa tecnologia.

Não é um artigo fácil de ser lido, mas nós julgamos que valia o esforço de traduzi-lo e publicá-lo aqui, para sua apreciação, no PapodeHomem.

Como um grupo de pesquisadores desconhecidos detém a chave para o uso da Inteligência Artificial para a solução de problemas humanos reais, por Greg Borenstein

Nos últimos anos uma série de resultados espetaculares em pesquisas atraiu a atenção do mundo para o campo do machine learning (aprendizado automático) e a excitação quanto à Inteligência Artificial (IA) nunca esteve tão badalada desde o último Inverno de IA.

Porém, apesar do aumento súbito do interesse, a maioria das pessoas presta atenção nas pesquisas erradas. E, ao fazer isto, perdem a chance de acompanhar o trabalho de um pequeno grupo de pesquisadores que, silenciosamente, estão firmando as fundações necessárias para que o machine learning possa de fato resolver problemas humanos reais.

A presente onda de animação em torno da IA começou com o sucesso revolucionário de Hinton e colegas com o uso de redes neurais profundamente convolutas na classificação de imagens. Num campo em que progressos ocorrem muito lentamente, estes resultados simplesmente destruíram as melhores conclusões das mais avançadas pesquisas até então.

Pesquisadores na área de Hinton como Yoshua Bengio, Yann LeCun, Andrew Ng e outros, em sucessão revolucionaram a área usando técnicas parecidas para estabelecer novos padrões de reconhecimento de fala, de face e alguns outros problemas de pesquisa. O mundo da pesquisa em machine learning rapidamente se conscientizou (e logo em seguida ficou obcecado) com esse novo conjunto de enfoques, que foram agrupados sob o rótulo de Apreendizado Profundo.

E então, na medida em que o aprendizado profundo obteve mais apoio de empresas grandes como Google e Facebook, ele começou a produzir resultados visíveis – e extremamente impressionantes – para o público em geral. AlphaGo obteve vitórias históricas contra os principais jogadores de Go. IBM Watson dominou os jogadores humanos em Jeopardy na TV. Esforços menores como Transferência ao Estilo Neural e Sonho Profundo produziram memes visuais impressionantes, que se espalharam pelas mídias sociais.

Todo esse sucesso inflamou uma chama de contínua atenção e especulação por parte da imprensa que tem atraído executivos, tecnólogos de primeira linha, e designers para uma vasta gama de negócios. Investidores começam a falar em financiar um Primeiro Mundo da IA. Metade das startups quer usar esses avanços em IA para desenvolver interfaces de usuário via conversação para seus aplicativos web e para smartphones, e a outra metade quer utilizá-los para melhorar seus produtos de Internet das coisas. Recentemente palestrei em uma conferência organizada pela The Economist em Hong Kong e uma das principais perguntas foi justamente sobre o impacto da IA sobre o marketing.

Mas agora um banho de água fria: apesar dos sistemas de IA terem feito um progresso muito rápido, eles ainda estão bem longe de serem capazes de autonomamente resolver qualquer problema humano substancial. Eles são ferramentas poderosas que podem eventualmente levar a uma tecnologia radicalmente melhor, mas se, e somente se, conseguirmos mobilizá-la para uso humano.

O que impede a IA de ser vista em uso por milhares de negócios no mundo não é a necessidade por algum algoritmo novo de machine learning. Não é a necessidade por mais programadores fluentes em matemática de gradiente estocástico de descida e propagação enviesada. Não é nem mesmo a necessidade por bibliotecas de software mais acessíveis. O que é necessário para uma adoção mais ampla da IA é uma compreensão de como desenvolver interfaces que coloquem a força desses sistemas nas mãos de usuários humanos. O que é necessário é uma nova disciplina híbrida de design, uma que permita aos programadores entender bem o suficiente os sistemas de IA, ao ponto de reconhecerem o que é aceitável em termos de interação, e ao mesmo tempo conhecerem bem os seres humanos e como eles podem vir a usar, não saber usar e abusar dessas capacidades oferecidas.

Observe a história. Não foi um avanço em matemática ou técnica de programação de ponta que produziu o aplicativo de maior sucesso do computador pessoal. O sucesso veio da conexão que Dan Bricklin fez entre as possibilidades da programação e os métodos de trabalho das pessoas reais, o que produziu o VisiCalc, a primeira “planilha eletrônica”.

“Eu pensei, e se a gente tivesse um quadro negro onde se pudesse apagar um número e escrever outro, e então tudo seria automaticamente recalculado?” - Dan Bricklin, aluno entediado na Harvard Business School

E oculto por trás do espetáculo do sucesso estrondoso do Aprendizado Profundo, um campo de pesquisa inteiro crescia em silêncio, dedicado a exatamente esse problema de fazer o design de interações humanas com sistemas de machine learning. O Aprendizado Automático Interativo (Interactive Machine Learning - AAI), como este excitante novo campo é conhecido, existe na intersecção da pesquisa em Experiência de Usuário e Machine Learning. E qualquer um que esteja lendo isto – qualquer um que se pergunte como incorporar IA em um negócio ou ferramenta criativa, produto de software ou prática de design – ficaria melhor se estudasse esse campo em detrimento de qualquer outra área de IA.

Enquanto as Redes Neurais Recorrentes superam as Redes Neurais de Convolução, apenas para serem superadas pelo Aprendizado de Reforço Profundo, que por sua vez está sendo escanteado pela inevitável Próxima Coisa nesse campo em movimento incrivelmente rápido, o que é próprio de cada algoritmo que temporariamente mantém o título de melhor desempenho de acordo com alguma métrica ou padrão é que ele será esquecido. O que permanecerá importante são os princípios de design de sistemas que permitam aos humanos usar esses sistemas de aprendizado para fazer coisas com que se importam.

Estes princípios são exatamente o assunto do Interactive Machine Learning. E se você é um designer, gerente de projetos, ou programador se esforçando para implementar IA de forma a fazer algo para uso humano, são exatamente estes os princípios que você precisará dominar.

Para ajudá-los a começar, pensei que poderia resumir alguns dos resultados do campo, e fornecer links para algumas de suas pesquisas mais interessantes. Alguns anos atrás, tive a boa fortuna de fazer um curso no MIT Media Lab sobre Interactive Machine Learning ministrado por Brad Knox, um dos praticantes mais interessantes no campo. Quase tudo que vou descrever aprendi com Knox ou estudando o material sugerido por ele. (De fato, o que se segue é acima de tudo um resumo de leigo do artigo de Knox, Mais poder para as pessoas: o papel dos humanos no Interactive Machine Learning, escrito com Saleema Amershi, Maya Cakmak, e Todd Kulesza – todos luminares do AAI.)

Uma nota adicional: ao contrário das páginas cheias de equações que preenchem a maioria dos artigos sobre machine learning, a literatura disponível sobre AAI é bastante convidativa, e na sua maior parte acessível a não especialistas. Encorajo-os a mergulhar nos artigos originais na medida em que algum tópico os interesse. Reuni links para todos os artigos no programa de Knox aqui, de forma a deixar esse estudo ainda mais conveniente.

Usando o Aprendizado Interativo para obter o máximo de ajuda possível dos humanos

O trabalho principal de sistemas de machine learning é generalizar a partir de uma amostragem de dados criada por humanos. O processo de aprendizado começa com os humanos criando uma porção de dados rotulados: imagens anotadas com o nome dos objetos que representam, imagens de fotos com os nomes das pessoas, gravações de fala com uma transcrição acurada, etc. E é então que entra o treinamento. Um algoritmo de machine learning processa todos esses dados rotulados por humanos. No fim do treinamento, o algoritmo de aprendizado produz um classificador, essencialmente um pequeno programa isolado que pode fornecer a resposta certa para uma nova entrada que não faça parte do grupo de dados rotulado por humanos já utilizado. E é esse o classificador que você aplica ao mundo. Para adivinhar a idade de seus usuários, reconhecer seus rostos, ou transcrever a fala ao telefone...

O recurso escasso nesta equação é o trabalho humano necessário para rotular os dados de treinamento.

Muitos resultados de Aprendizado Profundo vieram de áreas em que quantidades enormes de dados rotulados estavam disponíveis por serem compartilhados por uma rede social com bilhões de usuários ou retirados da própria web. Porém, a não ser que você seja o Facebook ou o Google, você provavelmente vai descobrir que dados rotulados relevantes para o seu problema são um tanto mais escassos, especialmente se está trabalhando em alguma questão vertical que tenha seu próprio jargão, comportamento específico ou fonte de dados própria. Portanto você precisará obter os rótulos dos próprios usuários. Isto implica desenvolver algum tipo de interface que mostre a eles exemplos dos textos ou imagens, e outras entradas que você quer ser capaz de classificar, e que lhes faça submeter os rótulos corretos.

Mas, novamente, trabalho humano – especialmente aquele que vem de seus usuários – é um recurso escasso. Então você vai só querer pedir a seus usuários que rotulem apenas os dados que melhorarão os resultados do seu sistema. Aprendizado Ativo é o nome do campo de machine learning que estuda exatamente esse problema: como encontrar as amostragens para as quais rótulos humanos serão mais úteis para melhorar o sistema.

Pesquisadores encontraram várias perspectivas algoritmicas para lidar com isso. Entre elas, técnicas para encontrar a amostragem com maior grau de incerteza para o sistema, detectar amostragens que, se possuíssem um rótulo, produziriam mudanças mais intensas nos resultados do sistema, selecionar amostras para que o sistema, de acordo com suas previsões, encontre mais erros, e outras. A excelente pesquisa sobre Aprendizado Ativo de Burr Settles fornece uma ótima introdução ao campo.

Como um exemplo concreto dessas ideias, apresento um vídeo demonstrando um sistema de reconhecimento de gestos que desenvolvi. Ele usa princípios de Aprendizado Ativo para pedir rótulos ao usuário quando reconhece um gesto para o qual não consegue fazer uma previsão acurada (detalhes desse trabalho aqui):

Link Vimeo

Não trate o usuário como um “oráculo”

Pesquisadores de Aprendizado Ativo tiveram sucesso em produzir classificadores mais precisos com menos rótulos fornecidos. Aprendizado Ativo é uma ótima forma de obter o máximo de aprendizado com o trabalho de rotulação que você obtém com os usuários.

Porém, de um ponto de vista de design de interação, Aprendizagem Ativa tem um grande defeito: faz com que o sistema de aprendizado determine interação, em vez do usuário humano a determinar. Os pesquisadores de Aprendizado Ativo referem-se ao humano que rotulou as amostragens como seu “oráculo”. E, veja só, Pesquisadores de Interactive Machine Learning demonstraram que os humanos não gostam de ser tratados como oráculos.

Os humanos não apreciam receber ordens de um robô. Apreciam muito mais interações, e estão dispostos a passar mais tempo treinando o robô se estiverem no comando da interação.

Num artigo de 2010, Desenhando interações para o Aprendizado Ativo de Robôs, Cakmak e seus colegas estudaram as percepções do usuário quanto a enfoques passivos e ativos ao ensinar um robô a reconhecer formatos. Uma opção colocava o robô em comando. Ele usava o Aprendizado Ativo de forma a determinar o formato que queria ver rotulado em seguida. Então apontava para o formato e o usuário fornecia a resposta. A outra opção colocava o usuário em comando, permitindo que este selecionasse que exemplos mostrar ao robô.

Quando o robô dominava a interação, selecionando que amostragem queria ter rotulada, o que é o estilo de Aprendizado Ativo, os usuários consideravam o fluxo de perguntas do robô “desequilibrado e perturbador”. Os usuários também relataram entender menos o estado de aprendizado do robô, o que fazia deles professores piores.

Num contexto de software, Guillory e Blimes encontraram sentimentos parecidos ao tentar aplicar aprendizado ativo à interface de dar notas para conteúdos no Netflix.

Escolha o algoritmo de acordo com sua capacidade de explicar os resultados de classificação

Imagine que você tenha um problema persistente de saúde que quer ter diagnosticado. Você tem duas escolhas de sistemas de IA a utilizar. O sistema A tem uma taxa de 90% de precisão, é o melhor disponível. Ele analisa seu histórico médico, todos os seus exames e outros dados, e entrega um diagnóstico. Você não pode fazer pergunta alguma sobre como ele chegou nesse diagnóstico. Você apenas recebe o nome em latim da sua condição, e um link para a Wikipedia. O sistema B tem uma precisão de 85%, bastante menor que o sistema A. O sistema B também analisa todos seus dados médicos e entrega um diagnóstico. Mas, ao contrário do sistema A, ele explica como chegou a esse diagnóstico. Como sua pressão passou determinado limiar, como você está acima de determinada idade, e possui três de cinco fatores ligados ao histórico familiar, etc.

Qual desses sistemas você escolheria?

Há um cliché do marketing Segundo o qual metade do orçamento de publicidade acaba desperdiçado, mas ninguém sabe qual metade. Pesquisadores de machine learning tem um cliché semelhante: é fácil criar um sistema que pode estar certo 80% do tempo, a parte difícil é descobrir quais 80%. Os usuários confiam mais nos sistemas de aprendizagem quando conseguem entender como eles chegaram a suas decisões. E, quando conseguem reconhecer algo de suas operações internas, também são mais capazes de corrigir e melhorar esses sistemas.

Então, se queremos desenvolver sistemas em que usuários confiem e que podem ser rapidamente melhorados, devemos selecionar algoritmos não só com base em seu percentual de acerto, mas também com relação a que dicas eles fornecessem da explicação de seus funcionamentos internos.

Alguns algoritmos de machine learning são mais ou menos reveladores quanto a seus procedimentos. Por exemplo, as redes neurais que atualmente produzem os melhores resultados para tantos problemas nos fornecem poucas dicas para seus resultados. São basicamente caixas pretas que cospem uma resposta (embora alguns pesquisadores estejam trabalhando em corrigir isso). Por outro lado, Florestas de Decisão Aleatória fornecem informações muito ricas sobre si mesmas para a explicação de classificações e o desenvolvimento de controles interativos para sistemas de aprendizado. É possível descobrir quais variáveis são mais importantes, a confiança do sistema com relação a cada previsão, a proximidade entre duas amostragens, etc.

Ninguém escolheria um banco de dados ou servidor web, ou framework javascript simplesmente com base no desempenho. É preciso dar uma olhada na API e ver o quanto ela pode ajudar na construção da interface que você quer apresentar aos usuários. Da mesma forma, como desenvolvedores de sistemas de machine learning, também devemos esperar ser capazes de acessar o estado interior de nossos classificadores, de forma a poder construir uma interface mais rica e mais interativa para nossos usuários.

Além do trabalho de projetar esses sistemas, queremos empoderar nossos usuários para que eles mesmos melhorem os resultados que recebem. Todd Kulesza, um pesquisador da Microsoft, trabalhou muito com essa questão, que ele chama de Debugging com explicação. O trabalho de Kulesza produz sistemas de machine learning que explicam seus resultados de classificação. Essas explicações então agem como uma interface através da qual o usuário pode fornecer feedback para melhorar, e mais do que isso, personalizar os resultados. Seu artigo sobre Debugging com classificação ingênua de Bayes orientado ao porquê e para usuário final fornece um exemplo poderoso e concreto dessa ideia.

Empoderando os usuários para que eles criem seus próprios classificadores

Na prática convencional de machine learning, engenheiros desenvolvem classificadores, designers os integram na interface, e então os usuários interagem com os resultados. O problema com esse padrão é que ele dissocia a prática de machine learning do conhecimento sobre o domínio do problema e a capacidade de avaliar os resultados do sistema. Os engenheiros ou cientistas de dados do machine learning podem compreender os algoritmos disponíveis, e os testes estatísticos utilizados para avaliar seus resultados, mas eles não compreendem verdadeiramente os dados de entrada e não conseguem reconhecer problemas nos resultados que, para os usuários, podem ser óbvios.

Esse padrão, na sua melhor implementação, produz apenas um ciclo de versões extremamente lento. Engenheiros de machine learning voltam aos usuários a cada versão do sistema, vagarosamente aprendendo sobre o domínio e fazendo melhorias pequenas. Na prática, esse ciclo moroso implica que os sistemas de machine learning são lançados com problemas óbvios para os usuários finais, ou acabam sendo simplesmente caros demais para desenvolver para muitos problemas reais.

Para escapar a esse padrão, temos que colocar diretamente na mão dos usuários o poder de criar classificadores. E claro, nenhum usuário quer “criar um classificador”. Então, de forma a lhes dispor esse poder precisamos projetar interfaces que os permitam rotular amostragens, selecionar características, e realizar todas as outras ações envolvidas nessa criação de forma que isso se encaixe naturalmente com seus fluxos de trabalho e modelos mentais pré-existentes.

Quando descobrimos como fazer isso, os resultados podem ser extremamente poderosos.

Um dos experimentos mais impressionantes que já vi em termos do Interactive Machine Learning foi o trabalho de Saleema Amershi com convites de grupo, ReGroup: Interactive Machine Learning para Criação de Grupo On-Demand em Redes Sociais.

A atual experiência de convite para eventos no Facebook ocorre assim: você cria um novo evento e segue para convidar os amigos. O Facebook lhe apresenta uma lista alfabética com todas suas centenas de amigos, com uma caixinha para marcar ao lado de cada um. Você olha para essa lista com certo desespero e então clica na caixa “convidar a todos”. E centenas de amigos recebem convites para eventos a que nunca poderão ir, já que moram em outra cidade.

O sistema ReGroup que Amershi e seus colegas desenvolveram melhora dramaticamente esse processo. Começa com a mesma lista de nomes e caixinhas de marcar. Mas quando você marca um nome, ele trata aquela escolha como uma amostra positivamente selecionada. E trata cada nome que você pula como uma amostra negativamente selecionada. Ele usa esses dados para treinar um classificador, que trata os dados de perfil e conexões sociais como suas características. Computa então a probabilidade de cada um de seus amigos, e dispõe aqueles com mais chances de você selecionar no topo da lista. As características que determinam a relevância do evento são relativamente fortes e simples – onde vivem essas pessoas, que conexões sociais vocês têm em comum, a quanto tempo o usuário é amigo dessa pessoa, etc. – os resultados da classificação rapidamente se tornam úteis.

Este trabalho é uma combinação incrivelmente elegante de padrões de interação do usuário já existentes com as entradas necessárias para treinar um classificador.

1. Uma busca de imagem por “estéreo” resulta em imagens com uma variedade de relacionamentos com a palavra.
2.Uma pessoa procurando por fotos de produto de estéreos é muitas vezes levada a passar manualmente por centenas de imagens irrelevantes, já que as palavras-chave disponíveis são insuficientes para capturar as características desejadas da imagem.
3. CueFlik toma uma perspectiva de iniciativa mista, ao permitir que usuários finais treinem interativamente os sistemas de machine learning para reconhecer conceitos importantes para eles. O usuário final pode então aplicar o conceito aprendido para identificar fotos de produto em qualquer busca de imagem relevante na web.
4. Aplicando o conceito aprendido foto de produto para a busca “telefone”.
5. Aplicando o conceito aprendido foto de produto para a busca “carro”.

Outro ótimo exemplo é o CueFlik, um projeto de Fogarty e colegas que melhora a busca via imagens na web ao permitir aos usuários que criem regras que automaticamente agrupam fotos de acordo com seus atributos visuais. Por exemplo (como mostrado acima), um usuário pode procurar por “estéreo” e então selecionar “apenas fotos de produtos” (aquelas com um fundo branco). CueFlick assume esses exemplos e aprende a formar um classificador que sabe distinguir fotos de produtos que outros usuários mais tarde poderão aplicar a outras buscas além de “estéreo”, como por exemplo para “carros” ou “telefones”.

Conclusão

Quando imaginamos um futuro moldado pela IA, é fácil cair no folclore cultural dos filmes e livros de ficção científica, imaginando coisas como Her, 2001 ou Exterminador do Futuro. Mas estas visões refletem muito mais nossas ansiedades com relação à tecnologia, questões de gênero e a própria natureza da humanidade, do que as realidades concretas dos sistemas de machine learning que efetivamente estamos desenvolvendo.

Em vez de encarar os resultados revolucionários do Aprendizado Profundo como passos na direção dessas fantasias de ficção científica, podemos imaginá-los como esses sistemas poderosos de projetos como ReGroup e CueFlik, projetos que nos fornecem ferramentas sem precedentes para compreender e controlar o mundo. O machine learning tem o potencial de ser uma fantástica ferramenta de empoderamento humano que penetra todas as áreas – de como compramos a como diagnosticamos doenças ou nos comunicamos. Para construir esses próximos milhares de projetos de forma que utilizemos ao máximo esse potencial, precisamos aprender não só a fazer as máquinas aprenderem, mas também a como colocar os resultados desse aprendizado nas mãos das pessoas.


publicado em 24 de Julho de 2016, 00:10
Breno franca jpg

Breno França

Editor do PapodeHomem, é formado em jornalismo pela ECA-USP onde administrou a Jornalismo Júnior, organizou campeonatos da ECAtlética e presidiu o JUCA. Siga ele no Facebook e comente Brenão.


Puxe uma cadeira e comente, a casa é sua. Cultivamos diálogos não-violentos, significativos e bem humorados há mais de dez anos. Para saber como fazemos, leianossa política de comentários.

Sugestões de leitura