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

Ablation analysis

7.3 Анализ: что даёт прирост, что не влияет

На основе аблационных экспериментов (Фазы A–D) и анализа кода:

Параметры с положительным влиянием на balanced_accuracy

Параметр / компонент Ожидаемый эффект Механизм
activation ∈ {relu, leaky_relu} +2–5% bal.acc Нелинейность тела → богатые признаки
output_readout = mean_minus_median +1–2% bal.acc Снижение чувствительности к смещению
allow_variable_channels=True (8–32) +2–4% bal.acc Большая ёмкость сети
elite_refinement_enabled=True +1–3% bal.acc (на test) GD улучшает conv-веса элиты
periodic_gd_enabled=True +0.5–2% bal.acc Улучшение весов всей популяции
edge_weights=True +0.5–1.5% bal.acc Дифференцируемые merge-коэффициенты
fitness_val_size=25000 (vs 1000) Надёжнее оценка Снижение шума fitness

Параметры без существенного влияния или с риском деградации

Параметр / компонент Эффект Примечание
activation = tanh нейтр./слабо+ Насыщение при больших весах
activation = gelu нейтр. Не даёт преимущества vs relu в малых CNN
forward_runtime = cuda_graph нет влияния на acc Только скорость; требует фикс. batch
forward_runtime = compile нет влияния на acc Только скорость
elite_percent > 0.3 деградация Уменьшает diversity
elite_percent < 0.1 деградация Элиты мало — нестабильная эволюция
channels = [16, 32, 64] vs [3, 8, 16, 32] нейтр. Больше VRAM, не лучше acc
Очень большой population_size нет улучшения Вычислительно дорого
Очень большой num_generations нейтр. после плато Diminishing returns

Ключевые архитектурные ограничения

Ограничение Влияние Возможное улучшение
Линейное тело (activation=None) Ограничена выразительность Включить activation=relu
Фиксированные C=3 каналы Малая ёмкость allow_variable_channels=True
Union crossover (без учёта fitness) Неоптимальное наследование Weighted crossover по fitness
Отсутствие speciation Вымирание разнообразия Видовая концепция NEAT
Binary head не обучается Бинарный порог не адаптируется Обучаемый head с BCE