据我所知,有两种方法可以教神经网络。
例如,如果你想做一个国际象棋AI,第二种方法是更合适的,但你如何评价人工智能的行动?很难判断一名球员在比赛初期是否表现出色,结果在很大程度上取决于对手的行动。
我想的也许是把人工智能放在游戏的某些情况下,例如不平衡的交易,并重复它,直到AI明白它的象棋数字是更有价值的。
有没有其他的解决方案,或者国际象棋甚至没有建立在神经网络上?
发布于 2016-05-03 04:41:47
第一种方法称为监督学习,第二种称为强化学习。在国际象棋中,有两种方法可以使用具有强化学习功能的神经网络:策略网络或价值网络:
使用强化学习训练神经网络是直截了当的(如果速度慢的话)--如果一个动作来自一个胜利的游戏,它是好的,如果它来自一个失败的游戏,它是坏的。
如果您感兴趣,请阅读AlphaGo。它最近在一场比国际象棋更难的比赛中击败了最好的人类玩家。它使用两种神经网络,策略和价值,以及MCTS。
发布于 2016-05-02 18:02:37
神经网络擅长解决一类特殊的问题。它们基本上是将特定源模式映射到特定目标模式的机制。当给定"on“或"off”节点的输入集时,它们返回一组节点的输出集,这些节点要么是"on“要么是"off”。(通常使用某种指定为"on“的阈值。
这很好地映射到像文本识别这样的任务。在输入模式(位图)中给出神经网络,它给出输出(字母的某种二进制表示)。
为了训练一个网络,您通常会给它一组源模式和预期目标。培训方法通常从目标开始,然后向后推,修改链接,使网络更有可能生成预期的目标。
经过培训,您可以发送网络输入,这不是为其训练,它将产生一个输出。如果一切顺利,这应该是有意义的。例如,如果您已经训练它输出'A‘时,给定的位图与字母呈现在许多字体,它应该输出'A’时,显示的字体,但它没有受过训练。
所以没有两种训练网络的方法。使用神经网络的全部意义在于它可以对你没有训练过的东西做出反应。如果事先知道所有输入到输出的映射,那么神经网络不是最好的选择。
在下棋方面,游戏并不是一个适合神经网络的任务。给定一个源板,您实际上没有一个可以训练它的结束模式。对于一个给定的棋子位置,你真的不能给它“最佳”的目标,什么是“最好的”几乎总是一个争论的问题。您可能可以使用神经网络来评分板(即将板子位置映射为数字得分),但您仍然可以使用传统的极小最大来玩实际的游戏。
https://softwareengineering.stackexchange.com/questions/317361
复制相似问题