MATLAB强化学习工具箱整理

2020-07-24 14:56:06 浏览数 (1)

● 在使用MATLAB强化学习工具箱时我们主要思考的env和agent两个方面。

● 首先看env,MATLAB提供了几个已经搭建好的,只要

env = rlPredefinedEnv(env名字)

env名字可以选择以下几个

'BasicGridWorld'

简单的网格环境

'CartPole-Discrete'

离散型外力输入值的倒立摆

'CartPole-Continuous'

连续型外力输入值的倒立摆

'DoubleIntegrator-Discrete'

'DoubleIntegrator-Continuous'

一个木块在木板上滑动,就是这样

'SimplePendulumWithImage-Discrete'

'SimplePendulumWithImage-Continuous'

一根摆杆,可以观测到图像

'WaterFallGridWorld-Stochastic'

'WaterFallGridWorld-Deterministic'

一个逆水行舟的网格环境,全局有外力在把agent往回推

其中网格环境是可以从空网格自定义起点终点障碍物的,也可以添加全局外力,甚至跳跃障碍物的特殊功能

还有2个是simulink搭建的环境模型

'SimplePendulumModel-Discrete'

'SimplePendulumModel-Continuous'

'CartPoleSimscapeModel-Discrete'

'CartPoleSimscapeModel-Continuous'

功能上和m语言搭建的一致

除了上面说的用基础网格搭建环境,还可以搭建复杂环境,需要注意的是这样几点

  1. 初始化,设定环境的输入输出,根据情况选择离散还是连续,维度也要在这里确定
  2. 执行一步,计算输出,reward,是否结束
  3. 绘图,重点关注是否绘图,因为训练过程每次都绘图严重降低效率

另外我们还试验成功了调用Python搭建强化学习环境的方法MATLAB调用pygame实现强化学习环境

● 接着就是agent了,可以完全自行编程实现,但这就失去了使用MATLAB的意义,要是整个功能都是在使用m语言基础函数构建,真的不要用MATLAB,隔壁python真香

提供的agent有这样的几个(排名不分先后,以字母序)

rlACAgent | rlDDPGAgent | rlDQNAgent | rlPGAgent | rlQAgent | rlSARSAAgent

其中rlQAgent和rlSARSAAgent只能在输入输出都是离散型而且维度较小时使用

如果在构建agent时需要搭建神经网络,直接编写的话基本上就是一句一层,基础的

卷基层convolution2dLayer,

池化层averagePooling2dLayer,

全连接层fullyConnectedLayer,

一句添加一层

也可以打开Deep Network Designer工具界面操作来搭建网络结构

这个工具的使用和simulink一样,从左边拖拽想要的网络层到中间,在右边设置参数,连接起来就可以导出网络结构了

0 人点赞