强化学习:(一)基本概念
目录
- 一、基本术语
- 二、如何使用强化学习
- 三、标准库-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为环境)
四、参考资料
深度强化学习(全)
强化学习:(一)基本概念相关推荐
- 重拾强化学习的核心概念_强化学习的核心概念
重拾强化学习的核心概念 By Hannah Peterson and George Williams (gwilliams@gsitechnology.com) 汉娜·彼得森 ( Hannah Pet ...
- 强化学习入门系列一VS强化学习的基本概念
文章目录 强化学习的基本概念 1. 强化学习的算法步骤: 2. 强化学习和其他机器学习范式的不同 3. 强化学习的要素 a. 智能体 b. 策略函数 c. 值函数 d. 模型 4. 强化学习的环境类型 ...
- 【深度强化学习】强化学习的基本概念
文章目录 前言 第一章:强化学习的基本概念 学习--监督, 无监督与强化学习 强化学习的体系与联系 Reward 奖励 Agent Environment Actions Observation 马尔 ...
- 漫谈深度强化学习之基础概念
漫谈深度强化学习之基础概念 原创: 张泽旺 深度学习每日摘要 2017-02-23 当下,深度强化学习(Deep Reinforcement Learning)的应用已经铺天盖地般出现了.为什么 ...
- 【强化学习】强化学习的基本概念与代码实现
选自DeepLearning4j 机器之心编译 参与:Nurhachu Null.李泽南 从 AlphaGo 到自动驾驶汽车,我们能在很多最先进的人工智能应用中找到强化学习的身影.这种技术是如何从零开 ...
- 多智能体强化学习:基本概念,通信方式,IPPO,MADDPG
1,基本概念 1.1,简介 单个RL智能体通过与外界的交互来学习知识,具体过程是根据当前环境的状态,智能体通过策略给出的动作来对环境进行响应,相应地,智能体会得到一个奖励值以反馈动作的好坏程度.RL最 ...
- 《强化学习》 基本概念和交叉熵方法
基本概念 监督学习与强化学习 监督学习 强化学习 通过学习近似参考答案 通过试验和错误来学习最优策略 需要正确答案 代理的动作需要反馈 模型不影响输入数据 代理可以影响自己的观察 MDP形式定义 RL ...
- 强化学习Reinforcement Learning概念理解篇(一)
在学习强化学习之前,应该对强化学习有一个大致的了解,即去分析一下强化学习的结构或者组成元素: 什么是强化学习?所谓强化学习,就是在与环境的互动当中,为了达到某一个目标而精心的学习过程,因此称之为Goa ...
- OpenAI Spinning Up强化学习笔记——关键概念与术语
版权说明:此系列文章是博主对 OpenAI Spinning Up 内容的翻译和学习,虽然已经有很多人翻译过内容了,但还是自己写一遍更有收获,欢迎分享和讨论. 强化学习 (RL: Reinforc ...
- 【强化学习】从强化学习基础概念开始
在开始探索强化学习的诸多算法之前,我们先来了解一下它所涉及到的具体概念.这些概念将作为基石,一直陪伴着我们的学习之旅.为了能够将这些概念熟记在心,我们这一期做成强化学习概念小卡片,一张一张给大家展示和 ...
最新文章
- Vue组件绑定自定义事件
- FPGA的设计艺术(18)如何使用Verilog中的数组对存储器进行建模?
- 使用maven一步一步构建spring mvc项目
- (转载)Google Analytics(Google分析)使用技巧
- c++ mysql 存储图片路径_3.用ADO实现图片在数据库中存储
- 使用OpenCV进行多边形绘制和填充
- linux学习134 unit6
- 鸡兔同笼:不用暴力也可以
- 关于vue脚手架cli3.0版本的一篇有关配置的文章,可以借鉴
- 为什么我偏爱用 GitHub 来写书?
- java比较两个类的值不相同_java 反射---------比较两个相同类型的对象相同属性的属性值是否相同的具体调用...
- unity3d 资源网站(持续更新中。。。)
- Python某地区二手房房价数据分析
- python程序设计基础与应用 机械工业出版社_Python程序设计——从编程基础到专业应用...
- gambit多面整合
- RS485转HART协议转换模块 MODBUS转HART转换器
- libpng的使用 | 在Linux系统下编译、安装与使用
- javah 找不到类文件的解决办法
- Struts2 框架项目新建教程(strut 2.5.20)(基于IDEA)
- Android攻城狮ScrollView
热门文章
- 笑脸墙之寻找笑脸活动剪影(Powered by Smilewall v1.0)
- bittorrent_Bittorrent的漩涡:使用Torrent托管网站
- topaz sharpen ai怎么设置为中文
- linux 内核开发huu红山竹发布于 2019-12-23linux的体系结构
- Policy Iteration与Value Iteration
- Siamese Network 相似度度量
- 拼多多跨境电商业务将登陆澳洲 已在北美地区推出Temu
- Python将Excel文件内容写入Word文件
- 返利网java面试_腾讯系统测试面试经验
- 各种视频转GIF动画方法