Как работает membership inference через logits (разница в вероятностях)?

Краткий тезис

Membership inference attack (атака на определение членства) — это метод, позволяющий злоумышленнику определить, использовался ли конкретный образец (например, текст или изображение) при обучении модели. Атака через логиты (сырые выходы последнего слоя до softmax) опирается на то, что модель обычно выдаёт более высокую уверенность (вероятность правильного класса) для элементов тренировочного набора, чем для невиденных данных. Злоумышленник сравнивает разницу в вероятностях (или сами логиты) с порогом и классифицирует образец как «член» или «не-член». Защита включает отказ от возврата логитов (только сэмплы), добавление шума в логиты и применение дифференциальной приватности.


1. Термины: membership inference, логиты, вероятности

Membership inference — задача атаки на приватность модели машинного обучения. Цель: для данного образца данных определить, входил ли он в обучающую выборку модели. Успешная атака может раскрыть конфиденциальную информацию (например, медицинские записи, персональные данные).

Логиты (logits) — выходные значения последнего полносвязного слоя модели перед функцией активации (например, softmax). Для задачи классификации логиты — это вектор вещественных чисел, по одному на каждый класс. Чем больше значение логита для класса, тем «увереннее» модель в этом классе.

Вероятности (probabilities) — результат применения softmax к логитам:
[ p_i = \frac{e^{z_i}}{\sum_{j} e^{z_j}} ]
где (z_i) — логит для класса (i). Вероятности нормированы в интервал [0,1] и суммируются в 1.

Разница в вероятностях — разность между вероятностью правильного класса (того, который соответствует истинной метке образца) и, например, максимальной вероятностью среди остальных классов, или просто сама вероятность правильного класса. Члены тренировочного набора часто имеют более высокую вероятность правильного ответа.


2. Как работает атака: общая схема

Злоумышленник имеет доступ к целевой модели (black-box или white-box) и может подавать на вход произвольные образцы, получая в ответ либо только предсказанный класс (label|hard label), либо вероятности/логиты (label|soft label). Атака через логиты использует soft label — наиболее информативный случай.

Шаги атаки:

  1. Злоумышленник собирает набор образцов-кандидатов (например, публичные данные, похожие на тренировочные).
  2. Для каждого образца он получает от модели вектор логитов (или вероятностей).
  3. Вычисляет метрику уверенности — например, вероятность правильного класса (если известна истинная метка) или максимальную вероятность (если метка неизвестна).
  4. Сравнивает метрику с порогом (\tau). Если метрика > (\tau), образец классифицируется как «член» тренировочного набора; иначе — «не-член».
  5. Порог (\tau) подбирается на отдельном валидационном наборе, где известно членство.

Ключевая идея: из-за переобучения модель запоминает шум и паттерны тренировочных данных, поэтому для «увиденных» образцов она выдаёт более высокую уверенность, чем для «невиденных».


3. Почему члены имеют более высокую вероятность

При обучении модель минимизирует функцию потерь (например, кросс-энтропию) на тренировочных данных. Если модель достаточно большая и обучена много эпох, она начинает запоминать конкретные примеры, а не только обобщать. Это приводит к тому, что для тренировочных образцов логиты правильного класса становятся очень большими, а вероятности — близкими к 1. Для новых, невиденных данных модель менее уверена, вероятности распределены более равномерно.

Факторы, усиливающие разницу:

  • Переобучение (overfitting): чем больше разрыв между train и test accuracy, тем легче атака.
  • Большое количество параметров модели относительно размера данных.
  • Отсутствие регуляризации (dropout, weight decay).
  • Много эпох обучения без early stopping.

4. Математическая иллюстрация

Рассмотрим бинарную классификацию (классы 0 и 1). Пусть для образца (x) с истинной меткой (y=1) модель выдаёт логиты (z_0, z_1). Вероятность правильного класса: [ p_1 = \frac{e^{z_1}}{e^{z_0}+e^{z_1}} = \frac{1}{1+e^{-(z_1 - z_0)}}. ] Разница логитов ([Delta](/wiki/Delta) = z_1 - z_0) определяет уверенность. Для члена тренировочного набора ([Delta](/wiki/Delta)) велико (например, 10), (p_1 \approx 0.99995). Для не-члена ([Delta](/wiki/Delta)) мало (например, 0.5), (p_1 \approx 0.62).

Атака может использовать непосредственно ([Delta](/wiki/Delta)) или (p_1) как метрику. Порог выбирается так, чтобы максимизировать accuracy атаки (например, по F1-score).


5. Пример кода: простая атака на PyTorch модель

import torch
import torch.nn.functional as F

def membership_inference_attack(model, candidate_loader, true_labels, threshold=0.9):
    """
    model: обученная модель (возвращает логиты)
    candidate_loader: DataLoader с образцами-кандидатами
    true_labels: список истинных меток для каждого образца (если известны)
    threshold: порог уверенности
    """
    model.eval()
    memberships = []
    with torch.no_grad():
        for batch_idx, (inputs, _) in enumerate(candidate_loader):
            logits = model(inputs)
            probs = F.softmax(logits, dim=1)
            # Вероятность правильного класса
            correct_probs = probs[range(len(inputs)), true_labels[batch_idx]]
            pred = (correct_probs > threshold).int()
            memberships.extend(pred.tolist())
    return memberships

На практике злоумышленник может не знать истинные метки, тогда используется максимальная вероятность (max(probs)) как метрика.


6. Факторы, влияющие на успех атаки

ФакторВлияние на атаку
Размер модели (больше параметров)Увеличивает запоминание → атака легче
Количество эпох обученияБольше эпох → сильнее переобучение → выше разница
Регуляризация (dropout, weight decay)Снижает переобучение → атака сложнее
Размер тренировочного набораБольше данных → меньше переобучение → атака сложнее
Тип задачи (классификация vs генерация)Для генеративных моделей атака через логиты токенов сложнее, но возможна
Доступ к логитам (soft vs hard label)Soft label даёт больше информации → атака точнее

7. Защиты от membership inference через логиты

7.1 Не возвращать логиты (только сэмплы)

Самый простой способ — API модели возвращает только предсказанный класс (hard label) или сэмпл из распределения. Это резко снижает точность атаки, так как злоумышленник теряет информацию об уверенности.

7.2 Добавление шума в логиты

Перед возвратом к логитам добавляется случайный шум, например, из распределения Лапласа или Гаусса. Это «размывает» разницу между членами и не-членами. Шум должен быть достаточным, чтобы скрыть сигнал, но не слишком большим, чтобы не испортить полезность.

7.3 Обрезание логитов (logit clipping)

Ограничение значений логитов сверху (например, до 10). Это уменьшает экстремальные значения для членов тренировочного набора.

7.4 Дифференциальная приватность (DP)

Обучение с DP-SGD гарантирует, что влияние любого отдельного образца на модель ограничено. Это теоретически обоснованная защита от membership inference. На практике снижает качество модели.

7.5 Использование температурного масштабирования (temperature scaling)

Увеличение температуры softmax (T > 1) делает распределение вероятностей более равномерным, снижая разницу между членами и не-членами. Однако это может ухудшить калибровку модели.


8. Особенности для LLM и генеративных моделей

В языковых моделях (LLM) membership inference через логиты может быть применён к отдельным токенам или ко всей последовательности. Например, злоумышленник подаёт текст и получает логиты для следующего токена. Если текст был в тренировочных данных, модель предскажет следующий токен с высокой уверенностью. Атака может использовать среднюю логарифмическую вероятность (perplexity) как метрику: для членов perplexity ниже.

В контексте Agentic RAG агенты часто используют LLM для принятия решений (выбор инструмента, формирование запроса). Если агент возвращает логиты при выборе действия, злоумышленник может попытаться определить, встречалась ли данная последовательность действий в обучении агента. Это особенно критично, если агент обучался на конфиденциальных данных.


9. Связь с Agentic RAG

В архитектуре Agentic RAG модель может выступать как «планировщик», который на каждом шаге выбирает действие (retrieve, generate, call tool). Если планировщик возвращает логиты для каждого действия, злоумышленник может:

  • Подавать запросы, похожие на те, что использовались при обучении агента.
  • Анализировать уверенность в выборе действия.
  • Делать вывод о членстве конкретного запроса в тренировочном наборе.

Защита: в продуктивных системах агенты обычно возвращают только выбранное действие (hard label), а не полные логиты. Однако при отладке или в исследовательских целях логиты могут быть доступны — это увеличивает риск.


10. Пет-проект для закрепления

Задача Реализовать membership inference атаку через логиты на простую модель классификации (например, на датасете CIFAR-10) и протестировать защиту с добавлением шума.

Инструменты Python, PyTorch, scikit-learn, numpy.

Шаги:

  1. Обучите небольшую свёрточную сеть (2-3 слоя) на CIFAR-10 с переобучением (мало данных, много эпох).
  2. Создайте два набора: «члены» (тренировочные образцы) и «не-члены» (тестовые образцы).
  3. Для каждого образца получите логиты и вычислите вероятность правильного класса.
  4. Постройте гистограммы распределения вероятностей для членов и не-членов. Убедитесь, что члены имеют более высокие вероятности.
  5. Подберите порог по валидационному набору (например, по F1-score).
  6. Оцените accuracy атаки (доля правильно классифицированных образцов).
  7. Реализуйте защиту: добавьте гауссов шум к логитам (std=0.1, 0.5, 1.0) и повторите атаку. Зафиксируйте снижение accuracy.
  8. Попробуйте обрезание логитов (clip to [-5,5]) и температурное масштабирование (T=2).

Ожидаемый результат Вы увидите, что без защиты accuracy атаки может достигать 80-90%. С шумом accuracy падает до 50-60% (случайное угадывание). Вы также заметите, что слишком большой шум разрушает полезность модели (accuracy классификации падает).


11. Связь с другими вопросами

ВопросТема
621Атаки на RAG-системы (обзор)
623Дифференциальная приватность в обучении LLM
624Защита от утечки данных через эмбеддинги
625Атаки через эмбеддинги (inversion)
626Атаки через градиенты (gradient leakage)
627Атаки через выходные токены (token leakage)

Эти вопросы вместе формируют понимание угроз приватности в ML-системах, особенно в контексте RAG и агентов.


12. Навигация


Навигация