为什么我得到一个不同的操作结果每一个新的时间与相同的样本观察后部署训练RL政策?

10视图(30天)
负载(“agent0218_300016_40000.mat”,“经纪人”);
obsInfo = getObservationInfo(代理);
actInfo = getActionInfo(代理);
ResetHandle = @ () myResetFunction (test_sss);
LoggedSignals StepHandle = @(行动)myStepFunction(行动,LoggedSignals, test_sss);
envT = rlFunctionEnv (obsInfo actInfo、StepHandle ResetHandle);
simOpts = rlSimulationOptions (MaxSteps,大小(test_sss, 1));
经验= sim (envT代理simOpts);
ac3 =挤压(experience.Action.bs.Data);
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
generatePolicyFunction(代理);
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
% * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
3 = 1:尺寸(ac3, 1)
observation1 = test_sss{三世:};
action1(三世,1)= evaluatePolicy (observation1);
结束
总和(abs (ac3-action1))

接受的答案

Emmanouil Tzorakoleftherakis
Emmanouil Tzorakoleftherakis 2021年2月23日
你用的哪个代理?有些代理随机,也就是说,输出是基于概率分布采样通过建设他们不会给你相同的结果。
另一个可能的原因是复位功能。看来你再次模拟数据保存和运行推理,但是每次你叫‘卡’,首先重置函数被调用。如果有任何组件,随机初始条件/参数,然后你不与相同的数据进行比较。
1评论
梁张
梁张 2022年3月2日
编辑:梁张 2022年3月2日
我也遇到同样的问题,当我DDPG代理用于验证,我重置功能不随机初始条件/参数,我想如果训练DDPG代理也有它自己的声音?不应该训练有素的特工是一组固定的神经网络参数?

登录置评。

答案(1)

de y
de y 2021年2月24日
我使用PPO和囊剂,同样的问题出来了。我的代码表示代理培训满足和平衡的结果,我想用它来决定行动。但我的怀疑是,SIM是模拟的方式之一,而generatePolicyFunction()和evaluatePolicy是另一种方式,我的观察的每一步都是一样的,为什么每运行evaluatePolicy观察相同的发生,不同的操作结果与SIM()出来了。我困惑,因为没有任何组件,随机初始条件/参数

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!