В мире искусственного интеллекта нейро-символические системы занимают уникальную нишу, соединяя статистическое обучение с человеческой логикой. В большинстве случаев такие системы используют правила, написанные людьми. Но что, если нейросеть сможет сама обнаруживать эти правила?
В этом эксперименте я расширил гибридную нейросеть с помощью модуля дифференцируемого обучения правил, который автоматически извлекает правила IF-THEN для выявления мошенничества в процессе обучения. На основе датасета Kaggle о мошенничестве с кредитными картами (где уровень мошенничества составляет 0,17%), модель научилась формулировать такие интерпретируемые правила, как:
IF V14 < −1.5σ AND V4 > +0.5σ → Fraud
где σ обозначает стандартное отклонение признака после нормализации. Модуль обучения правил достиг показателя ROC-AUC 0.933 ± 0.029, сохраняя при этом 99.3% точности предсказаний нейросети.
Наиболее интересно то, что модель независимо обнаружила признак V14, который аналитики давно связывают с мошенничеством, не имея на это явных указаний. Это и есть обещание нейро-символического ИИ: сочетание статистического обучения с логикой, понятной человеку.
Что обнаружила модель
Прежде чем погрузиться в архитектуру, функцию потерь или детали обучения, давайте посмотрим на результаты. После до 80 эпох обучения (с ранней остановкой, большинство семян сходились между 56 и 78 эпохами), модуль обучения правил выдал следующие результаты для двух семян, где правила были явно выражены:
Семя 42
- Чистейшее правило (5 условий, conf=0.95)
Изученное правило для мошенничества:
- IF V14 < −1.5σ
- AND V4 > +0.5σ
- AND V12 < −0.9σ
- AND V11 > +0.5σ
- AND V10 < −0.8σ
- THEN FRAUD
Семя 7
- Дополнительное правило (8 условий, conf=0.74)
Изученное правило для мошенничества:
- IF V14 < −1.6σ
- AND V12 < −1.3σ
- AND V4 > +0.3σ
- AND V11 > +0.5σ
- AND V10 < −1.0σ
- AND V3 < −0.8σ
- AND V17 < −1.5σ
- AND V16 < −1.0σ
- THEN FRAUD
В обоих случаях низкие значения V14 оказались ключевыми в логике — удивительное совпадение, учитывая полное отсутствие первоначального указания на это. Модель никогда не училась на том, какие признаки важны, но самостоятельно обнаружила тот же признак, который аналитики выявили годами ранее.
От внедренных правил к изученным правилам: почему это важно
Каждая модель мошенничества имеет границу принятия решений. Однако команды, занимающиеся борьбой с мошенничеством, работают с правилами. Разрыв между тем, что изучила модель, и тем, что аналитики могут прочитать, аудировать и защитить перед регулятором — это то место, где живут и умирают команды по соблюдению нормативных требований.
В прошлом я кодировал правила аналитиков непосредственно в функцию потерь. Этот подход работал, но имел очевидное ограничение — я сам писал эти правила. Такой подход хорош, когда модели стабильны и доменные знания глубокие. Но это плохое решение, когда мошеннические паттерны меняются, а признаки анонимизированы.
Естественный вопрос: какие признаки выберет градиент, если дать ему свободу выбора?
Этот паттерн выходит за рамки мошенничества. Системы медицинской диагностики нуждаются в правилах, которые врачи могут проверить перед принятием решения. Модели кибербезопасности нуждаются в правилах, которые инженеры могут проверять. Системы по противодействию отмыванию денег работают в рамках регуляторных требований, требующих объяснимых решений.
Архитектура: три обучаемых элемента
Архитектура сохраняет стандартную нейросеть, но добавляет второй путь, который учится выражать решения нейросети в виде символических правил. Эти два пути работают параллельно, начиная с одного и того же ввода, а их выходы комбинируются обучаемым весом α:
Путь MLP идентичен предыдущей статье: три полностью соединенных слоя с нормализацией батча. Новый путь — это путь правил. Альфа — обучаемый скаляр, который модель использует для взвешивания двух путей, он начинается с 0.5 и обучается с помощью градиентного спуска, как любой другой параметр.
После обучения α конвергировала в среднем к 0.88 по всем семенам (диапазон: 0.80–0.94). Модель научилась взвешивать путь нейронов примерно на 88%, а путь правил — на 12% в среднем.
Обучаемый дискретизатор
Правила нуждаются в бинарных входных данных — признак V14 ниже порога? да или нет. Нейросетям нужны непрерывные, дифференцируемые операции. Мягкий сигмовидный порог объединяет оба подхода.
Для каждого признака f и каждого обучаемого порога t:
- bf,t = σ((xf − θf,t)/τ)
где:
- xf — значение признака f для данной транзакции
- θf,t — обучаемый порог, инициализируется случайно, обучается с помощью обратного распространения ошибки
- τ — температура, высокая в начале обучения (исследовательская), низкая позже (четкость)
Модель изучает три порога на признак, давая ей три «разреза» на измерение. Каждый порог независим — модель может распределять их по всему диапазону признака или концентрировать вокруг наиболее дискриминирующего разреза.
Слой обучения правил
Каждое правило — это взвешенная комбинация бинаризованных признаков, пропущенных через сигмоид:
- ruler(x) = σ((∑i wr,i ⋅ bi)/τ)
Знак каждого веса имеет прямую интерпретацию после тангенциального сглаживания:
- w > +0.5 → признак должен быть высоким, чтобы правило сработало
- w < -0.5 → признак должен быть низким, чтобы правило сработало
- |w| < 0.5 → признак не имеет значения для этого правила
Извлечение правил следует непосредственно: порог абсолютных значений веса после обучения позволяет определить, какие признаки использует каждое правило. Таким образом, из непрерывных параметров появляются операторы IF-THEN.
Аннелирование температуры
Температура следует экспоненциальному графику убывания:
- τ(t) = τstart ⋅ (τend/τstart)t/T
С τstart=5.0, τend=0.1, T=80 эпох:
| Эпоха | τ | Состояние |
|---|---|---|
| 0 | 5.00 | Правила полностью мягкие — градиент течет везде |
| 40 | 0.69 | Правила ужесточаются — пороги закрепляются |
| 79 | 0.10 | Правила почти четкие — читаемые как IF-THEN |
Без аннелирования модель остается мягкой и правила никогда не кристаллизуются во что-то, что может читать аналитик по мошенничеству или подписывать команда по соблюдению нормативных требований. Аннелирование — это то, что превращает непрерывную оптимизацию в символический вывод.