强化学习(RL)算法
目录
文章目录
前言
一、什么是强化学习?
二、强化学习的基本元素
1.环境Environment
2.主体Agent
3.状态State
4.行动Action
5.收益Reward
三,RL算法的特点
1,试错学习
2,延迟回报
四,RL算法的分类
1,基于值的算法
1),状态价值函数V(s).
2)行为价值函数
2,基于策略的算法
Policy Gradient
3.Actor-Critic 框架
Based Actor-Critic
总结
前言
由于目前正跟着老师学习深度学习。为了能更好的梳理知识点,也为了与大家分享一下我对深度学习的理解,所以有了写文章的想法。
一、什么是强化学习?
强化学习: Reinforcement learning。它是机器学习的一个领域,不同于机器学习的是,强化学习更强调与环境交互,然后通过计算最大收益获得对应的最优的动作进行行动。强化学习还有一个特点,它是一个序列预测问题,也就是他是为了找出最优的一系列动作。而且因为每一个state需要在前一个action做出后才能得到,所以时间在强化学习中有很重要的意义。每一个action也会影响后边的决策
二、强化学习的基本元素
在强化学习中,环境(environment),主体(agent),状态(state),行动(action)和收益(reward)是我们经常会遇到,且必须掌握的概念。为了方便大家更好的理解它们,下边我以一款我自己写的小游戏为例来解释他们。
1.环境Environment
环境是一个外部系统,也就是我们所能看到的那个系统。用游戏来说就是屏幕(除去人物)。
2.主体Agent
主体是我们自己添加到环境中的系统。它是用来与环境交互,感知到环境的状态,然后基于这个状态做出一定的行动,从而改变环境的状态。在游戏中,他就是人物可莉,可莉经过目前屏幕的状态,做出一个动作(上下左右移动,甚至扔出炸弹),从而改变屏幕的状态。
3.状态State
状态是当前环境的一个时间切片。可以理解为,在时间维度上,环境就是由无数个不同时刻的状态组成的。在游戏中,它就是一张照片。如以上截图就为一个状态。
4.行动Action
行动是指主体做出的动作。在游戏中就是可莉上下左右移动或者扔炸弹。
5.收益Reward
收益是指环境对于主体当前的动作或者状态的一个奖励。它可以是全局收益,也可以是局部收益。全局收益就是整个流程下来的累计收益。局部收益就是在一定的范围内的收益。在游戏中,全局收益就是整局游戏结束时给的总分或者提示游戏结束(over 或 win),局部收益就是每一关通过时所获得的分数。
三,RL算法的特点
强化学习的特点主要有试错学习,延迟回报。
1,试错学习
与其他机器学习不同,强化学习没有监督者,他只有一个回报。没有人指引它应该怎么去学习,所以他只能不断与环境交互,不断做出动作,在巨大的试错基础上来获得最佳的策略(policy)
2,延迟回报
强化学习的反映是延迟的,因为他的指导信息很少,而且很多都是最后才给我们。比如在游戏中,我们可能不会实时给你得分,而是等游戏结束后才给你一个分数。
注:强化学习是一个序列预测问题,也就是他是为了找出最优的一系列动作。而且因为每一个state需要在前一个action做出后才能得到,所以时间在强化学习中有很重要的意义。每一个action也会影响后边的决策
四,RL算法的分类
强化学习的算法主要分为两大类: 基于值的算法(Value-Based) 和 基于策略的算法(Policy-Based)。我首先分别介绍一下基于值和基于策略的经典算法,然后介绍一个将基于值和基于策略的算法的优点结合起来的框架——Actor-Critic(AC)框架。在AC框架下进一步介绍目前学术界用得最多的几种强化学习算法。
1,基于值的算法
即通过价值选行为。基于值的算法主要需要用到,状态价值函数V(s)(State Value Function)和行为价值函数Q(s,a)(Quality of State-Action functuon).
1),状态价值函数V(s).
它的输入为一个状态,输出是一个预期的回报。公式如下:
其中π表示Agent选择Action的policy的概率分布,G0|S0=sG0|S0=s表示从状态s开始到G0状态整个序列。整个函数意思是,从状态s出发,使用策略π所带来的累积奖赏。也就是从s状态到游戏结束时能获得的分数
公式也可表示为:
其中,Rt表示t时刻的预期收益,γ表示折扣因子,且与当前状态越贴近的状态,其γ越大。
2)行为价值函数
行为价值函数,输入为(状态,动作),输出为该状态下使用该动作所获得的预期收益。公式为:
也就是这个函数实现的是,预测我们从状态s开始,并在s状态时使用动作a的情况下,到游戏结束时,我们能获得的预期收益。(也即是固定了s状态的动作a)
我们不难发现以上两个函数存在着这样的关系:
2,基于策略的算法
在基于策略的算法中,我们构建一个策略网络(Policy Network) PN:S→A,输入一个状态直接输出对应的Action,然后直接对这个策略网络进行更新,从而直接对策略选择建模。也就是:
它可以直接输出一个确定的动作,也可以输出动作的概率分布。并且对于|A|→∞,PN能够直接预测出Action。
Policy Gradient
它是基于策略的算法中最基础的一种算法。通过对收益期望求梯度,从而对Policy Network的参数进行更新。
它首先定义一个收益期望函数J(θ):
然后对其进行求导:
最终我们得到了一个漂亮的▽θJ(θ)的表达式,期望里面包括两个部分∑Tt=1▽θlogπθ(at|st)表示的是获取当前Trace的概率的梯度,∑t=1Tr(st,at)表示的是当前路径的总的回报。因为回报是一个总的回报,只能在一个轮次之后才能得到,所以Policy Gradient算法只能针对每一轮次更新,无法针对每个step更新。
3.Actor-Critic 框架
Based Actor-Critic
总结
以上的内容,只是对强化学习进行粗略的介绍。在接下来的文章中,我会对不同的算法进行详细的解读,并以实例辅助帮助大家理解。
强化学习(RL)算法相关推荐
- 强化学习RL学习笔记2-概述(2)
强化学习笔记专栏传送 上一篇:强化学习RL学习笔记1-概述(1) 下一篇:强化学习RL学习笔记3-gym了解与coding实践 目录 强化学习笔记专栏传送 前言 Major Components of ...
- DRL:强化学习-Q-Learning算法
文章目录 强化学习 Q-Learning算法 1. 问题及原因 2. Estimator原理与思想 (1)单估计器方法(Single Estimator) (2)双估计器方法(Double Estim ...
- 强化学习经典算法笔记(十九):无监督策略学习算法Diversity Is All You Need
强化学习经典算法笔记19:无监督策略学习算法Diversity Is All You Need DIAYN核心要点 模型定义 目标函数的构造 DIAYN算法细节 目标函数的优化 SAC的训练 判别器的 ...
- 用强化学习DQN算法玩合成大西瓜游戏!(提供Keras版本和Paddlepaddle版本)
本文禁止转载,违者必究! 用强化学习玩合成大西瓜 代码地址:https://github.com/Sharpiless/play-daxigua-using-Reinforcement-Learnin ...
- 强化学习—— TD算法(Sarsa算法+Q-learning算法)
强化学习-- TD算法(Sarsa算法+Q-learning算法) 1. Sarsa算法 1.1 TD Target 1.2 表格形式的Sarsa算法 1.3 神经网络形式的Sarsa算法 2. Q- ...
- 深度强化学习-DDPG算法原理和实现
全文共3077个字,8张图,预计阅读时间15分钟. 基于值的强化学习算法的基本思想是根据当前的状态,计算采取每个动作的价值,然后根据价值贪心的选择动作.如果我们省略中间的步骤,即直接根据当前的状态来选 ...
- 强化学习常用算法总结
强化学习常用算法总结 本文为2020年6月参加的百度PaddlePaddle强化学习训练营总结 1. 表格型方法:Sarsa和Q-Learning算法 State-action-reward-stat ...
- 【人工智能II】实验2 强化学习Q-Learning算法
强化学习Q-Learning算法 核心思想 实验原理 实验流程图 实验分析 理解Q-Learning算法 GYM库 更换实验环境 实验代码 Q-Learning: Sarsa代码 搞不懂我一个本科生为 ...
- 基于强化学习SAC_LSTM算法的机器人导航
[前言]在人群之间导航的机器人通常使用避碰算法来实现安全高效的导航.针对人群中机器人的导航问题,本文采用强化学习SAC算法,并结合LSTM长短期记忆网络,提高移动机器人的导航性能.在我们的方法中,机器 ...
- 【强化学习PPO算法】
强化学习PPO算法 一.PPO算法 二.伪代码 三.相关的简单理论 1.ratio 2.裁断 3.Advantage的计算 4.loss的计算 四.算法实现 五.效果 六.感悟 最近再改一个代码, ...
最新文章
- python note
- python 杀死一个线程
- 【worker】js中的多线程
- LeetCode之两数相加
- 《自然》公布2020科学界十大人物,李兰娟、张永振入选
- Flutter开发系列教程
- python如何读取文件数据恢复_删python目录
- 人工蜂群算法的最小搜索模型_【优化求解】人工蜂群ABC算法
- word 转 PDF时报错
- Macs Fan Control Pro for mac( 电脑风扇控制软件)v1.5.12中文激活版
- 你一定要收藏的全网最完整CAD快捷键大全!
- 马斯克:让我成功的其实是工程思维
- JavaScript:实现multiplesThreeAndFive三或五倍数的算法 (附完整源码)
- 算法--二分查找(python实现)
- 新晋流量操盘手(一行) 探索百度贴吧高阶引流玩法
- 时间、延迟以及延缓操作
- 小程序开发(适合初学者)
- 项目里用到的Jquery,json,struts2结合
- 知识管理从建立知识库做起
- Recovery for HD2 Recovery ROM卡刷 app2sd+ 教程
热门文章
- tRNAscan-SE使用说明
- Unity 激活许可证的时候出现 serial has reached the maximum number of activations提示
- Android 获取手机设备信息:名称、型号、系统版本号、厂商、设备制造商、SDK版本、系统语言等等
- Windows简单TCPIP服务
- [samtools] 文本查看语法,浏览SNP/INDEL位点
- 【数据仓库】数据仓库的介绍
- 短线王的盯盘宝怎么样_股票盯盘系统app怎么样
- 青云科技成为开源 GitOps 产业联盟会员
- yd什么意思_yd是什么意思是什么
- ECCV 2022 | MVDG:一种用于域泛化的统一多视图框架