目录

  • 一、基本术语
  • 二、如何使用强化学习
  • 三、标准库-OpenAI Gym
  • 四、参考资料

一、基本术语

state:s,状态。

action:a,行为,比如游戏里的向上、向右,是随机的。为什么不是确定的?如果是在博弈背景下,确定性动作会让对手发现规律,而随机的动作才可能赢。

agent:动作是由谁做的,谁就是agent,比如自动驾驶里的汽车,游戏里的马里奥

policy: π \pi π,根据观测到的状态来决策,然后控制agent的运动。它是个概率密度函数,数学上的定义:在s状态下采取a动作的概率,


例如:

如果让policy函数来自动决策,那么它就是进行一个随机抽样,来决定下一步怎么走。强化学习,学的就是这个policy函数,只要学会了,就可以自动操作了。

reward:R,奖励,需要自己来定义。例如,游戏里根据不同目标的重要程度来确定不同状态得到的奖励的大小:

奖励定义的好坏会影响强化学习的结果。

state transition:状态转移,可以是确定的也可以是随机的,一般认为是随机的,其随机性来源于环境。可以用状态密度函数来表示:

环境可能会变化,在当前环境和行动下,衡量系统状态向某一个状态转移的概率是多少。注意环境的变化通常是未知的。

强化学习中的随机性

来源一:action,action是根据 π \pi π 函数随机抽样得到的,所以随机。

来源二:state transition,state transition是根据p函数随机抽样的,所以随机。

强化学习的生效过程

观测一个状态,学习 π \pi π 函数来控制agent,转移到另一个状态并获得奖励,循环……由此得到游戏的trajectory(轨迹):(状态,动作,奖励)

return

回报,又称cumulated future reward,定义为:

其中 R t R_t Rt​表示第t时刻的奖励。agent的目标就是让return最大化。

未来的奖励不如现在等值的奖励那么好(比如一年后给100块不如现在就给),所以 R t + 1 R_{t+1} Rt+1​的权重应该小于 R t R_t Rt​。因此,强化学习通常用discounted return(折扣回报,又称cumulative discounted future reward),取 γ \gamma γ 为discount rate(折扣率), γ ∈ ( 0 , 1 ] \gamma\in(0,1] γ∈(0,1],则有,

折扣率是一个超参数,需要自己来调(tuning hyper-parameter)。折扣率的设置对强化学习的效果有一定的影响。

return也有随机性。如果游戏已经结束了,那么r和u都用小写表示,如果还没结束,那么他们都是随机变量,用大写。随机性有两个来源,即action和state transition是随机的。

对于任意时刻 i ≥ t i\ge t i≥t ,奖励 R i R_i Ri​ 取决于 S i S_i Si​ 和 A i A_i Ai​ ,因此,$U_t $与未来所有时刻的状态和动作都有关,它的随机性由所有未来动作和状态的随机性构成。

action-value function

动作价值函数,action-value function for policy π \pi π。

在t时刻,我们并不知道 U t U_t Ut​ 等于多少,例如在t时刻硬币还没有抛,不可能知道它的结果。那如何评估当前的形势?用期望。

在求期望的时候, s t s_t st​和 a t a_t at​以后的状态和动作都被积分积掉了,只剩下 s t s_t st​和 a t a_t at​,它们被作为观测到的数值来对待,而不是作为随机变量。Q的值也和 π \pi π 有关:如果 π \pi π 不一样,积分的结果也不一样。

动作价值函数的意义:如果指定用 π \pi π 来做出决定,那么s状态下做动作a是好还是坏。它给所有的a打分,这样就能知道哪个动作好,哪个不好。

optimal action-value function

但是,在不同的 π \pi π 的作用下,打分结果不同。为了统一,先求出最好的 π \pi π ,最好的 π \pi π 是让 Q π Q_\pi Qπ​ 取最大值的 π \pi π:

这就是最优动作价值函数,它与 π \pi π 无关。也就是说,无论用什么样的 π \pi π ,也不会得到比它更好的结果了。

state-value function

状态价值函数,是对action-value function的期望:

它只与 π \pi π 和 s 有关,与a无关,可以用来评估当前的局面好不好。如果 π \pi π 是固定的, 那么s越大,局面越好。

V也可以用来评估 π \pi π 的好坏: π \pi π 越好,V的均值越大

二、如何使用强化学习

学到 π \pi π 函数:policy-based learning,根据输入 s t s_t st​,经过 π \pi π 对 a t a_t at​进行随机抽样,就可以控制了

或者学到Q函数:valued-based learnning,如果处在状态 s t s_t st​,可以用Q来评价每个a是好还是坏,找到最好的a

三、标准库-OpenAI Gym

A toolkit for developing and comparing reinforcement learning algorithms.

https://gym.openai.com/

设计好了一个算法,需要进行验证或者对比

在python里调用:(env为环境)

四、参考资料

深度强化学习(全)

强化学习:(一)基本概念相关推荐

  1. 重拾强化学习的核心概念_强化学习的核心概念

    重拾强化学习的核心概念 By Hannah Peterson and George Williams (gwilliams@gsitechnology.com) 汉娜·彼得森 ( Hannah Pet ...

  2. 强化学习入门系列一VS强化学习的基本概念

    文章目录 强化学习的基本概念 1. 强化学习的算法步骤: 2. 强化学习和其他机器学习范式的不同 3. 强化学习的要素 a. 智能体 b. 策略函数 c. 值函数 d. 模型 4. 强化学习的环境类型 ...

  3. 【深度强化学习】强化学习的基本概念

    文章目录 前言 第一章:强化学习的基本概念 学习--监督, 无监督与强化学习 强化学习的体系与联系 Reward 奖励 Agent Environment Actions Observation 马尔 ...

  4. 漫谈深度强化学习之基础概念

    漫谈深度强化学习之基础概念 原创:  张泽旺  深度学习每日摘要  2017-02-23 当下,深度强化学习(Deep Reinforcement Learning)的应用已经铺天盖地般出现了.为什么 ...

  5. 【强化学习】强化学习的基本概念与代码实现

    选自DeepLearning4j 机器之心编译 参与:Nurhachu Null.李泽南 从 AlphaGo 到自动驾驶汽车,我们能在很多最先进的人工智能应用中找到强化学习的身影.这种技术是如何从零开 ...

  6. 多智能体强化学习:基本概念,通信方式,IPPO,MADDPG

    1,基本概念 1.1,简介 单个RL智能体通过与外界的交互来学习知识,具体过程是根据当前环境的状态,智能体通过策略给出的动作来对环境进行响应,相应地,智能体会得到一个奖励值以反馈动作的好坏程度.RL最 ...

  7. 《强化学习》 基本概念和交叉熵方法

    基本概念 监督学习与强化学习 监督学习 强化学习 通过学习近似参考答案 通过试验和错误来学习最优策略 需要正确答案 代理的动作需要反馈 模型不影响输入数据 代理可以影响自己的观察 MDP形式定义 RL ...

  8. 强化学习Reinforcement Learning概念理解篇(一)

    在学习强化学习之前,应该对强化学习有一个大致的了解,即去分析一下强化学习的结构或者组成元素: 什么是强化学习?所谓强化学习,就是在与环境的互动当中,为了达到某一个目标而精心的学习过程,因此称之为Goa ...

  9. OpenAI Spinning Up强化学习笔记——关键概念与术语

    版权说明:此系列文章是博主对 OpenAI Spinning Up 内容的翻译和学习,虽然已经有很多人翻译过内容了,但还是自己写一遍更有收获,欢迎分享和讨论.   强化学习 (RL: Reinforc ...

  10. 【强化学习】从强化学习基础概念开始

    在开始探索强化学习的诸多算法之前,我们先来了解一下它所涉及到的具体概念.这些概念将作为基石,一直陪伴着我们的学习之旅.为了能够将这些概念熟记在心,我们这一期做成强化学习概念小卡片,一张一张给大家展示和 ...

最新文章

  1. Vue组件绑定自定义事件
  2. FPGA的设计艺术(18)如何使用Verilog中的数组对存储器进行建模?
  3. 使用maven一步一步构建spring mvc项目
  4. (转载)Google Analytics(Google分析)使用技巧
  5. c++ mysql 存储图片路径_3.用ADO实现图片在数据库中存储
  6. 使用OpenCV进行多边形绘制和填充
  7. linux学习134 unit6
  8. 鸡兔同笼:不用暴力也可以
  9. 关于vue脚手架cli3.0版本的一篇有关配置的文章,可以借鉴
  10. 为什么我偏爱用 GitHub 来写书?
  11. java比较两个类的值不相同_java 反射---------比较两个相同类型的对象相同属性的属性值是否相同的具体调用...
  12. unity3d 资源网站(持续更新中。。。)
  13. Python某地区二手房房价数据分析
  14. python程序设计基础与应用 机械工业出版社_Python程序设计——从编程基础到专业应用...
  15. gambit多面整合
  16. RS485转HART协议转换模块 MODBUS转HART转换器
  17. libpng的使用 | 在Linux系统下编译、安装与使用
  18. javah 找不到类文件的解决办法
  19. Struts2 框架项目新建教程(strut 2.5.20)(基于IDEA)
  20. Android攻城狮ScrollView

热门文章

  1. 笑脸墙之寻找笑脸活动剪影(Powered by Smilewall v1.0)
  2. bittorrent_Bittorrent的漩涡:使用Torrent托管网站
  3. topaz sharpen ai怎么设置为中文
  4. linux 内核开发huu红山竹发布于 2019-12-23linux的体系结构
  5. Policy Iteration与Value Iteration
  6. Siamese Network 相似度度量
  7. 拼多多跨境电商业务将登陆澳洲 已在北美地区推出Temu
  8. Python将Excel文件内容写入Word文件
  9. 返利网java面试_腾讯系统测试面试经验
  10. 各种视频转GIF动画方法