当前位置: 首页 > news >正文

PPO(proximal policy optimization)算法

博客写到一半发现有篇讲的很清楚,直接化缘了
https://www.jianshu.com/p/9f113adc0c50

Policy gradient

强化学习的目标:学习到一个策略πθ(a∣s)\pi\theta(a|s)πθ(as)来最大化期望回报。
一种直接的方法就是在策略空间中直接搜索来得到最优策略,这种方法称为策略搜索(Policy Search)。策略搜索的本质是优化问题,可以分为基于梯度的优化和无梯度的优化,策略搜索和基于值函数的方法相比,策略搜索可以不需要值函数,直接优化策略。参数化的策略能处理连续状态和动作,可以直接学出随即性策略。策略梯度(Policy Gradient)是一种基于梯度的强化学习方法。假设πθ(a∣s)\pi\theta(a|s)πθ(as)是一个关于θ的连续可微函数,可以用梯度上升的方法来优化参数θ使得目标函数f(θ)f(\theta)f(θ)最大。

简单推导

trajectory ι={s1,a1,s2,a2,...sι,aι}\iota=\{s_1,a_1,s_2,a_2,...s_\iota,a_\iota\}ι={s1,a1,s2,a2,...sι,aι}
pθ=p(s1)pθ(a1∣s1)pθ(s2∣s1,a1)pθ(a2∣s2)pθ(s3∣s2,a2)...=p(s1)∑ιt=1pθ(aι∣sι)p(sι+1∣sι,aι)p_\theta=p(s_1)p_\theta(a_1|s_1)p_\theta(s_2|s_1,a_1)p_\theta(a_2|s_2)p_\theta(s_3|s_2,a_2)...=p(s_1)\underset{t=1}{\overset{\iota}{\sum}}p_\theta(a_\iota|s_\iota)p(s_{\iota+1}|s_\iota,a_\iota)pθ=p(s1)pθ(a1s1)pθ(s2s1,a1)pθ(a2s2)pθ(s3s2,a2)...=p(s1)t=1ιpθ(aιsι)p(sι+1sι,aι)

这里的pθp_\thetapθ表示的是策略,也就是在什么状态下该做什么动作,而ppp是状态转移概率。

For each trajectory: Reward Rθ=R(ι)R_\theta=R(\iota)Rθ=R(ι)
Expeted Reward: Rθ‾=∑ιR(ι)pθ\overline{R_\theta}={\overset{\iota}{\sum}}R(\iota)p_\thetaRθ=ιR(ι)pθ

我们希望最大化期望,使用梯度上升的方法。
在这里插入图片描述
给定一个策略,在和环境互动之后产生多条轨迹,以及奖励,之后将数据集收集起来之后,求 Rθ‾\overline{R_\theta}Rθ的梯度,之后更新参数,得到新的策略。
在这里插入图片描述

http://www.lryc.cn/news/13019.html

相关文章:

  • ElasticSearch基本使用
  • windows微软商店下载应用失败/下载故障的解决办法;如何在网页上下载微软商店的应用
  • MySQL进阶篇之InnoDB存储引擎
  • 商标侵权行为的种类有哪些
  • Similarity-Preserving KD(ICCV 2019)原理与代码解析
  • 在Linux和Windows上安装seata-1.6.0
  • 兼职任务平台收集(二)分享给有需要的朋友们
  • 目标检测三大数据格式VOC,YOLO,COCO的详细介绍
  • SpringBoot实现统一返回接口(除AOP)
  • ChatGpt - 基于人工智能检索进行论文写作
  • 实例三:MATLAB APP design-多项式函数拟合
  • springboot多种方式注入bean获取Bean
  • Markdown及其语法详细介绍(全面)
  • 在Linux和Windows上安装sentinel-1.8.5
  • 面试攻略,Java 基础面试 100 问(十)
  • Zero-shot(零次学习)简介
  • 51单片机简易电阻电感电容RLC测量仪仿真设计
  • [软件工程导论(第六版)]第6章 详细设计(课后习题详解)
  • 【2.19】算法题2:贪心算法、动态规划、分治
  • 【Redis】Redis 发布订阅通信模式 ( 发布订阅模式 | 订阅频道 | 发布消息 | 接收消息 )
  • VNCTF 2023复现
  • python基础知识有哪些需要背(记住是基础知识)我是初学者
  • Linux下TCP连接断开后不释放的解决办法
  • 1.关于嵌入式开发软件工程师的理解
  • 1760字,让你拿捏 [‘列表‘]
  • A562基于android的养老APP
  • java面试题-并发基础
  • 用纯C语言实现3D空间中的点坐标转化为屏幕二维点坐标,包含主视图、侧视图、俯视图、正等轴投影
  • .sh脚本文件的执行方式
  • Android 基础知识4-2.5View与VIewGroup的概念、关系与区别