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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度强化学习Actor-Critic的更新逻辑梳理笔记 -> 正文阅读

[人工智能]深度强化学习Actor-Critic的更新逻辑梳理笔记

深度强化学习Actor-Critic的更新逻辑梳理笔记

前言:

前几天在给师弟讲actor-critic架构更新逻辑的时候,actor的优化逻辑我卡了好一会儿,最终也没有完整的把逻辑梳理出来,今天刚好趁着脑子清醒,把之前的PPT拿出来,借着PPT的内容,将AC架构的更新逻辑说明白,特此做一个笔记。

Actor-Critic架构简介:

关于AC架构,还是简单的说说我的理解吧,对于强化来说,目的是找到一个最优策略模型,使得它的动作轨迹累计回报值最大。自然会有一个策略模型,这里称作为Actor,它的输入是当前的状态信息state,输出为动作action。如果没有评价网络critic的话,那就只能利用轨迹的累计回报来更新参数了,一条轨迹更新一次,效率较低。所以有人想出来,要不要整个评价模型,对于特定的状态和动作,直接给出一个评价值,用来指导actor的优化方向。

critic的更新逻辑

而评价模型critic评价值的依据是什么呢?如果有之前的强化基础知识的话,对(s, a)的评价,就是Q(s, a)=r+γ*Q(s’,a’),这就是贝尔曼方程的Q值形式,关于贝尔曼方程的理解,我好像也做过笔记。

有了上面的等式,假设Q(s’, a’)是已知的,s, a, r, s’ 都是已知的,那么只需要更新critic的参数φ,使得Q(s,a|φ)的输出接近r+γ*Q(s’,a’)即可。这是一个有监督学习,属于深度学习的基本操作。

至于Q(s’,a’)到底准不准,在DDPG算法中,Q(s’,a’|φ-target)的更新频率要低于Q(s,a|φ),类似于人走路的时候,左脚先固定不动,右脚往前迈,然后左脚再往前走,一步一步往前挪~

这里我们已经拿到了critic的更新方式了,只要我们拥有足够多的(s, a, r, s’),那么我们就能获取到一个很好的评价模型,对于特定的(s,a)都能给一个“中肯”的评价。

actor的更新逻辑:

那这个评价怎么更新actor模型呢?
我们看看它的表达式:
actor的式子: a = π ( s ∣ θ ) a=\pi(s|\theta) a=π(sθ)
critic的式子: q = Q ( s , a ∣ ? ) = Q ( s , π ( s ∣ θ ) ∣ ? ) q=Q(s,a|\phi)=Q(s, \pi(s|\theta)|\phi) q=Q(s,a?)=Q(s,π(sθ)?)

而更新actor的思路是,对于特定状态s,调整actor模型参数θ,使得actor的输出 π ( s ∣ θ ) \pi(s|\theta) π(sθ),经过critic模型后的输出 Q ( s , π ( s ∣ θ ) ∣ ? ) Q(s, \pi(s|\theta)|\phi) Q(s,π(sθ)?)往更大的方向更新。

很明显这需要对一个复合函数进行链式求导。
整体来看,函数 Q ( s , π ( s ∣ θ ) ∣ ? ) Q(s, \pi(s|\theta)|\phi) Q(s,π(sθ)?),当critic参数φ不变和特定的状态s情况下,Q是一个关于actor参数θ的复合函数,链式求导可得:

J = δ Q / δ θ = ( δ Q ( s , a ) / δ π ( s ∣ θ ) ) ? ( δ π ( s ∣ θ ) / δ θ ) J = \delta Q / \delta \theta = (\delta Q(s, a)/ \delta \pi(s|\theta)) * (\delta \pi(s|\theta)/\delta \theta) J=δQ/δθ=(δQ(s,a)/δπ(sθ))?(δπ(sθ)/δθ)

拿到了导数,根据定义,θ沿着梯度向上更新,即可使得 Q ( s , π ( s ) ) Q(s,\pi(s)) Q(s,π(s))的值变大,即actor的输出会变得更好。

贴上DDPG算法流程图:
在这里插入图片描述

其中核心公式就是下面这个:
在这里插入图片描述
这里的a=u(s),u(s)即 π ( s ) \pi(s) π(s),由于确定性策略,所以写成了u(s),而那个log只是一个技巧,方便计算。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 13:03:28  更:2022-01-16 13:06:03 
 
开发: 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年5日历 -2024/5/18 23:32:23-

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