zoukankan      html  css  js  c++  java
  • 周博磊老师强化学习纲领笔记第一课:强化学习基础

    第一课:强化学习智能体的主要组成部分:

    • Policy:引导智能体如何选取动作
    • Value function:来判断每个状态或者动作的好坏
    • Model:智能体在环境中的状态表示

    Policy

    • 一个决策就是智能体选取动作的模型
    • 一个决策是一个映射函数,从状态、或者观测值到动作的映射
    • 随机决策:随机概率 (pi(a|s)=P[A_t=a|S_t=s])
    • 确定策略:(a^*=argmax_api(a|s))

    Value function

    • 价值函数:期望发现一个未来总收益的和是最大的(pi)策略
    • 即时收益,和未来总收益,折扣因子
    • (G_t=sum_{k=0}^{infty}gamma^kR_{t+k+1})(G_t)代表未来总收益
    • 用来量化状态和动作的好坏, (v_pi(s)=mathbb{E}_pi[G_t|S_t=s]=mathbb{E}_pi[sum_{k=0}^{infty}gamma^kR_{t+k+1}|S_t=s],\,for\, all \,sin S),在状态(s)下的总收益是(v_pi(s))
    • Q函数(用来在动作空间中选择动作),(q_pi(s,a)=mathbb{E}_pi[G_t|S_t=s,A_t=a]=mathbb{E}_pi[sum_{k=0}^{infty}gamma^kR_{t+k+1}|S_t=s,A_t=a]),在状态为(s),动作为(a)的时候价值是(q_pi(s,a))

    Model

    • 模型所要预测的就是环境接下来就怎么变化
    • 预测下一个状态:(P^a_{ss'}=mathbb{P}[S_{t+1}=s'|S_t=s,A_t=a]),在状态为(s)的时候采取动作(a),状态幻化成(s')的概率为(P^a_{ss'})
    • 预测下一个奖励回报:(R_s^a=mathbb{E}[R_{t+1}|S_t=s,A_t=a]),在状态为(s)的时候采取动作(a)的下一个奖励回报的值为(R_s^a)

    马尔可夫决策

    • (P^a)是每个动作的转换模型,(P(S_{t+1}=s'|S_t=s,A_t=a))
    • (R)是回报函数(R(S_t=s,A_t=a)=mathbb{E}[R_t|S_t=s,A_t=a])
    • 折扣因子(gamma in [0,1]),一般采用这几个折扣因子0.95, 0.98, 0.99, 0.995

    Value-based agent,Policy-based agent和Actor-Critic agent

    • Value-based agent:有明确的价值函数,没有决策函数,但是决策函数可以通过价值函数来得到
    • Policy-based agent:没有价值函数,只有决策函数
    • Actor-Critic agent:既有价值函数,又有决策函数

    Model-based和Model-free

    • Model-based:有明确的模型,也许有,也许没有价值和决策函数
    • Model-free:有价值函数或者决策函数,没有模型

    第二课:MDP:马尔可夫决策过程:

    为什么要用折扣因子(gamma)

    • 有些马尔可夫链是带环的,使用折扣因子是为了避免无穷的奖励
    • 将未来的不确定性能够表示出来
    • 对于一些有价值的奖励,希望能够即刻的得到奖励,而不是在以后得到奖励
    • 人的行为也是更喜欢得到即刻奖励
    • (gamma)设为0的话:只在乎即刻奖励,(gamma)设为1的话:未来奖励和即刻奖励权重相等。

    求价值函数的方法,迭代的方法,用来求解状态比较多的环境

    • 动态规划

    利用贝尔曼公式,(Q^π(s,a)=r+γQ^π(s′,π(s' ))) ,采用迭代的方法,逐渐的更新每个状态的价值,当价值变化不大的时候,就停止更新。

    • 蒙特卡洛随机采样

    例如求(V(s_4)),从(s_4)开始随机产生很多的轨迹,然后每个轨迹算得它的奖励,然后所有的奖励再取一个平均

    • 时序差分学习(动态规划+蒙特卡洛)

    Policy evaluation on MDP

    • 当我们给定好一个MDP的时候,我们有一个事先定义好的policy (pi),根据当前的这个policy (pi) 我们可以获得到多大的价值。

    • Bellman expectation backup :

      [v_{t+1}(s)=sum_{a in A}pi(a|s)[R(s,a)+gammasum_{s' in S}P(s'|s,a)v_t(s')] ag 1 ]

    当前状态(s)((t+1))步价值(通过迭代的方式不断地更新当前状态的价值,也就是从第(t)步价值来求得第((t+1))步的价值)就等于,在当前状态下,所有可能发生的动作(a),在当前状态(s)下执行动作(a)的概率乘当前状态(s)下执行动作(a)的回报(R(s,a)),再加上在当前状态(s)下执行动作(a)的概率乘衰减因子,再乘上在状态(s)下执行动作(a),到达状态(s')的概率,再乘上在状态(s')下的价值。

    • 马尔可夫奖励过程与马尔可夫决策过程的差别就是,马尔可夫奖励过程不考虑动作action,(MRP<S,P^{pi},R,gamma>)

    [v_{t+1}(s)=R^pi(s)+gamma P^pi(s'|s)v_t(s') ag 2 ]

    Improve a Policy through Policy Iteration

    • Iterate through the two steps:
      • Evaluate the policy (pi) (computing (v) given current (pi)),第一步:计算v函数,输入,环境,策略以及衰减因子,来计算这个策略的价值。
      • Improve the policy by acting greedily wirh respect to (v^pi),第二步:改进策略policy,通过对 (v^pi) (第一步通过(pi)求解出来的(v))采取贪心的算法,来改进策略policy。
    图片来自周博磊老师强化学习课程
  • 相关阅读:
    table问题
    生成跟相应qq聊天
    查数组 indexOf()用法
    Ajax请求数据的两种方式
    Ajax面试题
    内部类及静态内部类的实例化
    为什么在开发中大部分的时候都在用session而Application基本上都不去使用?
    Java序列化与反序列化
    Java反射机制
    Java中线程同步的方法
  • 原文地址:https://www.cnblogs.com/52dxer/p/14292655.html
Copyright © 2011-2022 走看看