33

我正在学习神经网络和反向传播。我想我了解网络的工作原理,包括输入、输出、隐藏层、权重、偏差等。但是,我仍然不完全了解如何设计网络以适应问题。即:假设我想要一个神经网络来学习如何玩草稿,我将如何将问题转化为神经网络设计?干杯:)

4

4 回答 4

25

在设计神经网络时肯定有很多决定要做出,而且没有一个正确的答案。但是,有一些一般性问题通常有助于思考:

  1. 你想生成什么作为输出?使用神经网络玩草稿似乎是一个具有挑战性的游戏,因为有很多潜在的动作,而且可用的动作会随着回合的变化而变化,但大概你希望输出是下一步。

  2. 你的输入是什么?这应该包括您认为对做出您希望神经网络做出的决定有用的任何东西。在草稿示例中,您可能需要为神经网络提供棋盘上所有棋子的位置。

  3. 循环还是前馈?一般来说,除非有一个非常重要的理由向它提供关于它过去所做的事情的信息,否则最好使用前馈,因为它使您能够使用反向传播来训练网络。例如,对于草稿,您可能想要使用前馈网络。

  4. 你需要一个隐藏层吗?这是一个很难知道答案的问题,并且可能需要进行一些实验,除非您对输入占用的高维空间了解很多。草稿很复杂,似乎需要一个隐藏层,但很难确定。

显然,关于神经网络设置可以/必须做出更多决定,但希望这些能让你继续前进。

于 2013-06-13T19:26:50.653 回答
6

好吧,我认为您的问题是任何其他 NN 设计师的问题……您必须始终牢记的一件事是 NN 是启发式模型。因此,他们从经验中学习,与我们类似。您不能将纯知识“插入”到 NN 中(这在其他机器学习算法中是可能的)我解决您的问题或我面临的任何一般问题的方法是从问题:“我将如何教别人这个?”,“我会提出什么样的练习让这个人可以学习?”

您必须了解/定义游戏规则,以及您可以使用哪些变量以及您想要实现的目标。然后,您必须以赢得比赛为目标来训练网络(获取数据),就好像它是一个孩子一样。在足够的数据和权重变化之后,NN 应该能够回答合理的游戏以赢得比赛……随着您获得的数据越多,您可能会获得更准确的答案,从而成为更好的玩家!

尽管这看起来很简单,但训练神经网络或任何其他机器学习算法的许多方面都必须考虑,例如定义模型类型、合适的损失函数、适当的架构微调、训练/测试数据采样等无限...

这不是决定性的,也不是线性的,但这是我的观点;)祝你好运!

于 2014-05-20T09:57:15.710 回答
5

使用神经网络(或任何其他类型的模型)对问题进行建模是一个具有挑战性的问题;这没有灵丹妙药。我建议阅读其他人开发的技术,看看您是否可以将这些技术应用于您的问题。您可以从参考开始,例如,

https://en.wikipedia.org/wiki/Types_of_artificial_neural_networks

并通过谷歌学者搜索更多示例。

于 2013-06-12T20:00:27.827 回答
0

由于您正在为游戏开发 AI 代理,因此您应该阅读适用于此类任务的强化学习(Q 网络)。

于 2019-10-16T17:25:58.600 回答