如何为PPO pretrain随机演员网络培训?
12个视图(30天)
显示旧的评论
我想创建一个输出操作数组的随机演员网络10 0和1之间的值观察28归一化值的数组。我指定如下上限和下限,以确保演员的输出是在0和1之间:
ActionInfo = rlNumericSpec (numActions [1],“LowerLimit”,(0,0,0,0,0,0,0,0,0,0),“UpperLimit”,(1;1;1;1;1;1;1;1;1;1]);
我的随机网络看起来如下:
![](http://www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/609555/image.png)
我已经创建了一个标准化的训练数据集(目标尺寸输入维度28日10)。我怎么使用这个数据集pretrain以上网络?
澄清:我想训练开始前PPO代理培训网络。
0评论
接受的答案
安特兰
2021年5月13日
嗨,简,
%我们想最大化的目标日志f (x), f (x)是概率密度函数遵循正常的(意思是,σ)
% =损失目标日志(f (x)) = - = 1/2 *日志(2 *π)+日志(σ)+ 1/2 * ((xμ)/σ)^ 2;
记住,你必须防止日志(0),增加每股收益是充分的。x是你的行动目标。
4评论
安特兰
2021年5月17日
正如前面提到的错误消息,价值区分必须是一个标量。因此,你需要计算的意思在每一批的损失。另外,我不明白为什么你需要一个for循环计算损失。我们可以vectorize计算之后(因为σ,T,μ具有相同的大小)
% vectorize损失计算
损失= 0.5 *日志(2 *π)+日志(σ+ eps) + 0.5 * ((tμ)。/(σ+ eps)) ^ 2;
%的意思是在每一批的损失
损失=总和(损失,“所有”);
损失= / batchSize损失;