IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【MATLAB强化学习工具箱】学习笔记--actor网络和critic网络的结果放在哪里? -> 正文阅读

[系统运维]【MATLAB强化学习工具箱】学习笔记--actor网络和critic网络的结果放在哪里?

原算例见

【MATLAB强化学习工具箱】学习笔记--在Simulink环境中训练智能体Create Simulink Environment and Train Agent_bear_miao的博客-CSDN博客Simulink中便于搭建各类动力学与控制模型,通过将原有的控制器替换为AI控制器,可以方便使用已有模型,提供增量效果。本节的重点是如何引入Simulink模型作为env,其他的内容在之前的文章中已有说明。以水箱模型watertank为例,如下图所示:采用PI控制器,控制效果如下所示:将此PI控制器替换为神经网络控制器后,系统架构如下图所示:具体替换策略如下所示:(1)删去PID控制器;(2)增加RL Agent模块;(3)观测器模块:观测向量为:,其中...https://blog.csdn.net/bear_miao/article/details/121337953?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163724860816780261990267%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163724860816780261990267&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-3-121337953.first_rank_v2_pc_rank_v29&utm_term=%E3%80%90MATLAB%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E5%B7%A5%E5%85%B7%E7%AE%B1%E3%80%91%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0--%E5%9C%A8Simulink%E7%8E%AF%E5%A2%83%E4%B8%AD%E8%AE%AD%E7%BB%83%E6%99%BA%E8%83%BD%E4%BD%93Create+Simulink+Environment+and+Train+Agent&spm=1018.2226.3001.4187里面包含了训练结果,在agent里面。但是究竟包含了哪些数据?

actor

从agent中提取actor信息

actor = getActor(agent)

得到如下内容:

>> actor = getActor(agent)
actor =?
? rlDeterministicActorRepresentation with properties:

? ? ? ? ?ActionInfo: [1×1 rl.util.rlNumericSpec]
? ? ObservationInfo: [1×1 rl.util.rlNumericSpec]
? ? ? ? ? ? Options: [1×1 rl.option.rlRepresentationOptions]

?从actor中提取学习到的参数

params = getLearnableParameters(actor)

得到如下结果

?>> params = getLearnableParameters(actor)
params =
? 1×4 cell array
? ? {3×3 single} ? ?{3×1 single} ? ?{1×3 single} ? ?{[1.8352]}

?那么上述数据究竟是何含义?

从actor中提取actor网络

actorNet=getModel(actor)

得到如下内容:

>> actorNet=getModel(actor)
actorNet =?
? DAGNetwork with properties:

? ? ? ? ?Layers: [5×1 nnet.cnn.layer.Layer]
? ? Connections: [4×2 table]
? ? ?InputNames: {'State'}
? ? OutputNames: {'RepresentationLoss'}

在criticNet中终于看到了Layers信息和Connections信息,如下所示:

?>> actorNet.Layers
ans =?
? 5×1 Layer array with layers:

? ? ?1 ? 'State' ? ? ? ? ? ? ? ?Feature Input ? ? ? 3 features
? ? ?2 ? 'actorFC' ? ? ? ? ? ? ?Fully Connected ? ? 3 fully connected layer
? ? ?3 ? 'actorTanh' ? ? ? ? ? ?Tanh ? ? ? ? ? ? ? ?Hyperbolic tangent
? ? ?4 ? 'Action' ? ? ? ? ? ? ? Fully Connected ? ? 1 fully connected layer
? ? ?5 ? 'RepresentationLoss' ? Regression Output ? mean-squared-error

>> actorNet.Connections
ans =
? 4×2 table
? ? ? ?Source ? ? ? ? ? ? Destination ? ? ?
? ? _____________ ? ?______________________
? ? {'State' ? ?} ? ?{'actorFC' ? ? ? ? ? }
? ? {'actorFC' ?} ? ?{'actorTanh' ? ? ? ? }
? ? {'actorTanh'} ? ?{'Action' ? ? ? ? ? ?}
? ? {'Action' ? } ? ?{'RepresentationLoss'}

上述信息不直观,在?deepNetworkDesigner中打开如下所示:

deepNetworkDesigner(actorNet)

?在这张图上终于看到了全景。?

?根据右侧的Propeties可以清楚看到params与网络的对应关系,如下所示:

?可以得到:

params{1}为actorFC的W;

params{2}为actorFC的b;

params{3}为Action的W;

params{4}为Action的b;

critic

从agent中提取critic信息

critic = getCritic(agent)

得到如下内容:

>> critic = getCritic(agent)
critic =?
? rlQValueRepresentation with properties:

? ? ? ? ?ActionInfo: [1×1 rl.util.rlNumericSpec]
? ? ObservationInfo: [1×1 rl.util.rlNumericSpec]
? ? ? ? ? ? Options: [1×1 rl.option.rlRepresentationOptions]

?从critic中提取学习到的参数

params = getLearnableParameters(critic)

得到如下结果

?>> params = getLearnableParameters(critic)
params =
? 1×8 cell array
? Columns 1 through 2
? ? {50×3 single} ? ?{50×1 single}
? Columns 3 through 4
? ? {25×50 single} ? ?{25×1 single}
? Columns 5 through 6
? ? {25×1 single} ? ?{25×1 single}
? Columns 7 through 8
? ? {1×25 single} ? ?{[0.0879]}

?那么上述数据究竟是何含义?

从critic中提取critic网络

criticNet = getModel(critic)

得到如下内容:

>> criticNet = getModel(critic)
criticNet =?
? DAGNetwork with properties:

? ? ? ? ?Layers: [10×1 nnet.cnn.layer.Layer]
? ? Connections: [9×2 table]
? ? ?InputNames: {'State' ?'Action'}
? ? OutputNames: {'RepresentationLoss'}

在criticNet中终于看到了Layers信息和Connections信息,如下所示:

?>> criticNet.Layers
ans =?
? 10×1 Layer array with layers:

? ? ?1 ? 'State' ? ? ? ? ? ? ? ?Feature Input ? ? ? 3 features
? ? ?2 ? 'CriticStateFC1' ? ? ? Fully Connected ? ? 50 fully connected layer
? ? ?3 ? 'CriticRelu1' ? ? ? ? ?ReLU ? ? ? ? ? ? ? ?ReLU
? ? ?4 ? 'CriticStateFC2' ? ? ? Fully Connected ? ? 25 fully connected layer
? ? ?5 ? 'Action' ? ? ? ? ? ? ? Feature Input ? ? ? 1 features
? ? ?6 ? 'CriticActionFC1' ? ? ?Fully Connected ? ? 25 fully connected layer
? ? ?7 ? 'add' ? ? ? ? ? ? ? ? ?Addition ? ? ? ? ? ?Element-wise addition of 2 inputs
? ? ?8 ? 'CriticCommonRelu' ? ? ReLU ? ? ? ? ? ? ? ?ReLU
? ? ?9 ? 'CriticOutput' ? ? ? ? Fully Connected ? ? 1 fully connected layer
? ? 10 ? 'RepresentationLoss' ? Regression Output ? mean-squared-error?

?>> criticNet.Connections
ans =
? 9×2 table
? ? ? ? ? ?Source ? ? ? ? ? ? ? ?Destination ? ? ?
? ? ____________________ ? ?______________________
? ? {'State' ? ? ? ? ? } ? ?{'CriticStateFC1' ? ?}
? ? {'CriticStateFC1' ?} ? ?{'CriticRelu1' ? ? ? }
? ? {'CriticRelu1' ? ? } ? ?{'CriticStateFC2' ? ?}
? ? {'CriticStateFC2' ?} ? ?{'add/in1' ? ? ? ? ? }
? ? {'Action' ? ? ? ? ?} ? ?{'CriticActionFC1' ? }
? ? {'CriticActionFC1' } ? ?{'add/in2' ? ? ? ? ? }
? ? {'add' ? ? ? ? ? ? } ? ?{'CriticCommonRelu' ?}
? ? {'CriticCommonRelu'} ? ?{'CriticOutput' ? ? ?}
? ? {'CriticOutput' ? ?} ? ?{'RepresentationLoss'}

上述信息不直观,在?deepNetworkDesigner中打开如下所示:

deepNetworkDesigner(criticNet)

在这张图上终于看到了全景。?

?根据右侧的Propeties可以清楚看到params与网络的对应关系,如下所示:

?可以得到:

params{1}为CriticStateFC1的W;

params{2}为CriticStateFC1的b;

params{3}为CriticStateFC2的W;

params{4}为CriticStateFC2的b;

params{5}为CriticActionFC1的W;

params{6}为CriticActionFC1的b;

params{7}为CriticOutput的W;

params{8}为CriticOutput的b;

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:59:21  更:2021-11-19 18:00:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:32:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码