Methodology
10. Методология экспериментов¶
Протокол воспроизводимости¶
- Фиксированный seed:
ExperimentConfig.seed = 42определяет: - Индексы val-подмножества (однократно генерируются и сохраняются в JSON).
- Инициализацию популяции.
- PyTorch RNG (через
torch.manual_seed,numpy.random.seed,random.seed). - Фиксированные val-индексы: хранятся в
data/cifar10/fitness_val_indices.json— один и тот же файл используется во всех экспериментах при одинаковомseed. - Детерминированная геометрия:
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 |
Калибровка порога помогает |