zoukankan      html  css  js  c++  java
  • 强化学习 学习笔记

    参考:

    https://blog.csdn.net/aliceyangxi1987/article/details/73327378

    https://blog.csdn.net/coffee_cream/article/details/57085729

     一、强化学习及其与其他机器学习算法的区别

    机器学习算法可分为3种:

    (1)有监督学习;

    (2)无监督学习;

    (3)强化学习;

    强化学习的本质是解决decision making,即自动进行决策,并且可以做连续决策。

        它主要包含四个元素,agent,环境状态,行动,奖励。

    强化学习的目标就是获得最多的累计奖励。

    强化学习的特点是通过先尝试作出一些行为得到一个结果,通过这个结果是对还是错的反馈,调整之前的行为,这样不断的调整,算法能够学习到在什么环境下作出什么样的行动,这样的一连串行为可以累计得到最大的奖励。

    监督式学习学到的是输入跟输出的关系(即什么样的输入会得到什么样的输出);强化学习是让机器学会判断,即某种行为是对还是错。(可以理解为监督式学习让机器学会做任务,强化学习让它学会做判断,可以说是一种价值观或者是世界观的植入了)

    另外强化学习的结果反馈有延时,有时候需要走很多步以后才知道以前的某一步的选择是好还是坏,而监督学习做了比较坏的选择会立即反馈给算法。

    而且强化学习面对的输入总是在变化,每当算法作出一个行为,它影响下一次决策的输入,而监督学习的输入是独立同分布的。

    通过强化学习,一个 agent 可以在探索和开发(exploration and exploitation)之间做权衡,并且选择一个最大的回报。 

    exploration 会尝试很多不同的事情,看它们是否比以前尝试过的更好。 

    exploitation 会尝试过去经验中最有效的行为。

    一般的监督学习算法不考虑这种平衡,就只是是 exploitative。

    非监督式学习是利用相似性来学习,得到的结果是“理解”内容;而强化学习是通过 “尝试”<->“反馈”的模式来学习,得到的结果是“三观”的建立。

    总的来说,强化学习相比于监督和无监督来说,是一种更深层次的学习方式。

     其他许多机器学习方法都是在学习怎样做,而RL是在尝试的过程中学习在特定的情景下选择哪种行动可以得到最大的回报。在很多场景中,当前的行动不仅会影响当前的rewards,还会影响之后的状态和一系列的rewards。RL最重要的三个特征在于:

    (1)通常是一种闭环的形式;

    (2)不会直接指示选择哪种行动(actions);

    (3)一系列的actions和奖励信号(reward signals)都会影响之后较长的时间。

    RL 与有监督学习、无监督学习的比较:

    (1)有监督的学习是从一个已经标记的训练集中进行学习,训练集中每一个样本的特征可以视为是对该situation的描述,而其label可以视为是应该执行的正确的action,但是有监督的学习不能学习交互的情景,因为在交互的问题中获得期望行为的样例是非常不实际的,agent 只能从自己的经历(experience)中进行学习,而experience中采取的行为并不一定是最优的(因此监督学习没法得到一个最优的策略)。这时利用RL就非常合适,因为RL不是利用正确的行为来指导,而是利用已有的训练信息来对行为进行评价。

    (2)因为RL利用的并不是采取正确行动的experience,从这一点来看和无监督的学习确实有点像,但是还是不一样的,无监督的学习的目的可以说是从一堆未标记样本中发现隐藏的结构,而RL的目的是最大化 reward signal。

    (3)总的来说,RL与其他机器学习算法不同的地方在于:其中没有监督者,只有一个reward信号;反馈是延迟的,不是立即生成的;时间在RL中具有重要的意义;agent的行为会影响之后一系列的data。

    二、强化学习的特点及其包含的主要元素

      RL采用的是边获得样例边学习的方式,在获得样例之后更新自己的模型,利用当前的模型来指导下一步的行动,下一步的行动获得reward之后再更新模型,不断迭代重复直到模型收敛。这种“trial-and-error learning”的方式,最重要的一点就是 “探索”(exploration) 和”发现”(exploitation)。在RL中,如何权衡exploration 与exploitation是一个重要的问题和挑战。

      RL的另一个特点是它将agents和与其交互的不确定的环境视为是一个完整的问题。在RL问题中,有四个非常重要的概念:

    (1)规则(policy)

      Policy定义了agents在特定的时间特定的环境下的行为方式,可以视为是从环境状态到行为的映射,常用 π来表示。policy可以分为两类:

    确定性的policy(Deterministic policy): a=π(s)

    随机性的policy(Stochastic policy): π(a∣s)=P[At=a∣St=t]

     (2)奖励信号(a reward signal)

      Reward就是一个标量值,是每个time step中环境根据agent的行为返回给agent的信号,reward定义了在该情景下执行该行为的好坏,agent可以根据reward来调整自己的policy。常用R

    R来表示。

    (3)值函数(value function)

      Reward定义的是立即的收益,而value function定义的是长期的收益,它可以看作是累计的reward,常用v

    v来表示。

    (4)环境模型(a model of the environment)

    整个Agent和Environment交互的过程可以用下图来表示:

    三、强化学习的主要算法和分类:

    • Policy based,关注点是找到最优策略。
    • Value based,关注点是找到最优奖励总和。
    • Action based,关注点是每一步的最优行动。

     Q-learning

     Sarsa

     四、深度增强学习

    Actor-Critic框架

    DQN算法

  • 相关阅读:
    软件设计原则
    UML 类图
    Lambda 四大内置核心函数式接口
    Lambda 表达式简介
    vuex源码解析及简单实现
    websocket
    module.export / require 和 export / import
    关于form表单提交时required属性失效的问题
    更改mysql引擎后无法建立外键(navicat)
    关于Android studio SDK的安装与配置
  • 原文地址:https://www.cnblogs.com/zichun-zeng/p/9022067.html
Copyright © 2011-2022 走看看