Поиск по дереву методом Монте-Карло, формула UCB

Discussion in 'Общие вопросы программирования' started by ftyu7er, 15 Jul 2020.

  1. ftyu7er

    ftyu7er New Member

    Joined:
    30 Jun 2019
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Добрый день.
    Для поиска в дереве ходов использую модифицированную формулы UCB:
    [​IMG]
    Здесь wi это количество побед i-го узла. ni — количество посещений i-го узла, а n количество посещений всех соседних узлов. c это константа, используемая для установки нужного баланса между шириной и глубиной поиска. Чем она больше, тем более глубокий будет поиск.

    Эта формула хорошо работает, когда награда в конце находится в диапазоне от 0 до 1. В моём же случае награда может достигать десятки, сотни, а то и тысячи очков, также в случае проигрыша, игрок теряет очки, соответственно подобрать одинаково С константу для всех случаев нереально. Можно было бы масштабировать максимально возможную оценку (сквошение в [0, 1] диапазоне), но к сожалению у меня нет возможности определить максимально возможный выигрыш для конкретного случая. Подскажите пожалуйста как правильно подобрать награду и С константу для моего случая? Буду признателен за любые идеи к моей проблеме.
     
  2. Matrix001

    Matrix001 Active Member

    Joined:
    18 Aug 2016
    Messages:
    262
    Likes Received:
    146
    Reputations:
    3
    Можно использовать функцию активации для нейрона. То есть, например у тебя 15787 очков, делим 1 на 15787 = 0,00006334325. exp(-0,00006334325) = почти что то в раене 1-ы. 1/(1+1) = 0,5. Это что бы нормализовать твои очки, предел которым ты не знаешь в пределе от 0 до 1 включительно.