Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 训练前馈神经网络_Algorithm_Neural Network - Fatal编程技术网

Algorithm 训练前馈神经网络

Algorithm 训练前馈神经网络,algorithm,neural-network,Algorithm,Neural Network,我有一个前馈神经网络,他的目标是学习如何玩游戏(在例子中,连接4)。我想通过和自己玩游戏来训练我的神经网络 我的问题是,我不知道如何训练我的神经网络。如果我有另一个好的算法来确定给定棋盘的最佳移动,在我看来,这会更容易,但我不想用这种方式 所以,我不知道一个移动是否是一个好的移动,我只知道哪个玩家赢了(神经网络同时扮演两个玩家,但我知道是第一个还是第二个玩家赢了),以及游戏中的移动 目前,我在Go中编写了一个程序,初始化一个神经网络,可以检查connect 4的一个板是否成功,根据该板计算神经网

我有一个前馈神经网络,他的目标是学习如何玩游戏(在例子中,连接4)。我想通过和自己玩游戏来训练我的神经网络

我的问题是,我不知道如何训练我的神经网络。如果我有另一个好的算法来确定给定棋盘的最佳移动,在我看来,这会更容易,但我不想用这种方式

所以,我不知道一个移动是否是一个好的移动,我只知道哪个玩家赢了(神经网络同时扮演两个玩家,但我知道是第一个还是第二个玩家赢了),以及游戏中的移动

目前,我在Go中编写了一个程序,初始化一个神经网络,可以检查connect 4的一个板是否成功,根据该板计算神经网络的输出,您可以与神经网络对抗,也可以让它自己对抗。对我来说,我只需要一个函数,在游戏结束时训练我的神经网络? 这就是我所做的:

要使用神经网络(或实际上任何有监督的学习方法)进行自主游戏,您需要确定算法可以学习的数值或分类值

一个可能的解决方案是将游戏状态映射到动作。另一种方法是将比赛状态映射到得分。但在某些游戏中,这些可能无法学习(Connect 4没有分数),或者数据可能无法随时获取。在这种情况下,不能(或至少不应该)使用监督学习算法

机器学习的另一个框架叫做强化学习,它非常优雅地处理了这个问题。你可以训练一个算法,在整个游戏中选择动作(或动作),而不是提供带有标记数据的神经网络,如果算法(代理)赢了,只提供1;如果代理输了,只提供-1

在这个框架中,最流行的算法(虽然可能不是最好的)是Q-学习。事实上,将Q-学习与深度神经网络结合起来玩极具挑战性的游戏是很常见的。这与谷歌的Deepmind(包括大卫·西尔弗)在围棋比赛中击败李·塞多(Lee Sedol)的设置大致相同

我建议对Richard Sutton的研究来了解更多关于这个主题的知识,但是为了更快的学习体验,Wikipedia的Q-learning文章可能就足够了。

使用神经网络(或实际上任何有监督的学习方法)进行自主游戏,您需要确定算法可以学习的数值或分类值

一个可能的解决方案是将游戏状态映射到动作。另一种方法是将比赛状态映射到得分。但在某些游戏中,这些可能无法学习(Connect 4没有分数),或者数据可能无法随时获取。在这种情况下,不能(或至少不应该)使用监督学习算法

机器学习的另一个框架叫做强化学习,它非常优雅地处理了这个问题。你可以训练一个算法,在整个游戏中选择动作(或动作),而不是提供带有标记数据的神经网络,如果算法(代理)赢了,只提供1;如果代理输了,只提供-1

在这个框架中,最流行的算法(虽然可能不是最好的)是Q-学习。事实上,将Q-学习与深度神经网络结合起来玩极具挑战性的游戏是很常见的。这与谷歌的Deepmind(包括大卫·西尔弗)在围棋比赛中击败李·塞多(Lee Sedol)的设置大致相同


我建议对Richard Sutton的文章进行研究,以了解更多关于这一主题的知识,但是为了更快地获得学习体验,维基百科的Q-learning文章可能就足够了。

是的,我不知道论坛的这一部分。所以,我删除了这篇文章,并在Cross Validated?Hi@julien2313中复制/通过它。如果你能提供你所做的一切,那就太好了。不要去统计SE,因为他们会要求你提供steps@julien2313别忘了为你的电脑添加标签program@julien2313对于你们将来的问题@AndyK,我想julien想问的更像是理论,而不是编程,因为没有提到语言或库。朱利安,如果你已经有了一些编码,请编辑你的帖子,并添加一些更具信息性的标记,我不知道论坛的这一部分。所以,我删除了这篇文章,并在Cross Validated?Hi@julien2313中复制/通过它。如果你能提供你所做的一切,那就太好了。不要去统计SE,因为他们会要求你提供steps@julien2313别忘了为你的电脑添加标签program@julien2313对于你们将来的问题@AndyK,我想julien想问的更像是理论,而不是编程,因为没有提到语言或库。朱利安,如果你已经有了一些编码,请编辑你的帖子,并添加一些更具信息性的标记谢谢你的回复!我读了一点关于强化学习的书,我认为这是一个学生想要做的。我已经想用深度神经网络了。所以,现在我知道了学习类型的名称,这将更容易找到方法来训练我的神经网络!非常感谢。谢谢你的回复!我读了一点关于强化学习的书,我认为这是一个学生想要做的。我已经想用深度神经网络了。所以,现在我知道了学习类型的名称,这将更容易找到方法来训练我的神经网络!非常感谢。