Выравнивание представлений в компьютерном зрении с человеческим восприятием: гайд по исследованию DeepMind | AiManual
AiManual Logo Ai / Manual.
06 Янв 2026 Гайд

Ваша модель видит собаку, а вы — волка: как DeepMind учит ИИ видеть по-человечески

Глубокий разбор метода DeepMind для выравнивания внутренних представлений нейросетей с человеческим восприятием. Повышаем robustness и интерпретируемость компью

Почему ваш ИИ видит мир как инопланетянин

Вы натренировали модель на миллионах изображений. Точность на тестовом наборе - 99%. Вы запускаете ее в продакшн, и она начинает путать волка с хаски при малейшем изменении освещения. Знакомая история? Проблема не в данных и не в архитектуре. Проблема в том, как модель представляет себе мир внутри своих слоев.

Человек видит собаку как совокупность концептов: четыре лапы, хвост, морда, определенные пропорции. Модель видит собаку как статистическую аномалию в многомерном пространстве признаков. Эти признаки могут быть связаны с текстурами фона, артефактами сжатия JPEG или другими абсурдными для нас корреляциями. Это называется рассогласованием представлений (representation misalignment).

Именно это рассогласование - корень всех зол: уязвимость к adversarial-атакам, катастрофическое падение точности на данных из другого распределения (out-of-distribution), неспособность к здравому обобщению. Модель выучивает корреляции, а не причинно-следственные связи.

DeepMind нашел рычаг: ментальные репрезентации как якорь

Исследователи из DeepMind опубликовали в Nature работу, где предложили буквально привязать внутренние активации нейросети к человеческим ментальным репрезентациям. Они не стали гадать, какие признаки должны быть важны. Они измерили, как мозг человека реагирует на тысячи изображений (с помощью fMRI), и использовали эти данные как компас.

💡
Ключевая идея: если внутренние представления модели станут геометрически ближе к паттернам активации человеческого мозга в ответ на одни и те же стимулы, то и поведение модели станет более "человеческим" - устойчивым и обобщаемым.

Это не про то, чтобы скопировать мозг. Это про то, чтобы использовать мозг как источник правильных индуктивных смещений. Мозг эволюционировал миллионы лет, чтобы эффективно воспринимать мир. Глупо этим не пользоваться.

1Собрать эталон: карту мозга

Первый шаг - получить данные fMRI. Участникам показывают большой набор изображений (скажем, 1000 категорий из ImageNet), и сканер фиксирует активность в зрительной коре. Получается матрица: изображения x воксели мозга. Это и есть наши "человеческие" представления.

# Псевдокод структуры данных fMRI
import numpy as np
# Предположим, у нас 1000 изображений и 10 000 вокселей
fMRI_data = np.load('human_fmri_responses.npy')  # форма: (1000, 10000)
image_ids = np.load('image_ids.npy')  # соответствие изображений

Важный нюанс: данные fMRI шумные и имеют низкое пространственное разрешение. DeepMind использовал методы декодирования и усреднения по нескольким испытуемым, чтобы получить стабильные сигналы.

2Заставить модель говорить на том же языке

Теперь берем вашу модель компьютерного зрения (например, ResNet-50) и пропускаем через нее те же самые изображения. Извлекаем активации с одного или нескольких промежуточных слоев. Получаем вторую матрицу: изображения x нейроны модели.

import torch
import torchvision.models as models

model = models.resnet50(pretrained=True)
model.eval()

# Хук для извлечения активаций со слоя layer4
activations = []
def hook_fn(module, input, output):
    activations.append(output.detach().cpu())

handle = model.layer4.register_forward_hook(hook_fn)

# Пропускаем батч изображений
with torch.no_grad():
    _ = model(images_batch)

model_activations = torch.cat(activations, dim=0)  # форма: (N, нейроны)

Теперь у нас два пространства представлений: мозговое и модельное. Они разной размерности и масштаба. Нужно их сопоставить.

3Сопоставление и штраф за несоответствие

Здесь главная магия. Мы обучаем небольшой преобразователь (probe) - обычно линейную модель или простую нейросеть, - которая учится предсказывать fMRI-сигналы по активациям модели. Качество этого предсказания (например, коэффициент детерминации R²) и есть мера выравнивания.

# Простой линейный probe для сопоставления
from sklearn.linear_model import Ridge
from sklearn.model_selection import cross_val_score

# model_activations: (n_samples, n_model_features)
# fmri_data: (n_samples, n_voxels)

probe = Ridge(alpha=1.0)
scores = cross_val_score(probe, model_activations, fmri_data,
                         cv=5, scoring='r2')
mean_alignment_score = scores.mean()
print(f"Средний R² выравнивания: {mean_alignment_score:.3f}")

Но просто измерить - мало. Нужно заставить модель улучшать этот показатель. Поэтому во время дообучения модели к стандартной функции потерь (например, кросс-энтропии) добавляют регуляризационный член - штраф за рассогласование с мозгом.

# Упрощенная функция потерь с выравниванием
def loss_with_alignment(logits, targets, model_activations, fmri_target):
    # Стандартная кросс-энтропия для классификации
    ce_loss = F.cross_entropy(logits, targets)
    
    # Вычисляем потерю на выравнивание (MSE между предсказанными и реальными fMRI)
    predicted_fmri = probe(model_activations)  # probe обучен заранее
    alignment_loss = F.mse_loss(predicted_fmri, fmri_target)
    
    # Комбинируем с коэффициентом lambda
    total_loss = ce_loss + lambda_param * alignment_loss
    return total_loss

Не делайте ошибку, пытаясь напрямую минимизировать MSE между активациями модели и fMRI. Пространства слишком разные. Нужен probe-слой как переводчик. Его можно обучать совместно с моделью или зафиксировать после начального этапа.

Где вас ждут грабли: практические нюансы

Звучит элегантно, но в реализации полно подводных камней. Вот что сломало мне пальцы, пока я экспериментировал с этим подходом.

  • Какие слои выравнивать? Более ранние слои (ближе к входу) лучше выравниваются с первичной зрительной корой (V1), поздние - с высшими областями (IT cortex). DeepMind советует выравнивать несколько слоев одновременно, но с разными весами. Начинайте с поздних слоев - эффект на robustness заметнее.
  • Переобучение probe. Ваш probe-преобразователь может стать слишком сложным и начать «запоминать» fMRI-сигналы, а не выявлять реальную связь. Используйте строгую регуляризацию (L2, dropout) и всегда проверяйте на отдельном наборе изображений, которых не было при обучении probe.
  • Данные fMRI - дорого и мало. У вас вряд ли есть свой fMRI-сканер. Используйте публичные датасеты, вроде Natural Scenes Dataset. Но их объем (десятки тысяч вокселей на несколько сотен изображений) - это капля в море для глубокого обучения. Придется использовать augmentations и осторожно экстраполировать.
  • Лямбда - не магическая константа. Сила штрафа за рассогласование (λ) требует тонкой настройки. Слишком большая - модель забросит основную задачу и начнет подстраиваться под шум в fMRI. Слишком маленькая - эффекта не будет. Начните с λ=0.1 и мониторьте оба лосса.
ПроблемаСимптомЛечение
Переобучение выравниванияТочность на валидации падает, alignment loss стремится к нулюУвеличить регуляризацию probe, уменьшить λ, добавить dropout в probe
Нестабильность обученияКолебания общего лосса, взрывающиеся градиентыОтдельно отскалировать градиенты от alignment loss (clip или scaling)
Отсутствие улучшения robustnessAccuracy на adversarial примерах не растетПроверить качество fMRI данных, выравнивать более поздние слои

А если нет доступа к fMRI? Импровизируйте

Не у всех есть миллионы долларов и этическое одобрение на эксперименты с мозгом. Но идею выравнивания можно адаптировать. Вместо fMRI используйте психологические данные о человеческом восприятии.

  • Сходство между изображениями по мнению людей. Попросите людей оценить, насколько похожи пары изображений. Постройте матрицу сходства. Затем штрафуйте модель, если ее внутренние представления (расстояния между эмбеддингами) не коррелируют с этой матрицей. Это дешевле и проще, чем fMRI.
  • Время реакции или уверенность. Люди быстрее и увереннее распознают некоторые категории. Можно использовать эти мета-данные как цель для probe-модели.
  • Семантические эмбеддинги от языковых моделей. Это хак, но он работает. Текстовая аннотация к изображению (например, из COCO) пропускается через языковую модель типа BERT. Полученные эмбеддинги используются как суррогат "концептуальных" представлений человека. Выравнивайте активации CV-модели с ними. Это похоже на то, о чем писали в статье "Тёмная цепочка мыслей", только для зрения.

Главное - понять философию: мы хотим, чтобы модель организовывала информацию внутри себя способом, совместимым с человеческим познанием. Это не про слепое копирование, а про навязывание полезных структурных ограничений.

Что это даст на практике? Не только robustness

После выравнивания ваша модель не просто станет устойчивее к помехам. Вы получите бонусы, о которых, возможно, не думали:

  1. Лучшая передача знаний (transfer learning). Представления, выровненные с человеком, более семантичны и абстрактны. Если вы дообучите такую модель на новой, маленькой задаче, она сделает это эффективнее, потому что ее признаки ближе к настоящим понятиям.
  2. Интерпретируемость. Внутренние активации модели начинают соответствовать известным нейронным популяциям в мозге. Вы можете буквально сказать: "Этот нейронный кластер в модели реагирует на лица, как веретенообразная извилина у человека". Это золотая жила для отладки. Похожий принцип используется в регуляторе креатива LLaMA, где одна строка кода меняет тон.
  3. Эффективное сжатие. Выровненные представления менее избыточны и более компактны. Вы можете сильнее сжать модель или ее эмбеддинги без потери качества.
  4. Меньше галлюцинаций. Модель реже выдает дикие предсказания на странных входных данных, потому что ее внутреннее пространство более структурировано и ограничено человеческим восприятием. Это та же проблема, что и в YOLO с галлюцинациями рамок, только на уровне признаков.
💡
Прогноз на ближайшие 2 года: выравнивание представлений станет стандартным шагом при предобучении любых больших моделей, особенно в мультимодальных системах. Это будет такой же must-have, как аугментация данных или dropout. Компании, которые проигнорируют этот тренд, будут выпускать хрупких и неадекватных ИИ, похожих на того, что попал в скандал с deepfake.

Последний совет: не делайте из этого религию

Человеческое восприятие - не идеал. Оно подвержено иллюзиям, когнитивным искажениям и ограничено биологией. Слепое подражание мозгу может ограничить модели в том, в чем они могли бы превзойти человека (например, в видении в инфракрасном диапазоне или обработке миллиона кадров в секунду).

Используйте выравнивание как инструмент, а не как догму. Цель - не создать цифровую копию мозга, а украсть у него лучшие идеи об организации информации. Как в том старом анекдоте: "Хороший художник копирует, великий художник ворует". Воруйте у эволюции. Но воруйте с умом.