​​​​​目录

文章目录

前言

一、什么是强化学习?

二、强化学习的基本元素

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)算法相关推荐

  1. 强化学习RL学习笔记2-概述(2)

    强化学习笔记专栏传送 上一篇:强化学习RL学习笔记1-概述(1) 下一篇:强化学习RL学习笔记3-gym了解与coding实践 目录 强化学习笔记专栏传送 前言 Major Components of ...

  2. DRL:强化学习-Q-Learning算法

    文章目录 强化学习 Q-Learning算法 1. 问题及原因 2. Estimator原理与思想 (1)单估计器方法(Single Estimator) (2)双估计器方法(Double Estim ...

  3. 强化学习经典算法笔记(十九):无监督策略学习算法Diversity Is All You Need

    强化学习经典算法笔记19:无监督策略学习算法Diversity Is All You Need DIAYN核心要点 模型定义 目标函数的构造 DIAYN算法细节 目标函数的优化 SAC的训练 判别器的 ...

  4. 用强化学习DQN算法玩合成大西瓜游戏!(提供Keras版本和Paddlepaddle版本)

    本文禁止转载,违者必究! 用强化学习玩合成大西瓜 代码地址:https://github.com/Sharpiless/play-daxigua-using-Reinforcement-Learnin ...

  5. 强化学习—— TD算法(Sarsa算法+Q-learning算法)

    强化学习-- TD算法(Sarsa算法+Q-learning算法) 1. Sarsa算法 1.1 TD Target 1.2 表格形式的Sarsa算法 1.3 神经网络形式的Sarsa算法 2. Q- ...

  6. 深度强化学习-DDPG算法原理和实现

    全文共3077个字,8张图,预计阅读时间15分钟. 基于值的强化学习算法的基本思想是根据当前的状态,计算采取每个动作的价值,然后根据价值贪心的选择动作.如果我们省略中间的步骤,即直接根据当前的状态来选 ...

  7. 强化学习常用算法总结

    强化学习常用算法总结 本文为2020年6月参加的百度PaddlePaddle强化学习训练营总结 1. 表格型方法:Sarsa和Q-Learning算法 State-action-reward-stat ...

  8. 【人工智能II】实验2 强化学习Q-Learning算法

    强化学习Q-Learning算法 核心思想 实验原理 实验流程图 实验分析 理解Q-Learning算法 GYM库 更换实验环境 实验代码 Q-Learning: Sarsa代码 搞不懂我一个本科生为 ...

  9. 基于强化学习SAC_LSTM算法的机器人导航

    [前言]在人群之间导航的机器人通常使用避碰算法来实现安全高效的导航.针对人群中机器人的导航问题,本文采用强化学习SAC算法,并结合LSTM长短期记忆网络,提高移动机器人的导航性能.在我们的方法中,机器 ...

  10. 【强化学习PPO算法】

    强化学习PPO算法 一.PPO算法 二.伪代码 三.相关的简单理论 1.ratio 2.裁断 3.Advantage的计算 4.loss的计算 四.算法实现 五.效果 六.感悟   最近再改一个代码, ...

最新文章

  1. python note
  2. python 杀死一个线程
  3. 【worker】js中的多线程
  4. LeetCode之两数相加
  5. 《自然》公布2020科学界十大人物,李兰娟、张永振入选
  6. Flutter开发系列教程
  7. python如何读取文件数据恢复_删python目录
  8. 人工蜂群算法的最小搜索模型_【优化求解】人工蜂群ABC算法
  9. word 转 PDF时报错
  10. Macs Fan Control Pro for mac( 电脑风扇控制软件)v1.5.12中文激活版
  11. 你一定要收藏的全网最完整CAD快捷键大全!
  12. 马斯克:让我成功的其实是工程思维
  13. JavaScript:实现multiplesThreeAndFive三或五倍数的算法 (附完整源码)
  14. 算法--二分查找(python实现)
  15. 新晋流量操盘手(一行) 探索百度贴吧高阶引流玩法
  16. 时间、延迟以及延缓操作
  17. 小程序开发(适合初学者)
  18. 项目里用到的Jquery,json,struts2结合
  19. 知识管理从建立知识库做起
  20. Recovery for HD2 Recovery ROM卡刷 app2sd+ 教程

热门文章

  1. tRNAscan-SE使用说明
  2. Unity 激活许可证的时候出现 serial has reached the maximum number of activations提示
  3. Android 获取手机设备信息:名称、型号、系统版本号、厂商、设备制造商、SDK版本、系统语言等等
  4. Windows简单TCPIP服务
  5. [samtools] 文本查看语法,浏览SNP/INDEL位点
  6. 【数据仓库】数据仓库的介绍
  7. 短线王的盯盘宝怎么样_股票盯盘系统app怎么样
  8. 青云科技成为开源 GitOps 产业联盟会员
  9. yd什么意思_yd是什么意思是什么
  10. ECCV 2022 | MVDG:一种用于域泛化的统一多视图框架