Подводим Итоги
Итак, 9 апреля 2026 года началась тренировка новой сети гомоку. Одна сессия тренировок наращивает легаси дерево вариантов примерно до 40 миллионов ходов, проводя примерно 10 тысяч тренировок нейронной сети. Каждая тренировка передаёт в нейронку определённую позицию, а также оценку позиции (для value head) и лучшие ходы (для policy head).
После 123 тысячи тренировок нейронка стала показывать феноменальный результат - обыгрывать против supervising minimax legacy tree!
![]() |
![]() |
🚀 Почему это вообще могло произойти?
На первый взгляд может показаться, что нейронная сеть внезапно "прорвалась" и начала играть сильнее классического minimax-дерева. Однако есть несколько факторов, которые могли временно дать такой эффект:
- 🧠 Случайное попадание в удачную область параметров — нейронка могла найти локальный минимум, хорошо согласующийся с текущим состоянием дерева;
- 🌳 Неполнота legacy-дерева — дерево не хранит абсолютно все позиции, а лишь часть, поэтому в некоторых ветках оно может недооценивать позиции;
⚠️ Однако такие всплески силы часто оказываются нестабильными и исчезают при дальнейшем обучении.
И правда, этот результат не закрепился в дальнейшем. Во время тренировки нейронки, в обучающий код вносились косметические изменения. Не понятно, могло ли это повлиять на неё в худшую сторону, однако эта работа велась предельно аккуратно, и я даже пару раз откатывал изменения. Состояние нейронки, логов и файлов дерева на момент совершения 123 тыс. тренировок, я сохранил тут
🔍 Почему результат мог не закрепиться?
Даже при аккуратных изменениях кода обучение нейронной сети остаётся крайне чувствительным процессом. Возможные причины деградации:
- ⚖️ Смещение баланса между policy и value — если одна из голов начинает доминировать, сеть перестаёт правильно выбирать ходы;
- 📉 Переобучение на текущем состоянии дерева — сеть начинает копировать слабые места legacy-алгоритма;
- 🔁 Изменение распределения обучающих данных — даже небольшие изменения в генерации кандидатов могут сильно повлиять на градиенты;
- 🎲 Снижение энтропии — сеть становится слишком уверенной и перестаёт исследовать альтернативные ходы;
- 🧩 Локальный минимум — классическая проблема, когда сеть "застревает" в не оптимальном состоянии.
🤔 Как нейронка может выигрывать у дерева, если дерево запоминает поражения?
Интересный и неочевидный момент: legacy-дерево действительно запоминает проигрышные ветки и старается избегать их в будущем. На первый взгляд это должно делать повторные победы нейронки невозможными.
Однако на практике это работает иначе:
- 🌳 Дерево хранит не всё пространство — оно ограничено по размеру (десятки миллионов узлов), тогда как возможных позиций на поле 15×15 — астрономически больше;
- 🔀 Нейронка может находить новые пути — даже если один выигрышный сценарий заблокирован, она способна прийти к победе другим путём;
- 🧠 Обобщающая способность сети — нейронка не запоминает конкретные позиции, а учится распознавать шаблоны (например, угрозы и комбинации);
- ⚠️ Ошибки оценки дерева — minimax-дерево не идеально и может неверно оценивать сложные позиции;
- 📉 Ограниченная глубина поиска — даже при большом количестве узлов дерево не гарантирует идеальную игру.
📊 Должен ли winrate быть меньше 50%?
Теоретически — да, если дерево было бы идеальным и запоминало бы все проигрыши, нейронка не смогла бы выигрывать повторно.
Но в реальности:
- дерево не покрывает всё пространство состояний;
- каждая партия идёт по немного разному сценарию;
- нейронка постоянно меняется в процессе обучения.
👉 Поэтому winrate может быть ниже 50%, но не обязан стремиться к нулю. На практике наблюдается баланс в районе 30–50%, в зависимости от силы сети и состояния дерева.
Текущее состояние - это 211000 тренировочных итераций [TRAIN TREE] и winrate колеблющийся примерно около 35%
Для большей уверенности, требуется дополнительное тестирование процесса обучения. Для чистоты результатов, можно взять любое состояние кода из ветки neuro_alpha_zero (но не старее, чем за 8 апреля 2026) и провести хотя бы несколько сотен тысяч [TREE TRAIN] итераций.
📉 Текущая интерпретация результатов
На данный момент обучение, вероятно, находится в состоянии плато:
- 📊 winrate стабилизировался около 30–35%;
- 🧠 нейронка не демонстрирует устойчивого роста силы;
- 🔁 улучшения носят кратковременный характер.
💡 Таким образом, текущий этап можно считать завершением первой фазы — обучения "по дереву". Нейронка уже использует self-play для генерации позиций и оценок, а дерево пассивно накапливает результаты и проводит rating propagation. По мнению ChatGPT, хотя оно звучит сомнительно и расплывчато, но для дальнейшего прогресса может потребоваться:
- 🎯 улучшение policy target (например, через более точное распределение вероятностей);
- 🔍 увеличение разнообразия позиций для self-play;
- ♟️ возможная интеграция дополнительных стратегий оценки позиций или более глубокого дерева.
🚀 Таким образом, текущий этап можно считать завершением первой фазы — обучения "по дереву", и переходом к более сложным стратегиям обучения.


