我想问在棋盘游戏中使用标准的具有TD学习方法的反向传播神经网络是否有意义?
我的方法看起来像:
> < li >玩一局。Net同时扮演着贪婪策略和随机移动的角色。 < li>
对于每个存储的游戏位置(从终端1开始并移动到开始位置),计算估计位置值和期望位置值,例如
boards_values[i]['desired_value'] = boards_values[i]['estimated_value'] + 0.4 * ( boards_values[i+1]['estimated_value'] - boards_values[i]['estimated_value'] )
利用标准反向传播算法,从整个游戏结束训练中为网络创建训练模式,每个模式具有1个时期的小学习率。
NN.train([pattern], iterations=1, N=0.001, M=0.000001)
在我的井字游戏中,我尝试了以上的一些组合(不是从一个例子中学习,而是从30-40个模式中学习,降低/提高学习速度等等),但从未训练过理想的玩家(它永远不会输给随机)。当NN代理与随机玩家比赛时,最好的例子之一是:
(打第一:赢、平、输),(打第二:赢、平、输)、(和:赢、和、输)
(191、34、275)、(159、102、239)、(350、136、514)-新鲜网
50k场比赛后(427、21、52)、(312、16、172)、(739、37、224)
输入为18个神经元,格式如下:< br >对于每个板单元,x设置为(1,0),空单元设置为(0,0),o设置为(0,1),输出为-1,1范围内的一个单位赢/输概率估计值。
Tic tac toe只是在测试沙盒,当我成功完成后,我会转向更复杂的纸牌游戏(《失落的城市》)。
是的,这是相对标准的。这是Tesauro在他的程序TDGammon 2.1中采用的方法,该方法训练了一个人工神经网络,使其比最好的人类玩家更好地玩西洋双陆棋(在引导了150万场比赛之后)。
但是,有许多注意事项:
> 众所周知,人工神经网络很难正确使用。通过在一些简单的监督学习问题上进行测试,您是否确保了您的实现如预期的那样执行?
TDGarmon使用神经网络为每个游戏状态提供启发式实用程序,并将其与2层alpha/beta修剪算法相结合。借助现代计算机,可以使用更深层次的前瞻性(例如,我最近编写了一个alpha/beta搜索算法,可以轻松管理分支因子为7的游戏的10层搜索,在解释(非编译)代码上,并且在考虑启发式之前)。
TD学习并不是唯一的强化学习算法。我过去成功地应用了SARSA和Q-学习,它们通过优先探索看起来有希望的策略而忽略看起来不好的策略来加快搜索速度。你需要将它们与探索策略结合起来,以确保它们有时会探索看起来不好的策略,以避免陷入局部极小值。一个简单的策略,如ε=0.1的epsilon-贪婪,通常效果很好。
资格跟踪是加速强化学习算法学习的一种有效方法。使用合格跟踪的算法包括TD(λ)、SARSA(λ)和Q(λ。不过,你需要小心——现在有另一个参数需要匹配,这意味着训练你的模型时更需要小心。使用测试集!
我正在尝试实现一个简单的神经网络。我知道已经有很多可用的库,这不是重点。 我的网络只有3层:一个输入层一个隐藏层一个输出层 输出层有8个神经元,每个神经元代表不同的类。 我知道如何实现feedfoward算法,但我真的很难实现反向传播算法。 这是我到目前为止得出的结论: 我尝试使用Iris数据集进行测试:https://en.wikipedia.org/wiki/Iris_flower_data_
考虑具有以下架构的卷积神经网络: Standford的深度学习教程使用以下等式来实现这一点: 然而,在使用这个等式时,我面临以下问题: 我做错了什么?有人能解释一下如何通过卷积层传播错误吗? 简单的MATLAB示例将受到高度赞赏。
我很难构建好的神经网络教学算法,因为有一些人工操作。第一件事:我的目标是教nn-xor函数,我使用sigmoid作为激活函数和简单的梯度下降。前馈很容易,但backprop在某种程度上令人困惑——大多数算法描述中常见的步骤有:1。计算输出层上的错误。2、将此错误传播到有关权重3的隐藏层。更新突触上的权重 所以我的问题:1。偏差也应该更新吗?如果是,如何更新?目前我随机选择偏差[0.5;1]?2.在
我正在尝试用RELU实现神经网络。 输入层- 以上是我的神经网络结构。我对这个relu的反向传播感到困惑。对于RELU的导数,如果x 有人能解释一下我的神经网络架构的反向传播“一步一步”吗?
我有一个简单的前馈神经网络,有2个输入神经元(和1个偏置神经元),4个隐藏神经元(和1个偏置神经元),和一个输出神经元。前馈机制似乎运行良好,但我很难完全理解如何实现反向传播算法。 有3个班: 神经::网络;构建网络,前馈输入值(暂时没有反向传播) 神经::神经元;具有神经元的特性(指数、输出、权重等) 神经::连接;一个类似结构的类,它随机化权重并保存输出、增量权重等。 为了让事情更清楚,我上了
神经网络和深度学习是一本免费的在线书。本书会教会你: 神经网络,一种美妙的受生物学启发的编程范式,可以让计算机从观测数据中进行学习 深度学习,一个强有力的用于神经网络学习的众多技术的集合 神经网络和深度学习目前给出了在图像识别、语音识别和自然语言处理领域中很多问题的最好解决方案。本书将会教你在神经网络和深度学习背后的众多核心概念。 想了解本书选择的观点的更多细节,请看这里。或者直接跳到第一章 开始