Introdução ao Vertex Explainable AI

Os modelos de aprendizagem automática são frequentemente "caixas negras"; mesmo os respetivos criadores não conseguem explicar como ou por que motivo um modelo produziu uma inferência específica. O Vertex Explainable AI oferece explicações baseadas em caraterísticas e baseadas em exemplos para proporcionar uma melhor compreensão da tomada de decisões do modelo.

Saber como um modelo se comporta e como o respetivo conjunto de dados de preparação influencia o modelo dá a qualquer pessoa que crie ou use a AA novas capacidades para melhorar os modelos, criar confiança nas respetivas inferências e compreender quando e por que motivo as coisas correm mal.

Explicações baseadas em exemplos

Com as explicações baseadas em exemplos, o Vertex AI usa a pesquisa de vizinhos mais próximos para devolver uma lista de exemplos (normalmente do conjunto de preparação) que são mais semelhantes à entrada. Uma vez que geralmente esperamos que as entradas semelhantes produzam inferências semelhantes, podemos usar estas explicações para explorar e explicar o comportamento do nosso modelo.

As explicações baseadas em exemplos podem ser úteis em vários cenários:

  • Melhore os seus dados ou modelo: um dos principais exemplos de utilização das explicações baseadas em exemplos é ajudar a compreender por que motivo o seu modelo cometeu determinados erros nas suas inferências e usar essas estatísticas para melhorar os seus dados ou modelo. Para tal, selecione primeiro os dados de teste que lhe interessam. Isto pode ser determinado pelas necessidades da empresa ou por heurísticas, como dados em que o modelo cometeu os erros mais graves.

    Por exemplo, suponhamos que temos um modelo que classifica as imagens como um pássaro ou um avião e classifica incorretamente o seguinte pássaro como um avião com um elevado nível de confiança. Use explicações baseadas em exemplos para obter imagens semelhantes do conjunto de preparação para perceber o que está a acontecer.

    Explicação baseada em exemplos que mostra uma imagem de um pássaro em silhueta classificada incorretamente e imagens semelhantes de aviões em silhueta dos dados de preparação.

    Uma vez que todas as suas explicações são silhuetas escuras da classe de aviões, é um sinal para obter mais silhuetas de pássaros.

    No entanto, se as explicações forem principalmente da classe de pássaros, é um sinal de que o nosso modelo não consegue aprender relações, mesmo quando os dados são ricos, e devemos considerar aumentar a complexidade do modelo (por exemplo, adicionar mais camadas).

  • Interpretar dados novos: suponha, por agora, que o seu modelo foi preparado para classificar pássaros e aviões, mas, no mundo real, o modelo também encontra imagens de papagaios, drones e helicópteros. Se o seu conjunto de dados de vizinhos mais próximos incluir algumas imagens etiquetadas de papagaios, drones e helicópteros, pode usar explicações baseadas em exemplos para classificar novas imagens aplicando a etiqueta mais frequente dos seus vizinhos mais próximos. Isto é possível porque esperamos que a representação latente de papagaios seja diferente da de pássaros ou aviões e mais semelhante à dos papagaios etiquetados no conjunto de dados do vizinho mais próximo.

  • Detetar anomalias: intuitivamente, se uma instância estiver longe de todos os dados no conjunto de preparação, é provável que seja um valor atípico. Sabe-se que as redes neurais têm confiança excessiva nos seus erros, o que os oculta. A monitorização dos seus modelos através de explicações baseadas em exemplos ajuda a identificar os valores atípicos mais graves.

  • Aprendizagem ativa: as explicações baseadas em exemplos podem ajudar a identificar as instâncias que podem beneficiar da etiquetagem humana. Isto é particularmente útil se a etiquetagem for lenta ou dispendiosa, garantindo que obtém o conjunto de dados mais completo possível a partir de recursos de etiquetagem limitados.

    Por exemplo, suponhamos que temos um modelo que classifica um paciente médico como tendo uma constipação ou uma gripe. Se um paciente for classificado como tendo gripe e todas as respetivas explicações baseadas em exemplos forem da classe de gripe, o médico pode ter mais confiança na inferência do modelo sem ter de analisar mais detalhadamente. No entanto, se algumas das explicações forem da classe de gripe e outras da classe de constipação, vale a pena pedir a opinião de um médico. Isto vai gerar um conjunto de dados em que as instâncias difíceis têm mais etiquetas, o que facilita a aprendizagem de relações complexas por parte dos modelos a jusante.

Para criar um modelo que suporte explicações baseadas em exemplos, consulte o artigo Configurar explicações baseadas em exemplos.

Tipos de modelos suportados

É suportado qualquer modelo do TensorFlow que possa fornecer uma incorporação (representação latente) para entradas. Os modelos baseados em árvores, como as árvores de decisão, não são suportados. Os modelos de outras frameworks, como o PyTorch ou o XGBoost, ainda não são suportados.

Para as redes neurais profundas, geralmente, assumimos que as camadas superiores (mais próximas da camada de saída) aprenderam algo "significativo" e, por isso, a camada penúltima é frequentemente escolhida para incorporações. Experimente algumas camadas diferentes, investigue os exemplos que está a receber e escolha um com base em algumas medidas quantitativas (correspondência de classes) ou qualitativas (parece sensato).

Para uma demonstração de como extrair incorporações de um modelo do TensorFlow e realizar uma pesquisa do vizinho mais próximo, consulte o bloco de notas de explicação baseada em exemplos.

Explicações baseadas em funcionalidades

O Vertex Explainable AI integra atribuições de funcionalidades no Vertex AI. Esta secção fornece uma breve vista geral conceptual dos métodos de atribuição de funcionalidades disponíveis com o Vertex AI.

As atribuições de funcionalidades indicam a contribuição de cada funcionalidade no seu modelo para as inferências de cada instância específica. Quando pede inferências, recebe valores conforme adequado para o seu modelo. Quando pede explicações, recebe as inferências juntamente com informações de atribuição de funcionalidades.

As atribuições de funcionalidades funcionam em dados tabulares e incluem capacidades de visualização incorporadas para dados de imagens. Considere os seguintes exemplos:

  • Uma rede neural profunda é preparada para prever a duração de um passeio de bicicleta com base em dados meteorológicos e dados anteriores de partilha de viagens. Se pedir apenas inferências a este modelo, recebe as durações previstas de viagens de bicicleta em número de minutos. Se pedir explicações, recebe a duração prevista da viagem de bicicleta, juntamente com uma pontuação de atribuição para cada funcionalidade no seu pedido de explicações. As pontuações de atribuição mostram o quanto a funcionalidade afetou a alteração no valor de inferência, relativamente ao valor de referência que especificar. Escolha uma base significativa que faça sentido para o seu modelo. Neste caso, a duração mediana do passeio de bicicleta. Pode traçar os resultados da atribuição de funcionalidades para ver que funcionalidades contribuíram mais fortemente para a inferência resultante:

    Um gráfico de atribuição de funcionalidades para uma duração prevista de um trajeto de bicicleta

  • Um modelo de classificação de imagens é preparado para prever se uma determinada imagem contém um cão ou um gato. Se solicitar inferências deste modelo num novo conjunto de imagens, recebe uma inferência para cada imagem ("cão" ou "gato"). Se pedir explicações, recebe a classe prevista juntamente com uma sobreposição para a imagem, que mostra os píxeis na imagem que contribuíram mais fortemente para a inferência resultante:

    Uma foto de um gato com sobreposição de atribuição de funcionalidades
    Uma foto de um gato com sobreposição de atribuição de recursos
    Uma foto de um cão com uma sobreposição de atribuição de funcionalidades
    Uma foto de um cão com sobreposição de atribuição de recursos
  • Um modelo de classificação de imagens é preparado para prever a espécie de uma flor na imagem. Se pedir inferências deste modelo num novo conjunto de imagens, recebe uma inferência para cada imagem ("margarida" ou "dente-de-leão"). Se pedir explicações, recebe a classe prevista juntamente com uma sobreposição para a imagem, que mostra as áreas da imagem que mais contribuíram para a inferência resultante:

    Uma foto de uma margarida com a sobreposição de atribuição de funcionalidades
    Uma foto de uma margarida com uma sobreposição de atribuição de funcionalidades

Tipos de modelos suportados

A atribuição de funcionalidades é suportada para todos os tipos de modelos (AutoML e preparados de forma personalizada), frameworks (TensorFlow, scikit, XGBoost), modelos do BigQuery ML e modalidades (imagens, texto, tabulares e vídeo).

Para usar a atribuição de caraterísticas, configure o seu modelo para a atribuição de caraterísticas quando carregar ou registar o modelo no Registo de modelos da Vertex AI.

Além disso, para os seguintes tipos de modelos do AutoML, a atribuição de funcionalidades está integrada na Google Cloud consola:

  • Modelos de imagens da Plataforma AutoML (apenas modelos de classificação)
  • Modelos tabulares do AutoML (apenas modelos de classificação e regressão)

Para os tipos de modelos do AutoML que estão integrados, pode ativar a atribuição de funcionalidades na Google Cloud consola durante a preparação e ver a importância das funcionalidades do modelo para o modelo em geral e a importância das funcionalidades locais para inferências online e em lote.

Para os tipos de modelos do AutoML que não estão integrados, ainda pode ativar a atribuição de caraterísticas exportando os artefactos do modelo e configurando a atribuição de caraterísticas quando carregar os artefactos do modelo para o Registo de modelos do Vertex AI.

Vantagens

Se inspecionar instâncias específicas e também agregar atribuições de caraterísticas no conjunto de dados de preparação, pode obter estatísticas mais detalhadas sobre o funcionamento do modelo. Considere as seguintes vantagens:

  • Depurar modelos: as atribuições de funcionalidades podem ajudar a detetar problemas nos dados que as técnicas de avaliação de modelos padrão normalmente não detetariam.

    Por exemplo, um modelo de patologia de imagens alcançou resultados suspeitamente bons num conjunto de dados de teste de imagens de raios X do tórax. As atribuições de funcionalidades revelaram que a elevada precisão do modelo dependia das marcas de caneta do radiologista na imagem. Para mais detalhes sobre este exemplo, consulte o documento técnico sobre as explicações de IA.

  • Otimizar modelos: pode identificar e remover funcionalidades menos importantes, o que pode resultar em modelos mais eficientes.

Métodos de atribuição de funcionalidades

Cada método de atribuição de funcionalidades baseia-se nos valores de Shapley, um algoritmo de teoria dos jogos cooperativos que atribui crédito a cada jogador num jogo por um resultado específico. Aplicado aos modelos de aprendizagem automática, isto significa que cada funcionalidade do modelo é tratada como um "jogador" no jogo. O Vertex Explainable AI atribui crédito proporcional a cada funcionalidade para o resultado de uma inferência específica.

Método de Shapley com amostragem

O método Valor de Shapley com amostragem oferece uma aproximação por amostragem dos valores de Shapley exatos. Os modelos tabulares do AutoML usam o método de Shapley com amostragem para a importância das funcionalidades. O Shapley com amostragem funciona bem para estes modelos, que são meta-conjuntos de árvores e redes neurais.

Para obter informações detalhadas sobre o funcionamento do método de Shapley com amostragem, leia o artigo Bounding the Estimation Error of Sampling-based Shapley Value Approximation.

Método de gradientes integrados

No método de gradientes integrados, o gradiente do resultado da inferência é calculado relativamente às caraterísticas da entrada, ao longo de um caminho integral.

  1. Os gradientes são calculados a intervalos diferentes de um parâmetro de dimensionamento. A dimensão de cada intervalo é determinada através da regra de quadratura gaussiana. (Para dados de imagens, imagine este parâmetro de dimensionamento como um "deslizador" que dimensiona todos os pixéis da imagem para preto.)
  2. Os gradientes são integrados da seguinte forma:
    1. A integral é aproximada através de uma média ponderada.
    2. É calculado o produto elemento a elemento dos gradientes com média e da entrada original.

Para uma explicação intuitiva deste processo aplicado a imagens, consulte a publicação no blogue, "Atribuir a inferência de uma rede profunda às respetivas caraterísticas de entrada". Os autores do artigo original sobre gradientes integrados (Axiomatic Attribution for Deep Networks) mostram na publicação de blogue anterior o aspeto das imagens em cada passo do processo.

Método XRAI

O método XRAI combina o método de gradientes integrados com passos adicionais para determinar que regiões da imagem contribuem mais para uma determinada inferência de classe.

  1. Atribuição ao nível do píxel: o XRAI realiza a atribuição ao nível do píxel para a imagem de entrada. Neste passo, o XRAI usa o método de gradientes integrados com uma base preta e uma base branca.
  2. Segmentação excessiva: independentemente da atribuição ao nível do píxel, o XRAI segmenta excessivamente a imagem para criar uma retalhos de pequenas regiões. A XRAI usa o método baseado em grafos de Felzenswalb para criar os segmentos de imagens.
  3. Seleção de região: a XRAI agrega a atribuição ao nível do píxel em cada segmento para determinar a respetiva densidade de atribuição. Com estes valores, a XRAI classifica cada segmento e, em seguida, ordena-os do mais positivo para o menos positivo. Isto determina que áreas da imagem são mais salientes ou contribuem mais fortemente para uma determinada inferência de classe.

Imagens que mostram os passos do algoritmo XRAI

Compare métodos de atribuição de funcionalidades

O Vertex Explainable AI oferece três métodos para usar em atribuições de caraterísticas: Shapley amostrado, gradientes integrados e XRAI.

Método Explicação básica Tipos de modelos recomendados Exemplos de utilização Recursos do Vertex AI Model compatíveis
Shapley com amostragem Atribui crédito pelo resultado a cada funcionalidade e considera diferentes permutações das funcionalidades. Este método oferece uma aproximação de amostragem dos valores de Shapley exatos. Modelos não diferenciáveis, como conjuntos de árvores e redes neurais
  • Classificação e regressão em dados tabulares
  • Qualquer modelo preparado de forma personalizada (executado em qualquer contentor de inferência)
  • Modelos tabulares do AutoML
Gradientes integrados Um método baseado em gradientes para calcular eficientemente as atribuições de funcionalidades com as mesmas propriedades axiomáticas que o valor de Shapley. Modelos diferenciáveis, como redes neurais. Recomendado especialmente para modelos com grandes espaços de caraterísticas.
Recomendado para imagens de baixo contraste, como raios X.
  • Classificação e regressão em dados tabulares
  • Classificação nos dados de imagens
XRAI (eXplanation with Ranked Area Integrals) Com base no método de gradientes integrados, o XRAI avalia as regiões sobrepostas da imagem para criar um mapa de saliência, que realça as regiões relevantes da imagem em vez dos píxeis. Modelos que aceitam entradas de imagens. Recomendado especialmente para imagens naturais, que são cenas do mundo real que contêm vários objetos.
  • Classificação nos dados de imagens

Para uma comparação mais detalhada dos métodos de atribuição, consulte o Livro branco sobre as explicações de IA.

Modelos diferenciáveis e não diferenciáveis

Nos modelos diferenciáveis, pode calcular a derivada de todas as operações no seu gráfico do TensorFlow. Esta propriedade ajuda a tornar a retropropagação possível nesses modelos. Por exemplo, as redes neurais são diferenciáveis. Para obter atribuições de caraterísticas para modelos diferenciáveis, use o método de gradientes integrados.

O método de gradientes integrados não funciona para modelos não diferenciáveis. Saiba como codificar entradas não diferenciáveis para funcionar com o método de gradientes integrados.

Os modelos não diferenciáveis incluem operações não diferenciáveis no gráfico do TensorFlow, como operações que executam tarefas de descodificação e arredondamento. Por exemplo, um modelo criado como um conjunto de árvores e redes neurais não é diferenciável. Para obter atribuições de funcionalidades para modelos não diferenciáveis, use o método Shapley com amostragem. O Shapley com amostragem também funciona em modelos diferenciáveis, mas, nesse caso, é mais dispendioso em termos computacionais do que o necessário.

Limitações conceptuais

Considere as seguintes limitações das atribuições de funcionalidades:

  • As atribuições de funcionalidades, incluindo a importância das funcionalidades locais para o AutoML, são específicas das inferências individuais. A inspeção das atribuições de funcionalidades para uma inferência individual pode fornecer boas estatísticas, mas as estatísticas podem não ser generalizáveis para toda a classe dessa instância individual ou para todo o modelo.

    Para obter estatísticas mais generalizáveis para os modelos do AutoML, consulte a importância das caraterísticas do modelo. Para obter estatísticas mais generalizáveis para outros modelos, agregue atribuições em subconjuntos do seu conjunto de dados ou no conjunto de dados completo.

  • Embora as atribuições de funcionalidades possam ajudar na depuração de modelos, nem sempre indicam claramente se um problema surge do modelo ou dos dados com os quais o modelo é preparado. Use o bom senso e diagnostique problemas de dados comuns para restringir o espaço de potenciais causas.

  • As atribuições de funcionalidades estão sujeitas a ataques adversariais semelhantes às inferências em modelos complexos.

Para mais informações sobre as limitações, consulte a lista de limitações de alto nível e o Livro Branco sobre as explicações de IA.

Referências

Para a atribuição de funcionalidades, as implementações de Shapley com amostragem, gradientes integrados e XRAI baseiam-se nas seguintes referências, respetivamente:

Saiba mais sobre a implementação da Vertex AI explicável lendo o livro branco sobre explicações de IA.

Blocos de notas

Para começar a usar o Vertex Explainable AI, use estes blocos de notas:

Bloco de notas Método de capacidade de explicação Estrutura de ML Modalidade Tarefa
Link do GitHub explicações baseadas em exemplos TensorFlow imagem Prepare um modelo de classificação que preveja a classe da imagem de entrada fornecida e receba explicações online
Link do GitHub baseado em funcionalidades AutoML tabular Prepare um modelo de classificação binária que preveja se um banco comprou um depósito a prazo e receba explicações em lote
Link do GitHub baseado em funcionalidades AutoML tabular Prepare um modelo de classificação que preveja o tipo de espécie de flor de íris e receba explicações online
Link do GitHub Baseado em funcionalidades (Shapley com amostragem) scikit-learn tabular Prepare um modelo de regressão linear que preveja as tarifas de táxi e receba explicações online
Link do GitHub Baseado em funcionalidades (gradientes integrados) TensorFlow imagem Prepare um modelo de classificação que preveja a classe da imagem de entrada fornecida e receba explicações em lote
Link do GitHub Baseado em funcionalidades (gradientes integrados) TensorFlow imagem Prepare um modelo de classificação que preveja a classe da imagem de entrada fornecida e receba explicações online
Link do GitHub Baseado em funcionalidades (gradientes integrados) TensorFlow tabular Prepare um modelo de regressão que preveja o preço mediano de uma casa e receba explicações em lote
Link do GitHub Baseado em funcionalidades (gradientes integrados) TensorFlow tabular Prepare um modelo de regressão que preveja o preço mediano de uma casa e receba explicações online
Link do GitHub Baseado em funcionalidades (Shapley com amostragem) TensorFlow texto Forme um modelo LSTM que classifique as críticas de filmes como positivas ou negativas usando o texto da crítica e receba explicações online

Recursos educativos

Os seguintes recursos oferecem mais material educativo útil:

O que se segue?