GAMMA FACET: uma nova abordagem para explicações universais de Modelos de aprendizado de máquina

(Konstantin Hemker)

Autores: Jan Ittner, Konstantin Hemker & Malo Grisard

Os rápidos avanços nas tecnologias de inteligência artificial (IA) nos equipam com uma conjunto de ferramentas em evolução para analisar até mesmo os problemas e processos de negócios mais complexos do mundo real Algoritmos de aprendizado de máquina de última geração permitem que os tomadores de decisão prevejam com precisão resultados essenciais para os negócios, como custo, velocidade, qualidade ou rendimento. Mas, na maioria das vezes, o verdadeiro valor comercial da IA ​​não reside meramente em prever resultados (quais clientes provavelmente cancelarão seus contratos?), Mas em explicar e otimizar esses resultados (o que devemos fazer para reter clientes de alto valor?).

Além disso, a disposição de um gerente em aceitar o uso de aprendizado de máquina para tomar decisões diárias com frequência depende de sua confiança no algoritmo, o que, por sua vez, requer algum entendimento de como um modelo de IA faz previsões e decisões. A necessidade de explicar os modelos de IA se tornará ainda mais importante à medida que as empresas desenvolverem uma maior consciência da IA ética e buscarem criar modelos de IA capazes de tomadas de decisão imparciais, seguras e responsáveis.

Usando a teoria dos jogos cooperativos para explicar as contribuições de recursos

A IA explicável por humanos viu enormes avanços nos últimos anos, especialmente com a chegada de Shapley Additive Explanations (SHAP), uma teoria e algoritmo unificadores que aplicam a teoria dos jogos cooperativos para explicar as previsões individuais de um modelo de aprendizado de máquina. O que torna o SHAP tão atraente é que, apesar de seus fundamentos matemáticos avançados, os resultados são intuitivos até mesmo para o público em geral.

O SHAP quantifica as contribuições de todas as variáveis ​​de um modelo para qualquer resultado previsto. Por exemplo, podemos usar um modelo para prever o risco de um paciente desenvolver diabetes, com base em variáveis ​​como peso, idade e hábitos de exercício. O modelo pode nos dizer que o risco é de 67%. SHAP irá além, dizendo-nos, por exemplo, que a idade da paciente aumenta o risco de diabetes em 5%, enquanto seu peso diminui em 2%.

O papel esclarecedor da inspeção de modelo e experimentos virtuais

O SHAP oferece um meio altamente útil de explicar previsões individuais. Até recentemente, entretanto, havia apenas meios limitados para explicar o modelo como um todo – para explicar em geral como as variáveis ​​agem e interagem para chegar a previsões. GAMMA FACET apresenta uma nova abordagem holística para explicar os modelos de aprendizado de máquina. Ele faz isso de dois ângulos: primeiro, ele usa um algoritmo de inspeção de modelo recém-desenvolvido para explicar como as variáveis ​​de um modelo preditivo colaboram para prever resultados, identificando padrões nas explicações de muitas previsões individuais. Por exemplo, GAMMA FACET pode descobrir que o peso e a massa corporal precisam ser considerados em combinação para avaliar o risco de diabetes, enquanto o índice de massa corporal e a relação altura / cintura podem ser intercambiáveis. Em segundo lugar, ele aplica uma abordagem de simulação para determinar em “experimentos virtuais” como as mudanças sistemáticas em fatores-chave impactam os resultados previstos, por exemplo, como um aumento na idade afeta o risco de diabetes em uma população de pacientes.

Estudo de caso: evitando quebras na perfuração de água

A melhor maneira de explorar esses conceitos é por meio de um exemplo do mundo real . Perfurar um poço de água é muito perigoso e caro. Os custos dessa perfuração são impulsionados pelo tempo que leva para finalizar um poço para começar a bombear água dele. Para reduzir esses custos, os perfuradores geralmente são incentivados a perfurar em um ritmo mais rápido – medido como a Taxa de penetração (ROP). Dependendo das características do solo, as taxas diárias podem variar de $ 30k a $ 250k. Mas há uma compensação: a perfuração mais rápida aumenta o risco de incidentes, como colapso da formação ou infiltração de gás. Portanto, construiremos um modelo de aprendizado de máquina para entender o impacto da velocidade de perfuração no risco de incidente, no contexto de outros fatores de risco.

Para fins de clareza, usamos um conjunto de dados simplificado para este exemplo . O conjunto de dados contém 500 observações, com cada linha representando uma operação de perfuração do passado, junto com um indicador binário se um incidente de perfuração de poço aconteceu ou não na operação.

Com base nas condições operacionais presentes e passadas, um algoritmo preditivo pode ser usado para alertar o operador de perfuração de um alto risco de incidente. Os operadores teriam então a oportunidade de ajustar os parâmetros de perfuração. No entanto, saber quando agir muitas vezes não é suficiente.O operador também precisa entender porque há incidentes e quais são as condições ideais de perfuração que equilibram o custo de perfuração com o custo de um incidente potencial O GAMMA FACET pode ajudar a fornecer essas percepções acionáveis.

scikit-learn e o Pipeline de modelo

Para formar a espinha dorsal de nosso modelo explicável de aprendizado de máquina, devemos primeiro construir um pipeline de modelo que nos permita rastrear todas as saídas do modelo de volta às entradas de dados iniciais, em todas as etapas de transformação e treinamento.

O GAMMA FACET foi desenvolvido em torno do scikit-learn, o padrão de fato da indústria para aprendizado de máquina em Python. scikit-learn oferece uma ampla variedade de algoritmos de regressão e classificação. Ele também oferece uma abordagem universal para criar canais de aprendizado de máquina, combinando o pré-processamento de dados com o ajuste do modelo real em um fluxo de trabalho integrado.

O FACET aprimora o scikit-learn de três maneiras essenciais :

  1. Rastreabilidade de recursos ponta a ponta : Enquanto o scikit-learn nativo é construído em torno de numpy e produz todas as saídas como matrizes numéricas, o FACET fornece versões aprimoradas de mais de 150 transformadores, regressores e classificadores scikit-learn que fornecem todas as saídas como quadros de dados do pandas. Além disso, o FACET inclui atributos para mapear os nomes dos recursos derivados de volta aos recursos dos quais eles se originaram. Esse mapeamento é essencial se os recursos devem ser chamados por nome posteriormente no pipeline de aprendizado de máquina.
  2. Pipelining aprimorado : FACET introduz classes adicionais de pipeline de duas etapas que contêm uma etapa de pré-processamento (que pode ser uma pipeline) e uma etapa do aluno. Nossa experiência é que essa adição aparentemente menor leva a um código de pipelining significativamente mais conciso e legível.
  3. Validação aprimorada : FACET apresenta validadores cruzados para várias variantes de bootstrapping, uma técnica estatística que é especialmente relevante no contexto dos recursos de simulação do FACET.

Voltando ao exemplo de perfuração, aqui está como nós pode construir um pipeline usando o suporte do FACET para rastreabilidade de recursos:

Como você pode ver neste snippet de código, o pipeline acima parece quase exatamente o mesmo que um pipeline construído com pure scikit-learn . Observe, no entanto, que importamos todos os pipelines, transformadores e estimadores do pacote sklearndf da FACET, e que todos os nomes das classes scikit-learn familiares têm Sufixo “DF”. Observe também o ClassifierPipelineDF especial, um dos pipelines aprimorados do FACET que compreende uma etapa opcional de pré-processamento, junto com uma etapa subsequente do aluno com garantia de ser um classificador. Como você pode ver na saída, o resultado do pré-processamento é um quadro de dados que preserva todos os nomes de recursos.

Em seguida, queremos ajustar os hiperparâmetros de nosso modelo usando . LeanerRanker opera de forma semelhante ao pesquisador de grade do scikit-learn , mas torna muito mais fácil deixar vários tipos de modelos competirem entre si, em vez de otimizar o hiper parâmetros de um único modelo:

Explicações do modelo: o que causa incidentes?

Agora temos um modelo ajustado e treinado que prevê o risco de incidente de nossas operações de perfuração. Mas queremos ser mais proativos do que apenas implantar o modelo e responder ad-hoc aos riscos previstos. Em vez disso, queremos saber o que o modelo aprendeu sobre por que e quando os incidentes acontecem. Queremos que o modelo nos ajude a compreender como podemos alterar sistematicamente a maneira como operamos nossas máquinas de perfuração para reduzir o risco de incidentes.

O FACET aborda a explicação do modelo como uma combinação de dois métodos:

  1. Explicando interações de recursos globais : este método nos diz o que o modelo aprendeu sobre como os recursos contribuem tanto individual quanto coletivamente aos resultados. FACET apresenta um novo algoritmo que, para cada par de recursos, quantifica sinergia, redundância e independência (veja abaixo para mais detalhes). Este algoritmo é baseado na decomposição vetorial SHAP , uma estrutura matemática que desenvolvemos para explicações de modelos globais e que detalharemos em uma próxima publicação.
  2. Simulações baseadas em modelo : este método nos permite identificar como mudanças sistemáticas de recursos ajudarão a alcançar um resultado desejado, neste caso para minimizar o risco de uma falha de perfuração. Alcançamos esse resultado criando amostras sintéticas para uma gama de valores e, em seguida, usando o modelo para avaliar as mudanças no risco previsto. Como você verá abaixo, entender as interações globais de recursos (ou seja, método 1) é uma etapa essencial para garantir que nossas simulações sejam válidas em condições do mundo real.

Quando usado em nosso exemplo de perfuração , A classe LearnerInspector do FACET fornece uma visão geral das interações de recursos calculando a sinergia e a redundância entre pares:

Redundância e sinergia matriz

Os resultados são duas matrizes que, para qualquer par de recursos, nos informam como uma porcentagem o grau de sinergia e redundância entre esses dois recursos.

Sinergia

Sinergia é o grau em que o modelo combina informações de um recurso com outro para prever o destino. Por exemplo, vamos supor que estejamos prevendo a saúde cardiovascular usando idade e sexo e o modelo ajustado inclui uma interação complexa entre eles. Isso significa que esses dois recursos são sinérgicos para prever a saúde cardiovascular. Além disso, ambos os recursos são importantes para o modelo e a remoção de qualquer um deles impactaria significativamente o desempenho. Vamos supor que a idade seja uma característica mais importante do que o gênero e, portanto, a idade contribui mais para a previsão combinada do que o gênero. Essa contribuição assimétrica significa que a sinergia para (idade, gênero) é menor do que a sinergia para (gênero, idade). Para pensar de outra forma, imagine que a previsão é uma coordenada que você está tentando alcançar. Do ponto de partida, a idade o aproxima muito mais desse ponto do que o gênero, no entanto, você precisa de ambos para chegar lá. A sinergia reflete o fato de que o gênero obtém mais ajuda da idade (maior sinergia da perspectiva do gênero) do que a idade do gênero (menor sinergia da perspectiva da idade) para alcançar a previsão.

Isso leva a uma ponto importante: a sinergia é uma propriedade naturalmente assimétrica da informação global que dois recursos de interação contribuem para as previsões do modelo. A sinergia é expressa como uma porcentagem que varia de 0% (autonomia total) a 100% (sinergia total). Observe que os recursos sinérgicos podem ser completamente não correlacionados e podem ser difíceis de detectar por meio de análises exploratórias regulares.

Para interpretar a matriz de sinergia, o primeiro recurso em um par é a linha (“Perspectiva de”), e o segundo apresenta a coluna. Em nosso exemplo de perfuração, o FACET relata que “da perspectiva” da velocidade de rotação, 67% das informações são combinadas com o peso na broca para prever a falha. Isso parece sensato no contexto, pois a perfuração com um peso de broca alto e uma alta rotação pode ter um impacto desproporcionalmente grande no desgaste do equipamento e, assim, aumentar drasticamente o risco de incidente. É compreensível que a sinergia também seja alta do ponto de vista do peso na broca (61%). Isso nos diz que devemos olhar para a velocidade de rotação e peso na broca juntos para entender suas contribuições para o risco de incidente.

Redundância

Redundância é o grau em que um recurso em um modelo duplica as informações de um segundo recurso para prever o alvo. Por exemplo, vamos supor que tínhamos o tamanho da casa e o número de quartos para prever o preço da casa. Esses recursos capturam informações semelhantes, pois quanto mais quartos, maior é a casa e, provavelmente, um preço mais alto, em média. A redundância para (número de quartos, tamanho da casa) será maior do que a redundância para (tamanho da casa, número de quartos). Isso ocorre porque o tamanho da casa “sabe” mais o que o número de quartos faz para prever o preço da casa do que o contrário. Assim, há uma redundância maior do ponto de vista do número de quartos. Outra maneira de pensar sobre isso é remover o tamanho da casa será mais prejudicial para o desempenho do modelo do que remover o número de quartos, já que o tamanho da casa pode compensar melhor a ausência de número de quartos. Isso também implica que o tamanho da casa seria um recurso mais importante do que o número de quartos no modelo.

O ponto importante aqui é que, como a sinergia, a redundância é uma propriedade naturalmente assimétrica do recurso de informação global pares têm para prever um resultado. A redundância é expressa como uma porcentagem que varia de 0% (exclusividade total) a 100% (redundância total). A redundância não pode necessariamente ser detectada na análise exploratória se dois recursos são redundantes, mas não linearmente correlacionados.

Assim como a sinergia, a linha da matriz é o recurso de “perspectiva de” no par de recursos linha-coluna.Para nosso exemplo de perfuração, observamos dois pares de recursos altamente redundantes:

  • O primeiro par de recursos redundantes é ROP e IROP. A redundância é semelhante da perspectiva de qualquer um dos recursos (75%) porque um é o inverso do outro e, portanto, eles podem se substituir no modelo de risco de incidente. Este é um bom exemplo da capacidade do FACET de captar redundâncias entre recursos, mesmo quando eles não são linearmente correlacionados.
  • O segundo par de recursos redundantes é a profundidade de operação e o diâmetro do furo. Do ponto de vista do diâmetro do furo, 53% das informações são duplicadas com a profundidade da operação para prever falhas. Intuitivamente, podemos ver o porquê, já que a profundidade de operação e o diâmetro do furo estão altamente conectados, pois os perfuradores usam brocas mais finas à medida que perfuram mais profundamente na terra. A razão pela qual a redundância para (profundidade da operação, diâmetro do furo) é ligeiramente inferior a (diâmetro do furo, profundidade da operação) é porque a profundidade da operação é um recurso um pouco mais importante no modelo.

FACET pode produzir um segundo tipo de diagrama que é muito útil para avaliar relacionamentos de sinergia ou redundância como um dendrograma de agrupamento hierárquico. Observe que esta abordagem se baseia em uma variante simétrica de redundância (ou sinergia) que fornece não apenas uma perspectiva simplificada, mas uma distância de recurso (1 – métrica) para agrupamento. Em nosso exemplo, estamos interessados ​​no dendrograma de redundância:

Dendrograma de redundância de recursos da faceta

O dendrograma de redundância revela clusters de recursos redundantes, indica o grau de redundância mútua entre recursos em um cluster (os recursos mais à esquerda são mesclados no dendrograma, mais forte será sua redundância) e, usando uma escala de cores, mostra a importância do recurso para recursos individuais e grupos de recursos.

Nossos dois pares de características redundantes são claramente reconhecíveis no dendrograma, incluindo sua importância combinada. A taxa de penetração (ROP) é ​​altamente redundante com seu recurso inverso (IROP) (> 80% de redundância), e a importância combinada de ambos os recursos é de 36%. Visto que queremos simular o ROP, removeremos o IROP para garantir que o recurso que simulamos seja um contribuidor exclusivo para o resultado (forneceremos uma explicação mais detalhada na próxima seção).

Há uma observação interessante quando geramos um novo dendrograma de redundância após remover o IROP e treinar novamente o modelo: A importância do recurso do ROP aumentou para 35%, indicando que o ROP assumiu o papel do antigo cluster ROP / IROP explicando o ROP contribuições relacionadas ao risco de incidente.

Dendrograma de ligação de redundância após poda de recurso

Simulação de aumento de recurso

Tendo inspecionado o modelo, chegamos a um bom entendimento de como o modelo faz uma previsão e como os preditores interagem entre si.

Freqüentemente, esses insights levam diretamente a uma pergunta do tipo “e se”: H omo podemos mudar sistematicamente uma variável influente para melhorar o resultado? Em nosso exemplo, queremos entender como as mudanças na Taxa de Penetração impactam o risco de incidente. Do ponto de vista econômico, os operadores de perfuração tentarão perfurar o mais rápido possível, mantendo a segurança e reduzindo as falhas. Perguntas semelhantes se aplicam a outros contextos de negócios, onde o objetivo é reduzir custos, maximizar o rendimento, reter clientes ou, de fato, otimizar qualquer resultado de negócios com base em dados.

A abordagem de simulação da FACET destaca um recurso e depois executa uma série de “experimentos virtuais” para uma gama de valores, fingindo para cada experimento que o recurso simulado sempre assumiu o valor dado para cada observação histórica.

Com essa abordagem, é crucial que o recurso que simulamos seja não é redundante com qualquer outro recurso do modelo. Fazer isso correria o risco de criar cenários inviáveis, ajustando o valor de um recurso, mas não de seu irmão redundante. Se, em nosso exemplo, simulássemos o ROP para uma faixa de valores, mas mantivéssemos o IROP no modelo, provavelmente criaríamos cenários inviáveis.

Uma simulação é conduzida em duas etapas: primeiro, decidimos um recurso a ser simulado e escolhemos uma das classes de particionador do FACET para dividir o intervalo de valores observados anteriormente para aquele recurso em partições . Em segundo lugar, executamos uma simulação por partição, a cada vez fixando o valor do recurso simulado no valor central da partição em todas as observações.

Portanto, em nosso exemplo, a simulação está fazendo a pergunta: “O que seria meu risco médio de incidente tem sido se eu sempre tivesse perfurado com X m / s de ROP?”ROP é medido como um número real, então usamos um ContinuousRangePartitioner para criar uma série de partições de tamanhos iguais dentro da faixa de valores historicamente observados para ROP. É importante que simulemos apenas dentro da faixa de valores historicamente observada, uma vez que o modelo foi treinado em valores nessa faixa e normalmente não será capaz de fornecer extrapolações fora da faixa válidas.

Etapa 1 da simulação – particionando os valores observados para o recurso ROP em intervalos de tamanho igual

Usando o melhor modelo, que identificamos anteriormente em LearnerRanker, o simulador agora determina o risco médio de incidente previsto para cada partição. FACET suporta bootstrapping, permitindo-nos repetir cada simulação muitas vezes em variações do modelo treinado em diferentes subconjuntos de dados, e usar a distribuição dos resultados da simulação para quantificar o nível de confiança na simulação.

Simulação Etapa 2 – Simulação de resultados para diferentes valores do recurso ROP

A visualização acima mostra o efeito do ROP no risco de incidente, ao mesmo tempo que fornece uma sensação de confiança na simulação. O eixo x mostra as diferentes partições para as quais a simulação foi executada. As barras abaixo do eixo x mostram o número de observações na amostra original que se enquadram na partição, indicando o suporte que temos para cada valor simulado. (Observe como o intervalo de confiança se amplia em direção às margens, pois vemos menos valores realmente observados para essas partições.) A linha ascendente central representa o risco de incidente previsto mediano para cada partição, enquanto as linhas externas mostram o intervalo de confiança de 95% de todas as a validação se separa de nossa previsão.

A simulação confirma que a probabilidade do incidente aumenta significativamente à medida que aumentamos o ROP. Ele fornece uma visão dos níveis de risco de operar em um ROP mais rápido. Também podemos ver que houve várias ocasiões em que o ROP foi operado em um nível perigosamente alto (> 30 pés / h), levando a probabilidades de incidentes acima de 70%.

O que vem a seguir?

De uma perspectiva de negócios, ter as respostas para essas perguntas do tipo “e se” é extremamente valioso para o processo de avaliação de risco e encontrar maneiras de melhorar os processos atuais. Em nosso exemplo, a jornada não terminaria aqui. Com base nos resultados da simulação, uma próxima etapa poderia ser conduzir uma análise de custo-benefício da perfuração com um ROP mais lento ou mais rápido para alcançar o melhor compromisso entre o custo de perfuração e o risco financeiro de um incidente de perfuração.

Você pode facilmente dar uma volta no GAMMA FACET. Simplesmente conda install gamma-facet -c bcg_gamma -c conda-forge e verifique nosso repositório GitHub para obter mais documentação e exemplos trabalhados.

Agradecimentos

Este pacote iria não teria sido possível sem a disponibilidade de dois pacotes Python pendentes para aprendizado de máquina e explicabilidade de modelo:

1. scikit-learn fornece os alunos e transformadores que compõem os canais de aprendizado de máquina subjacentes do FACET. Além disso, projetamos a API FACET em linha com o paradigma básico de ajuste / transformação / previsão scikit-learns para dar aos cientistas de dados um início fácil com FACET.

2. A implementação de SHAP por Scott Lundberg é usada para estimar os vetores SHAP sendo decompostos na sinergia , redundância e vetores de independência.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *