У меня есть вопрос о том, как лучше всего кодировать (определенный тип) данные для нейронной сети.
Данные представляют собой два подмножества большего набора данных (все возможные значения, которые может иметь определенный индекс, в основном этикетки). Итак, две команды игроков, которые состоят из нескольких персонажей из всех возможных персонажей в игре. Затем выводом является конечный результат битвы (победа, поражение или т 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]
Является ли это разумным способом кодирования данных для нейронной сети? Проблема в том, что если размер команды маленький, а диапазон символов большой, большая часть пространства тратится на нули, так что есть ли лучший способ кодировать данные этого типа?
У меня также есть плохое время, чтобы заставить сеть учиться чему-то, а получать больше данных - медленно, так есть ли способ увеличить эти данные? В этих двух командах могут быть некоторые скрытые и сложные отношения, поэтому я подумал, что держать порядок одинаковым каждый раз было бы хорошо, но, возможно, это не так?