我知道前馈神经网络的基本知识,以及如何使用反向传播算法对其进行训练,但我正在寻找一种算法,以便使用强化学习在线训练神经网络。
例如,我想用人工神经网络解决手推车杆摆动问题。在这种情况下,我不知道应该怎么控制钟摆,我只知道我离理想位置有多近。我需要让安在奖惩的基础上学习。因此,监督学习不是一种选择。
另一种情况类似于蛇游戏,反馈被延迟,并且仅限于进球和反进球,而不是奖励。
我可以为第一种情况想出一些算法,比如爬山算法或遗传算法,但我猜它们都会很慢。它们可能也适用于第二种情况,但速度非常慢,不利于在线学习。
我的问题很简单:有没有一个简单的算法来训练强化学习的人工神经网络?我主要对实时奖励情况感兴趣,但如果有针对基于目标的情况的算法,那就更好了。
如果导致奖励r
的输出被反向传播到网络r
次,您将与奖励成比例地加强网络。这不直接适用于负奖励,但我可以想到两种会产生不同效果的解决方案:
1)如果您有一组rmin-rmax范围内的奖励,请将它们重新调整为0-(rmax-rmin)
,以便它们都是非负的。奖励越大,创建的强化越强。
2) 对于负奖励,只要与导致负奖励的输出不同,就将随机输出反向传播次数。这不仅会加强理想的产出,而且会扩散或避免不良产出。
有一些关于该主题的研究论文:
还有一些代码:
这些只是该主题的一些热门谷歌搜索结果。前几篇论文看起来不错,尽管我没有亲自阅读过。我想如果你在谷歌学术上快速搜索,你会找到更多关于强化学习神经网络的信息。
我计划编写一个国际象棋引擎,它使用深度卷积神经网络来评估国际象棋的位置。我将使用位板来表示棋盘状态,这意味着输入层应该有12*64个神经元用于位置,1个用于玩家移动(0表示黑色,1表示白色)和4个神经元用于铸币权(wks、bks、wqs、bqs)。将有两个隐藏层,每个层有515个神经元,一个输出神经元的值介于-1表示黑色获胜,1表示白色获胜,0表示相等的位置。所有神经元都将使用tanh()激活函数
我有一个关于卷积神经网络()训练的问题。 我成功地使用tensorflow训练了一个网络,它获取一个输入图像(1600像素),然后输出三个匹配的类中的一个。 使用不同的培训课程测试网络,效果良好。然而当我给它一个不同的第四个图像(不包含任何经过训练的3个图像)时,它总是返回一个随机匹配到其中一个类。 我的问题是,如何训练网络来分类图像不属于这三个训练图像中的任何一个?类似的例子是,如果我针对mni
在本章中,我们将了解可以使用TensorFlow框架实现的神经网络训练的各个方面。 以下几个建议,可以评估 - 1. 反向传播 反向传播是计算偏导数的简单方法,其中包括最适合神经网络的基本形式的合成。 2. 随机梯度下降 在随机梯度下降中,批处理是示例的总数,用户用于在单次迭代中计算梯度。到目前为止,假设批处理已经是整个数据集。最好的例子是谷歌规模; 数据集通常包含数十亿甚至数千亿个示例。 3.
本文向大家介绍tensorflow学习笔记之简单的神经网络训练和测试,包括了tensorflow学习笔记之简单的神经网络训练和测试的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了用简单的神经网络来训练和测试的具体代码,供大家参考,具体内容如下 刚开始学习tf时,我们从简单的地方开始。卷积神经网络(CNN)是由简单的神经网络(NN)发展而来的,因此,我们的第一个例子,就从神经网络开始。
官方的游戏示例 webcam-transfer-learning,建议玩一玩,是基于 MobileNet 的一个迁移学习的例子。 Transfer learning - Train a neural network to predict from webcam data Before we begin, we highly recommend playing with the demo. Try
第 10 章介绍了人工神经网络,并训练了第一个深度神经网络。 但它非常浅,只有两个隐藏层。 如果你需要解决非常复杂的问题,例如检测高分辨率图像中的数百种类型的对象,该怎么办? 你可能需要训练更深的 DNN,也许有 10 层或更多,每层包含数百个神经元,通过数十万个连接相连。 这可不像公园散步那么简单,可能碰到下面这些问题: 你将面临棘手的梯度消失问题(或相关的梯度爆炸问题):在反向传播过程中,梯度