Bo Zhou
Bo Zhou
TSP问题,你在调用value函数前,先判断一下是否已经选够那么多个点了不就可以了吗?
如果你非要让网络输出,那你像NLP领域一样,增加一个结束标志在action set里面不也可以吗?
hello,看起来是个很有意思的工作hahah。 我们在讨论设计系统的细节之前,建议你们先把问题给定义清楚哈: 1)奖励函数如何设定(reward) 2)决策动作是什么(action) 3)环境的状态如何定义(observation)
了解了,问题定义清晰之后,你们有仿真环境来模拟真实场景,进行算法的迭代吗? 我觉得主要的难点是仿真环境的构建。
嗯,了解,这个问题其实是强化学习在实际应用场景中绕不开的问题。 我这里举一些例子来帮助你进行判断: 我们在推荐系统上面做的落地工作,也是考虑到用户数量庞大,习惯不一样,很难在线下搭建一个精确的仿真环境。 所以我们在这块直接把线上服务当作仿真环境,直接通过用户反馈来迭代我们的策略。 我们在机器人上做的控制工作,由于硬件在研发阶段会开发相应的仿真环境,在这个情况下我们就更倾向于先在仿真环境上进行调研。 回到你的这个问题上,我建议采取搭建仿真环境的方式。我们在推荐系统虽然直接在环境上迭代,但是我们有大量的用户以及反馈数据进行高效率迭代。相反,你的这个场景估计没法直接获得大量的数据,所以不适合采用我们在推荐系统上的方式。 至于仿真环境的搭建难度问题,建议先搭建一个基本的环境,后面逐步丰富元素。
你好,感谢对于PARL的关注。 我们的最终提交代码目前还在整理中,开源时间点预计在12月份NeurIPS开会期间。 训练部分代码我们有整理投稿论文的想法,目前还没有明确的开源时间点(取决于整理论文和投稿的时间点),或许会在投稿后开源。
十分感谢反馈! 我刚去看了stable_baseline3 的tutorial,确实很简便! https://stable-baselines3.readthedocs.io/en/master/guide/quickstart.html 指定好环境,然后指定算法,调用learn函数即可。这种方案看起来很便捷,但是对于强化学习方向的用户而言,我觉得并没有提供很多价值,有以下几点: 1)对于初学者,调包跑跑代码,效果收敛,挺有成就感的。高度封装的代价是背后的算法流程并不清晰。比如数据怎么交互的,参数是如何更新的。 2)对于有一定专业背景的人,希望使用RL解决其他场景的用户,这种高度封装的接口不实用。比如我要解决电网调度,参考NIPS2020赛事。这个场景需要对数据进行预处理,并且需要对策略做后处理(兜底策略不导致电网崩溃)。高度封装的接口改起来成本太高了。
嗯,实现上肯定是可以做到一键调用的,基于PARL目前的接口再高度封装即可。 你的想法我了解了,我和其他开发者一起讨论下,后续再答复到这个issue:)
十分感谢两位提出的建议。今天下午我与其他开发者讨论了增加高阶接口的必要性以及对仓库的影响,讨论结论如下: 1. 我们将高阶接口放到待开发列表中,这个会在新的实习生同学入职后开展,具体时间节点待定。 2. 为了避免仓库中同时存在高阶/原始接口对用户造成混乱,我们会新开一个parl_baselines的仓库,专门开放高阶接口。
03.12 update: 接口设计已完成。 