Перейти к содержанию

Methodology

10. Методология экспериментов

Протокол воспроизводимости

  1. Фиксированный seed: ExperimentConfig.seed = 42 определяет:
  2. Индексы val-подмножества (однократно генерируются и сохраняются в JSON).
  3. Инициализацию популяции.
  4. PyTorch RNG (через torch.manual_seed, numpy.random.seed, random.seed).
  5. Фиксированные val-индексы: хранятся в data/cifar10/fitness_val_indices.json — один и тот же файл используется во всех экспериментах при одинаковом seed.
  6. Детерминированная геометрия: node_sizes полностью определяет kernel_size, padding — нет случайных геометрических параметров.

Разбиение данных (строгое)

CIFAR-10 train (50 000)
  ├── Val (25 000)     ← оценка fitness; НИКОГДА не для fine-tune
  └── Train (25 000)  ← только для fine-tune (elite refinement)

CIFAR-10 test (10 000) ← только для финального ранжирования в elite refinement

Важно: тестовое подмножество не используется в основном цикле эволюции; только для финального сравнения в elite refinement.

Протокол аблаций

  • Baseline: activation=None, output_readout=mean_minus_median, C=3, без GD.
  • One-at-a-time: меняется ровно один параметр; все остальные = baseline.
  • Число запусков: 1 run per условие (из-за вычислительной стоимости); для статистической значимости рекомендуется 3–5 запусков.
  • Метрика сравнения: balanced_accuracy на val (evolution); при elite refinement — на test.

Критерии оценки

Критерий Метрика Пороговое значение
Базовая работоспособность balanced_accuracy > 0.55 Лучше случайного (0.5)
Хорошая архитектура balanced_accuracy > 0.65 Практически значимо
Отличная архитектура balanced_accuracy > 0.75 Конкурентоспособно
Calibrated sweep_bal_acc > balanced_accuracy Калибровка порога помогает