首页 > 解决方案 > 我们可以使用强化学习在成本函数中获得预定义常量的“好”值吗?

问题描述

我是强化学习的新手,我知道它背后的基本理论。但是,我无法将问题映射到现有框架。问题如下:

  1. 给定具有资源的环境:X、Y 和 Z

  2. 给定一组项目 I,每个项目都有 (x, y, z, r),其中 x、y 和 z 是服务项目所需的资源,r 是代理在服务项目时获得的奖励,( X, Y, Z) >> (x, y, z)

  3. 为了从集合中选择要服务的项目,我使用了成本函数 f = ax + by + cz,其中 a、b 和 c 是预定义的常量。

  4. 根据 r/f 比率对项目进行优先选择

  5. 目标:选择要服务的项目,以便考虑每个项目的 x、y 和 z 以及资源 X、Y 和 Z,总奖励(所有选定项目的 r 之和)最大

  6. 问题:如何调整 a、b 和 c 的值,以使总奖励最大化?

您能给我以下建议吗?

a) 我是否可以使用强化学习来调整常数 a、b 和 c 的“好”值

b) 如果是,我该怎么做?

c) 如果否,对适当的解决方法有什么建议吗?

谢谢你。

标签: optimizationreinforcement-learningreward

解决方案


您要做的是超参数扫描,而不是 RL 问题。至少我是这样解释你的帖子的。

要进行扫描,您有几种可能性:网格搜索、随机搜索或高级搜索方法,例如异步连续减半算法 (ASHA)。网格搜索比随机搜索更难找到最佳值,而 ASHA 比随机搜索更节省资源。

为了进行有效的扫描,我建议使用 Ray Tune。在 PyTorch 文档中有一个关于如何使用 Tune 的很好的例子。它包括使用 ASHA 作为简​​单的导入对象,而不是自己实现分布式扫描。

https://pytorch.org/tutorials/beginner/hyperparameter_tuning_tutorial.html


推荐阅读