问题标签 [temporal-difference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何在 Tensorflow 2.0 中为 TD-Lambda 方法创建优化器?
我正在尝试实现 TD-Gammon,如本文所述,它使用 TD-Lambda 学习算法。这已经在这里完成了,但它已有 4 年历史并且不使用 Tensorflow 2。我正在尝试在 Tensorflow 2 中执行此操作,并认为我需要创建一个自定义优化器来执行链接中所述的权重更改以上。
我知道要创建自定义优化器,您需要继承 Optimizer 类并实现create_slots
、resource_apply_dense
、resource_apply_sparse
和get_config
方法。然而,TD-Lambda 的权重变化算法需要神经网络输出(Y_t-1
以及Y_t
在论文中),并且该resource_apply_dense
方法似乎无法访问它。
如何访问神经网络输出?还是我只是以错误的方式解决这个问题?
machine-learning - 学习估计值和预期时间差误差
我怎样才能最好地让我的网络不仅学习期望值,而且了解围绕该值的预期变化,这是一种不确定性的度量。对于网络以前从未见过的任何状态,这将是非常高的,对于网络已经多次见过的任何状态,它应该接近对预期变化的某种估计。
想知道是否可以通过(可能部分)重叠的网络同时“学习”这两个方面。
python - Python时间序列已经不同,我如何使值再次正常
我正在研究一个时间序列,它有一个索引作为日期和一个值字段。我用这两行来区分数据。
这使我的数据集静止,所以我很高兴继续使用它。
现在我已经对此进行了一些分析,现在我有了我试图消除差异的价值观。
如果我的结果数据集保存在 df_results 中,我如何使这些再次正常(不区分它们)。有没有办法扭转这种转变?
**解决方案**
我想出了一种方法来扭转数据集上的差异。
为了将其应用于预测数据集,我采用了非常相似的方式。在此唯一更改的变量是保存差异预测的“wmar”,最后一个数据字段“fcast3”是存在反向差异预测的位置:
r - 重复方差分析是我要找的吗?
我正在研究一些土壤和栽培品种的 NDVI(归一化植被指数)行为。我的数据库有 33 天的采集时间,17 种土壤和 4 个不同的栽培品种。我以两种不同的方式构建了它,你可以看到附加的。我在这两种形状上都遇到了麻烦和错误。
首先的问题是:重复方差分析是分析我的数据的正确方法吗?我想看看不同品种和不同土壤的行为是否有差异。我每天都进行了方差分析,并且每天都有统计差异,但由于我想调查全年的行为,结果并不具有全球意义。
那么第二个问题是:我该如何执行它?我尝试了不同的教程,但出现了意外错误,或者我未能完成分析。
最后但并非最不重要的一点:我正在使用 R Studio 进行编码。
任何帮助表示赞赏,我仍然是统计新手,但对改进非常感兴趣!
artificial-intelligence - 强化学习:TD(0) 使用函数逼近
考虑以下问题
给定奖励,策略使用线性回归找到 5x5 网格世界的最优价值函数。
报酬:
政策:
函数逼近的代码
输入 (i, j) 被转换为 9 维向量,以便更好地逼近。
我正在使用 Keras 制作线性回归模型。
训练代码 训练是根据 TD(0) 公式完成的:
问题是这种训练没有给出最佳值。
附言
预期输出是(在没有函数逼近的情况下完成)
python - 强化学习示例
环境:总共有25个回合。有两种类型的操作:构建 CS 和构建 CI。
目标:找到可以在使用专门机器学习/强化学习给出的总回合数中建造的最大 CI(建筑物)数量。
注意:尽管 CS 在技术上是建筑物,但我并未将其计数计入建筑物总数。当阅读我的代码中的“建筑物”意味着仅构建 CI 时,请务必注意这一点。
公式:BPT(每回合建筑数)= CS/4 + 5 每建造 4 个 CS,您的 CI 增加 1。(您从 5 开始)
我的总体目标是到 25 岁,看看可以构建的最大 CI 数量。除此之外,我想知道我需要采取哪些步骤以及以何种顺序采取这些行动以最大化最佳情况。
我下面的代码似乎实现了这一点,但是当我尝试使用经过训练的模型时它失败了。在我完成所有剧集之后,我的理解是,我的 q_values 表将能够绘制出最佳路径。
不幸的是,我的最终 q_values 表似乎具有所有相同的值,并且 np.argmax 的使用只是为所有决策选择第 0 个索引。我注意到的是,在训练过程中,我的模型正确识别了最佳解决方案,但由于某种原因,我最终的 q_values 表没有反映它。
一个重要的注意事项:在第 25 回合,如果正确完成,最大建筑物应该是 126。前 4 个回合应该是 CS,其余的应该是 CI,以最大限度地提高可能性。