Voltar
Engineering
Tabela de conteúdo

 

Os modelos de aprendizado profundo são frequentemente criticados por serem complexos e opacos. Eles são chamados de caixas pretas porque fornecem previsões e insights, mas a lógica por trás de seus resultados é difícil de compreender. Devido às suas complexas redes neurais não lineares multicamadas, os cientistas de dados têm dificuldade em determinar os fatores ou os motivos de uma determinada previsão.

Essa ininteligibilidade faz com que as pessoas tenham receio de tomar decisões importantes com base nos resultados dos modelos. Como seres humanos, confiamos no que entendemos; no que podemos verificar. E com o tempo, isso nos serviu bem. Portanto, ser capaz de mostrar como os modelos resolvem um problema para produzir insights ajudará a criar confiança, mesmo entre pessoas com conhecimento superficial da ciência de dados.

Para conseguir isso, é imperativo desenvolver métodos computacionais que possam interpretar, auditar e depurar esses modelos. A depuração é essencial para entender como os modelos identificam padrões e geram previsões. Isso também nos ajudará a identificar e corrigir bugs e defeitos.

Neste artigo, vamos nos aprofundar nos diferentes métodos usados para depurar modelos de aprendizado de máquina.

 

 

Source: interpretable-ml-book
Fonte: https://christophm.github.io/interpretable-ml-book/terminology.html

 

Importância da permutação

Também conhecido como importância do recurso de permutação, é um algoritmo que calcula a sensibilidade de um modelo às permutações/alterações nos valores de um recurso. Em essência, a importância do recurso avalia cada recurso de seus dados e o classifica com base em sua relevância ou importância em relação à saída. Embora a permutação seja importante, mede cada característica dos dados após sua alteração e a classifica com base em sua importância para gerar uma saída.

Por exemplo, vamos permutar ou misturar aleatoriamente os valores de uma única coluna no conjunto de dados de validação com todas as outras colunas intactas. Se a precisão do modelo cair substancialmente e causar um aumento no erro, esse recurso é considerado “importante”. Por outro lado, um recurso é considerado “sem importância” se o embaralhamento de seus valores não afetar a precisão do modelo.

 

Depurando modelos de ML usando ELI5

ELI5 é uma biblioteca Python que auxilia várias estruturas de ML e ajuda a visualizar e depurar facilmente caixas pretas usando uma API unificada. Isso ajuda a calcular a importância da permutação. Mas deve-se notar que o importância da permutação só é computado em dados de teste após a construção do modelo.

Debugging ML models using ELI5

 

Depois que nosso modelo estiver pronto, importamos ELI5 para calcular a importância da permutação.

Importing ELI5 for debugging ML models

A saída para o código acima é mostrada abaixo:

output

Os recursos que estão no topo são os mais importantes, o que significa que qualquer alteração feita nesses valores reduzirá significativamente a precisão do modelo. Os recursos que estão no final da lista não são importantes, pois qualquer permutação feita em seus valores não reduzirá a precisão do modelo. Neste exemplo, OverallQual foi o recurso mais importante.

 

Depuração de modelos baseados em CNN usando Grad-CAM (mapeamento de ativação de classes ponderadas por gradiente)

Grad-CAM é uma técnica que produz explicações visuais para saídas para fornecer modelos transparentes baseados em Rede Neural Convolucional (CNN). Ele examina as informações de gradiente que fluem para a camada final da rede neural para entender a saída. O Grad-cam pode ser usado para classificação de imagens, legendas de imagens e resposta visual a perguntas. A saída fornecida pelo Grad-CAM é uma visualização de mapa de calor, usada para verificar visualmente se seu modelo foi treinado para observar os padrões corretos em uma imagem.

Debugging ML models using Grad-CAM

 

Debugging ML models using Grad-CAM2

 

Depurando modelos de ML usando SHAP (ShaPley Additive Explanations)

SHAP é uma abordagem teórica de jogos que visa explicar uma previsão calculando a importância de cada recurso para essa previsão. A biblioteca SHAP usa os valores de Shapley em sua essência e explica as previsões individuais. Lloyd Shapley introduziu o conceito de Shapley em 1953 e ele foi posteriormente aplicado ao campo do aprendizado de máquina.

Os valores de Shapley são derivados de Teoria dos jogos, em que cada recurso nos dados é um jogador e a recompensa final é a previsão. Dependendo de sua contribuição para a recompensa, os valores de Shapley nos dizem como distribuir essa recompensa de forma justa entre os jogadores.

Usamos o SHAP com bastante frequência, especialmente para os modelos nos quais a explicabilidade é crítica. Os resultados são realmente muito precisos.

O SHAP pode explicar:

  • Importância geral das características do modelo usando todos os dados
  • Por que um modelo calcula uma pontuação específica para uma linha/registro específico
  • Os recursos mais dominantes para um segmento/grupo de dados

Os valores de Shapley calculam a importância do recurso comparando duas previsões, uma com o recurso incluído e outra sem ele. Os valores positivos de SHAP afetam positivamente a variável de previsão/alvo, enquanto os valores negativos de SHAP afetam negativamente o alvo.

Aqui está um exemplo para explicar o mesmo. Para isso, estou pegando um conjunto de dados de qualidade do vinho tinto de sacudir.

Debugging ML models using Shapley

 

Agora, produzimos gráficos de importância variável, que listam a variável mais significativa em ordem decrescente. Nesse caso, a variável superior contribuiria mais para o modelo.

Importing SHAP for debugging ML models

 

Mapping the plot

Na figura acima, todas as variáveis são representadas graficamente em ordem decrescente. A cor das variáveis representa o valor da característica, sejam elas altas (em vermelho) ou baixas (em azul) nessa observação. UM alto o nível do teor de “sulfatos” é alto e positivo impacto na classificação de qualidade. O eixo X representa o impacto “positivo”. Da mesma forma, podemos dizer que “cloretos” está negativamente correlacionado com a variável alvo.

Agora, eu gostaria de mostrar como os valores de SHAP são calculados em casos individuais. Em seguida, executamos esses valores em várias observações e escolhemos algumas delas aleatoriamente.

Interpreting SHAP values

 

Depois de escolher observações aleatórias, inicializamos nosso notebook com initjs ().

Explicação para alguns dos termos vistos no gráfico acima:

  1. Valor de saída: Previsão para essa observação, que neste caso é 5,35
  2. Valor base: O valor base é a previsão média, ou média (yhat), aqui é 5,65
  3. Azul/ vermelho: os recursos que podem impactar mais a previsão são mostrados em vermelho, e os que têm o menor impacto estão na cor azul.

Para obter mais informações e testar suas habilidades, confira sacudir.

Nenhum item encontrado.

Blogs relacionados