Определение входных данных для обучения глубокому укреплению пасьянса Клондайк
Я пытаюсь разработать алгоритм обучения с подкреплением для Пасьянса Клондайк, и столкнулся с некоторым препятствием.
Я действительно не знаю, как лучше всего представить состояние игры в качестве входных данных для нейронной сети, я рассмотрел использование большой матрицы, но, поскольку множество стопок карт различного размера, множество полей матрицы будет неиспользованным.
Основная проблема заключается в том, что должна быть представлена следующая информация:
- Карты лицевой стороной вверх на каждой куче сборки
- Количество карт лицом вниз на каждой куче сборки
- Карты на каждой куче фундамента
- Карта сверху акции
- Количество карточек на складе
Все это может быть представлено в 3D-матрице с размерами 13x20x52, но большинство значений матрицы будут неиспользованными. Заметит ли сверточный слой, что некоторые значения в матрице всегда равны 0, и игнорирует их?
Второй вариант, о котором я мог подумать, - это использовать визуальное представление состояния игры в качестве входных данных для нейронной сети, как в примерах OpenAI Gym Atari.
Вторая проблема заключается в том, что количество действий, которые можно сделать, является переменным. Есть ли этому решение?
Любой совет приветствуется.
Спасибо