Анализ логов обучения нейросети: параметры и стадии обучения
В процессе обучения нейросети ключевую информацию о её состоянии дают логируемые параметры. Понимание их смысла позволяет определить текущую стадию обучения, выявить плато, а также оценить эффективность обучения.
Основные параметры логов
1. spread и avg.spread
- spread — разница между лучшим и худшим ходом среди выбранных кандидатов
- avg.spread — скользящее среднее spread
Показывает, насколько дерево различает хорошие и плохие ходы.
- spread ≈ 0 → позиции почти равнозначны (слабый сигнал)
- spread > 1 → есть различие между ходами
- avg.spread стабильно 1–2 → нормальный режим обучения
2. value и target
- value — предсказание нейросети
- target — значение из дерева
Показывает, насколько хорошо сеть понимает позицию.
3. delta
- delta = |value - target|
Главный показатель точности value head.
- delta < 0.1 → отлично
- delta 0.1–0.3 → нормально
- delta > 0.5 → сложная или новая позиция
4. value_loss и avg.value_loss
- value_loss — ошибка на текущем примере
- avg.value_loss — средняя ошибка
Показывает, насколько хорошо обучена value head.
- ~0.1 → начальная стадия
- ~0.05 → хорошее обучение
- < 0.03 → почти полное обучение
5. policy_loss и avg.policy_loss
- policy_loss — ошибка распределения ходов
- avg.policy_loss — средняя ошибка
Главный показатель обучения policy head.
- ~3–5 → начальная стадия
- ~2–3 → обучение
- ~1–2 → хорошее качество
- < 1.5 → сильная политика
6. loss и Avg.Loss
- loss — общий loss (value + policy)
- Avg.Loss — средний
Общий индикатор качества обучения, но менее информативен, чем отдельные компоненты.
7. maxP
- максимальная вероятность хода, предсказанная сетью
- < 0.2 → сеть не уверена
- 0.3–0.7 → нормальный режим
- > 0.8 → высокая уверенность
8. entropy
- энтропия распределения policy
- высокая (3–5) → сеть исследует
- средняя (1–3) → нормальный баланс
- низкая (< 1) → сеть слишком уверена
9. adaptiveK
- количество ходов, используемых для обучения policy
- 1 → forced позиция
- 2–6 → нормальное обучение
10. childs и direct
- childs — размер поддерева
- direct — число непосредственных детей
Показывает глубину анализа дерева.
Стадии обучения по логам
🔴 1. Начальная стадия
- avg.policy_loss: 3–5
- avg.value_loss: ~0.1
- delta: высокий
- entropy: высокая
Сеть почти ничего не знает.
🟡 2. Обучение (learning phase)
- avg.policy_loss: 2–3
- avg.value_loss: 0.05–0.1
- spread растёт
- delta уменьшается
Сеть начинает понимать игру.
🟡 3. Плато
- avg.policy_loss стабилен
- avg.value_loss стабилен
- winrate почти не растёт
Сеть упирается в качество данных.
🟢 4. Пробитие плато
- avg.policy_loss начинает снижаться
- entropy уменьшается
- maxP растёт
Сеть начинает реально усиливаться.
🟢 5. Финальная стадия (refinement)
- avg.policy_loss: ~1–1.5
- avg.value_loss: < 0.05
- delta маленький
- решения уверенные
Сеть уже играет на хорошем уровне.
Как оценить эффективность обучения
Обучение эффективно, если:
- avg.policy_loss постепенно снижается
- avg.value_loss остаётся низким или снижается
- spread стабилен (> 1)
- entropy не схлопывается в 0
- maxP растёт, но не всегда ≈1
- delta в среднем уменьшается
Признаки проблем
- spread → 0 → нет сигнала
- entropy → 0 → сеть переуверена
- avg.policy_loss растёт → деградация
- avg.value_loss растёт → сеть забывает
- delta высокий всегда → плохой target
Вывод
Анализ логов позволяет точно определить стадию обучения:
- Value head показывает, понимает ли сеть позиции
- Policy head показывает, умеет ли выбирать ходы
- Spread и entropy показывают, есть ли обучающий сигнал
👉 Самый важный показатель прогресса на поздних стадиях — снижение avg.policy_loss.
