Cómo una red neuronal aprendió sus propias reglas de fraude: un experimento de IA neurosimbólica

Los sistemas inyectan reglas escritas por humanos. Pero ¿qué pasaría si una red neuronal pudiera descubrir esas reglas por sí misma?

En este experimento, extiendo una red neuronal híbrida con un módulo de aprendizaje de reglas diferenciable que extrae automáticamente reglas de fraude SI-ENTONCES durante el entrenamiento. En el conjunto de datos de fraude con tarjetas de crédito de Kaggle (tasa de fraude del 0,17%), el modelo aprendió reglas interpretables como:

SI V14 < −1,5σ Y V4 > +0,5σ → Fraude

donde σ denota la desviación estándar de la característica después de la normalización.

El alumno de la regla logró ROC-AUC 0,933 ± 0,029, manteniendo al mismo tiempo un 99,3% de fidelidad a las predicciones de la red neuronal.

Lo más interesante es que el modelo redescubrió de forma independiente V14, una característica que los analistas saben desde hace mucho tiempo que se correlaciona fuertemente con el fraude, sin que se le dijera que la buscara.

Este artículo presenta un experimento de IA neurosimbólica reproducible que muestra cómo una red neuronal puede descubrir reglas de fraude interpretables directamente a partir de datos.

Código completo: github.com/Emmimal/neuro-symbolic-ai-fraud-pytorch

Lo que descubrió el modelo

Antes de la arquitectura, la función de pérdida o cualquier detalle de entrenamiento, esto es lo que salió del otro lado.

Después de hasta 80 épocas de entrenamiento (con una interrupción temprana, la mayoría de las semillas convergieron entre las épocas 56 y 78), el aprendiz de las reglas las produjo en las dos semillas donde las reglas emergieron claramente:

Semilla 42: regla más limpia (5 condiciones, conf=0,95)

Regla de fraude aprendida: semilla 42 · Las reglas nunca fueron codificadas a mano

SI V14 < −1.5σ Y V4 > +0.5σ Y V12 < −0.9σ Y V11 > +0.5σ Y V10 < −0.8σ ENTONCES FRAUDE

Semilla 7: regla complementaria (8 condiciones, conf=0,74)

Regla de fraude aprendida: semilla 7 · Las reglas nunca fueron codificadas a mano

SI V14 < −1.6σ Y V12 < −1.3σ Y V4 > +0.3σ Y V11 > +0.5σ Y V10 < −1.0σ Y V3 < −0.8σ Y V17 < −1.5σ Y V16 < −1.0σ ENTONCES FRAUDE

En ambos casos, los valores bajos de V14 se encuentran en el centro de la lógica: una convergencia sorprendente sin orientación previa.

A la modelo nunca se le dijo qué característica importaba.

Sin embargo, redescubrió de forma independiente la misma característica que los analistas humanos han identificado durante años.

Una red neuronal que descubre sus propias reglas de fraude es exactamente la promesa de la IA neurosimbólica: combinar el aprendizaje estadístico con una lógica legible por humanos. El resto de este artículo explica cómo y por qué el gradiente siguió encontrando V14 incluso cuando no se le dijo nada al respecto.

De reglas inyectadas a reglas aprendidas: por qué es importante

Todo modelo de fraude tiene un límite de decisión. Los equipos antifraude, sin embargo, operan utilizando reglas. La brecha entre ellos, entre lo que aprendió el modelo y lo que los analistas pueden leer, auditar y defender ante un regulador, es donde los equipos de cumplimiento viven y mueren.

En mi artículo anterior de esta serie, codifiqué dos reglas del analista directamente en la función de pérdida: si el monto de la transacción es inusualmente alto y si la firma PCA es anómala, trate la muestra como sospechosa. Ese enfoque funcionó. El modelo híbrido igualó el rendimiento de detección de la red neuronal pura sin dejar de ser interpretable.

Pero había una limitación obvia que no abordé. Yo escribí esas reglas. Elegí esas dos funciones porque intuitivamente tenían sentido para mí. Las reglas codificadas a mano codifican lo que ya sabes; son una buena solución cuando los patrones de fraude son estables y el conocimiento del dominio es profundo. Son una mala solución cuando los patrones de fraude están cambiando, cuando las características más importantes están anónimas (como lo están en este conjunto de datos) o cuando desea que el modelo muestre señales que no había pensado en buscar.

La siguiente pregunta natural: ¿qué características elegiría el gradiente, si tuviera la libertad de elegir?

Este patrón se extiende más allá del fraude. Los sistemas de diagnóstico médico necesitan reglas que los médicos puedan verificar antes de actuar. Los modelos de ciberseguridad necesitan reglas que los ingenieros puedan auditar. Los sistemas contra el lavado de dinero operan bajo marcos regulatorios que requieren decisiones explicables. En cualquier dominio que combine eventos raros, experiencia en el dominio y requisitos de cumplimiento, la capacidad de extraer reglas IF-THEN auditables de una red neuronal entrenada es directamente valiosa.

Arquitectónicamente, el cambio es sorprendentemente simple. No estás reemplazando el MLP, estás agregando un segundo camino que aprende a expresar las decisiones del MLP como reglas simbólicas legibles por humanos. El MLP entrena con normalidad. El módulo de reglas aprende a estar de acuerdo con ella, en forma simbólica. Ese es el tema de este artículo: inducción de reglas diferenciables en ~250 líneas de PyTorch, sin conocimiento previo de qué características importan.

"No estás reemplazando la red neuronal. Le estás enseñando a explicarse a sí misma".

La arquitectura: tres piezas que se pueden aprender

La arquitectura mantiene intacta una red neuronal estándar, pero agrega una segunda ruta que aprende reglas simbólicas que explican las decisiones de la red. Las dos rutas corren en paralelo desde la misma entrada y sus salidas se combinan mediante un peso aprendeble α:

El Hybrid Rule Learner ejecuta dos rutas en paralelo desde la misma entrada de 30 funciones. La ruta MLP maneja la detección; el camino de las reglas aprende a explicarlo. α es un escalar entrenable, no un hiperparámetro. Imagen del autor.

La ruta MLP es idéntica al artículo anterior: tres capas completamente conectadas con normalización por lotes. El camino de las reglas es nuevo. Alfa es un escalar que se puede aprender y que el modelo utiliza para ponderar las dos rutas; comienza en 0,5 y se entrena mediante descenso de gradiente como cualquier otro parámetro. Después del entrenamiento, α convergió a aproximadamente 0,88 en promedio entre semillas (rango: 0,80–0,94). El modelo aprendió a ponderar la ruta neuronal en aproximadamente un 88% y la ruta de reglas en un 12% en promedio. Las reglas no reemplazan al MLP, son un resumen simbólico estructurado de lo que aprendió el MLP.

1. Discretizador aprendeble

Las reglas necesitan entradas binarias: ¿V14 está por debajo de un umbral? sí o no. Las redes neuronales necesitan operaciones continuas y diferenciables. El suave umbral sigmoideo une ambos.

Para cada característica f y cada umbral de aprendizaje t:

bf,t=σ ⁣(xf−θf,tτ)b_{f,t} = sigma!left(frac{x_f – theta_{f,t}}{tau}right)

Dónde:

xfx_f​ es el valor de la característica *f* para esta transacción θf,ttheta_{f,t}t​ es un umbral que se puede aprender, inicializado aleatoriamente, entrenado mediante retropropagación τtau es la temperatura: alta al principio del entrenamiento (exploratoria), baja más tarde (nítida) bf,tb_{f,t} es la salida binaria suave: “¿está la característica *f* por encima del umbral *t*?”

El modelo aprende tres umbrales por característica, lo que le otorga tres "cortes" por dimensión. Cada umbral es independiente: el modelo puede distribuirlos a lo largo del rango de la característica o concentrarlos alrededor del punto de corte más discriminativo.

Tres subgráficos uno al lado del otro que muestran curvas sigmoideas para tres umbrales aprendidos en θ=−1,5, θ=0,0 y θ=1,5. Cada subtrama muestra dos líneas: una línea azul casi plana (τ=5,0, suave) y una función escalonada de color naranja intenso (τ=0,1, nítida). La línea vertical discontinua marca la posición del umbral.
El mismo sigmoide en τ=5,0 (azul) y τ=0,1 (naranja), en tres posiciones de umbral aprendidas. A alta temperatura, cada valor de característica produce un gradiente. A baja temperatura, la función es casi un paso binario, legible como una condición humana. Imagen del autor.

En τ=5,0 (época 0): el sigmoide es casi plano. Cada valor de característica produce un gradiente. El modelo explora libremente. En τ=0,1 (época 79): el sigmoide es casi una función escalonada. Los umbrales se han comprometido. Los límites son legibles como condiciones humanas.

class LearnableDiscretizer(nn.Module): def __init__(self, n_features, n_thresholds=3): super().__init__() # Un umbral de aprendizaje por (característica × bin) self.thresholds = nn.Parameter( torch.randn(n_features, n_thresholds) * 0.5 ) self.n_thresholds = n_thresholds def forward(self, x, Temperature=1.0): # x: [B, F] → salida: [B, F * n_thresholds] funciones binarias suaves x_exp = x.unsqueeze(-1) # [B, F, 1] t_exp = self.thresholds.unsqueeze(0) # [1, F, T] soft_bits = torch.sigmoid( (x_exp – t_exp) / temperatura) return soft_bits.view(x.size(0), -1) # [B, F*T]

2. Capa de aprendizaje de reglas

Cada regla es una combinación ponderada de características binarizadas, pasadas a través de un sigmoide: regla(x)=σ ⁣(∑iwr,i⋅biτ)text{rule}_r(x) = sigma!left(frac{sum_i w_{r,i} cdot b_i}{tau}right)

El signo de cada peso tiene una interpretación directa después del aplastamiento tanh:

w>+0.5w > +0.5 → la característica debe ser ALTA para que esta regla active w<−0.5w < -0.5 → la característica debe ser BAJA para que esta regla active ∣w∣<0.5|w| < 0,5 → la característica es irrelevante para esta regla

La extracción de reglas sigue directamente: establezca un umbral de los valores de peso absoluto después del entrenamiento para identificar qué características utiliza cada regla. Así es como surgen las declaraciones SI-ENTONCES a partir de parámetros continuos: leyendo la matriz de ponderaciones.

class RuleLearner(nn.Module): def __init__(self, n_bits, n_rules=4): super().__init__() # w_{r,i}: qué características binarizadas importan para cada regla self.rule_weights = nn.Parameter( torch.randn(n_rules, n_bits) * 0.1 ) # confianza: importancia relativa de cada regla self.rule_confidence = nn.Parameter(torch.ones(n_rules)) def forward(self, bits, temperatura=1.0): w = torch.tanh(self.rule_weights) # acotado en (-1, 1) logits = bits @ wT # [B, R] rule_acts = torch.sigmoid(logits / temperatura) # [B, R] conf = torch.softmax(self.rule_confidence, dim=0) fraude_prob = (rule_acts * conf.unsqueeze(0)).sum(dim=1, keepdim=True) devuelve fraude_prob, regla_acts

3. Recocido por temperatura

La temperatura sigue un programa de decaimiento exponencial:τ

Con τ_start=5.0, τ_end=0.1, T=80 épocas:

EpochτState05.00Reglas completamente suaves: el gradiente fluye por todas partes400.69Reglas más estrictas: compromiso de umbrales790.10Reglas casi nítidas: legibles como SI-ENTONCES
Un gráfico de líneas que muestra la temperatura τ en el eje y disminuyendo de 5,0 en la época 0 a cerca de 0,1 en la época 79. La curva es exponencial. Tres anotaciones marcan las etapas clave: Totalmente suave en la época 0, Apretado en la época 40 y Casi nítido en la época 79.
La temperatura τ decae exponencialmente a lo largo de 80 épocas, desde la suavidad exploratoria (τ = 5,0) hasta la nitidez casi binaria (τ = 0,1). El área sombreada muestra la región donde los gradientes todavía son informativos. Imagen del autor.

def get_temperature(época, total_epochs, tau_start=5.0, tau_end=0.1): progreso = época / max(total_epochs – 1, 1) return tau_start * (tau_end / tau_start) ** progreso

Sin recocido, el modelo permanece flexible y las reglas nunca cristalizan en algo que un analista de fraude pueda leer o que un equipo de cumplimiento pueda aprobar. El recocido es lo que convierte una optimización continua en una salida simbólica.

Antes de la función de pérdida: una nota rápida sobre de dónde proviene esta idea y qué hace que esta implementación sea diferente del trabajo anterior.

Sobre los hombros de ∂ILP, NeuRules y FINRule

Vale la pena situar este trabajo en la literatura existente no como un estudio completo, sino para aclarar qué ideas se toman prestadas y cuáles son nuevas.

La programación lógica inductiva diferenciable introdujo la idea central de que la programación lógica inductiva, tradicionalmente un problema de búsqueda combinatoria, puede reformularse como un programa diferenciable entrenado con descenso de gradiente. La idea clave utilizada aquí es el uso de operadores lógicos suaves que permiten que los gradientes fluyan a través de estructuras similares a reglas. Sin embargo, ∂ILP requiere plantillas de reglas predefinidas y declaraciones de conocimientos previos, lo que dificulta su integración en canales de aprendizaje profundo estándar.

Un trabajo reciente que aplica reglas diferenciables para la detección de fraude, como FINRule, muestra que los enfoques de aprendizaje de reglas pueden funcionar bien incluso en conjuntos de datos financieros altamente desequilibrados. Estos estudios demuestran que las reglas aprendidas pueden coincidir con la lógica de detección artesanal y al mismo tiempo adaptarse más fácilmente a nuevos patrones de fraude.

Otros sistemas, como RIFF y las listas de reglas neurosimbólicas, introducen reglas diferenciables al estilo de un árbol de decisiones y enfatizan la escasez para mantener la interpretabilidad. La regularización L1 utilizada en esta implementación sigue el mismo principio: fomentar que las reglas se basen solo en unas pocas condiciones en lugar de en todas las funciones disponibles.

La implementación en este artículo combina estas ideas de discretización diferenciable más aprendizaje de conjunción, pero las reduce a aproximadamente 250 líneas de PyTorch libre de dependencia. Sin lenguaje de plantilla. Sin declaraciones de conocimientos previos. El objetivo es un módulo mínimo de aprendizaje de reglas que pueda incluirse en un ciclo de capacitación estándar.

Pérdida en tres partes: detección + consistencia + escasez

El objetivo completo de la formación:

Ltotal=LBCE+λc⋅Lconsistencia+λs⋅Lsparsidad+λconf⋅Lconfianzamathcal{L}_{text{total}} = mathcal{L}_{text{BCE}} + lambda_c cdot mathcal{L}_{text{consistencia}} + lambda_s cdot mathcal{L}_{text{escasez}} + lambda_{text{conf}} cdot mathcal{L}_{text{confianza}}

L_BCE — Entropía cruzada binaria ponderada

Idéntico al artículo anterior. pos_weight = recuento(y=0) / recuento(y=1) ≈ 578. Una muestra de fraude etiquetada genera 578 veces el gradiente de una muestra sin fraude. Este término no ha cambiado, la ruta de la regla no agrega complejidad al objetivo de detección principal.

L_consistency – El nuevo término

Las reglas deben estar de acuerdo con el MLP cuando el MLP tenga confianza. Operacionalmente: MSE entre rule_prob y mlp_prob, enmascarado para predicciones donde el MLP es claramente fraude (>0,7) o claramente no fraude (<0,3):

máscara_confiada = (mlp_prob > 0,7) | (mlp_prob < 0.3) si confident_mask.sum() > 0: consist_loss = F.mse_loss( rule_prob.squeeze()[confident_mask], mlp_prob.squeeze()[confident_mask].detach() # ← crítico)

El .detach() es fundamental: estamos enseñando las reglas para seguir el MLP, no al revés. El MLP sigue siendo el principal alumno. La región incierta (0,3–0,7) se excluye deliberadamente, que es donde las reglas podrían detectar algo que el MLP omite.

L_sparsity: mantenga las reglas simples

Penalización L1 en los pesos de las reglas sin procesar (pre-tanh): media (|W_rules|). Sin esto, las reglas absorben las 30 características y se vuelven ilegibles. Con λ_s=0,25, el optimizador empuja las características irrelevantes hacia cero mientras deja características realmente útiles (V14, V4, V12) en |w| ≈ 0,5–0,8 después del aplastamiento de tanh.

L_confidence — Reglas para eliminar el ruido

Una pequeña penalización L1 en los logits de confianza (λ_conf=0,01) hace que las reglas de baja confianza tengan un peso cero en la combinación de salida, eliminándolas efectivamente. Sin esto, aparecen con confianza 0,02–0,04 múltiples reglas técnicamente activas pero sin sentido que oscurecen la señal real.

Hiperparámetros finales: λ_c=0,3, λ_s=0,25, n_rules=4, λ_conf=0,01.

Con la maquinaria instalada aquí está lo que produjo.

Resultados: ¿Funciona el aprendizaje de reglas y qué encontró?

Configuración experimental

Conjunto de datos: Fraude con tarjetas de crédito de Kaggle, 284.807 transacciones, tasa de fraude del 0,173% División: 70/15/15 estratificado por etiqueta de clase, 5 semillas aleatorias [42, 0, 7, 123, 2024] Umbral: F1-maximización en el conjunto de validación, aplicado simétricamente al conjunto de prueba Mismo protocolo de evaluación que el Artículo 1

Rendimiento de detección

Dos gráficos de barras uno al lado del otro que muestran la puntuación F1 y PR-AUC para Pure Neural (Artículo 1) en azul y Rule Learner en naranja, en 5 semillas. Las barras de error muestran la desviación estándar. Neural puro: F1=0,804±0,020, PR-AUC=0,770±0,024. Aprendiz de regla: F1=0,789±0,032, PR-AUC=0,721±0,058.
Rendimiento de detección en 5 semillas aleatorias (media ± estándar). El Rule Learner se encuentra aproximadamente a 1,5 puntos F1 por debajo de la línea de base neuronal pura, un costo real pero modesto para un modelo que ahora produce reglas SI-ENTONCES auditables. Imagen del autor.
ModeloF1 (media ± estándar)PR-AUC (media ± estándar)ROC-AUC (media ± estándar)Bosque de aislamiento0.1210.1720.941Neural puro (artículo 1)0.804 ± 0.0200.770 ± 0.0240.946 ± 0.019Aprendiz de reglas (este artículo)0.789 ± 0,0320,721 ± 0,0580,933 ± 0,029

Nota: Números de bosque de aislamiento del artículo 1 como referencia. Todos los demás modelos se evaluaron con divisiones, umbrales y semillas idénticos.

El aprendiz de reglas se encuentra ligeramente por debajo de la línea de base neuronal pura en las tres métricas de detección, aproximadamente 1,5 puntos F1 en promedio. La compensación es la explicabilidad. El desglose por semilla muestra la imagen completa:

SemillaNN F1RL F1NN ROCRL ROCFidelityCobertura420.8180.8240.96070.96810.99210.824300.8250.8320.97270.95720.99250.851470.7790.77 60.92720.90010.99550.75681230.8170.7550.94830.89740.99220.810820240.7790.7590.92230.94160.99460.8108

En las semillas 42 y 0, el alumno de la regla excede la línea de base neuronal pura en F1. En la semilla 2024, supera a ROC-AUC. La variación del rendimiento entre semillas es una imagen honesta de lo que produce la inducción de reglas basada en gradientes en un conjunto de datos desequilibrado del 0,17%.

Calidad de las reglas: la nueva contribución

Tres métricas. Cada una responde a una pregunta diferente que haría un responsable de cumplimiento.

Fidelidad de reglas: ¿puedo confiar en que este conjunto de reglas represente las decisiones reales del modelo?

def rule_fidelity(mlp_probs, rule_probs, umbral=0.5): mlp_preds = (mlp_probs > umbral).astype(int) rule_preds = (rule_probs > umbral).astype(int) return (mlp_preds == rule_preds).mean()

Cobertura de reglas: ¿qué fracción del fraude real detecta al menos una regla?

def cobertura_de_reglas(actos_de_reglas, y_true, umbral=0.5): cualquier_rule_fired = (actos_de_reglas > umbral).cualquier(eje=1) devuelve cualquier_rule_fired[y_true == 1].mean()

Simplicidad de reglas: ¿cuántas condiciones de características únicas por regla, después de la deduplicación?

def rule_simplicity(rule_weights_numpy, Weight_threshold=0.50): # Divida por n_thresholds (=3) para obtener características únicas, # la métrica de legibilidad significativa. Objetivo: < 8. activo = (np.abs(rule_weights_numpy) > umbral_peso).sum(axis=1) características_únicas = np.ceil(activo / 3.0) características_únicas = características_únicas[características_únicas > 0] return float(unique_features.mean()) if len(unique_features) > 0 else 0.0

Metricmean ± stdTargetStatusFidelity0,993 ± 0,001> 0,85ExcellentCoverage0,811 ± 0,031> 0,70GoodSimplicity (características únicas/regla)1,7 ± 2,1< 8La media está dominada por tres semillas donde la ruta de la regla colapsó por completo (simplicidad=0); en las dos semillas activas, las reglas utilizaron 5 y 8 condiciones: legibles cómodamente. α (final) 0,880 ± 0,045: dominante MLP

Esto resalta una tensión real en el aprendizaje de reglas diferenciables: una fuerte regularización de la escasez produce reglas limpias cuando aparecen, pero puede hacer que el camino simbólico se oscurezca en algunas inicializaciones. Informar la media ± estándar de las semillas en lugar de seleccionar la mejor semilla es esencial precisamente debido a esta variación.

La fidelidad de 0,993 significa que en las semillas donde las reglas están activas, están de acuerdo con el MLP en el 99,3% de las decisiones binarias: la pérdida de consistencia funciona exactamente como se diseñó.

Dos subtramas. Izquierda: Val PR-AUC por época para las cinco semillas (42, 0, 7, 123, 2024) mostradas como líneas azules superpuestas de diferentes tonos, que van de 0,6 a 0,8 en hasta 80 épocas. Derecha: programa de recocido de temperatura que muestra que τ cae de 5,0 a cerca de 0 durante aproximadamente 57 épocas.
Izquierda: validación PR-AUC en las cinco semillas durante el entrenamiento. Derecha: el programa de temperatura tal como se ejecutó realmente; tenga en cuenta que la parada temprana se disparó entre las épocas 56 y 78, dependiendo de la semilla. Imagen del autor.

Las reglas extraídas: lo que encontró el gradiente

Una visualización de estilo terminal oscuro que muestra una regla de fraude extraída denominada Regla 1 con una confianza de 0,95. La regla dice: SI V4 es mayor que 0,471 (+0,5σ) Y V10 es menor que −0,774 (−0,8σ) Y V11 es mayor que 0,458 (+0,5σ) Y V12 es menor que −0,861 (−0,9σ) Y V14 es menor que −1,462 (−1,5σ) ENTONCES FRAUDE. El texto del pie de página señala que al modelo nunca se le dijo qué características usar y las reglas surgieron únicamente del descenso de gradiente.
La regla completa extraída de la semilla 42: cinco condiciones, confianza 0,95. Cada umbral se aprendió mediante retropropagación. Ninguno fue escrito a mano. Imagen del autor.

Ambas reglas se muestran en su totalidad en la parte superior de este artículo. La versión corta: el semilla 42 produjo una regla estricta de 5 condiciones (conf=0,95), la semilla 7 una regla más amplia de 8 condiciones (conf=0,74). En ambos, V14 < −1,5σ (o −1,6σ) aparece como la condición principal.

El análisis de características entre semillas confirma el patrón en las cinco semillas:

CaracterísticaAparece en puntuación media ponderadaV142/5 semillas0,630V112/5 semillas0,556V122/5 semillas0,553V102/5 semillas0,511V41/5 semillas0,616V171/5 semillas0,485

Incluso con solo dos semillas que produjeron reglas visibles, V14 ocupó el primer o segundo lugar en ambas: una convergencia estadísticamente sorprendente sin ninguna guía de características previa. No era necesario que le dijeran a la modelo qué buscar.

"El modelo recibió 30 características anónimas y una señal de gradiente. De todos modos encontró V14".

Lo que encontró el modelo y por qué tiene sentido

V14 es uno de los 28 componentes PCA extraídos de datos anonimizados de transacciones con tarjetas de crédito. Exactamente lo que representa no es de conocimiento público: ese es el objetivo de la anonimización. Lo que han establecido múltiples análisis independientes es que V14 tiene la correlación absoluta más alta con la etiqueta de fraude de cualquier característica del conjunto de datos.

¿Por qué la encontró el alumno de la regla? El mecanismo es la pérdida de consistencia. Al entrenar reglas para que concuerden con las predicciones seguras del MLP, el aprendiz de reglas lee las representaciones internas del MLP y las traduce a forma simbólica. El MLP ya había aprendido por las discográficas que la V14 era importante. La pérdida de consistencia transfirió esa señal a la matriz de ponderación de la regla. Luego, el recocido térmico endureció ese peso hasta alcanzar una condición umbral nítida.

Ésta es la diferencia fundamental entre la inyección de reglas (artículo 1) y el aprendizaje de reglas (este artículo). La inyección de reglas codifica lo que ya sabes. El aprendizaje de reglas descubre lo que usted no descubre. En este experimento, el descubrimiento fue V14, una señal que el gradiente encontró de forma independiente, sin que se le dijera que la buscara.

En cinco semillas, surgieron reglas legibles en dos, destacando constantemente la V14. Esta es una poderosa demostración de que el descenso de gradiente puede redescubrir señales de dominio crítico sin que se le indique que las busque.

Un histograma que muestra la probabilidad de fraude prevista en el eje x de 0 a 1. Dos barras superpuestas: azul para no fraude y naranja para fraude. El no fraude se concentra marcadamente cerca de 0 con una densidad de alrededor de 60. El fraude se concentra marcadamente cerca de 1,0 con una densidad de alrededor de 25. Aparece una pequeña barra naranja cerca de 0 y una pequeña barra azul cerca de 0,85, lo que indica cierta superposición.
Distribuciones de probabilidad de fraude previstas para la semilla 42. El modelo aprendió a llevar el no fraude hacia 0 y el fraude hacia 1 con muy poca superposición: la separación bimodal que parece una buena calibración en datos desequilibrados. Imagen del autor.

Un equipo de cumplimiento ahora puede leer la Regla 1, verificar que V14 < −1.5σ tenga sentido en el dominio y aprobarla, sin abrir una sola matriz de ponderación. Para eso está el aprendizaje de reglas neurosimbólicas.

Cuatro cosas a tener en cuenta antes de implementar esto

La velocidad de recocido es su hiperparámetro más sensible. Demasiado rápido: las reglas cristalizan antes de que el MLP haya aprendido algo: se obtienen tonterías claras. Demasiado lento: τ nunca cae lo suficientemente bajo y las reglas se mantienen suaves. Trate τ_end como el primer parámetro para ajustar un nuevo conjunto de datos. n_rules establece su presupuesto de interpretabilidad Por encima de 8 a 10 reglas, tiene una tabla de búsqueda, no un conjunto de reglas auditables. Por debajo de 4, es posible que se pierdan patrones de fraude de cola. El punto óptimo para el uso de cumplimiento es de 4 a 8 reglas. El umbral de coherencia supone un MLP calibrado. Si su MLP base está mal calibrado (algo común en datos muy desequilibrados), la máscara se activa muy raramente. Ejecute un gráfico de calibración en los resultados de validación. Considere la posibilidad de escalar Platt si la calibración es deficiente. Las reglas aprendidas deben ser auditadas después de cada reentrenamiento. A diferencia de las reglas congeladas codificadas a mano, las reglas aprendidas se actualizan cada vez que el modelo se reentrena. El equipo de cumplimiento no puede cerrar sesión una vez y marcharse; la aprobación debe realizarse en cada ciclo de reentrenamiento.

Inyección de reglas versus aprendizaje de reglas: cuándo usar cuál

SituaciónUsoSólido conocimiento del dominio, patrones de fraude estables Inyección de reglas (artículo 1) Patrones de fraude desconocidos o cambiantes Aprendizaje de reglas (este artículo) El cumplimiento requiere reglas auditables y legibles Aprendizaje de reglas Experimento rápido, sobrecarga mínima de ingeniería Inyección de reglas Canal de interpretabilidad de extremo a extremo Aprendizaje de reglas Conjunto de datos pequeño (<10 000 muestras) Inyección de reglas: señal de necesidad de pérdida de coherencia

El alumno de reglas agrega aproximadamente 200 líneas de código y un barrido de hiperparámetros. No es gratis. En conjuntos de datos muy pequeños, es posible que la pérdida de coherencia no acumule suficiente señal para aprender reglas significativas: valide la fidelidad antes de tratar las reglas extraídas como autorizadas. El enfoque es una herramienta, no una solución.

Una observación honesta del experimento de cinco semillas: en 3 de 5 semillas, una fuerte presión de escasez hizo que todos los pesos de las reglas estuvieran por debajo del umbral de extracción. El modelo convergió hacia la respuesta de detección correcta pero la expresó únicamente a través de la ruta MLP. Esta variación es real. Los resultados de una sola semilla darían una imagen engañosamente limpia, razón por la cual la evaluación de múltiples semillas no es negociable para cualquier artículo o artículo que haga afirmaciones sobre el comportamiento de las reglas aprendidas.

La siguiente pregunta de esta serie es si estas reglas extraídas pueden señalar una desviación del concepto, detectando cuándo los patrones de fraude han cambiado lo suficiente como para que las reglas necesiten actualizarse antes de que se degrade el rendimiento del modelo. Cuando la importancia de V14 cae en las ponderaciones de las reglas mientras las métricas de detección se mantienen estables, la distribución del fraude puede estar cambiando. Esa señal de alerta temprana es el tema del próximo artículo.

Divulgación

Este artículo se basa en experimentos independientes que utilizan datos disponibles públicamente (conjunto de datos sobre fraude con tarjetas de crédito de Kaggle, dominio público CC-0) y herramientas de código abierto (PyTorch, scikit-learn). No se utilizaron conjuntos de datos propietarios, recursos de la empresa ni información confidencial. Los resultados y el código son completamente reproducibles como se describe y el repositorio de GitHub contiene la implementación completa. Los puntos de vista y conclusiones expresados ​​aquí son míos y no representan a ningún empleador u organización.

Referencias

[1]Evans, R. y Grefenstette, E. (2018). Aprender reglas explicativas a partir de datos ruidosos. JAIR, 61, 1–64. https://arxiv.org/abs/1711.04574

[2]Wolfson, B. y Acar, E. (2024). Programación Lógica Inductiva Diferenciable para Detección de Fraude. Preimpresión de arXiv arXiv:2410.21928. https://arxiv.org/abs/2410.21928

[3]Martins, JL, Bravo, J., Gomes, AS, Soares, C. y Bizarro, P. (2024). RIFF: inducción de reglas para la detección de fraude a partir de árboles de decisión. ReglaML+RR 2024. arXiv:2408.12989. https://arxiv.org/abs/2408.12989

[4]Xu, S., Walter, NP y Vreeken, J. (2024). Listas de reglas neurosimbólicas. Preimpresión de arXiv arXiv:2411.06428. https://arxiv.org/abs/2411.06428

[5]Kusters, R., Kim, Y., Collery, M., de Sainte Marie, C. y Gupta, S. (2022). Inducción de reglas diferenciables con características relacionales aprendidas. Preimpresión de arXiv arXiv:2201.06515. https://arxiv.org/abs/2201.06515

[6]Dal Pozzolo, A. et al. (2015). Calibración de probabilidad con submuestreo para clasificación desequilibrada. IEEESSCI. Conjunto de datos: https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud (CC-0)

[7]Alejandro, EP (2026). Detección híbrida de fraude neurosimbólico. Hacia la ciencia de datos. https://towardsdatascience.com/hybrid-neuro-symbolic-fraud-detection-guiding-neural-networks-with-domain-rules/

[8]Liu, FT, Ting, KM y Zhou, Z.-H. (2008). Bosque de aislamiento. En 2008, Octava Conferencia Internacional IEEE sobre Minería de Datos (ICDM), págs. IEEE. https://doi.org/10.1109/ICDM.2008.17

[9]Paszke, A. et al. (2019). PyTorch. NeurIPS 32. https://pytorch.org

[10]Pedregosa, F. et al. (2011). Scikit-learn: aprendizaje automático en Python. JMLR, 12, 2825–2830. https://scikit-learn.org

Código: github.com/Emmimal/neuro-symbolic-ai-fraud-pytorch

Artículo anterior: Detección híbrida de fraude neurosimbólico: guía de redes neuronales con reglas de dominio