Tornou-se bastante comum hoje em dia ouvir as pessoas referirem-se aos modernos sistemas de aprendizagem de máquinas como “caixas pretas”. Como exemplo, considere um episódio recente do podcast de Sam Harris no qual ele entrevistou o pioneiro da IA, Stuart Russell. Harris pergunta:

“Então, se eu não estou enganado, a maioria, se não todas estas abordagens de aprendizagem profunda, ou mesmo mais geralmente as abordagens de aprendizagem de máquinas são, essencialmente caixas pretas, nas quais você não pode realmente inspecionar como o algoritmo está realizando o que está realizando””

Embora esta metáfora seja apropriada para algumas situações particulares, ela é na verdade bastante enganadora em geral, e pode estar causando uma quantidade considerável de confusão. Como veremos, um sistema de aprendizado profundo não é uma caixa preta; mesmo o desenvolvimento de um sistema desse tipo não precisa ser uma caixa preta. O verdadeiro desafio, porém, é que ambas as coisas são complexas, e não necessariamente bem compreendidas. Aqui, eu quero tentar esclarecer algumas dessas idéias, e ao mesmo tempo pensar no que queremos dizer com explicações.

Como explicarei abaixo, eu acredito que a confusão surge pelo menos em parte dos conceitos errados que as pessoas têm sobre como esses sistemas funcionam. Quando as pessoas alcançam a metáfora da caixa preta, o que elas parecem estar expressando é o fato de que é difícil fazer sentido do propósito dos vários componentes de um modelo de aprendizagem de máquina. Embora isto seja realmente difícil, eu quero argumentar que também é uma expectativa irrealista. Pelo caminho, vou tentar explicar a diferença entre modelos e como eles são treinados, discutir cenários nos quais a metáfora da caixa preta é apropriada, e sugerir que, de muitas maneiras, os humanos são as verdadeiras caixas pretas, pelo menos no que diz respeito à aprendizagem de máquinas.

Explicações

Para começar, é útil refletir sobre o que as pessoas querem dizer quando falam de explicações. Esta não é de forma alguma uma pergunta trivial, mas parece haver pelo menos duas formas particularmente relevantes de pensar sobre isto.

Quando pedimos a alguém uma explicação do porquê de ter feito algo (“Por que você fez X?”), estamos operando com um certo conjunto de suposições de fundo. No caso de uma decisão que foi cuidadosamente tomada, estamos tipicamente assumindo que eles tinham alguma boa razão para agir como fizeram, e estamos basicamente pedindo o processo de raciocínio que eles usaram para tomar a decisão. Por exemplo, podemos esperar que eles pesaram os prós e os contras e escolheram um curso de ação baseado na expectativa de que isso levasse a algum resultado particular.

Quando perguntamos por que algo deu errado, ao contrário, estamos pedindo uma espécie de explicação post-hoc do fracasso. Por exemplo, depois de um acidente de carro, podemos querer uma explicação sobre o que causou o acidente. O condutor estava distraído? Será que outro carro os fez desviar? Ao invés de um processo de raciocínio, estamos pedindo, mais ou menos, o estímulo crítico que causou uma reação particular fora do comportamento normal.

Quando as pessoas pensam em inteligência artificial, elas normalmente parecem ter em mente o primeiro tipo de explicação. A expectativa é que o sistema fez uma deliberação e escolheu um curso de ação com base no resultado esperado. Embora existam casos em que isso é possível, cada vez mais estamos vendo um movimento em direção a sistemas que são mais parecidos com o segundo caso; ou seja, eles recebem estímulos e depois apenas reagem.

Existem muito boas razões para isso (não menos porque o mundo é complicado), mas isso significa que é mais difícil entender as razões pelas quais uma determinada decisão foi tomada, ou porque acabamos com um modelo em oposição a outro. Com isso em mente, vamos cavar o que queremos dizer com um modelo, e a metáfora da caixa preta.

Boxes and Models

A metáfora da caixa preta remonta aos primeiros tempos da cibernética e do comportamentalismo, e refere-se tipicamente a um sistema para o qual só podemos observar as entradas e saídas, mas não o funcionamento interno. Na verdade, esta foi a forma pela qual B. F. Skinner conceitualizou as mentes em geral. Embora ele tenha demonstrado com sucesso como certos comportamentos aprendidos poderiam ser explicados por um sinal de reforço que ligava certas entradas a certas saídas, ele então cometeu o famoso erro de pensar que esta teoria poderia facilmente explicar todo o comportamento humano, incluindo a linguagem.

Como um exemplo mais simples de uma caixa preta, considere uma experiência de Skinner: você recebe uma caixa com um conjunto de entradas (interruptores e botões) e um conjunto de saídas (luzes que estão acesas ou apagadas). Ao manipular as entradas, você é capaz de observar as saídas correspondentes, mas você não pode olhar para dentro para ver como a caixa funciona. No caso mais simples, como um interruptor de luz em uma sala, é fácil determinar com muita confiança que o interruptor controla o nível de luz. Para um sistema suficientemente complexo, contudo, pode ser efectivamente impossível determinar como funciona a caixa apenas tentando várias combinações.

Agora imagine que lhe é permitido abrir a caixa e olhar para dentro. Você recebe até mesmo um diagrama elétrico completo, mostrando o que são todos os componentes, e como eles estão conectados. Além disso, nenhum dos componentes é complexo em e de si mesmo; tudo é construído a partir de componentes simples, como resistências e capacitores, cada um dos quais tem um comportamento que é bem compreendido isoladamente. Agora, você não só tem acesso à especificação completa de todos os componentes do sistema, como também pode fazer experiências para ver como cada um dos vários componentes responde a determinados inputs.

>

Você pode pensar que com toda essa informação em mãos, você estaria agora em condições de dar uma boa explicação de como a caixa funciona. Afinal, cada componente individual é compreendido, e não há nenhuma informação escondida. Infelizmente, a complexidade surge da interacção de muitos componentes simples. Para um sistema suficientemente complexo, é improvável que você seja capaz de prever qual será a saída da caixa para uma determinada entrada, sem executar o experimento para descobrir. A única explicação para porque a caixa está fazendo o que ela faz é que todos os componentes estão seguindo as regras que governam seu comportamento individual, e o comportamento geral emerge de suas interações.

Even mais importante, além da forma do sistema, você provavelmente estaria perdido para explicar porque cada componente foi colocado onde ele está, mesmo se você soubesse o propósito geral do sistema. Dado que a caixa foi projetada para algum propósito, assumimos que cada componente foi adicionado por uma razão. Para um sistema particularmente inteligente, porém, cada componente pode acabar assumindo múltiplos papéis, como no caso do DNA. Embora isso possa levar a um sistema muito eficiente, também torna muito difícil até mesmo pensar em resumir o propósito de cada componente. Em outras palavras, a forma do sistema é completamente transparente, mas o porquê é potencialmente insondável.

Esta, ao que parece, é uma metáfora perfeita para um aprendizado profundo. Em geral, o sistema inteiro está aberto à inspeção. Além disso, ele é inteiramente composto de componentes simples que são facilmente compreendidos isoladamente. Mesmo que saibamos o propósito do sistema como um todo, no entanto, não há necessariamente uma explicação simples que possamos oferecer sobre como o sistema funciona, além do fato de cada componente individual operar de acordo com suas próprias regras, em resposta à entrada. Esta, de fato, é a verdadeira explicação de como o sistema funciona, e é totalmente transparente. A questão mais difícil, é claro, é por que cada componente assumiu o papel que tem. Para entender isto melhor, será útil separar a idéia de um modelo do algoritmo usado para treiná-lo.

Modelos e Algoritmos

Para realmente entrar nos detalhes, precisamos ser um pouco mais precisos sobre o que estamos falando. Harris refere-se a “como o algoritmo está realizando o que está realizando”, mas há realmente duas partes aqui: um modelo – um sistema de aprendizado tão profundo – e um algoritmo de aprendizado – que nós usamos para ajustar o modelo aos dados. Quando Harris se refere a “o algoritmo”, ele está presumivelmente falando sobre o modelo, não necessariamente como ele foi treinado.

O que exatamente queremos dizer com um modelo? Embora talvez um pouco vago, um modelo estatístico captura basicamente as suposições que fazemos sobre como as coisas funcionam no mundo, com detalhes a serem aprendidos com os dados. Em particular, um modelo especifica quais são os inputs, quais são os outputs, e tipicamente como pensamos que os inputs podem interagir uns com os outros na geração do output.

Um exemplo clássico de um modelo são as equações que governam a gravidade newtoniana. O modelo afirma que a saída (a força da gravidade entre dois objetos) é determinada por três valores de entrada: a massa do primeiro objeto, a massa do segundo objeto, e a distância entre eles. Mais precisamente, afirma que a gravidade será proporcional ao produto das duas massas, dividido pela distância ao quadrado. Criticamente, não explica porque é que estes fatores devem ser os que influenciam a gravidade; apenas tenta dar uma explicação parcimoniosa que nos permite prever a gravidade para qualquer situação.

Obviamente, mesmo que isto fosse completamente correcto, para podermos fazer uma previsão, precisamos também conhecer o factor de escala correspondente, G. Em princípio, no entanto, deve ser possível aprender este valor através da observação. Se assumimos o modelo correto (ou próximo de correto) para como as coisas funcionam na realidade, temos uma boa chance de ser capazes de aprender os detalhes relevantes a partir dos dados.

No caso da gravidade, é claro, Einstein eventualmente mostrou que o modelo de Newton estava apenas aproximadamente correto, e que ele falha em condições extremas. Na maioria das circunstâncias, entretanto, o modelo de Newton é suficientemente bom, razão pela qual as pessoas foram capazes de aprender a constante G= 6,674×10^(-11) N – (m/kg)², e usá-lo para fazer previsões.

O modelo de Newton é muito mais complexo, com mais detalhes a serem aprendidos através da observação. Na maioria das circunstâncias, ele dá aproximadamente a mesma previsão que o modelo Newtoniano daria, mas é mais preciso em circunstâncias extremas, e é claro que tem sido essencial no desenvolvimento de tecnologias como o GPS. Ainda mais impressionantemente, as previsões secundárias da relatividade têm sido surpreendentes, prevendo com sucesso, por exemplo, a existência de buracos negros antes que pudéssemos esperar alguma vez testar a sua existência. E no entanto sabemos que o modelo de Einstein também não é completamente correto, pois não concorda com os modelos da mecânica quântica sob condições ainda mais extremas.

Gravitação, claro, é determinista (tanto quanto sabemos). Na aprendizagem de máquinas e estatística, pelo contrário, estamos tipicamente lidando com modelos que envolvem incerteza ou aleatoriedade. Por exemplo, um modelo simples de quanto tempo você vai viver seria apenas para prever a média da população do país em que você vive. Um modelo melhor poderia levar em conta fatores relevantes, tais como seu estado de saúde atual, seus genes, quanto você faz exercício, se você fuma ou não cigarros, etc. Em praticamente todos os casos, porém, haverá alguma incerteza sobre a previsão, pois não conhecemos todos os fatores relevantes. (Isto é diferente, claro, da aparente aleatoriedade verdadeira que ocorre no nível sub-atômico, mas não nos preocuparemos com essa diferença aqui).

Além de ser um rebranding incrivelmente bem sucedido das redes neurais e da aprendizagem de máquinas (que é, sem dúvida, um rebranding bastante bem sucedido de estatísticas), o termo aprendizagem profunda se refere a um tipo particular de modelo, no qual os resultados são os resultados de uma série de muitas transformações simples aplicadas às entradas (muito parecido com o nosso diagrama de cablagem de cima). Embora os modelos de aprendizagem profunda sejam certamente complexos, eles não são caixas pretas. Na verdade, seria mais preciso referirmo-nos a eles como caixas de vidro, porque podemos literalmente olhar para dentro e ver o que cada componente está fazendo.

O problema, é claro, é que estes sistemas também são complicados. Se eu lhe der um conjunto simples de regras a seguir para fazer uma previsão, desde que não haja muitas regras e as regras em si sejam simples, você poderia muito facilmente descobrir o conjunto completo de mapeamentos de entrada-saída em sua mente. Isto também é verdade, embora em menor grau, com uma classe de modelos conhecidos como modelos lineares, onde o efeito de mudar qualquer input pode ser interpretado sem saber sobre o valor de outros inputs.

Modelos de aprendizagem profunda, ao contrário, normalmente envolvem não-linearidades e interações entre inputs, o que significa que não só não há um mapeamento simples de input para output, o efeito de mudar um input pode depender criticamente dos valores de outros inputs. Isto torna muito difícil descobrir mentalmente o que está acontecendo, mas os detalhes são, no entanto, transparentes e completamente abertos à inspeção.

O cálculo real realizado por estes modelos na realização de uma previsão é tipicamente bastante simples; onde as coisas ficam difíceis é no aprendizado real dos parâmetros do modelo a partir dos dados. Como descrito acima, uma vez que assumimos uma determinada forma para um modelo (neste caso, uma rede neural flexível); precisamos então tentar descobrir bons valores para os parâmetros a partir dos dados.

No exemplo da gravidade, uma vez que assumimos um modelo “suficientemente bom” (proporcional à massa e inversamente proporcional à distância ao quadrado), precisamos apenas resolver o valor de um parâmetro (G), ajustando o modelo às observações. Com os modernos sistemas de aprendizagem profunda, pelo contrário, pode haver facilmente milhões desses parâmetros a serem aprendidos.

Na prática, quase todos esses modelos de aprendizagem profunda são treinados usando alguma variante de um algoritmo chamado de descida de gradiente estocástico (SGD), que retira amostras aleatórias dos dados de treinamento, e ajusta gradualmente todos os parâmetros para tornar o resultado previsto mais parecido com o que queremos. Exatamente porque ele funciona tão bem quanto funciona ainda não é bem compreendido, mas o principal a ter em mente é que ele também é transparente.

Porque ele é normalmente inicializado com valores aleatórios para todos os parâmetros, o SGD pode levar a parâmetros diferentes cada vez que o executamos. O próprio algoritmo, no entanto, é determinista, e se usássemos a mesma inicialização e os mesmos dados, ele produziria o mesmo resultado. Em outras palavras, nem o modelo nem o algoritmo é uma caixa preta.

Embora seja um pouco insatisfatório, a resposta completa para o porquê de um sistema de aprendizagem de máquina ter feito algo em última instância está na combinação das suposições que fizemos no desenho do modelo, nos dados em que foi treinado e em várias decisões tomadas sobre como aprender os parâmetros, incluindo a aleatoriedade na inicialização.

Voltar para caixas pretas

Porquê tudo isso importa? Bem, existem pelo menos duas formas em que o conceito de caixas pretas é altamente relevante para a aprendizagem da máquina.

Primeiro, existem muitos algoritmos e sistemas de software (e não apenas aqueles baseados na aprendizagem da máquina) que são caixas pretas no que diz respeito ao utilizador. Este é talvez o caso mais comum em software proprietário, onde o usuário não tem acesso ao funcionamento interno, e tudo o que podemos ver são as entradas e saídas. Este é o tipo de sistema que a ProPublica reportou na sua cobertura de algoritmos de sentenças judiciais (especificamente o sistema COMPAS da Northpointe). Nesse caso, conhecemos as entradas, e podemos ver as notas de risco que foram dadas às pessoas como saída. No entanto, não temos acesso ao algoritmo utilizado pela empresa, nem aos dados sobre os quais ela foi treinada. No entanto, é seguro dizer que alguém tem acesso aos detalhes – presumivelmente os funcionários da empresa – e é muito provavelmente completamente transparente para eles.

A segunda forma em que a metáfora das caixas pretas é relevante é com respeito aos sistemas que estamos amarrando para aprender, tais como a visão humana. De certa forma, o comportamento humano é invulgarmente transparente, na medida em que podemos realmente perguntar às pessoas porque fizeram algo, e obter explicações. No entanto, há boas razões para acreditar que nem sempre sabemos as verdadeiras razões para as coisas que fazemos. Longe de sermos transparentes para nós mesmos, simplesmente não temos acesso consciente a muitos dos processos internos que regem o nosso comportamento. Se nos pedirem para explicar porque fizemos algo, talvez possamos fornecer uma narrativa que ao menos nos transmita como o processo de tomada de decisão se sentiu para nós. Se nos pedirem para explicar como somos capazes de reconhecer objetos, pelo contrário, podemos pensar que podemos fornecer algum tipo de explicação (algo envolvendo bordas e cores), mas na realidade, este processo opera bem abaixo do nível de consciência.

Embora existam circunstâncias especiais nas quais podemos inspecionar o funcionamento interno dos sistemas humanos ou de outros mamíferos, tais como experimentos neurocientíficos, em geral, estamos tentando usar a aprendizagem mecânica para imitar o comportamento humano usando apenas as entradas e as saídas. Em outras palavras, da perspectiva de um sistema de aprendizagem de máquina, o humano é a caixa preta.

Conclusão

Em conclusão, é útil refletir sobre o que as pessoas querem quando pensam em sistemas que não são caixas pretas. As pessoas tipicamente imaginam algo como o cenário em que um carro que se auto dirige saiu da estrada, e nós queremos saber porquê. Na imaginação popular, a expectativa parece ser que o carro deve ter avaliado possíveis resultados, atribuído probabilidades, e escolhido aquele com a melhor chance de maximizar algum resultado melhor, onde melhor é determinado de acordo com algum tipo de moralidade que foi programado nele.

Na realidade, é altamente improvável que seja assim que as coisas vão funcionar. Ao contrário, se perguntarmos ao carro porque fez o que fez, a resposta será que ele aplicou um cálculo transparente e determinístico usando os valores de seus parâmetros, dado o seu input atual, e isso determinou suas ações. Se perguntarmos porque tinha esses parâmetros particulares, a resposta será que eles são o resultado do modelo que foi escolhido, os dados em que foi treinado e os detalhes do algoritmo de aprendizado que foi usado.

Isso parece frustrantemente inútil, e é fácil de ver porque as pessoas procuram a metáfora da caixa preta. No entanto, considere, que nós não temos esse tipo de acesso para os sistemas que estamos tentando imitar. Se perguntarmos a um motorista humano por que eles saíram da estrada, eles provavelmente serão capazes de responder em linguagem, e dar algum relato de si mesmos – que eles estavam bêbados, ou distraídos, ou tiveram que desviar, ou ficaram cegos pelo tempo – e ainda assim, além de fornecer algum tipo de coerência narrativa, nós não sabemos realmente por que eles fizeram isso, e eles também não sabem. Pelo menos com a aprendizagem da máquina, podemos recriar o mesmo cenário e sondar o estado interno. Pode ser complicado de entender, mas não é uma caixa preta.