Interpretabilidade do modelo
Este artigo descreve os métodos que você pode usar para a interpretação de modelo no Azure Machine Learning.
Importante
Com o lançamento do painel de IA Responsável, que inclui a interpretação do modelo, recomendamos que você migre para a nova experiência, porque o painel de interpretação do modelo de versão prévia do SDK v1 mais antigo não será mais mantido ativamente.
Por que a interpretação do modelo é importante para a depuração de modelo
Quando se usa modelos de machine learning de maneiras que afetam a vida das pessoas, é extremamente importante entender o que influencia o comportamento dos modelos. A interpretação ajuda a responder perguntas em cenários como:
- Depuração de modelo: por que meu modelo cometeu esse erro? Como posso aprimorar meu modelo?
- Colaboração Humano-AI: Como posso entender e confiar nas decisões do modelo?
- Conformidade regulatória: meu modelo atende aos requisitos legais?
O componente de interpretabilidade do painel de controle de IA Responsável contribui para o estágio de "diagnóstico" do fluxo de trabalho do ciclo de vida do modelo, gerando descrições compreensíveis por humanos das previsões de um modelo de machine learning. Ele fornece várias exibições sobre o comportamento de um modelo:
- Explicações globais: por exemplo, quais recursos afetam o comportamento geral de um modelo de alocação de empréstimos?
- Explicações locais: Por exemplo, por que o pedido de empréstimo de um cliente foi aprovado ou rejeitado?
Também é possível observar explicações de modelo para uma coorte selecionada como um subgrupo de pontos de dados. Essa abordagem é valiosa quando, por exemplo, você está avaliando a imparcialidade nas previsões de modelo para indivíduos em um determinado grupo demográfico. A guia de Explicação local desse componente também representa uma visualização completa de dados, o que é ótimo para analisar os dados em geral e examinar as diferenças entre as previsões corretas e incorretas de cada coorte.
Os recursos desse componente são fundados pelo pacote InterpretML, que gera explicações de modelo.
Use a interpretabilidade quando precisar:
- Determine a confiabilidade das previsões do seu sistema de IA, entendendo quais recursos são mais importantes para as previsões.
- Aborde a depuração do modelo entendendo-o primeiro e identificando se ele está usando recursos íntegros ou correlações falsas.
- Descubra possíveis fontes de parcialidade ao entender se o modelo está baseando previsões em recursos sensíveis ou em recursos que estão altamente correlacionados com eles.
- Crie a confiança do usuário nas decisões do seu modelo gerando explicações locais para ilustrar seus resultados.
- Conclua uma auditoria regulatória de um sistema de IA para validar modelos e monitorar o impacto das decisões de modelo em humanos.
Como interpretar seu modelo
Em aprendizado de máquina, recursos são os campos de dados que você usa para prever um ponto de dados de destino. Por exemplo, para prever o risco de crédito, podem ser usados os campos de dados para idade, tamanho da conta e idade da conta. Aqui, a idade, o tamanho da conta e a idade da conta são os recursos. A importância do recurso informa como cada campo de dados afeta as previsões do modelo. Por exemplo, embora você possa usar muito a idade na previsão, o tamanho e a idade da conta podem não afetar significativamente os valores de previsão. Por meio desse processo, os cientistas de dados podem explicar previsões resultantes de maneiras que dão aos stakeholders visibilidade sobre os recursos mais importantes do modelo.
Ao usar as classes e os métodos no painel de IA Responsável e usando o SDK v2 e a CLI v2, você pode:
- Explicar a previsão do modelo gerando valores de importância do recurso para o modelo todo (explicação global) ou para pontos de dados individuais (explicação local).
- Alcançar a interpretabilidade do modelo em conjuntos de valores do mundo real em escala.
- Usar um painel de visualização interativa para descobrir padrões em seus dados e explicações no momento do treinamento.
Ao usar as classes e métodos no SDK v1, é possível:
- Explicar a previsão do modelo gerando valores de importância do recurso para o modelo todo ou para pontos de dados individuais.
- Alcançar a interpretação do modelo em conjuntos de dados do mundo real em escala durante o treinamento e a inferência.
- Usar um painel de visualização interativa para descobrir padrões em seus dados e explicações no momento do treinamento.
Observação
As classes de interpretabilidade do modelo são disponibilizadas por meio do pacote do SDK v1. Para obter mais informações, consulte Instalar pacotes do SDK para o Azure Machine Learning e azureml.interpret.
Técnicas de interpretabilidade do modelo com suporte
O painel de IA Responsável e azureml-interpret
usam as técnicas de interpretabilidade que foram desenvolvidas na Interpret-Community, um pacote Python de código aberto para treinar modelos interpretáveis e ajudar a explicar sistemas de IA de caixa opaca. Modelos de caixa opaca são aqueles para os quais não temos informações sobre seu funcionamento interno.
A Interpret-Community serve como host para os seguintes explicadores com suporte e, atualmente, oferece suporte às técnicas de interpretação apresentadas nas próximas seções.
Com suporte no painel de IA Responsável no SDK v2 e na CLI v2 do Python
Técnica de interpretação | Descrição | Type |
---|---|---|
Explicador de imitação (substituto global) + árvore SHAP | O Explicador de imitação se baseia na ideia de treinar modelos globais substitutos para imitar modelos de caixa opaca. Um modelo global substituto é um modelo intrinsecamente interpretável, que é treinado para aproximar as previsões de qualquer modelo de caixa opaca do modo mais preciso possível. Os cientistas de dados podem interpretar o modelo substituto para tirar conclusões sobre o modelo de caixa opaca. O painel de IA Responsável usa o LightGBM (LGBMExplainableModel), emparelhado com o Explicador de árvore do SHAP (SHapley Additive exPlanations), que é um explicador específico para árvores e conjuntos de árvores. A combinação de árvore LightGBM e SHAP fornece explicações globais e locais independentes de modelo para os seus modelos de machine learning. |
Independente de modelo |
Técnicas de interpretabilidade de modelo com suporte para modelos de texto
Técnica de interpretação | Descrição | Type | Tarefa Texto |
---|---|---|---|
Texto SHAP | SHAP (SHapley Additive exPlanations) é um método de explicação popular para redes neurais profundas que fornece insights sobre a contribuição de cada recurso de entrada para uma determinada previsão. Ele é baseado no conceito de valores Shapley, que é um método para atribuir crédito a jogadores individuais em um jogo cooperativo. O SHAP aplica esse conceito aos recursos de entrada de uma rede neural calculando a contribuição média de cada recurso para a saída do modelo em todas as combinações possíveis de recursos. Para texto especificamente, o SHAP divide as palavras de maneira hierárquica, tratando cada palavra ou token como um recurso. Isso produz um conjunto de valores de atribuição que quantificam a importância de cada palavra ou token para a previsão fornecida. O mapa de atribuição final é gerado visualizando esses valores como um mapa de calor sobre o documento de texto original. SHAP é um método independente de modelo e pode ser usado para explicar uma ampla variedade de modelos de aprendizado profundo, incluindo CNNs, RNNs e transformadores. Além disso, ele fornece várias propriedades desejáveis, como consistência, precisão e imparcialidade, tornando-a uma técnica confiável e interpretável para entender o processo de tomada de decisão de um modelo. | Independente de modelo | Classificação de várias classes de texto, classificação de vários rótulos de texto |
Técnicas de interpretabilidade de modelo com suporte para modelos de imagem
Técnica de interpretação | Descrição | Type | Tarefa De Visão |
---|---|---|---|
Visão SHAP | SHAP (SHapley Additive exPlanations) é um método de explicação popular para redes neurais profundas que fornece insights sobre a contribuição de cada recurso de entrada para uma determinada previsão. Ele é baseado no conceito de valores Shapley, que é um método para atribuir crédito a jogadores individuais em um jogo cooperativo. O SHAP aplica esse conceito aos recursos de entrada de uma rede neural calculando a contribuição média de cada recurso para a saída do modelo em todas as combinações possíveis de recursos. Especificamente para a visão, o SHAP divide a imagem de maneira hierárquica, tratando áreas de superpixel da imagem como cada recurso. Isso produz um conjunto de valores de atribuição que quantificam a importância de cada superpixel ou área de imagem para a previsão fornecida. O mapa de atribuição final é gerado visualizando esses valores como um mapa de calor. SHAP é um método independente de modelo e pode ser usado para explicar uma ampla variedade de modelos de aprendizado profundo, incluindo CNNs, RNNs e transformadores. Além disso, ele fornece várias propriedades desejáveis, como consistência, precisão e imparcialidade, tornando-a uma técnica confiável e interpretável para entender o processo de tomada de decisão de um modelo. | Independente de modelo | Classificação de várias classes de imagem, classificação de vários rótulos de imagem |
Backprop guiado | Guided-backprop é um método de explicação popular para redes neurais profundas que fornece insights sobre as representações aprendidas do modelo. Ele gera uma visualização dos recursos de entrada que ativam um neurônio específico no modelo, calculando o gradiente da saída em relação à imagem de entrada. Ao contrário de outros métodos baseados em gradiente, o backprop guiado apenas faz backpropagates por meio de gradientes positivos e usa uma função de ativação ReLU modificada para garantir que os gradientes negativos não influenciem a visualização. Isso resulta em um mapa de saliency mais interpretável e de alta resolução que realça os recursos mais importantes na imagem de entrada para uma determinada previsão. O guided-backprop pode ser usado para explicar uma ampla gama de modelos de aprendizado profundo, incluindo CNNs (redes neurais convolucionais), RNNs (redes neurais recorrentes) e transformadores. | AutoML | Classificação de várias classes de imagem, classificação de vários rótulos de imagem |
GradCAM guiado | O GradCAM guiado é um método de explicação popular para redes neurais profundas que fornece insights sobre as representações aprendidas do modelo. Ele gera uma visualização dos recursos de entrada que mais contribuem para uma classe de saída específica, combinando a abordagem baseada em gradiente da backpropagation guiada com a abordagem de localização do GradCAM. Especificamente, ele calcula os gradientes da classe de saída em relação aos mapas de recursos da última camada convolucional na rede e, em seguida, pondera cada mapa de recursos de acordo com a importância de sua ativação para essa classe. Isso produz um mapa de calor de alta resolução que realça as regiões mais discriminativas da imagem de entrada para a classe de saída fornecida. O GradCAM guiado pode ser usado para explicar uma ampla gama de modelos de aprendizado profundo, incluindo CNNs, RNNs e transformadores. Além disso, incorporando backpropagation guiada, ela garante que a visualização seja significativa e interpretável, evitando ativações espúrias e contribuições negativas. | AutoML | Classificação de várias classes de imagem, classificação de vários rótulos de imagem |
Gradientes integrados | Gradientes integrados é um método de explicação popular para redes neurais profundas que fornece insights sobre a contribuição de cada recurso de entrada para uma determinada previsão. Ele calcula o integral do gradiente da classe de saída em relação à imagem de entrada, ao longo de um caminho reto entre uma imagem de linha de base e a imagem de entrada real. Esse caminho normalmente é escolhido para ser uma interpolação linear entre as duas imagens, com a linha de base sendo uma imagem neutra que não tem recursos importantes. Ao integrar o gradiente ao longo desse caminho, os Gradientes Integrados fornecem uma medida de como cada recurso de entrada contribui para a previsão, permitindo que um mapa de atribuição seja gerado. Esse mapa realça os recursos de entrada mais influentes e pode ser usado para obter insights sobre o processo de tomada de decisão do modelo. Gradientes integrados podem ser usados para explicar uma ampla gama de modelos de aprendizado profundo, incluindo CNNs, RNNs e transformadores. Além disso, é uma técnica teoricamente fundamentada que atende a um conjunto de propriedades desejáveis, como sensibilidade, invariância de implementação e integridade. | AutoML | Classificação de várias classes de imagem, classificação de vários rótulos de imagem |
XRAI | XRAI é um novo método de saliency baseado em região baseado em Gradientes Integrados (IG). Ela segmenta a imagem e testa iterativamente a importância de cada região, unindo regiões menores em segmentos maiores com base em pontuações de atribuição. Essa estratégia produz regiões de saliency de alta qualidade e limitadas que superam as técnicas de saliency existentes. O XRAI pode ser usado com qualquer modelo baseado em DNN, desde que haja uma maneira de agrupar os recursos de entrada em segmentos por meio de alguma métrica de similaridade. | AutoML | Classificação de várias classes de imagem, classificação de vários rótulos de imagem |
D-RISE | D-RISE é um método independente de modelo para criar explicações visuais para as previsões de modelos de detecção de objetos. Ao considerar os aspectos de localização e categorização da detecção de objetos, o D-RISE pode produzir mapas de saliency que realçam partes de uma imagem que mais contribuem para a previsão do detector. Ao contrário dos métodos baseados em gradiente, d-RISE é mais geral e não precisa de acesso ao funcionamento interno do detector de objetos; ele requer apenas acesso às entradas e saídas do modelo. O método pode ser aplicado a detectores de um estágio (por exemplo, YOLOv3), detectores de dois estágios (por exemplo, Faster-RCNN) e Vision Transformers (por exemplo, DETR, OWL-ViT). D-Rise fornece o mapa de saliency criando máscaras aleatórias da imagem de entrada e a enviará ao detector de objetos com as máscaras aleatórias da imagem de entrada. Ao avaliar a alteração da pontuação do detector de objetos, ele agrega todas as detecções com cada máscara e produz um mapa de saliência final. |
Independente de modelo | Detecção de objetos |
Com suporte no SDK do Python v1
Técnica de interpretação | Descrição | Type |
---|---|---|
Explicador de árvore do SHAP | O Explicador de árvore do SHAP se concentra em um algoritmo de estimativa de valor do SHAP que é polinomial e rápido, específico para árvores e conjuntos de árvores. | Específicas do modelo |
Explicador profundo do SHAP | Com base na explicação do SHAP, o Explicador profundo é um "algoritmo de aproximação de alta velocidade para valores do SHAP em modelos de aprendizado profundo que se baseiam em uma conexão com o DeepLIFT descrito no Artigo SHAP NIPS. Há suporte para modelos do TensorFlow e modelos do Keras que usam o back-end do TensorFlow (também há suporte preliminar para PyTorch)." | Específicas do modelo |
Explicador linear do SHAP | O Explicador linear do SHAP calcula os valores do SHAP para um modelo linear, opcionalmente contabilizando correlações entre recursos. | Específicas do modelo |
Explicador de Kernel do SHAP | O Explicador de Kernel do SHAP usa uma regressão linear local especialmente ponderada para estimar valores do SHAP para qualquer modelo. | Independente de modelo |
Explicador de imitação (Substituto global) | O Explicador de imitação se baseia na ideia de treinar modelos globais substitutos para imitar modelos de caixa opaca. Um modelo global substituto é um modelo intrinsecamente interpretável, que é treinado para aproximar as previsões de qualquer modelo de caixa opaca do modo mais preciso possível. Os cientistas de dados podem interpretar o modelo substituto para tirar conclusões sobre o modelo de caixa opaca. É possível usar um dos seguintes modelos interpretáveis como modelo substituto: LightGBM (LGBMExplainableModel), Regressão linear (LinearExplainableModel), Modelo explicável gradiente descendente estocástico (SGDExplainableModel) ou Árvore de decisão (DecisionTreeExplainableModel). | Independente de modelo |
Explicador de importância do recurso de permutação | A importância do recurso de permutação (PFI) é uma técnica usada para explicar os modelos de classificação e de regressão que são inspirados no Artigo sobre Florestas Aleatórias de Breiman (consulte a seção 10). De maneira geral, ele funciona por meio do embaralhamento aleatório de dados, um recurso de cada vez, para todo o conjunto de dados e do cálculo de quanto a métrica de desempenho de interesse muda. Quanto maior a alteração, mais importante é esse recurso. O PFI pode explicar o comportamento geral de qualquer modelo subjacente, mas não explica previsões individuais. | Independente de modelo |
Além das técnicas de interpretação descritas na seção anterior, damos suporte a outro explicador baseado no SHAP, chamado de Explicador Tabular. Dependendo do modelo, o Explicador Tabular usa um dos explicadores do SHAP com suporte:
- Explicador de árvore para todos os modelos baseados em árvore
- Explicador profundo para modelos de DNN (rede neural profunda)
- Explicador linear para modelos lineares
- Explicador do kernel para todos os outros modelos
O Explicador Tabular também fez melhorias significativas de desempenho e de recursos em relação aos explicadores do SHAP diretos:
- Resumo do conjunto de dados de inicialização: quando a velocidade da explicação é mais importante, resumimos o conjunto de dados de inicialização e geramos um pequeno conjunto de amostras representativas. Essa abordagem acelera a geração de valores gerais e individuais de importância de recursos.
- Amostragem do conjunto de dados de avaliação: se você passar por um grande conjunto de amostras de avaliação, mas não precisar realmente de todas elas para avaliar o modelo, você pode definir o parâmetro de amostragem como
true
para acelerar o cálculo das explicações gerais do modelo.
O diagrama a seguir mostra a estrutura atual dos explicadores com suporte:
Modelo de machine learning com suporte
O pacote do SDK azureml.interpret
dá suporte a modelos que são treinados com os seguintes formatos de conjunto de dados:
numpy.array
pandas.DataFrame
iml.datatypes.DenseData
scipy.sparse.csr_matrix
As funções de explicação aceitam modelos e pipelines como entrada. Se um modelo for fornecido, ele deverá implementar a função de previsão predict
ou predict_proba
em conformidade com a convenção Scikit. Se o modelo não oferecer suporte a isso, é possível encapsular o modelo em uma função que gera o mesmo resultado que predict
ou predict_proba
em Scikit e usar essa função de wrapper com o explicador selecionado.
Se você fornecer um pipeline, a função de explicação assume que o script do pipeline em execução retornará uma previsão. Ao usar essa técnica de encapsulamento, o azureml.interpret
pode dar suporte a modelos que são treinados por meio de estruturas de aprendizado profundo PyTorch, TensorFlow e Keras e modelos clássicos de aprendizado de máquina.
Destino de computação local e remoto
O pacote azureml.interpret
foi projetado para funcionar com destinos de computação locais e remotos. Se você executar o pacote localmente, as funções do SDK não entrarão em contato com nenhum serviço do Azure.
É possível executar a explicação remotamente na Computação do Azure Machine Learning e registrar as informações de explicação no serviço de histórico de execuções do Azure Machine Learning. Depois que essas informações são registradas, relatórios e visualizações da explicação estão prontamente disponíveis no Estúdio do Azure Machine Learning para análise.
Próximas etapas
- Saiba como gerar o Painel de IA Responsável por meio da CLI v2 e do SDK v2 ou da interface do usuário do Estúdio do Azure Machine Learning.
- Explore as visualizações de interpretabilidade com suporte do painel de IA Responsável.
- Saiba como gerar um scorecard de IA responsável com base nos insights observados no dashboard de IA responsável.
- Saiba como habilitar a interpretabilidade para modelos de machine learning automatizados (SDK v1).