GAMMA FACET: un nuevo enfoque para explicaciones universales Modelos de aprendizaje automático

(Konstantin Hemker)

Autores: Jan Ittner, Konstantin Hemker & Malo Grisard

Los rápidos avances en las tecnologías de inteligencia artificial (IA) nos equipan con un conjunto de herramientas en evolución para analizar incluso los problemas y procesos empresariales más complejos del mundo real. Los algoritmos de aprendizaje automático de última generación permiten a los tomadores de decisiones predecir con precisión los resultados críticos para el negocio, como el costo, la velocidad, la calidad o el rendimiento. Pero la mayoría de las veces, el verdadero valor comercial de la IA no radica simplemente en predecir los resultados (¿qué clientes es probable que cancelen su contrato?), Sino en explicar y optimizar esos resultados (¿qué debemos hacer para retener clientes valiosos?).

Además, la voluntad de un gerente de aceptar el uso del aprendizaje automático para tomar decisiones cotidianas a menudo depende de su confianza en el algoritmo, que, a su vez, requiere cierta comprensión de cómo un modelo de IA hace predicciones y decisiones. La necesidad de explicar los modelos de IA se volverá aún más importante a medida que las empresas desarrollen una mayor conciencia de la IA ética y busquen diseñar modelos de IA capaces de tomar decisiones imparciales, seguras y responsables.

Uso de la teoría de juegos cooperativos para explicar las contribuciones de características

La IA explicable por humanos ha experimentado grandes avances en los últimos años, especialmente con la llegada de Shapley Additive Explanations (SHAP), una teoría y algoritmo unificadores que aplica la teoría de juegos cooperativos para explicar las predicciones individuales de un modelo de aprendizaje automático. Lo que hace que SHAP sea tan atractivo es que, a pesar de sus bases matemáticas avanzadas, los resultados son intuitivos incluso para el público en general.

SHAP cuantifica las contribuciones de todas las variables de un modelo a cualquier resultado predicho dado. Por ejemplo, podríamos usar un modelo para predecir el riesgo de un paciente de desarrollar diabetes, basado en variables como el peso, la edad y los hábitos de ejercicio. El modelo podría decirnos que el riesgo es del 67%. SHAP irá más allá, diciéndonos, por ejemplo, que la edad de la paciente aumenta el riesgo de diabetes en un 5%, mientras que su peso lo reduce en un 2%.

El papel esclarecedor de la inspección de modelos y los experimentos virtuales

SHAP ofrece un medio muy útil para explicar predicciones individuales. Hasta hace poco, sin embargo, solo había medios limitados para explicar el modelo en su conjunto, para explicar en general cómo actúan e interactúan las variables para generar predicciones. GAMMA FACET presenta un nuevo enfoque holístico para explicar los modelos de aprendizaje automático. Lo hace desde dos ángulos: en primer lugar, utiliza un algoritmo de inspección de modelos recientemente desarrollado para explicar cómo las variables de un modelo predictivo colaboran para predecir los resultados mediante la identificación de patrones en las explicaciones de muchas predicciones individuales. Por ejemplo, GAMMA FACET podría encontrar que el peso y la masa corporal deben considerarse en combinación para evaluar el riesgo de diabetes, mientras que el índice de masa corporal y la relación altura / cintura podrían ser intercambiables. En segundo lugar, aplica un enfoque de simulación para determinar en «experimentos virtuales» cómo los cambios sistemáticos en los factores clave impactan los resultados previstos, como cómo un aumento en la edad afecta el riesgo de diabetes en una población de pacientes.

Caso de estudio: Prevención de averías en perforaciones de agua

La mejor manera de explorar estos conceptos es mediante un ejemplo del mundo real . Perforar un pozo de agua es muy peligroso y costoso. Los costos de dicha perforación son impulsados ​​por el tiempo que se necesita para finalizar un pozo para comenzar a bombear agua. Para reducir esos costos, generalmente se incentiva a los perforadores a perforar a un ritmo más rápido, medido como la Tasa de penetración (ROP). Dependiendo de las características del suelo, las tarifas diarias pueden oscilar entre $ 30 000 y $ 250 000. Pero hay una compensación: perforar más rápido aumenta el riesgo de incidentes, como el colapso de una formación o una infiltración de gas. Por lo tanto, crearemos un modelo de aprendizaje automático para comprender el impacto de la velocidad de perforación en el riesgo de incidente, en el contexto de otros factores de riesgo.

En aras de la claridad, usamos un conjunto de datos simplificado para este ejemplo. . El conjunto de datos contiene 500 observaciones, y cada fila representa una operación de perforación del pasado, junto con un indicador binario de si ocurrió o no un incidente de perforación de pozo en la operación.

En función de las condiciones operativas presentes y pasadas, se puede utilizar un algoritmo predictivo para alertar al operador de perforación de una alto riesgo de incidentes. Los operadores tendrían entonces la oportunidad de ajustar los parámetros de perforación. Sin embargo, saber cuándo actuar a menudo no es suficiente.El operador también debe comprender por qué hay incidentes y cuáles son las condiciones óptimas de perforación que equilibran el costo de perforación con el costo de un incidente potencial. GAMMA FACET puede ayudar a brindar esta información útil.

scikit-learn y Model Pipeline

Para formar la columna vertebral de nuestro modelo explicable de aprendizaje automático, primero debemos construir una canalización de modelos que nos permita rastrear todos los resultados del modelo hasta las entradas de datos iniciales, en todos los pasos de transformación y entrenamiento.

GAMMA FACET está diseñado en torno a scikit-learn, el estándar industrial de facto para el aprendizaje automático en Python. scikit-learn ofrece una amplia gama de algoritmos de regresión y clasificación. También ofrece un enfoque universal para construir canales de aprendizaje automático, combinando el preprocesamiento de datos con el ajuste del modelo real en un flujo de trabajo integrado.

FACET mejora scikit-learn de tres formas esenciales :

  1. Trazabilidad de funciones de un extremo a otro : mientras se crea scikit-learn nativo alrededor de numpy y produce todas las salidas como matrices numéricas, FACET proporciona versiones mejoradas de más de 150 transformadores, regresores y clasificadores scikit-learn que entregan todas las salidas como marcos de datos de pandas. Además, FACET incluye atributos para mapear los nombres de las características derivadas a las características de las que se originaron. Este mapeo es esencial si se quiere hacer referencia a las características por su nombre más adelante en la canalización de aprendizaje automático.
  2. Canalización mejorada : FACET presenta clases de canalización adicionales de dos pasos que contienen un paso de preprocesamiento (que puede ser en sí mismo una canalización) y un paso de aprendizaje. Nuestra experiencia es que esta adición aparentemente menor conduce a un código de canalización significativamente más conciso y legible.
  3. Validación mejorada : FACET presenta validadores cruzados para varias variantes de bootstrapping, una técnica estadística que es especialmente relevante en el contexto de las capacidades de simulación de FACET.

Volviendo al ejemplo de perforación, así es como podría construir una canalización utilizando el soporte de FACET para la trazabilidad de características:

Como puede ver en este fragmento de código, la canalización anterior se ve casi exactamente igual que una canalización construida con pure scikit-learn . Tenga en cuenta, sin embargo, que importamos todas las canalizaciones, transformadores y estimadores del paquete sklearndf de FACET, y que los nombres de las clases familiares scikit-learn tienen Sufijo “DF”. También tenga en cuenta el ClassifierPipelineDF especial, una de las canalizaciones mejoradas de FACET que comprende un paso de preprocesamiento opcional, junto con un paso de aprendizaje posterior garantizado como clasificador. Como puede ver en la salida, el resultado del preprocesamiento es un marco de datos que conserva todos los nombres de las funciones.

A continuación, queremos ajustar los hiperparámetros de nuestro modelo utilizando . LeanerRanker funciona de manera similar al buscador de cuadrículas de scikit-learn , pero hace que sea mucho más fácil dejar que varios tipos de modelos compitan entre sí, en lugar de optimizar la hiper- parámetros de un solo modelo:

Explicaciones del modelo: ¿Qué causa los incidentes?

Ahora tenemos un modelo sintonizado y capacitado que predice el riesgo de incidentes de nuestras operaciones de perforación. Pero queremos ser más proactivos que simplemente implementar el modelo y responder ad-hoc a los riesgos previstos. En cambio, queremos saber qué ha aprendido el modelo sobre por qué y cuándo ocurren los incidentes. Queremos que el modelo nos ayude a comprender cómo podemos cambiar sistemáticamente la forma en que operamos nuestra maquinaria de perforación para reducir el riesgo de incidentes.

FACET aborda la explicación del modelo como una combinación de dos métodos:

  1. Explicación de las interacciones de las funciones globales : este método nos dice lo que el modelo ha aprendido sobre cómo las funciones contribuyen tanto individual como colectivamente. a los resultados. FACET presenta un nuevo algoritmo que, para cada par de características, cuantifica la sinergia, la redundancia y la independencia (ver más abajo para más detalles). Este algoritmo se basa en la descomposición vectorial SHAP , un marco matemático que desarrollamos para explicaciones de modelos globales y que detallaremos más en una próxima publicación.
  2. Simulaciones basadas en modelos : este método nos permite identificar cómo los cambios sistemáticos de características ayudarán a lograr un resultado deseado, en este caso para minimizar el riesgo de avería en el simulacro. Logramos este resultado creando muestras sintéticas para un rango de valores y luego usando el modelo para evaluar los cambios en el riesgo predicho. Como verá a continuación, comprender las interacciones de características globales (es decir, el método 1) es un paso esencial para garantizar que nuestras simulaciones sean válidas en condiciones del mundo real.

Cuando se usa en nuestro ejemplo de perforación , La clase LearnerInspector de FACET proporciona una descripción general de las interacciones de las características mediante el cálculo de la sinergia y la redundancia por pares:

Redundancia y sinergia matrix

Los resultados son dos matrices que, para cualquier par de características, nos dicen como porcentaje el grado de sinergia y Redundancia entre estas dos características.

Sinergia

La sinergia es el grado en el que el modelo combina información de una característica con otra para predecir el objetivo. Por ejemplo, supongamos que estamos prediciendo la salud cardiovascular utilizando la edad y el sexo y que el modelo ajustado incluye una interacción compleja entre ellos. Esto significa que estas dos características son sinérgicas para predecir la salud cardiovascular. Además, ambas características son importantes para el modelo y eliminar cualquiera de ellas afectaría significativamente el rendimiento. Supongamos que la edad es una característica más importante que el género, por lo que la edad contribuye más a la predicción combinada que el género. Esta contribución asimétrica significa que la sinergia para (edad, género) es menor que la sinergia para (género, edad). Para pensarlo de otra manera, imagine que la predicción es una coordenada que está tratando de alcanzar. Desde su punto de partida, la edad lo acerca mucho más a este punto que el género, sin embargo, necesita ambos para llegar allí. La sinergia refleja el hecho de que el género recibe más ayuda de la edad (mayor sinergia desde la perspectiva de género) que la edad de género (menor sinergia desde la perspectiva de la edad) para alcanzar la predicción.

Esto conduce a una punto importante: la sinergia es una propiedad naturalmente asimétrica de la información global, dos características que interactúan contribuyen a las predicciones del modelo. La sinergia se expresa como un porcentaje que va del 0% (total autonomía) al 100% (total sinergia). Tenga en cuenta que las características sinérgicas pueden no estar correlacionadas por completo y pueden ser difíciles de detectar mediante un análisis exploratorio regular.

Para interpretar la matriz de sinergia, la primera característica de un par es la fila («Perspectiva desde»), y la segunda presenta la columna. En nuestro ejemplo de perforación, FACET informa que «desde la perspectiva» de la velocidad de rotación, el 67% de la información se combina con el peso en la broca para predecir fallas. Esto parece sensato en el contexto, ya que perforar con un peso de broca alto y una rotación alta puede tener un impacto desproporcionadamente grande en el desgaste del equipo y, por lo tanto, aumentar drásticamente el riesgo de incidente. Es comprensible que la sinergia también sea alta desde la perspectiva del peso en la broca (61%). Esto nos dice que debemos observar la velocidad de rotación y el peso de la broca juntos para comprender sus contribuciones al riesgo de incidentes.

Redundancia

La redundancia es el grado en que una característica en un modelo duplica la información de una segunda característica para predecir el objetivo. Por ejemplo, supongamos que tenemos el tamaño de la casa y el número de dormitorios para predecir el precio de la vivienda. Estas características capturan información similar, ya que cuantas más habitaciones, más grande es la casa y probablemente un precio más alto en promedio. La redundancia para (número de dormitorios, tamaño de la casa) será mayor que la redundancia para (tamaño de la casa, número de dormitorios). Esto se debe a que el tamaño de la casa «sabe» más qué cantidad de dormitorios hace para predecir el precio de la casa que viceversa. Por tanto, existe una mayor redundancia desde la perspectiva del número de dormitorios. Otra forma de pensarlo es que eliminar el tamaño de la casa será más perjudicial para el rendimiento del modelo que eliminar el número de dormitorios, ya que el tamaño de la casa puede compensar mejor la ausencia de número de dormitorios. Esto también implica que el tamaño de la casa sería una característica más importante que el número de dormitorios en el modelo.

El punto importante aquí es que, al igual que la sinergia, la redundancia es una propiedad naturalmente asimétrica de la característica de información global. los pares tienen para predecir un resultado. La redundancia se expresa como un porcentaje que va del 0% (unicidad total) al 100% (redundancia total). La redundancia no se puede detectar necesariamente en el análisis exploratorio si dos características son redundantes pero no están correlacionadas linealmente.

Al igual que con la sinergia, la fila de la matriz es la característica de «perspectiva desde» en el par de características fila-columna.Para nuestro ejemplo de exploración, observamos dos pares de características altamente redundantes:

  • El primer par de características redundantes es ROP e IROP. La redundancia es similar desde la perspectiva de cualquiera de las características (75%) porque una es la inversa de la otra y, por lo tanto, pueden sustituirse entre sí en el modelo de riesgo de incidentes. Este es un buen ejemplo de la capacidad de FACET para detectar redundancias entre características incluso cuando no están correlacionadas linealmente.
  • El segundo par de características redundantes es la profundidad de operación y el diámetro del agujero. Desde la perspectiva del diámetro del pozo, el 53% de la información se duplica con la profundidad de la operación para predecir fallas. Intuitivamente, podemos ver por qué, ya que la profundidad de operación y el diámetro del pozo están muy conectados, ya que los perforadores usan brocas de perforación más delgadas a medida que perforan más profundamente en la tierra. La razón por la que la redundancia para (profundidad de la operación, diámetro del agujero) es ligeramente menor que (diámetro del agujero, profundidad de la operación) es porque la profundidad de la operación es una característica ligeramente más importante en el modelo.

FACET puede producir un segundo tipo de diagrama que es muy útil para evaluar las relaciones de sinergia o redundancia como un dendrograma de agrupamiento jerárquico. Tenga en cuenta que este enfoque se basa en una variante simétrica de redundancia (o sinergia) que proporciona no solo una perspectiva simplificada, sino también una distancia característica (1 – métrica) para la agrupación. En nuestro ejemplo, estamos interesados ​​en el dendrograma de redundancia:

Dendrograma de redundancia de funciones de Facet

El dendrograma de redundancia revela grupos de características redundantes, indica el grado de redundancia mutua entre características en un clúster (las características más a la izquierda se fusionan en el dendrograma, más fuerte es su redundancia) y, utilizando una escala de colores, muestra la importancia de característica para características individuales y grupos de características.

Nuestros dos pares de características redundantes son claramente reconocibles en el dendrograma, incluida su importancia combinada. La tasa de penetración (ROP) es altamente redundante con su característica inversa (IROP) (> 80% de redundancia), y la importancia combinada de ambas características es del 36%. Dado que queremos simular ROP, eliminaremos IROP para asegurarnos de que la función que simulamos contribuya de forma única al resultado (proporcionaremos una explicación más detallada en la siguiente sección).

Hay Una observación interesante cuando generamos un nuevo dendrograma de redundancia después de eliminar IROP y volver a entrenar el modelo: la importancia de la característica de ROP ha aumentado al 35%, lo que indica que ROP ha asumido el papel del antiguo clúster de ROP / IROP para explicar ROP – contribuciones relacionadas con el riesgo del incidente.

Dendrograma de enlace de redundancia después de la poda de características

Simulación de mejora de funciones

Habiendo inspeccionado el modelo, hemos llegado a una buena comprensión de cómo el modelo hace una predicción y cómo los predictores interactúan entre sí.

Con frecuencia, estas ideas conducen directamente a una pregunta de «qué pasaría si»: H ¿Cómo podemos cambiar sistemáticamente una variable influenciable para mejorar el resultado? En nuestro ejemplo, queremos comprender cómo los cambios en la tasa de penetración impactan el riesgo de incidentes. Desde un punto de vista económico, los operadores de perforación intentarán perforar lo más rápido posible mientras mantienen la seguridad y reducen las fallas. Preguntas similares se aplican a otros contextos comerciales, donde el objetivo es reducir costos, maximizar el rendimiento, retener clientes o, de hecho, optimizar cualquier resultado comercial basado en datos.

El enfoque de simulación de FACET destaca una característica y luego ejecuta una serie de «experimentos virtuales» para un rango de valores, pretendiendo para cada experimento que la característica simulada siempre tomó el valor dado para cada observación histórica.

Con este enfoque, es crucial que la característica que simulamos sea no redundante con ninguna otra característica del modelo. Hacerlo correría el riesgo de crear escenarios inviables al ajustar el valor de una característica pero no de su hermana redundante. Si, en nuestro ejemplo, simulamos ROP para un rango de valores, pero mantenemos IROP en el modelo, lo más probable es que creemos escenarios inviables.

Una simulación se realiza en dos pasos: Primero, Decidimos qué función se va a simular y elegimos una de las clases de particionador de FACET para dividir el rango de valores previamente observados para esa función en particiones . En segundo lugar, ejecutamos una simulación por partición, cada vez fijando el valor de la característica simulada en el valor central de la partición en todas las observaciones.

Por lo tanto, en nuestro ejemplo, la simulación hace la pregunta: «¿Qué Mi riesgo promedio de incidente ha sido ¿Siempre había perforado con X m / s de ROP?”ROP se mide como un número real, por lo que usamos un ContinuousRangePartitioner para crear una serie de particiones de igual tamaño dentro del rango de valores históricamente observados para ROP. Es importante que simulemos solo dentro del rango de valores históricamente observado, ya que el modelo ha sido entrenado con valores en ese rango y, por lo general, no podrá generar extrapolaciones válidas fuera del rango.

Paso 1 de la simulación: particionando los valores observados para la función ROP en depósitos del mismo tamaño

Usando el mejor modelo, que identificamos previamente a partir de LearnerRanker, el simulador ahora determina el riesgo de incidentes pronosticado promedio para cada partición. FACET admite bootstrapping, lo que nos permite repetir cada simulación muchas veces en variaciones del modelo entrenado en diferentes subconjuntos de datos, y usar la distribución de los resultados de la simulación para cuantificar el nivel de confianza en la simulación.

Paso de simulación 2: simulación de resultados para diferentes valores de la función ROP

La visualización anterior muestra el efecto de ROP en el riesgo del incidente, al tiempo que proporciona una sensación de confianza en la simulación. El eje x muestra las diferentes particiones para las que se ejecutó la simulación. Las barras debajo del eje x muestran el número de observaciones en la muestra original que caen dentro de la partición, lo que indica el apoyo que tenemos para cada valor simulado. (Observe cómo el intervalo de confianza se amplía hacia los márgenes ya que vemos menos valores realmente observados para estas particiones). La línea ascendente central representa la mediana del riesgo de incidentes pronosticado para cada partición, mientras que las líneas externas muestran el intervalo de confianza del 95% de todas las divisiones cruzadas. la validación se divide de nuestra predicción.

La simulación confirma que la probabilidad de incidentes aumenta significativamente a medida que aumentamos la ROP. Proporciona una idea de los niveles de riesgo de operar a un ROP más rápido. También podemos ver que ha habido varias ocasiones en las que la ROP se ha operado a un nivel peligrosamente alto (> 30 pies / h), lo que ha dado lugar a probabilidades de incidentes superiores al 70%.

¿Qué sigue?

Desde una perspectiva empresarial, tener las respuestas a estas preguntas de «qué pasaría si» es extremadamente valioso para el proceso de evaluación de riesgos y encontrar formas de mejorar los procesos actuales. En nuestro ejemplo, el viaje no terminaría aquí. Según los resultados de la simulación, el siguiente paso podría ser realizar un análisis de costo-beneficio de la perforación con un ROP más lento o más rápido para lograr la mejor compensación entre el costo de perforación y el riesgo financiero de un incidente de perforación.

Puede probar fácilmente GAMMA FACET. Simplemente conda install gamma-facet -c bcg_gamma -c conda-forge y consulte nuestro repositorio de GitHub para obtener más documentación y ejemplos resueltos.

Agradecimientos

Este paquete no hubiera sido posible sin la disponibilidad de dos paquetes de Python excepcionales para el aprendizaje automático y la explicabilidad del modelo:

1. scikit-learn proporciona los aprendices y transformadores que conforman los canales de aprendizaje automático subyacentes de FACET. Además, diseñamos la API de FACET en línea con el paradigma básico de ajuste / transformación / predicción scikit-learn para brindar a los científicos de datos un comienzo fácil con FACET.

2. La implementación SHAP de Scott Lundberg se usa para estimar los vectores SHAP que se descomponen en la sinergia , redundancia e independencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *