¿Podemos extraer reglas de árbol de decisión de las redes neuronales?

Gracias por A2A. No he investigado este tema extensamente, así que tome mi respuesta con un grano de sal.

NN es el algoritmo de aprendizaje automático de caja negra por excelencia. Lo que a menudo encuentra son soluciones para obtener un cierto grado de comprensión de lo que está haciendo la red. Esos generalmente implican tomar las predicciones del NN y modelar aquellas que usan un agoritmo más comprensible como una regresión o un árbol de decisión. El éxito de esas aproximaciones en la descripción de lo que realmente hace el NN está en debate.

Personalmente, nunca he encontrado que esto sea un gran problema por esta razón: el rendimiento del modelo frente a la interpretabilidad es una de esas cosas en las que pasas tiempo pensando cuando comienzas un proyecto. El equilibrio que decida alcanzar depende del problema particular que tenga entre manos. A veces, todo lo que importa es el rendimiento del modelo (piense en la detección de fraude, por ejemplo, donde el algoritmo estándar es esencialmente un NN). La interpretación de otros modelos de tiempo es de suma importancia (piense en la calificación crediticia, en la que tiene que poder explicar por qué se le niega un préstamo a alguien; aquí una regresión logística simple construida con una salida de tarjeta de puntaje en mente es un estándar de la industria). Otras veces, y esto es lo que me encuentro haciendo la mayoría de las veces, encontrará que un equilibrio es suficiente. En mi caso, un modelo que funcione bien, como un árbol de Gradient Boosting, y una comprensión simple de importancia variable será una solución satisfactoria.

Dicho todo esto, tenga cuidado al usar los árboles de decisión para inferir “una historia” para salir y contar el negocio. Esa es una perspectiva muy intrigante, que estoy seguro de que el negocio podría saltar. Pero recuerde que los árboles de decisión son modelos muy inestables, lo que significa que una ligera variación en los datos (o incluso solo la semilla) podría dar como resultado un nuevo modelo que funcione tan bien como el anterior pero con una “historia” totalmente diferente. Uno podría sugerir que las hembras blancas jóvenes de Kansas son sus mejores clientes, el otro podría sugerir que las personas que aman los plátanos y tienen al menos dos mascotas son sus mejores clientes. Dos modelos igualmente buenos, pero dos estrategias muy diferentes desde una perspectiva empresarial.

Hola

Gracias por preguntar. La pregunta surge inmediatamente la primera vez que aprendemos sobre las redes neuronales porque es casi imposible dar sentido a las redes neuronales. Esa pregunta se investigó a finales de los 90 y principios de los 00, ya que las redes neuronales estaban calientes en ese momento, aunque ya se habían deteriorado. Se desarrollaron algunas soluciones, pero creo que nunca se han utilizado ampliamente.

De todos modos, la respuesta es sí pero con algunas restricciones. Mira esto:

Krishnan et al (1999), Extracción de árboles de decisión de redes neuronales entrenadas, en Pattern Recognition Volume 32, Issue 12, December 1999, Páginas 1999-2009.

Ha pasado mucho tiempo desde la primera vez que leí este documento, por lo que los detalles son turbios. El proceso de construcción de árboles no es la partición recursiva del espacio común, sino un proceso de retroalimentación similar a una inducción de redes neuronales para encontrar los prototipos que se pueden usar para definir los nodos de división.

Otros trabajos abordan el problema de manera similar, como Setiono y Leow (1999) sobre mapas de árboles de decisión y redes neuronales, Sistemas basados ​​en el conocimiento, Volumen 12, Número 3, junio de 1999, páginas 95–99.

Espero eso ayude.

Tendría que mirar los documentos mencionados en las otras respuestas, pero en lo que respecta a los árboles de decisión de vainilla frente a las NN profundas, ¡creo que la respuesta debe ser un claro no!

Esto se debe a que los NN profundos aprenden nuevas características (mediante la aplicación de transformaciones lineales y no lineales a las características de entrada), no solo las características seleccionadas. Los árboles de decisión de vainilla no tienen ningún mecanismo para calcular características de orden superior basadas en las características de entrada, y por lo tanto las decisiones de nodo están restringidas a una combinación única o como máximo lineal de las características de entrada en sí.

Por supuesto, uno puede hacer trampa y tomar las características aprendidas (de la CNN profunda), y luego seguir un enfoque similar a la compresión del modelo (Rich Caruana & co.) Para entrenar árboles de decisión, pero esos modelos serán igualmente ininterpretables.

Para redes generales totalmente conectadas:

Aquí hay una buena descripción de los métodos de extracción de reglas: https://www.researchgate.net/pub

Este documento tiene un buen algoritmo: https://pdfs.semanticscholar.org

Implementé la extracción del árbol de clasificación a partir de redes neuronales de alimentación directa completamente conectadas. No lo he probado, pero también debería funcionar para RBF NN. Es una versión un poco mejorada de algo del documento anterior: bondtnt / nnkx – Bitbucket

Para ConvNets : parece que la visualización de pesos / filtros es el único camino a seguir: CS231n Redes neuronales convolucionales para el reconocimiento visual

Para LSTM nuevamente: visualización de activaciones de neuronas específicas (que es una representación aún más baja): comprensión de las redes LSTM

Y hay otras arquitecturas , que están mucho menos extendidas …

En realidad, hay bastantes algoritmos de extracción de reglas para redes neuronales que luego se pueden organizar en árboles de decisión. (Ej: https://arxiv.org/pdf/1009.4984.pdf ) Dicho esto, la precisión no es muy buena y el problema se vuelve cada vez más difícil a medida que la red se profundiza. Además, las ConvNets son prácticamente imposibles de extraer reglas en virtud del hecho de que en realidad no utilizan un proceso de inferencia similar al árbol de decisiones.

TL; DR: Existen muchos, pero son muy inexactos y para las redes profundas de última generación, básicamente, nada.

Por lo que sé, no es de una red neuronal estándar (básica). Hay muchas variaciones extendidas de redes neuronales. No me sorprendería si alguien lo ha intentado. El problema inmediato y obvio es su complejidad. Lo que hace una red neuronal a menudo no es tan diferente de lo que hace una programación genética. Aproxima una función para asignar el espacio de entrada al espacio de salida. Si ha visto las funciones generadas por la programación genética, pueden ser terriblemente complicadas, pero son árboles expresados.

EDITAR: la corrección cambió el algoritmo genérico a la programación genética.

Un enfoque ingenuo sería entrenar una red profunda y utilizar la salida de una de las capas completamente conectadas como características. Luego podría entrenar un árbol de decisión sobre estas características extraídas de la red profunda.

Y para un enfoque no tan ingenuo, eche un vistazo a http://www.ijcai.org/Proceedings

More Interesting

¿Mentalese regresa en Inteligencia Artificial?

¿Por qué es tan difícil hacer un traductor universal?

¿Podría alguien usar la inteligencia artificial para alterar la Ley de Atracción para sí mismo como una máquina de deseos?

Si el universo de The Matrix era toda una ilusión, ¿por qué Matrix necesitaba mantener vivos a tantos humanos? ¿No sería mucho más útil mantener el número de humanos relativamente bajo para fines de control y uso de energía?

Inteligencia artificial de videojuegos: ¿Por qué es tan difícil usar la inteligencia artificial de agente de red Q profunda para jugar La venganza de Montezuma a un nivel similar al humano?

¿Cómo se puede construir la IA de Harold Finch (La máquina) a partir de una persona de interés?

¿Tienes miedo de la automatización y los robots que toman tu trabajo?

¿Qué es mejor, IBM Watson o Bank of America?

¿En qué tipo de aprendizaje automático (supervisado, no supervisado, refuerzo) se podría clasificar la predicción de rama?

Tengo 37 años (MSc.SoftwareEng y experiencia -gestión de proyectos de software) con un gran interés en la academia y la IA. ¿Es prudente obtener un doctorado? en IA / robótica?

En el aprendizaje por refuerzo, ¿cómo manejas un gran espacio de acción posible?

¿Cómo cambiará la forma en que los usuarios interactúan con los algoritmos de aprendizaje automático en los próximos años?

¿Por qué los robots no pueden reemplazar a los soldados humanos? ¿Cuáles son las principales brechas en la tecnología?

¿Es una red neuronal de alimentación de una sola capa equivalente a un algoritmo de regresión logística?

¿Google "entiende" el inglés mejor que IBM Watson?