ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RL | | Sliver Course

2021-11-22 14:35:52  阅读:223  来源: 互联网

标签:状态 max greedy --- Course Value epsilon RL Sliver


目录

1031 --- AlexNet

AlexNet-paper

网络:
image
summary : 信息的压缩

公开课

David深度强化学习算法学习

David Silver强化学习公开课中文讲解及实践

示例代码资源地址
或者
码云镜像

课件

0908 第三课---动态规划

辅助理解

代码理解

利用格子世界举例来描述DP

  1. edition_1---策略评估
  • 首先初始化状态/行为空间 以及Value值
  • 然后使用n次迭代计算来评估一个MDP在给定策略Pi(此时策略pi为平均策略--> 每个行为都需要尝试)下的状态价值,初始时价值为V
  • update_V:在每一次迭代的过程中进行Value值的更新(给定一个MDP和一个策略,更新该策略下的价值函数V)
  • compute_v:在所有的状态中进行遍历来执行compute_v函数 然后来进行每一个状态的Value的更改(给定MDP下依据某一策略Pi和当前状态价值函数V计算某状态s的价值)
  • 每个行为进行遍历,将 概率 和 计算当前行动和状态下的'Q值' 相乘 然后将所有行为进行完成后得到的v_s值相加 这样便得到了一个状态下所能得到的Value值
  • compute_q:计算当前行动和状态下的'Q值' 具体执行方式如下:遍历环境中所有下一步的状态,然后需要利用get_prob函数(其中通过dynamics函数来与状态交互,从而更新下一步行为将会去向哪里)来将行为和下一步的状态(s_prime)一一对应,从而准确的将每个向前看一步‘Q值’计算出来;然后将目前能得到的即时奖励和向前走一步的奖励(会带有折扣)相加,从而完成该状态的Value的更新,进而完成每一个迭代的更新。
  1. edition_2---价值迭代
    价值迭代和策略评估中贪心算法的区别:价值迭代缺少get_prob函数,只看到'Q值'最高的状态然后直接将其Value价值改变,而策略评估中贪心算法是将计算得到的'Q值'还要乘以分别对应的概率然后得出Value
  2. edition_3---策略迭代
    套壳策略评估的贪心算法

0911 第四课---model-free prediction

Q:MC不对自身进行循环?

0912 Episode.2

  • ...MC/TD/TD(\(lamda\))需要看代码理解
  • 下午阅读代码,怎么老看手机...

在这里插入图片描述
主要看的是MC对于BlackJack游戏的策略评估

分为两大部分

  1. 建立游戏环境---先不赘述
  2. 设计MC评估算法
    在每次游戏完成后取出每代和奖励值,然后在每代中更新 Ns (状态被访问的次数节点)和 V (状态价值)
    两者更新过程类似,先通过在字典中查询该状态量是否存在,如果不存在则先记为状态出现次数 / 该状态得分为0 / 0,如果存在则直接拿出来使用;然后对当前状态使用次数加1,再利用下述公式进行更新Value,最后得到Value值

在这里插入图片描述

  • 画图评估效果---

0912 model-free control

  • Forward View Sarsa(\(lamba\))
    ?: 对未来无限步进行预估 --> 指的是在一代中需要对某个状态对应的'Q值‘进行更新时,要利用之后走过的值 × 权重来更新
  • Backward View Sarsa(\(lamba\))
    想法 --> 找出频繁出现的有利步,消减出现少的'无用步',以此来更新eligibility traces
  • Sarsa(\(lamba\))相比于Sarsa在值的更新上更加迅速(更加快速的实现信息倒退)
  • 0913 六种方法的细分不能体会到

0913 On-policy MC control代码学习

第五课代码

在此部分主要学习同策略21点游戏的蒙特卡洛学习策略迭代

  • Q1:这一行\(epsilon\)的变化不太懂,可能跟策略梯度有关?
epsilon = 1.0/(1 + 4 * math.log10(1+player.total_learning_times))
  • Q2:\(epsilon\)探索代码概率设置也非常奇怪
def epsilon_greedy_pi(A, s, Q, a, epsilon = 0.1):
    m = len(A)
    # 利用greedy_pi()返回贪婪行动的概率
    greedy_p = greedy_pi(A, s, Q, a)
    #print("greedy prob:{}".format(greedy_p))
    # 如果没有比目前行动更优的选择,则进行epsilon探索
    if greedy_p == 0:
        return epsilon / m
    n = int(1.0/greedy_p)
    # greedy_p贪婪行动的概率 比如两个行动带来的Q一样大 那么采取哪个动作都是相同的概率
    return (1 - epsilon) * greedy_p + epsilon/m
  • Q3:通过最大的Q值选择最优策略 --> 最大Q值会增加被选中的概率
def greedy_pi(A, s, Q, a):
    '''依据贪婪选择,计算在行为空间A中,状态s下,a行为被贪婪选中的几率
    考虑多个行为的价值相同的情况
    '''
    #print("in greedy_pi: s={},a={}".format(s,a))
    max_q, a_max_q = -float('inf'), []
    for a_opt in A:# 统计后续状态的最大价值以及到达到达该状态的行为(可能不止一个)
        # 拿到Q值
        q = get_dict(Q, s, a_opt)
        #print("get q from dict Q:{}".format(q))
        if q > max_q:
            max_q = q
            # 最大的Q值对应最优的行为
            # 当刚开始一局时,此时先选择的是q=0,a_opt=A[0]
            a_max_q = [a_opt]
        elif q == max_q:
            #print("in greedy_pi: {} == {}".format(q,max_q))
            a_max_q.append(a_opt)
    n = len(a_max_q)
    if n == 0: return 0.0
    return 1.0/n if a in a_max_q else 0.0
  • 梳理一下该算法的过程:

建立游戏---MC玩家、庄家、casino设置,进行num局游戏

每局游戏中,为玩家庄家发牌,玩家庄家行为判定,进行奖励判定;同时每局游戏后将代数(包含s,a例如[('10_20_False', '继续叫牌'))奖励拿出送入Q表更新

其中玩家行为是体现控制的核心部分,由greedy_policy()实现-->通过对不同行为的选择概率利用先前的Q值进行改变,从而改变选择的行为

  • 画图算法---要再看一看

0915 gridworld---model-free control

建立地图--> 运行测试算法...(也没啥好写的,只有亿点点细节要注意...)

0918 跳级到Actor-Critic算法

David的课太长了...
在这里插入图片描述
需要先熟悉Actor-Critic的算法流程,因此找了莫烦文档莫烦视频来学习

看了一天代码...

TensorFlow的感想,

  • TensorFlow1.2.0/1.3.0的sess.run很有意思,竟然是执行该函数才会调用之前写好的函数语句,而且在Debug中不跳转,另外观察张量也不方便...有点抽象

0922 PPO

书上没介绍,看看莫烦的

标签:状态,max,greedy,---,Course,Value,epsilon,RL,Sliver
来源: https://www.cnblogs.com/Whatever-it-takes/p/15463363.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有