rlPPOAGI
描述性
Proximes政策优化是一种免模型在线政策梯度学习法算法通过环境交互取采样数据与使用随机梯度下降优化剪切代谢目标函数动作空间可以是离散或连续连续动作空间代理符不强制执行动作规范中设置的限制需要强制操作约束时,必须在环境内执行约束
创建
语法
描述性
从观察动作规范创建代理
使用默认初始化选项创建近似策略优化代理行为方和评论家代理使用默认深度神经网络代理程序
RlPPOAgent观察Info
,动作Info
)观察Info
和动作规范动作Info
.上头观察Info
并ActionInfo
属性解析代理程序
设置为观察Info
并动作Info
互输入参数
PPO代理环境代理使用默认网络配置代理程序
RlPPOAgent观察Info
,动作Info
,initOpts
)initOpts
对象.更多初始化选项信息见rlAgentInitializationOptions
.
输入参数
initOpts
-代理初始化选项
rlAgentInitializationOptions
对象设置
代理初始化选项rlAgentInitializationOptions
对象.
演艺圈
-行为家
rlDiscreteCategoricalActor
对象设置|rlContinuousGaussianActor
对象设置
Actor执行策略rlDiscreteCategoricalActor
或rlContinuousGaussianActor
函数近似对象欲了解更多创建角色近似者信息,见创建策略和值函数.
属性
观察Info
-观察规范
规范对象|数组规范对象
观察规范rlFiteSetspec
或内文特征
对象或数组混合这些对象数组中每个元素定义环境观察通道的属性,如维度、数据类型和名称
如果您通过定义演艺人和评论家创建代理观察Info
匹配动作器和评论器对象中指定的值
可提取观察Info
从现有环境或代理使用getObservationInfo
.手动构建规范rlFiteSetspec
或内文特征
.
ActionInfo
-动作规范
rlFiteSetspec
对象设置|内文特征
对象设置
动作规范rlFiteSetspec
或内文特征
连续动作空间对象对象定义环境动作通道属性,例如维度、数据类型和名称
注解
只允许一个动作通道
如果您通过定义演艺人和评论家创建代理ActionInfo
匹配动作器和评论器对象中指定的值
可提取动作Info
从现有环境或代理使用获取ActionInfo
.手动构建规范rlFiteSetspec
或内文特征
.
代理选项
-代理选项
rlPPOAgentOptions
对象设置
代理选项,指定为rlPPOAgentOptions
对象.
UseExplorationPolicy
-选择使用探索策略模拟部署
真实性
QQ虚伪
选项选择模拟或部署后动作时使用探索策略,指定为下列逻辑值之一
真实性
基础代理探索策略选择动作sim系统
并generatePolicyFunction
.具体地说,在这种情况下代理使用rlStochasticActorPolicy
策略带UseMaxLikelihoodAction
属性集虚伪
.自代理选择动作采样概率分布以来,保单是随机化的,代理探索其动作和观察空间虚伪
强制代理程序选择动作时使用基代理贪婪策略sim系统
并generatePolicyFunction
.具体地说,在这种情况下代理使用rlStochasticActorPolicy
策略带UseMaxLikelihoodAction
属性集真实性
.代理商贪心选择行为后,保单行为定型化,代理商不探索其动作和观察空间
注解
选项只影响模拟部署不影响训练训练代理使用火车
代理方常使用其勘探策略 独立于此属性的价值
对象函数
实例
创建观察行动规范代理
创建环境分立动作空间并获取观察动作规范实例中加载环境DQN代理使用深网络设计师培训使用图像观察.环境有两种观察方式:50x50灰度图像和标量器(钟角速度)。动作标量五大元素(套用-2-1-0、0或2Nm
env=rl预定义env"SimplePendulumWithImage-Discrete");
从环境获取观察动作规范
ObsInfo=获取ObservationInfoactionInfo-env
代理创建函数随机初始化作用器和评论器网络通过修复随机生成器种子确保可复制性
rng(0)
PPO代理环境观察和动作规范
代理程序 = rPPOAgent(opsInfo,actInfo);
检查代理使用获取动作
从随机观察返回动作
getAction(agent,{rand(obsInfo(1).Dimension),rand(obsInfo(2).Dimension)})
ss=1x1单元格数组{-2}
创建连续 PPO代理使用初始化选项
创建环境持续活动空间并获取观察和动作规范实例中加载环境火车DDPG代理向上平衡分页并带图像观察.环境有两种观察方式:50x50灰度图像和标量器(钟角速度)。动作标量表示托盘持续从-2到2Nm
env=rl预定义env"SimplePendulumWithImage-Continuous")!ObsInfo=获取ObservationInfoactionInfo-env
创建代理初始化选项对象,具体说明网络中每个隐藏全连通层必须128
神经元数(代之以默认数)256
)
initOpts = rlAgentInitializationOptions(NumHiddenUnit=128);
代理创建函数随机初始化作用器和评论器网络通过修复随机生成器种子确保可复制性
rng(0)
PPO从环境观察和动作规范创建行为-评论代理
代理程序 rlPPOAgent(opsInfo,actInfo,initOpts);
提取深度神经网络 从代理行为家和评论家
activeNet= getmodel(getActor(代理))注释Net= getmodel(getCriticr(代理));
验证每个隐藏全连通层有128个神经元, 您可以显示MATLABQ命令窗口层
criticNet.Layers
可视化结构交互使用分析Network
.
analyzeNetwork(criticNet)
画家和评论家网络
plot(layerGraph(actorNet))
plot(layerGraph(criticNet))
检查代理使用获取动作
从随机观察返回动作
getAction(agent,{rand(obsInfo(1).Dimension),rand(obsInfo(2).Dimension)})
ss=1x1单元格数组{0.9228}
可测试训练代理环境
创建Proxime策略优化代理
创建环境接口并获取观察操作规范
env=rl预定义env"CartPole-Discrete")!ObsInfo=获取ObservationInfoactionInfo-env
PPO代理器使用折值函数评分值函数评论器取当前观察为输入并返回单标量输出
模型化评论器内值函数使用神经网络并带输入层(它接收观察通道内容,如蒙布斯所描述)信息学
和一输出层(它返回标量值)注意prod(obsInfo.Dimension)
返回观察空间总维度,无论观察空间是列向量、行向量或矩阵
定义网络为层对象数组
jectiveNet =putlayer全ContedLayer全全ContedLayer全CentedLayer
转换为dl网络
并显示参数数
批注网=dlnet网summary(criticNet)
初始化:实学数:601输入:1输入4特征
创建评论家使用评语网
和观察规范对象更多信息见rlvalue功能
.
评论家=rvalueFunction(criticNet,obsInfo);
检查评论家随机观察输入
getValue(critic,{rand(obsInfo.Dimension)})
ss=单片0.2479
政策梯度代理使用准整片策略,分片动作空间由离散绝对行为方执行函数取观察输入并返回输出随机动作采样(在有限可能的动作数中)从绝对概率分布中取出
模拟作用器内半称化策略时使用神经网络并带输入层(接收环境观察通道内容,按环境观察通道定义)opsInfo
和输出层输出层必须返回概率矢量ActInfo
.注意numel(actInfo.Dimension)
返回离散动作空间元素数
定义网络为层对象数组
activeLayer全网/nume/cinfo.Dimension
转换为dl网络
并显示参数数
activeNet=dlnetworksummary(actorNet)
初始化:实学数:1.4k输入:1输入4特征
创建角色使用ActiveNet
环境规范对象更多信息见rlDiscreteCategoricalActor
.
actor = rlDiscreteCategoricalActor(actorNet,obsInfo,actInfo);
检查演员随机观察输入
getAction(actor,{rand(obsInfo.Dimension)})
ss=1x1单元格数组{[10]}
PPO代理使用
service = rPPOAgent
actionInfo:[1x1rl.rlfiteSetspec]采样时间:1
指定代理选项,包括面向演员和评论家的培训选项
代理代理Objects.ExperienceHorizon代理代理Objects.DiscountFactors=0.95agent.AgentOptions.CriticOptimizerOptions.LearnRate = 8e-3!agent.AgentOptions.CriticOptimizerOptions.GradientThreshold = 1!agent.AgentOptions.ActorOptimizerOptions.LearnRate = 8e-3!agent.AgentOptions.ActorOptimizerOptions.GradientThreshold = 1;
检查代理使用获取动作
从随机观察返回动作
getAction(agent,{rand(obsInfo.Dimension)})
ss=1x1单元格数组{[10]}
测试训练代理环境
创建连续PO代理
造环境持续动作空间并获取观察动作规范示例中加载双集成持续动作空间环境DDPG代理比较LQR控制器.从环境观察为矢量,内含质位速率动作标量表示力,应用到质量上,持续从-2到2牛顿不等
env=rl预定义env"DoubleIntegrator-Continuous")!ObsInfo= getObservationInfo
obsInfo=RlNumeric特征属性:下Limit:-Inf上Limit:inf名称:States描述:xxx
actionInfo=e
ActInfo=RlNumeric特征属性:下Limit:-Inf上Limit:Inf名称:Force描述:[0x0字符串]
举此例子中,动作是一个标量值表示从2到2牛顿不等的力要确保代理输出值在此范围内,您可执行适当的缩放操作存储这些限值以便日后很容易访问
actInfo.LowerLimit=-2!actInfo.UpperLimit=2;
演员和评论家网络随机初始化通过修复随机生成器种子确保可复制性
rng(0)
PPO代理器使用折值函数评分值函数评论器取当前观察为输入并返回单标量输出
模型化评论器内值函数使用神经网络并分二层输入信息学
)和一输出层(返回标量值)。注意prod(obsInfo.Dimension)
返回观察空间总维度,无论观察空间是列向量、行向量或矩阵
定义网络为层对象数组
jectiveNet =putlayer全ContedLayer全全ContedLayer全CentedLayer
转换为dl网络
并显示参数数
批注网=dlnet网summary(criticNet)
初始化:实学数:401输入:1输入2特征
创建近似比对对象使用评语网
并观察规范更多信息见rlvalue功能
.
评论家=rvalueFunction(criticNet,obsInfo);
检查评论家随机观察输入
getValue(critic,{rand(obsInfo.Dimension)})
ss=单片0.0899
PPO代理程序使用假分解随机策略,持续动作空间由连续高斯演算符执行函数取观察输入并返回输出随机动作取取高斯概率分布
近似平均值和高斯分布标准偏差时,你必须使用神经网络双输出层,每个输出层有与动作空间维度相同的多元素。输出层必须返回矢量,内含每个动作维度的平均值另一方必须返回矢量,内含每个动作维度的标准偏差
注意标准偏差必须是非负值,平均值必须属于动作范围输出层返回标准偏差必须是软+或reLU图层,强制非负值化,输出层返回平均值必须是缩放层,平均值缩放至输出范围
环境只有一个观察通道,网络只有一个输入层
定义网络路径为层对象数组,并分配路径输入输出层的名称名称允许连接路径并随后将网络输入输出层与适当的环境通道明确连接
定义常用输入路径层公共页面=[特征Inputlayer(prod(obsInfo.Dimension),NamecomPathin完全联通Layer(100)全联通Layer(1,NamecomPathout) ];定义平均值路径均值Path=[全联通Layer(15)Name表示Pathinreluayer全联通Layer/prod(actInfo.Dimension)腾哈耶尔scalingLayer(Name=表示平面标度=actInfo.UpperLimit定义标准偏差路径sdevPathss名词,stdPathinreluayer全联通Layer/prod(actInfo.Dimension)softplusLayer(Name=stdPathout) ];%向层图对象添加层actorNet=层GraphActNet+LayersactorNet=addLayers(actorNetsdevPath);连接路径actorNet=连接LayerscomPathout,表示PathIn/in)!actorNet=连接LayerscomPathout,stdPathin/in);线程网绘图(actorNet)
转换为dlnetwork并显示权数activeNet=dlnetworksummary(actorNet)
初始化:实学数:493输入:1'comPathin'2特征
使用代理对象创建ActiveNet
环境规范,网络输入层名称连接环境观察通道,网络输出层名称计算动作标准偏差值
更多信息见rlContinuousGaussianActor
.
actoryGaussianActor(actorNet,ObsInfo,ActInfo,ActInfo."ActionMeanOutputNames",表示平面,."ActionStandardDeviationOutputNames",stdPathout,.ObservationInputNames=comPathin);
检查演员随机观察输入
getAction(actor,{rand(obsInfo.Dimension)})
ss=1x1单元格数组{0.2267}
PPO代理使用
service = rPPOAgent
actionInfo:[1x1rl.rl
指定代理选项,包括面向演员和评论家的培训选项
代理代理Objects.ExperienceHorizon代理代理Objects.DiscountFactors=0.95agent.AgentOptions.CriticOptimizerOptions.LearnRate = 8e-3!agent.AgentOptions.CriticOptimizerOptions.GradientThreshold = 1!agent.AgentOptions.ActorOptimizerOptions.LearnRate = 8e-3!agent.AgentOptions.ActorOptimizerOptions.GradientThreshold = 1;
指定评论家培训选项
批注Opts=rlOpti.LearnRate=8e-3,GradientThreshold=1);
检查代理使用获取动作
从随机观察返回动作
getAction(agent,{rand(obsInfo.Dimension)})
ss=1x1单元格数组{0.719}
可测试训练代理环境
PPO代理
示例加载预定义环境trainDQN代理平衡板系统实例。
env=rl预定义env"CartPole-Discrete");
获取观察动作信息环境有连续四维观察空间(马车和极的方位和速度)和离散单维动作空间,即应用2种可能力-10N或10N
ObsInfo=获取ObservationInfoactionInfo-env
演员和评论家网络随机初始化通过修复随机生成器种子确保可复制性
rng(0)
PPO代理器使用折值函数评分模型化评论家内值函数使用循环神经网络
定义网络为层对象数组创建循环神经网络使用sequenceInputLayer
即输入层并包含至少一个伊斯特拉耶尔
.
counteLayer(8) reluLayerIstLayer(8)全ConteLayer(1)
转换为dl网络
并显示可学习参数数
批注网=dlnet网summary(criticNet)
初始化式:实数可学性:593输入式:1单序输入式4维
创建评论家使用评语网
和观察规范对象更多信息见rlvalue功能
.
评论家=rvalueFunction(criticNet,obsInfo);
检查评论家随机观察输入
getValue(critic,{rand(obsInfo.Dimension)})
ss=单片0.0017
因为评论家有复用网络 演员也必须有复用网络定义网络为层对象数组
actimeLayer(8)全cteLayer(nume(actInfo.Ements))软maxLayer
转换网络dl网络
并显示可学习参数数
activeNet=dlnetworksummary(actorNet)
初始化:实学数4k输入:1序列输入4维
创建角色使用ActiveNet
环境规范对象更多信息见rlDiscreteCategoricalActor
.
actor = rlDiscreteCategoricalActor(actorNet,obsInfo,actInfo);
检查演员随机观察输入
getAction(actor,{rand(obsInfo.Dimension)})
ss=1x1单元格数组{[10]}
设置点训练选项评论家
批注OprimizerObjects.学习Rate=1e-2.GradientThreshold=1);
设置一些培训选项为演员
actorOptizeops =rlOprimizerObjects.学习Rate=1E3.GradientThreshold=1);
创建代理选项对象
代理Objects =rlPPOAgentObjects.AdvantageEstimateMethod="finite-horizon",.ClipFactor=0.1.CriticOptimizerOptions=criticOptions,.ActorOptimizerOptions=actorOptions);
循环神经网络使用时最小批量大小
属性学习轨迹长度
agentOptions.MiniBatchSize
s=128
代理器使用演算器和批注器并使用代理选项对象创建代理器
代理程序 = RPPOAgent
actionInfo:[1x1rl.rlfiteSetspec]采样时间:1
检查代理随机观察输入
getAction(agent,rand(obsInfo.Dimension))
ss=1x1单元格数组{[10]}
使用序列长度(时间)维度评估代理举例说,获取动作序列九九
观察结果
Action(代理商).{Rand([obsInfo.Dimention19]}}
显示对应第七元素的动作
动作=动作{{1}动作(1,1,1,7)
s=-10
可测试训练代理环境
小技巧
连续动作空间,代理不强制执行动作规范设置的限制在此情况下,您必须强制执行环境内动作空间约束
调整角色网络学习率对PPO代理器是必要的,对TRPO代理器则没有必要
版本历史
R2019b介绍
MATLAB命令
点击链接匹配MATLAB命令
运行命令时输入MATLAB命令窗口万博1manbetxweb浏览器不支持MATLAB命令
网站也可以从下表选择 :
如何获取最佳网站性能
选择中国网站(中文或英文)最佳网站性能其它 MathWorks国家网站不优化访问