Схема обучения нейросети (Gomoku) с TRAIN и TREE TRAIN*
* = Речь идёт об этих двух функциях для обучения нейросети, одна обучает единственному (лучшему) ходу для позиции, а другая сразу целому набору ходов.
Описание функций и шагов обучения:
🔹 Self-play: партия нейронки против легаси или самой себя, собираем статистику ходов.
🔹 Forward Pass: сеть выдаёт вероятность каждого хода (policy logits) и оценку позиции (value).
🔹 Candidate Selection (TREE TRAIN): выбираются ходы по totalDirectChilds и фильтрам, вычисляется spread, dominance и определяется strongWinner. AdaptiveK выбирается на основе числа прямых дочерних узлов.
🔹 Policy Loss: сравнивает предсказанные вероятности с целевыми (из дерева/рейтинга ходов) и добавляет энтропийное сглаживание.
🔹 Value Loss: MSE между предсказанной оценкой позиции и целевой (nodeRating или результат партии).
🔹 Total Loss: комбинированный loss с коэффициентом beta и L2-регуляризацией весов. Корректируется для X/O ходов.
🔹 Backprop: градиентный спуск по Total Loss обновляет веса нейросети.
🔹 🔁 Процесс повторяется для каждой позиции партии и каждой self-play игры.
🔹 Важно: Warning "not existed node" появляется из-за exploration: нейронка выбирает редкий ход, которого нет в дереве легаси. Это нормально и не критично для обучения.
🔹 strongWinner обычно коррелирует с totalDirectChilds, показывая явного лидера среди кандидатов.
