为了了解 DP 和 RL,我选择开始一个业余项目,我将训练 AI 玩“简单”的纸牌游戏。我将使用带有重放内存的 DQN 来执行此操作。
问题是,我无法理解如何表示神经网络的输入。
关于游戏
这是一个相当简单的2人游戏。一副牌有 40 张独特的卡片(4 种卡片,每种卡片 10 张编号的卡片)。
每个玩家得到 4 张牌,每回合玩家必须将一张牌放在桌子上。
如果玩家放了一张牌,并且桌上已经有一张相同数字的牌,则该玩家赢得两张牌。
例如,如果玩家打出卡片 2,而桌上有卡片 2、3、4、5,那么玩家将赢得所有这些卡片(序列)。
牌不会回到手牌或牌堆,它们只是像分数一样保存。
当玩家手中有 0 张牌时,每张牌再发 4 张牌,直到牌组剩下 0 张牌,然后我们根据吃/赢的牌数来决定谁赢。
问题
作为输入,我将使用以下内容:
- AI手中的现有卡片(40个一键编码功能?)
- 桌面上的当前卡片(40 个单热编码功能?)
- 扑克牌的历史(40 个单热编码功能?)
这将在每个州提供 120 列/功能。
我想知道这对 NN 来说是否太多了,或者我的输入表示对 NN 是否有害?
特征应该表示为 (120,) 向量还是 3x40 矩阵?
我还想知道将桌子上的当前卡片表示为仅 10 个单热编码特征是否是个好主意,因为卡片的类型无关紧要,并且相同的数字不能在表格中存在 2 次?
先感谢您。