问题标签 [reinforcement-learning]

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.

0 投票
1 回答
1184 浏览

python - 将连续映射到连续的强化学习方法

我正在建立一个模型,公司必须设定价格并做出生产决策。价格是连续的,决策变量也是如此。(库存,上次销售,价格......)。

我可以使用什么强化学习方法将连续映射到连续?有哪些 python 包?如果没有 python 包,我可以编写一个包装器。

0 投票
2 回答
189 浏览

machine-learning - 在 Q 学习中具有两个以上动作的玻尔兹曼探索

我在 Q-learning 中使用 Boltzman 探索,每个状态至少有 10 个动作。我知道只有两个动作,玻尔兹曼探索可以非常简单地应用如下:

  1. 使用玻尔兹曼探索方程计算两个动作的 pr1 和 pr2。
  2. 生成一个随机数r
  3. 假设pr1>pr2。如果 r<=pr1,采取对应概率 pr1 的动作。如果 r>pr1,则采取对应于 pr2 的动作。

但是,我怎样才能用 10 个动作做到这一点?在每个决策步骤,我都会更新所有动作的概率。这给了我最佳动作概率最高的所有动作的概率分布。在这种情况下如何使用玻尔兹曼探索来选择动作?

0 投票
1 回答
2316 浏览

optimization - Q-学习价值更新

我正在使用 Q 学习算法对设备进行电源管理。该设备有两种电源模式,即空闲和睡眠。当设备处于睡眠状态时,处理请求会缓存在队列中。Q 学习算法寻求最小化成本函数,该成本函数是即时功耗和动作引起的延迟的加权和。

在每个状态下,学习算法都会采取行动(执行超时值)并评估在下一个状态下采取的行动的效果(使用上述公式)。通过执行预定义超时值池中的某些超时值来执行这些操作。上式中的参数lambda是功率性能参数 ( 0 _< lambda < 1 )。它定义了算法是应该寻找节能(lambda-->1)还是应该寻找最小化延迟(lambda-->0)。每个请求的延迟计算为排队时间 + 执行时间
问题是学习算法总是倾向于睡眠状态下的小超时值。这是因为小超时值的平均延迟总是较低,因此它们的成本也很小。当我将 lambda 的值从较低更改为较高时,我看不到最终输出策略有任何影响。该策略始终选择小的超时值作为每个状态中的最佳操作。我尝试使用总体平均功耗和总体平均延迟来计算状态-动作对的成本,而不是每个状态的平均功率和平均延迟,但这没有帮助。我还尝试使用所有请求计算每个状态-动作对中成本的总能耗和总延迟,但这也无济于事。我的问题是:对于这种情况,什么是更好的成本函数?我更新Q值如下:

其中alpha是学习率(缓慢下降),而gamma=0.9是折扣因子。

0 投票
1 回答
1033 浏览

python-2.7 - PyBrain 强化学习 - 迷宫和图形

我试图在 PyBrain 中实现类似于迷宫问题的东西。但是,它更类似于带有紧急出口的房间,您可以将代理人留在其中一个房间中以找到出口。要将其转换为计算机方法,可以使用双向图,权重显示房间之间的路径。

我试图实现一个新环境,但我有点迷失了应该是什么。例如,基于抽象环境类我想到了这个:

真挚地,

0 投票
0 回答
1151 浏览

java - 强化学习中的一个策略迭代问题

我必须解决策略迭代的问题,模型显示在

在此处输入图像描述

我做了一个Java程序来模拟,策略算法是基于萨顿和巴托的强化学习书。我相信java程序中的模型和图片中的模型是一致的。当我最终运行模拟时,我可以进行 4 次迭代,最终结果与教科书上的最终答案是对的。但是在教科书里,最终答案只需要3次迭代,虽然最终答案是对的,但迭代中的中间答案有细微的变化,不知道是什么问题?

教科书上的答案是

0 投票
1 回答
2140 浏览

matlab - 使用我的 matlab 代码强化学习中的 Windy gridworld 游戏问题的变体

在强化学习中,一个典型的例子是有 风的网格世界

我面临着一个新变化的风网格世界,它还有一堵墙和随机风,我被这两个新东西困住了

图 1 显示了一个标准的网格世界,具有起始 (S) 和目标 (G) 单元格,但有两个不同之处:代理无法越过一堵墙(由黑色单元格表示),以及向下和向左的侧风在网格的右边缘。每个单元格中可用的动作是国王的举动| 每个单元总共有 8 个动作。如果有任何动作会将您带到网格世界之外或与墙壁发生碰撞,您最终会进入最近的单元格(例如,在左上角的单元格中向东北移动会将您带到右侧的一个单元格)。在右侧区域,生成的下一个单元格由随机的“风”向左下移,其平均强度逐列变化。风的平均强度在每列下方给出,以向左下移的单元格数表示.

由于随机性,风有时会与每列给出的平均值相差 1(平均值为 0 时除外)。也就是说,三分之一的时间你会根据列下方指示的值准确地向下移动,三分之一的时间你会向下和向左移动一个单元格,另外三分之一的时间你会移动一个细胞小于平均值。例如,如果你在墙的一排并且在开口的中间并且你向上移动,那么有三分之一的时间你会在那个单元格以西的一排结束,三分之一的时间你会结束向西两列,在该单元格以南一列,三分之一的时间您最终在该单元格以北的同一列。风会影响你所在的牢房,而不是你要去的牢房。

用 = 0:1, = 0:9 和初始 Q(s; a) = 0 对所有 s 实现上述问题中的 Q 学习算法 2;一个。每个动作都会产生 rs = 1 的奖励,但立即导致目标单元格 (rg = 10) 的动作除外。使用: - 贪心动作选择方法 = 0:2。初始 Q(s,a) > 0 且初始 Q(s,a) < 0 的贪心动作选择方法。

我的 matlab 代码可以工作。

我真正的问题函数 nextPos = GiveNextPos(curPos, actionIndex, windpowers, gridCols, gridRows),代理将在其中决定一个动作,然后进入下一步。但是影响下一步的因素很多,比如随机

所以第一个问题是关于随机风的,我如何在matlab中编程说在1/3的机会中是3,在另外1/3的机会中是1......

第二个问题是关于撞墙?我是不是应该先计算国王的步行和风的下一步,然后用这个下一步的值来检查我是否撞墙???)

0 投票
5 回答
6932 浏览

machine-learning - 进化计算可以成为强化学习的一种方法吗?

什么是进化计算?它是一种强化学习的方法吗?还是一种单独的机器学习方法?或者可能没有?

请引用用于回答此问题的参考资料。

0 投票
1 回答
1412 浏览

artificial-intelligence - 网格世界策略迭代背后的直觉

我应该想出一个 MDP 代理,它使用策略迭代和值迭代进行分配,并将其性能与状态的效用值进行比较。

鉴于 MDP 代理知道转移概率和奖励,它如何知道要移动哪个动作?

据我了解,MDP 代理将执行策略迭代,并在给定策略的情况下计算它在达到终止状态时获得的奖励。该策略是从值迭代算法发展而来的。

有人可以提供一些关于策略迭代如何工作的直觉吗?

0 投票
3 回答
1740 浏览

machine-learning - Q-Value 无限制增加,在 Q-Learning 中重复相同动作后重复奖励的结果

我正在通过一个简单的应用程序开发一个简单的 Q-Learning 实现,但有些事情一直让我感到困惑。

让我们考虑 Q-Learning 的标准公式

让我们假设这种状态K有两种可能的动作,既授予我们的代理奖励,RR'授予AA'

如果我们遵循一种几乎完全贪婪的方法(假设我们假设 0.1 epsilon),我将首先随机选择其中一个动作,例如A. 下一次,我可能(90% 的时间)会再次选择A,这将导致 Q(K, A) 不断增长和增长,即使我碰巧尝试A',它的回报也可能是在与 A 相同的量级上,我们将陷入在接下来的学习过程中几乎不可能从第一次猜测中“恢复”的情况。

我想这一定不是这样,否则代理基本上不会学习——它只是遵循一个简单的方法:像你第一次那样做所有事情。

我错过了什么吗?我知道我可以调整 alpha 值(通常,随着时间的推移降低它),但这绝不会改善我们的情况。

0 投票
1 回答
376 浏览

machine-learning - Multi-Criteria Optimization with Reinforcement Learning

I am working on the power management of a system. The objectives that I am looking to minimize are power consumption and average latency. I have a single objective function having the linearly weighted sum of both the objectives:

I am using Q-learning to find a pareto-optimal trade-off curve by varying the weight w and setting different preference to power consumption and average latency. I do obtain a pareto-optimal curve. My objective, now, is to provide a constraint (e.g., average latency L_avg) and thus tuning/finding the value of w to meet the given criteria. Mine is an online algorithm, so the tuning of w should take place in an online fashion.

Could I be provided any hint or suggestions in this regard?