optimization - 我们可以使用强化学习在成本函数中获得预定义常量的“好”值吗?
问题描述
我是强化学习的新手,我知道它背后的基本理论。但是,我无法将问题映射到现有框架。问题如下:
给定具有资源的环境:X、Y 和 Z
给定一组项目 I,每个项目都有 (x, y, z, r),其中 x、y 和 z 是服务项目所需的资源,r 是代理在服务项目时获得的奖励,( X, Y, Z) >> (x, y, z)
为了从集合中选择要服务的项目,我使用了成本函数 f = ax + by + cz,其中 a、b 和 c 是预定义的常量。
根据 r/f 比率对项目进行优先选择
目标:选择要服务的项目,以便考虑每个项目的 x、y 和 z 以及资源 X、Y 和 Z,总奖励(所有选定项目的 r 之和)最大
问题:如何调整 a、b 和 c 的值,以使总奖励最大化?
您能给我以下建议吗?
a) 我是否可以使用强化学习来调整常数 a、b 和 c 的“好”值
b) 如果是,我该怎么做?
c) 如果否,对适当的解决方法有什么建议吗?
谢谢你。
解决方案
您要做的是超参数扫描,而不是 RL 问题。至少我是这样解释你的帖子的。
要进行扫描,您有几种可能性:网格搜索、随机搜索或高级搜索方法,例如异步连续减半算法 (ASHA)。网格搜索比随机搜索更难找到最佳值,而 ASHA 比随机搜索更节省资源。
为了进行有效的扫描,我建议使用 Ray Tune。在 PyTorch 文档中有一个关于如何使用 Tune 的很好的例子。它包括使用 ASHA 作为简单的导入对象,而不是自己实现分布式扫描。
https://pytorch.org/tutorials/beginner/hyperparameter_tuning_tutorial.html
推荐阅读
- python - Flask中的多对多关系插入记录
- javascript - BST 和表设置反应
- html - 网页末尾的页脚(内容之后)
- sql - 处理请求时发生未处理的异常 SqlException
- xpath - 如何使用 xpath/scrapy 根据 id 标签选择两个特定项目之间的所有项目
- java - Spring Batch - Spring Batch Retry 和 backoffPolicy 不起作用
- lua - 我的“模块事件”是很多加载参数
- django - 无法在 django 中访问上传的媒体文件
- mongodb - 基本身份验证应该在邮递员中响应 500(授权),但 401 Unathorized 可以正常工作。使用 ktor intellij mongodb
- sql - 在 SQL 查询中检索属性时遇到问题