Кодирование данных для нейронной сети - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть вопрос о том, как лучше всего кодировать (определенный тип) данные для нейронной сети.

Данные представляют собой два подмножества большего набора данных (все возможные значения, которые может иметь определенный индекс, в основном этикетки). Итак, две команды игроков, которые состоят из нескольких персонажей из всех возможных персонажей в игре. Затем выводом является конечный результат битвы (победа, поражение или т ie).

Например, у нас есть возможные персонажи [танк, целитель, маг, шпион], а команды - это известные подмножества длины из возможных персонажей, например [tank, healer], [tank, spy].

Кроме того, один персонаж может появиться в команде только один раз (например, в примере обе команды могут иметь танка, но один у команды не может быть двух танков)

Я думал о кодировании данных таким образом, чтобы данные представляли собой массив длины, в два раза превышающий надмножество, и где индексы выбранных членов команды игрока установлены в true ( или 1) и ложь (0). Это закончилось бы примерами, похожими на это:

    [tank, healer, mage, spy, tank, healer, mage, spy]
and [tank, healer,     ,    , tank,       ,     , spy]
______________________________________________________
    [   1,      1,    0,   0,    1,      0,    0,   1]

Является ли это разумным способом кодирования данных для нейронной сети? Проблема в том, что если размер команды маленький, а диапазон символов большой, большая часть пространства тратится на нули, так что есть ли лучший способ кодировать данные этого типа?

У меня также есть плохое время, чтобы заставить сеть учиться чему-то, а получать больше данных - медленно, так есть ли способ увеличить эти данные? В этих двух командах могут быть некоторые скрытые и сложные отношения, поэтому я подумал, что держать порядок одинаковым каждый раз было бы хорошо, но, возможно, это не так?

...