热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

强化学习(1):概述

一、强化学习描述1.算法定义强化学习算法是在不确定环境中,通过与环境的不断交互,来不断优化自身策略的算法。2.算法特点数据是序列分布而非独立同分

一、强化学习描述


1. 算法定义

强化学习算法是在不确定环境中,通过与环境的不断交互,来不断优化自身策略的算法。

2. 算法特点


  • 数据是序列分布而非独立同分布
  • agent的行为会影响后续的数据分布
  • 没有supervisor,仅仅是每幕最后的reword
  • 无法立即获得反馈,feedback是延迟的

整个过程是一个序列,比如金融投资,比如控制机器人移动等。整个决策序列最终是要实现综合的reward最大化。无法确定当前的每一步action,是否会在未来的某个时刻给你带来巨大的正向reward。在经过算法训练之后,可能出现牺牲当前的即时reward来谋取未来的长远reward.

强化学习问题定义在马尔可夫决策过程之上。一个MDP是<S,A,R,P,γ>的五元组。

关于马尔可夫决策模型&#xff0c;我们详细参见博客&#xff1a;link

3. 关于reward


特点


  • RtR_tRt是可以量化的回馈信号
  • 表示agent在该时刻动作的好坏
  • agent的任务是最大化累计reward

意义

整个强化学习的基础就是reward hypothesis

当前所有的强化学习研究目标&#xff0c;最终都可以用最大化期望累计reward来表示。

4. 关于state

在这里插入图片描述
agent依据当前环境的观测OtO_tOt &#43; 当前的rewardRtR_tRt&#xff0c;选择actionAtA_tAt去执行.

环境可以当作是互相博弈的另外一个agent&#xff0c;当AtA_tAt发生后&#xff0c;环境的state会变化&#xff0c;生成新的Ot&#43;1O_{t&#43;1}Ot&#43;1Rt&#43;1R_{t&#43;1}Rt&#43;1

state用来表示整个系统当前情况&#xff0c;包括过去发生的所有History&#xff0c;我们分别看下环境和agent的state变化。

对于一辆在路上行驶的车而言&#xff0c;在RL的世界&#xff0c;车本身属于agent&#xff0c;周围所有的其他车&#xff0c;人&#xff0c;建筑物都属于环境。

state通常可以用马尔可夫性进行处理。

4.1 environment state


  • 环境提供的observation与reward的信息的数据表示
  • 环境的state有时并不是agent可见的
  • 即使SteS_t^eSte对agent可见&#xff0c;其中也包含一些不相关或噪声信息

环境state没那么重要。相反&#xff0c;机器人本身观测到的环境状态才是最重要的。

4.2 agent state


  • StaS^a_tSta是agent内部状态的表示
  • agent选择用于action的信息
  • 用于强化学习算法的一些信息
  • 是基于历史information的一个函数 Sta&#61;f(Ht)S^a_t&#61;f(H_t)Sta&#61;f(Ht)

这个agent state才是最重要的。而且&#xff0c;我们到底如何model来实现最优的对环境state的表征&#xff0c;这件事情很难。也就是上述公式中的fff很难找到最好的符合agent需求的形式。

5. 关于观测


5.1 Fully Observable Environments

Ot&#61;Sta&#61;SteO_t&#61;S^a_t&#61;S^e_tOt&#61;Sta&#61;Ste

通常这是一个MDP的过程。如上说述&#xff0c;state的表征很重要&#xff0c;MDP在这里能够发挥巨大的作用。

5.2 Partially Observable Environments

ange必须自己构建属于自己的StaS^a_tSta&#xff0c;通常有如下的构建方法&#xff1a;

  • 直接用历史数据&#xff08;历史是已经发生的&#xff0c;是确定的&#xff09;&#xff1a; Sta&#61;Ht&#61;O1,R1,A1,...,At−1,Ot,RtS^a_t&#61;H_t &#61; O_1,R_1,A_1,...,A_{t-1},O_t,R_tSta&#61;Ht&#61;O1,R1,A1,...,At1,Ot,Rt
  • 使用环境的状态的置信度belief表示&#xff1a;Sta&#61;(P[Ste&#61;s1],...,P[Ste&#61;sn])S^a_t &#61; (P[S^e_t&#61;s^1],...,P[S^e_t&#61;s^n])Sta&#61;(P[Ste&#61;s1],...,P[Ste&#61;sn])
  • RNN网络&#xff1a; Sta&#61;σ(St−1aWs&#43;OtWo)S^a_t&#61;\sigma(S^a_{t-1}W_s&#43;O_tW_o)Sta&#61;σ(St1aWs&#43;OtWo)

二、强化学习中智能体的组成部分

第一部分的内容&#xff0c;我们还停留在强化学习的定义上。还在说明强化学习这个武器是怎样与现实生活中的应用场景进行配对的。这部分&#xff0c;我们来深入agent&#xff0c;思考面对建立好的强化学习&#xff0c;agent如何来解决问题。

Agent中可能有的三大组成部分&#xff1a;

  • Policy&#xff1a;智能体决策函数
  • Value Function&#xff1a;智能体action评价函数
  • Model&#xff1a;智能体对环境的建模

注意&#xff1a; 三个部分通常不是必须都要有。

1. policy

策略通常用π\piπ来表示&#xff0c;用来表征从state到action的函数映射

a&#61;π(s)a&#61;\pi(s)a&#61;π(s)

如果用概率语言来描述的话&#xff1a;
π(a∣s)&#61;p[At&#61;a∣St&#61;s]\pi(a|s)&#61;p[A_t&#61;a|S_t&#61;s]π(as)&#61;p[At&#61;aSt&#61;s]

2. Value Function

用于评价如果选择不同的action可能对应的不同state的好坏&#xff0c;从而依据状态来选择action. 本质上是在评价选取的策略的好坏。通过尽量把目光放长远来实现最优评价。

可以用如下公式描述&#xff1a;

vπ(s)&#61;Eπ[Rt&#43;1&#43;γRt&#43;2&#43;γ2Rt&#43;3&#43;...∣St&#61;s]v_{\pi}(s)&#61;E_{\pi}[R_{t&#43;1} &#43;\gamma R_{t&#43;2}&#43;\gamma ^2R_{t&#43;3}&#43;...|S_t&#61;s]vπ(s)&#61;Eπ[Rt&#43;1&#43;γRt&#43;2&#43;γ2Rt&#43;3&#43;...St&#61;s]

上述公式可以用文字表述&#xff1a;

基于当前状态StS_tSt&#xff0c;我们来判断如果选择policy π\piπ的话&#xff0c;可能获得的reward的总和。

具体的&#xff0c;我们可以将value function分别对应到state和action上&#xff0c;分别描述当前的state可能对应的value&#xff0c;以及具体采取某种action后对应的value.

需要注意的是&#xff0c;value function关注的总是future.

3. model

模型用来预测agent接下来的状态。其实就是对环境状态的观测StaS^a_tSta&#xff0c;它反映了从机器人视角出发的在进行action之后&#xff0c;env做出的回馈。用于机器人生成下一次的策略π\piπ

比如agent是飞机&#xff0c;model通过分析当前的飞机速度朝向&#xff0c;周围环境的风向等因素&#xff0c;判断下一时刻飞机可能的state.

PPP表示下一个机器人的状态&#xff1a;
Pss′a&#61;P[St&#43;1&#61;s′∣St&#61;s,At&#61;a]P^a_{ss&#39;}&#61;P[S_{t&#43;1}&#61;s&#39;|S_t&#61;s,A_t&#61;a]Pssa&#61;P[St&#43;1&#61;sSt&#61;s,At&#61;a]

R表示下一个状态的对应奖励
Rsa&#61;E[Rt&#43;1∣St&#61;s,At&#61;a]R^a_s&#61;E[R_{t&#43;1}|S_t&#61;s,A_t&#61;a]Rsa&#61;E[Rt&#43;1St&#61;s,At&#61;a]

三、强化学习的分类

第二节中&#xff0c;我们详细说明了agent可能有的三大模块&#xff1a;policy&#xff0c;value function&#xff0c;model

依据agent这三部分的有与无&#xff0c;我们可以将强化学习的各类方法做一些大致分类。

在这里插入图片描述

1. value or policy


  1. 基于value的RL
    表征agent内部state or action的value function.
    必须包含着value function&#xff0c;policy可有可无

  2. 基于policy的RL

  3. actor critic
    既有value 也有policy


2. model or model free

model free 表示我们并不是通过建立model来理解环境。而是直接建立policy或者value function来分析理解环境。

model based 的RL&#xff0c; 首先第一步需要建立对整个环境的model&#xff0c;用于说明环境的工作原理。

四、强化学习中的问题


1. learning and planning

在这里插入图片描述
learning问题&#xff0c;首先&#xff0c;在最开始的时候&#xff0c;环境对于agent而言是完全陌生的&#xff0c;agent需要不断与环境进行交互&#xff0c;不断了解、认识、与环境交互来提高policy的效果。

planning(规划)问题&#xff0c;环境的模型对agent是已知的&#xff0c;不变的。我们总是能准确get采取action后对应的环境状态&#xff0c;这其中就没有交互。就可以在第一步实现对整个全局的推演。

2. exploration vs exploitation

举例&#xff1a;

在这里插入图片描述
如何平衡EE是强化学习中的重要问题。

3. prediction and control

prediction&#xff1a;给出一个policy

control&#xff1a;在policy中寻找一个最优秀的

个人理解&#xff0c;control对应着value function&#xff0c;prediction对应着policy的生成。


推荐阅读
  • 获取计算机硬盘序列号的方法与实现
    本文介绍了如何通过编程方法获取计算机硬盘的唯一标识符(序列号),并提供了详细的代码示例和解释。此外,还涵盖了如何使用这些信息进行身份验证或注册保护。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
  • moment 国际化设置中文语言 (全局) 及使用示例 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 基因组浏览器中的Wig格式解析
    本文详细介绍了Wiggle(Wig)格式及其在基因组浏览器中的应用,涵盖variableStep和fixedStep两种主要格式的特点、适用场景及具体使用方法。同时,还提供了关于数据值和自定义参数的补充信息。 ... [详细]
author-avatar
请允许我的每一天有你_248
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有