其他分享
首页 > 其他分享> > RL | | Sliver Course

RL | | Sliver Course

作者:互联网

目录

1031 --- AlexNet

AlexNet-paper

网络:
image
summary : 信息的压缩

公开课

David深度强化学习算法学习

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

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

课件

0908 第三课---动态规划

辅助理解

代码理解

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

  1. edition_1---策略评估
  1. edition_2---价值迭代
    价值迭代和策略评估中贪心算法的区别:价值迭代缺少get_prob函数,只看到'Q值'最高的状态然后直接将其Value价值改变,而策略评估中贪心算法是将计算得到的'Q值'还要乘以分别对应的概率然后得出Value
  2. edition_3---策略迭代
    套壳策略评估的贪心算法

0911 第四课---model-free prediction

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

0912 Episode.2

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

分为两大部分

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

在这里插入图片描述

0912 model-free control

0913 On-policy MC control代码学习

第五课代码

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

epsilon = 1.0/(1 + 4 * math.log10(1+player.total_learning_times))
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
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的感想,

0922 PPO

书上没介绍,看看莫烦的

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