Explicando Modelos de Machine Learning para seu Cliente

Rafael Alencar
Neuronio BR
Published in
5 min readApr 22, 2019

Nota: uma versão em inglês deste artigo pode ser encontrada em "Explaining Machine Learning Models to your Client"

Até para os que trabalham diariamente com Machine Learning, é difícil explicar como funcionam os modelos que criaram e o que leva eles a tomarem certas decisões. Mesmo sabendo que os resultados são ótimos, explicá-los para quem está pagando é extremamente importante.

Por que abrir a Caixa-Preta?

A medida que vamos melhorando os nossos modelos, eles também vão se tornando cada vez mais complexos. Com isso, eles vão se tornando cada vez mais próximos de caixas-pretas em que apenas temos que simplesmente “acreditar” que eles funcionam. Quando falamos de Inteligência Artificial Explicável (XAI), estamos falando em deixar decisões de um modelo mais transparentes e de interpretáveis por um ser humano, mesmo que uma dessas decisões seja contra-intuitiva. Essa desmistificação pode, porém trazer vários benefícios como veremos a seguir.

Debugging

Além de saber porque seu modelo funciona, é bom saber explicar quando ele não funciona, para que possa ser feita uma correção o mais rápido possível. Em modelos mais complexos, debugging é algo bem complicado, pois são tantas variáveis que podem estar causando o problema, que acabamos nos perdendo entre elas. Conhecendo cada parte do modelo e entendendo como elas operam, podemos separá-las para melhor entender qual delas precisa de conserto.

Melhorar a Coleta de Dados

Muitas técnicas de Machine Learning focam na extração e interpretação das features de um modelo. Muitos modelos recebem uma quantidade gigantesca de dados, muitos deles não têm um significado direto para nós humanos, e essas features facilitam a compreensão dos dados e entrada do modelo.

Imagine o caso de uma empresa que vende seguros, para determinar o preço de uma apólice são necessárias diversas informações sobre seu cliente. Quais dados são importantes? Será que todos são realmente necessários? Coleta de dados nem sempre é algo barato dependendo da sua aplicação, e sabendo as features mais relevantes podemos redirecionar recursos para esta coleta de maneira mais inteligente e obter dados com maior qualidade.

Criar Confiança e Transparência

Como foi dito antes, para quem não trabalha diretamente como essas ferramentas, o jeito como elas operam pode parecer como mágica. Para algumas aplicações apenas uma boa acurácia já satisfaz o cliente. Mas para uma aplicação médica que determina a doença de uma pessoa pelos dados de seu exame, essa transparência é essencial para que se tome as decisões de tratamento corretamente. Outro exemplo são os bancos, que também precisam saber explicar os motivos de uma negação ou aprovação de crédito feita por seus modelos, pois existem questões legais e até éticas que garantem transparência aos seus clientes.

Como abrir a Caixa-Preta?

Existem diversas técnicas que buscam representar o que esses modelos fazem. Essas técnicas normalmente são divididas por sua abordagem, mais especificamente, se queremos uma explicação global ou local.

Explicação Global

Como o próprio nome diz, esta abordagem buscamos explicar o funcionamento do modelo como um todo, e não para um caso particular. Normalmente nesta abordagem é usada em modelos mais simples como modelos Lineares, Probabilísticos, Árvores de Decisão dentre outros que ainda são considerados modelos de Caixa-Branca

Explicação Local

Aqui o foco está em explicar características locais de modelos complexos. Podemos usar ferramentas de visualização para explorar a arquitetura e pesos do modelo ou analizar como as diferentes entradas afetam nossa classificação. A seguir veremos alguns exemplos dessas técnicas.

Exemplos de Técnicas para Explicação Local

Visualização de Camadas Ocultas

Redes neurais convolucionais (CNN) são bem populares quando trabalhamos com imagens. Essas camadas de convolução possuem diversos filtros que serão passados pela imagem original para extração de features. Podemos pensar nesses filtros como subimagens, e ao ativar esses filtros podemos dizer que a convolução encontrou essa subimagem dentro da original. Abaixo temos a visualização de alguns filtros de uma CNN de classificação.

Features de uma CNN para cada camada da rede

Técnicas de Projeção e Redução de Dimensionalidade

Infelizmente, vivemos em um mundo em que só podemos ver no máximo 3 dimensões, porém modelos matemáticos podem trabalhar com centenas ou até milhares de dimensões. Por exemplo, quando trabalhamos com textos é comum usar Word2Vec, uma ferramenta de vetorização de palavras, onde cada palavra é representada como um vetor numérico de dimensão N. Usando técnicas como t-SNE (T-distributed Stochastic Neighbor Embedding), podemos representar essas palavras em um espaço de dimensão 2. A figura abaixo mostra um vocabulário gerado pela técnica citada e sua representação em duas dimensões.

Representação do vocabulário gerado por Word2Vec usando t-SNE

Explicações Independentes do Modelo

Além de desmistificar como o modelo funciona, seria bom que ele pudesse nos explicar os principais fatores que acarretaram em suas decisões. Para esse tipo de explicação, podemos a usar a ferramenta LIME (Local Interpretable Model-agnostic Explanations). Esta é uma ferramenta que pode ser usada para qualquer classificador de Machine Learning, pois depende apenas de suas entradas e saídas. Ela cria pequenas alterações nas entradas do modelo, seja com ruídos ou usando dados reais, e avalia o impacto dessas mudanças em sua precisão. Abaixo temos um exemplo de classificação de texto usando o pacote lime do Python, que dirá a pontuação de cada classe, e a pontuação de das palavras mais importantes do texto para as duas classes melhor pontuadas.

Explicação gerada pelo LIME em uma previsão correta

Neste exemplo, fica bastante claro os motivos que levaram o modelo a decisão de classificar o produto para a classe de “acessórios para festas”, o uso de palavras como “convites”, “festa” e “aniversário”.

Explicação gerada pelo LIME em uma previsão incorreta

Agora, podemos ver que a palavra "model" foi a maior culpada pelo erro, já que mesmo como a palavra "puzzle" apontando para a categoria correta, o modelo pontuou melhor outra categoria. Pelo menos, podemos explicar os seus erros, de uma maneira que qualquer ser humano entenda, sem precisar de valores numéricos.

Conclusão

Neste artigo, busquei mostrar a motivação para usarmos essas ferramentas de explicação e interpretação de machine learning, e mostrar como algumas delas funcionam. Saber como essas máquinas pensam é um ótimo jeito de aprender sobre os problemas que estamos buscando resolver, elas veem coisas que não vemos e tem ideias bem mais rápido do que nós. No entanto, nós sabemos explicar nossas ideias melhor do que elas.

Referências

Explainable AI: The data scientists’ new challenge

Local Interpretable Model-agnostic Explanations of Bayesian Predictive Models via Kullback–Leibler Projections

Machine Learning Explainability - Kaggle

--

--