要创建用于强化学习的函数逼近器,您可以使用deep learning Toolbox™网络导入功能导入预训练的深度神经网络或深度神经网络层架构。你可以导入:
开放式神经网络交换(ONNX™)模式,这需要深入学习工具箱转换为ONNX模型格式支持软件包。金宝app了解更多信息,importONNXLayers
。
keras网络,它需要深度学习工具箱进口商为TensorFlow,Keras模型金宝app支持包软件。有关更多信息,请参见importKerasLayers
。
朱古力卷积网络,这需要用于Caffe模型的深度学习工具箱导入器金宝app支持包软件。有关更多信息,请参见importCaffeLayers
。
导入一个深层神经网络之后,您可以创建一个策略或价值函数表示对象使用表示对象,如rlValueRepresentation
。
当您导入深度神经网络架构时,请考虑以下问题。
导入的架构必须有一个单一的输入层和一个单一的输出层。因此,不支持导入带有观察和动作输入层的完整批评家网络。金宝app
导入的网络架构输入和输出层的维度必须与环境中相应的动作、观察或奖励维度的维度相匹配。
导入网络体系结构之后,您必须设置输入和输出层的名称,以匹配相应的操作和观察规范的名称。
有关强化学习支持的深度神经网络架构的更多信息,请参见金宝app创建策略和价值函数表示。
例如,假设您有一个具有50×50灰度图像观察信号和连续动作空间的环境。要训练策略梯度代理,需要以下函数逼近器,它们都必须有单个50×50图像输入观察层和单个标量输出值。
演员- 选择基于当前观察的动作值
评论家-根据目前的观察,估计预期的长期回报
另外,假设您有以下网络架构需要导入:
actor的深度神经网络架构,具有50×50的图像输入层和标量输出层,输出层以ONNX格式保存(criticNetwork.onnx
)。
批评家的深度神经网络结构,具有50×50的图像输入层和标量输出层,输出层以ONNX格式保存(actorNetwork.onnx
)。
要导入评论家和演员的网络,使用importONNXLayers
函数不指定一个输出层。
criticNetwork = importONNXLayers ('criticNetwork.onnx');actorNetwork = importONNXLayers ('actorNetwork.onnx');
这些命令生成警告,其中指出,直到加入的输出层中的网络是可训练。当您使用导入的网络创建一个演员或评论家表示,强化学习工具箱™软件会自动为你增加一个输出层。
导入网络之后,创建actor和批评家函数近似器表示。要做到这一点,首先要从环境中获取观察和行动规范。
obsInfo = getObservationInfo (env);actInfo = getActionInfo (env);
创建评论家表示,指定评论家网络作为观察名的输入层的名称。由于评论家网络具有单一观察输入和单个动作输出,使用一个值的功能的表示。
评论家= rlValueRepresentation (criticNetwork obsInfo,…“观察”{criticNetwork.Layers(1)请将.Name});
创建actor表示,指定actor网络的输入层的名称作为观察名称,并指定actor网络的输出层作为观察名称。由于actor网络具有单个标量输出,因此使用确定性actor表示。
演员= rlDeterministicActorRepresentation (actorNetwork obsInfo actInfo,…“观察”{actorNetwork.Layers(1)请将.Name}…'行动'{actorNetwork.Layers(端部),请将.Name});
然后,您可以: