码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 强化学习入门(Matlab2021b)-创建环境【3】


    目录

    • 1 前言
    • 2 根据类模板创建自定义环境
      • 2.1 创建类模板
      • 2.2 Environment properties(环境特性)
      • 2.3 Required Functions(需要的环境方法)
        • 2.3.1 Constructor function(构造函数)
        • 2.3.2 reset function
        • 2.3.3 step function
      • 2.4 Optional Functions(可选的环境方法)
      • 2.5 Environment Visualization(环境可视化)
    • 3 实例化定制环境
    • 参考链接

    1 前言

    本文介绍如何基于MATLAB创建和修改模板环境类,自定义强化学习环境。

    Custom Template Environment:
    1、实施更为复杂的环境动态;
    2、添加自定义可视化;
    3、创建以C + +、Java或Python等语言定义的第三方库的接口。

    2 根据类模板创建自定义环境

    2.1 创建类模板

    首先创建类模板文件,指定类的名字:

    rlCreateEnvTemplate("MyEnvironment")
    
    • 1

    函数rlCreateEnvTemplate创建并打开类模板文件。类模板是rl.env.MATLABEnvironment抽象类的一个子类。该抽象类与其他MATLAB强化学习环境对象使用的抽象类相同。

    classdef MyEnvironment < rl.env.MATLABEnvironment
    
    • 1

    默认情况下,模板类实现了一个简单的车-杆平衡模型。

    为了定义环境动态,将文件保存为MyEnvironment.m。然后对模板类的以下内容进行修改:

    1、Environment properties
    2、Required environment methods
    3、Optional environment methods

    2.2 Environment properties(环境特性)

    在模板的属性部分,指定创建和模拟环境所需的任何参数。这些参数可以包括:

    参数 描述
    物理常数 如重力加速度
    环境几何属性 如物体质量、长度、体积等
    环境约束 如车-杆环境中杆角和车距的阈值约束,以用来检测episode结束条件
    评估环境所需的变量 如车-杆环境中定义的状态向量( State )和指示episode结束的标志( IsDone )
    定义动作或观察空间的常量 如车-杆环境中定义的动作空间最大力( MaxForce )
    计算奖赏信号的常数 如车-杆环境中定义的常数RewardForNotFalling和PenaltyForFalling
    properties
        % 指定并初始化环境的必要属性 
        % Acceleration due to gravity in m/s^2
        Gravity = 9.8
        % Mass of the cart
        CartMass = 1.0
        % Mass of the pole
        PoleMass = 0.1
        % Half the length of the pole
        HalfPoleLength = 0.5
        % Max force the input can apply
        MaxForce = 10     
        % Sample time
        Ts = 0.02
        % Angle at which to fail the episode (radians)
        AngleThreshold = 12 * pi/180
        % Distance at which to fail the episode
        DisplacementThreshold = 2.4
        % Reward each time step the cart-pole is balanced
        RewardForNotFalling = 1
        % Penalty when the cart-pole fails to balance
        PenaltyForFalling = -10 
    end
        
    properties
        % 初始化系统状态 [x,dx,theta,dtheta]'
        State = zeros(4,1)
    end
    
    properties(Access = protected)
        % 初始化指示episode终止的内部标志,
        IsDone = false        
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    2.3 Required Functions(需要的环境方法)

    强化学习环境需要定义以下函数:

    函数 描述
    getObservationInfo 返回有关环境观测的信息
    getActionInfo 返回有关环境行为的信息
    sim 使用智能体仿真环境
    validateEnvironment 通过调用reset函数对环境进行验证,并使用step对环境进行一个时间步的仿真
    reset 初始化环境状态并清理任何可视化
    step 施加一个动作,在环境仿真一步,输出观察结果和奖励;同时,标志位指示episode是否结束
    Constructor function 与创建类实例的类名相同的函数

    其中getObservationInfo, getActionInfo, sim,和validateEnvironment函数已在基础抽象类中定义。必须要自定义的函数是constructor, reset, and step。

    2.3.1 Constructor function(构造函数)

    以车-杆环境为例,其构造函数是:

    1. 定义动作和观测规范。
    2. 调用基抽象类的构造函数。
    % 自定义构造函数可以有输入参数
    function this = MyEnvironment()
        % 初始化观测
        ObservationInfo = rlNumericSpec([4 1]);
        ObservationInfo.Name = 'Ca
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    【VIM】初步认识VIM-2
    剑指 Offer 05. 替换空格
    十天学前端(二)
    Redis内存回收
    CCAA 认证通用基础卷之(一)合格评定基础 第一章合格评定基础知识
    基于go版本的LoraWAN Server 的470MHz频段的设置
    0成本LLM微调上手项目,⚡️一步一步使用colab训练法律LLM,基于microsoft/phi-1_5,包含lora微调,全参微调
    问题复盘|在使用 Gson 时,报 Failed to parse date [““] 错误
    华曙高科冲刺科创板:拟募资6.6亿 实控人许小曙父子均为美国籍
    Hive面试题
  • 原文地址:https://blog.csdn.net/zjh2883/article/details/136188634
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号