强化学习——多个离散的动作
27日视图(30天)
显示旧的评论
我想使用DQN代理有多个连续状态(或观察)和两个动作信号,每个都有三种可能的值的组合。例如,参见下一行,明白我的意思:
一个= (2 0 2);
b = (3 0 3);
[A, B] = meshgrid (A, B);
行动=重塑(猫(2,' B '), [], 2);
如果我想创建离散的动作,我需要把矩阵转换成一个细胞并运行命令:
actionInfo = rlFiniteSetSpec (num2cell(行动,2));
actionInfo。Name =“行动”;
此外,在DQN,评论家,包括深层神经网络。我已经创建了评论家如下:
%为评论家:创建一个款
hiddenLayerSize = 48;
observationPath = [
imageInputLayer ([numObs 1 1],“归一化”,“没有”,…
“名字”,“观察”)
fullyConnectedLayer (hiddenLayerSize“名字”,“CriticStateFC1”)
reluLayer (“名字”,“CriticReLu1”)
fullyConnectedLayer (hiddenLayerSize“名字”,“CriticStateFC2”)
additionLayer (2“名字”,“添加”)
reluLayer (“名字”,“CriticCommonReLu1”)
fullyConnectedLayer (hiddenLayerSize“名字”,“CriticCommonFC1”)
reluLayer (“名字”,“CriticCommonReLu2”)
fullyConnectedLayer (1,“名字”,“CriticOutput”));
actionPath = [
imageInputLayer([1]价值,“归一化”,“没有”,“名字”,“行动”)
fullyConnectedLayer (hiddenLayerSize“名字”,“CriticActionFC1”));
%创建layerGraph:
criticNetwork = layerGraph (observationPath);
criticNetwork = addLayers (criticNetwork actionPath);
%连接actionPath obervationPath:
criticNetwork = connectLayers (criticNetwork,“CriticActionFC1”,“添加/ in2”);
%为评论家表示指定选项:
criticOpts = rlRepresentationOptions (“LearnRate”1 e 03…
“GradientThreshold”,1“UseDevice”,“图形”);
%创建评论家表示使用指定款和选项:
评论家= rlRepresentation (criticNetwork observationInfo actionInfo,…
“观察”,{“观察”},“行动”,{“行动”},criticOpts);
%为代理设置所需的选项:
agentOptions = rlDQNAgentOptions (…
“SampleTime”,dt,…
“UseDoubleDQN”,真的,…
“TargetSmoothFactor”1 e - 3,…
“DiscountFactor”,0.99,…
“ExperienceBufferLength”1 e7,…
“MiniBatchSize”,128);
我的问题是第一个图像输入层到行动路径
imageInputLayer([值1 1],“正常化”,“没有”,“名字”,“行动”
)。我曾经尝试过的值1、2、9和18
价值
,但所有的结果在一个错误当我运行
代理= rlDQNAgent(评论家,agentOptions);
这是因为actionInfo 9元素的一个细胞,每一个都有双向量的维度[1,2],而
imageInputLayer
预计尺寸
(价值,1,1)
。
所以,我怎么能在MATLAB建立DQN代理有两个主要的离散动作信号,每个都有三个可能的值?
提前感谢你的帮助!
接受的答案
Emmanouil Tzorakoleftherakis
2019年5月30日
嗨,恩里科,
试一试
actionPath = [
imageInputLayer ((1 2)“归一化”,“没有”,“名字”,“行动”)
fullyConnectedLayer (hiddenLayerSize“名字”,“CriticActionFC1”));
在代码中每个操作是1 x2,应反映在actionpath输入的尺寸。
我希望这可以帮助。