【发布时间】:2013-06-09 01:02:38
【问题描述】:
我正在学习神经网络和反向传播。我想我了解网络的工作原理,包括输入、输出、隐藏层、权重、偏差等。但是,我仍然不完全了解如何设计网络以适应问题。即:假设我想要一个神经网络来学习如何玩草稿,我如何将问题转化为神经网络设计?干杯:)
【问题讨论】:
标签: neural-network
我正在学习神经网络和反向传播。我想我了解网络的工作原理,包括输入、输出、隐藏层、权重、偏差等。但是,我仍然不完全了解如何设计网络以适应问题。即:假设我想要一个神经网络来学习如何玩草稿,我如何将问题转化为神经网络设计?干杯:)
【问题讨论】:
标签: neural-network
在设计神经网络时肯定需要做出很多决定,而且没有一个正确的答案。但是,有一些一般性问题通常有助于思考:
您要生成什么作为输出?使用神经网络玩草稿似乎是一个具有挑战性的游戏,因为有很多潜在的动作,而且可用的动作会随着回合的变化而变化,但大概你希望输出是下一步。
李>您的输入是什么?这应该包括您认为对做出您希望神经网络做出的决定有用的任何东西。在草稿示例中,您可能需要为神经网络提供棋盘上所有棋子的位置。
循环还是前馈?一般来说,除非有一个非常重要的理由向它提供关于它过去所做的事情的信息,否则最好使用前馈,因为它使您能够使用反向传播来训练网络。例如,对于草稿,您可能希望使用前馈网络。
您需要隐藏层吗?这是一个很难知道答案的问题,并且可能需要进行一些实验,除非您对输入占用的高维空间了解很多。草稿很复杂,似乎需要一个隐藏层,但很难确定。
显然,关于神经网络的设置,可以/必须做出更多决定,但希望这些能让您继续前进。
【讨论】:
嗯,我认为您的问题是任何其他 NN 设计者的问题...您必须始终牢记的一件事是 NN 是启发式模型。因此,他们从经验中学习,与我们类似。你不能将纯知识“插入”到 NN 中(这在其他机器学习算法中是可能的) 我对您的问题或我面临的任何一般问题的处理方法是从以下问题开始: “我将如何教别人这个?”,“我会提出什么样的练习来让这个人学会它?”
您必须了解/定义游戏规则,以及您可以使用哪些变量以及您想要实现什么。然后,您必须以赢得比赛为目标来训练网络(获取数据),就好像它是一个孩子一样。在足够的数据和权重变化之后,NN 应该能够回答合理的游戏以赢得比赛......随着您获得的数据越多,您可能会获得更准确的答案,因此,您会成为更好的玩家!
尽管这看起来很简单,但在训练神经网络或任何其他机器学习算法时,您必须考虑许多方面,例如定义模型的类型、合适的损失函数、合适的架构——调优、训练/测试数据采样等无穷无尽……
这不是决定性的,也不是线性的,而是我的观点;) 祝你好运!
【讨论】:
使用神经网络(或任何其他类型的模型)对问题进行建模是一个具有挑战性的问题;这没有灵丹妙药。我建议您阅读其他人开发的技术,看看您是否可以将这些技术应用于您的问题。你可以从一个参考开始,
https://en.wikipedia.org/wiki/Types_of_artificial_neural_networks
并通过谷歌学者搜索更多示例。
【讨论】:
由于您正在为游戏开发 AI 代理,因此您应该阅读适用于此类任务的强化学习(Q 网络)。
【讨论】: