我正在尝试训练一个神经网络来玩蛇追逐目标的游戏。这是我第一次尝试训练神经网络。我在Java中使用Encog框架进行反向传播。要创建训练集,我会记录用户在玩游戏时所做的动作。
神经网络由102个输入神经元,200个隐藏神经元和4个输出神经元组成。前2个输入是目标的x,y坐标,第3个和第4个输入是蛇头的x,y坐标,第5个,第6个输入是蛇的头部之后的x,y坐标如果蛇向左转,则第一个输出取数字1,否则转为零。第二个输出为右,第三个为up,4rth为down。输入在0和1之间归一化。
我曾尝试用30.000训练集训练网络,但是当我测试它时,蛇无法找到目标。它只是随机移动。
有多少训练集足以让网络得到正确的训练? 训练集会有一些错误的数据,例如当我玩游戏时,我有时会错过目标,并试图通过其他途径再次到达目标。
我在训练网络时必须使用什么最小错误? 现在我用0.02。问题在于,当我训练网络时,它仅在35次迭代中从0.75错误变为0.05错误,但它需要超过1000次迭代才能从0.05变为0.02。
答案 0 :(得分:1)
如果蛇向左转,则第一个输出取数字1,否则转为零。第二个输出为右,第三个为向上,4个为向下
如果我假设从左视图中左转右上方是类似导航的视图。我认为问题是因为你的训练数据集输入了蛇的位置,而不是方向。
示例: