【强化学习】策略梯度(Policy Gradient)
目录
策略梯度基本知识
策略梯度公式
如何使损失函数更好?
添加基线
为每个动作分配不同的权重
策略梯度基本知识
强化学习主要分为两类:
- 基于价值的(如 Sarsa、Q-Learning 和 DQN 算法),先计算每个状态对应的动作的 Q 值,再选择 Q 值最大的动作执行。
- 基于策略的:直接计算每个状态对应的动作或者动作的概率。
Policy Gradient 算法就是对策略函数进行建模,然后用梯度下降更新网络的参数。但是在强化学习中并没有实际的损失函数,而 PG 算法的目的是最大化累计奖励的期望值,因此将累计奖励的期望值作为损失函数,使用梯度上升算法来进行计算。
策略梯度公式
每一个动作 获得相应的奖励,则累积奖励为,我们希望累积奖励最大化,累积奖励是个变量,其期望是定值,因此我们希望累计奖励的期望最大化。
如何使损失函数更好?
添加基线
为每个动作分配不同的权重
技巧1中只要在同一个回合里面,同一场游戏里面,所有的状态跟动作的对都会使用同样的奖励项进行加权,这件事情显然是不公平的,因为在同一场游戏里面也许有些动作是好的,有些动作是不好的。给每一个不同的动作前面都乘上不同的权重。每一个动作的不同权重,它反映了每一个动作的好坏。
将权重从整场游戏的奖励的总和,改成从动作开始执行的时间 t 的奖励的总和
再增加一个衰减因子γ,意味着随着时间推移,组合越来越多,那么越后面的组合的影响就越来越小。
【强化学习】策略梯度(Policy Gradient)相关推荐
- 强化学习(十三) 策略梯度(Policy Gradient)
在前面讲到的DQN系列强化学习算法中,我们主要对价值函数进行了近似表示,基于价值来学习.这种Value Based强化学习方法在很多领域都得到比较好的应用,但是Value Based强化学习方法也有很 ...
- 系统学习深度学习(三十五)--策略梯度(Policy Gradient)
转自:https://www.cnblogs.com/pinard/p/10137696.html 在前面讲到的DQN系列强化学习算法中,我们主要对价值函数进行了近似表示,基于价值来学习.这种Valu ...
- 强化学习(Reinforcement Learning)之策略梯度(Policy Gradient)的一点点理解以及代码的对应解释
一.策略梯度算法推导以及解释 1.1 背景 设πθ(s)\pi_{\theta }(s)πθ(s)是一个有网络参数θ\thetaθ的actor,然后我们让这个actor和环境(environment ...
- 强化学习(4):策略梯度Policy Gradient算法
本章内容主要参考了UC Berkeley Deep RL Bootcamp的内容,由作者按照自己的理解整理而成 终于到Policy Gradient方法了! 一.引言 reinforcement le ...
- 强化学习PPO从理论到代码详解(1)--- 策略梯度Policy gradient
第0章 闲聊吹水 Proximal Policy Optimization(PPO) 近端策略优化,可以说是目前最稳定,最强的强化学习算法之一了,也是openAI默认的强化学习算法,有多叼不用我说了吧 ...
- 强化学习系列之Policy Gradient算法
一. 背景 1.1 基础组成部分 强化学习里面包含三个部件:Actor,environment,reward function Actor : 表示角色,是能够被玩家控制的. Policy of Ac ...
- 强化学习 | 策略梯度 | Natural PG | TRPO | PPO
学习情况:
- 【深度强化学习】策略梯度 Policy Gradients
文章目录 前言 values 和 policy 策略的表示 策略梯度 REINFORCE method 实例:CartPole 前言 重读<Deep Reinforcemnet Learning ...
- ChatGPT 使用 强化学习:Proximal Policy Optimization算法(详细图解)
ChatGPT 使用 强化学习:Proximal Policy Optimization算法 强化学习中的PPO(Proximal Policy Optimization)算法是一种高效的策略优化方法 ...
- 浅析强化学习及使用Policy Network实现自动化控制
来源:极客头条 概要:强化学习已经有几十年的历史,但是直到最近几年深度学习技术的突破,强化学习才有了比较大的进展. 浅析强化学习 一个强化学习问题包含三个主要概念,即环境状态(Environment ...
最新文章
- 并不对劲的bzoj2820:p2257:YY的GCD
- 【神奇的函数式编程语言的独特功能】Lisp 的运行期修改、编译代码,并替换当前运行版本的试验...
- 集合,stack,queue,dictionary,ArrayList,listT
- STM32F103CB IAP+APP BIN文件合并烧写
- 使用git下载giuhub中的项目
- mybatis-day1入门案例
- php rss xml,php 一个完全面向对象的RSS/XML类的简单示例
- 史上最全的Java从入门到精通,播放最多的Java视频教程
- 2021美国大学生数学建模竞赛D题
- python运用ico图标,处理Django中的favicon.ico图标实例方法
- linux网卡驱动模块名称,Linux下根据模块名查看网卡驱动版本
- 应急响应之windows进程排查
- bandizip没有右键菜单解决办法
- 微信小程序 图片上传与内容安全审核
- 用HTML制作简单的个人介绍主页
- 迅雷播放器的在线智能字幕匹配下载的字幕文件在哪里?
- 一个命令就可启用的微信机器人WhoChat
- 压缩比13为什么建议用92的油_马自达为啥能在13:1高压缩比下仍然使用92汽油
- linux搭建音视频服务器,Linux平台部署音视频SDK实现即时通讯功能
- Google 2018年Android平台新政策,终于强硬了一回!