Q-Learning详解

前言:
本文算是个人笔记,如有不足或需要讨论的,欢迎交流,邮箱即QQ。
有大佬知道如何搭网络的(如多少层和每层多少个神经元等参数怎么调),求请教。。

照例顶封面:


new2.jpg

强化学习简介:
image.png

Q-Learning是强化学习方法的一种。要使用这种方法必须了解Q-table(Q表)。
Q表是 状态-动作 与 估计的未来奖励 之间的映射表,如下图所示。(谁会做个好图的求教=-=)


image.png

纵坐标为状态,横坐标为动作,值为估计的未来奖励。
每次处于某一确定状态的时候,从表中查找此状态下最高未来奖励值的动作作为接下来的动作,若存在多个相同的值,则随机选择其中一个。一直重复,直到终点。

Q表的作用可看出是至关重要的。那么关键就在于如何获取一个可用的Q表。一般来说,我们的RL任务的模型都是未知的,不可以采用动态规划的方法。两种基本方法--蒙特卡洛(MC)和时间差分法(TD)。

蒙特卡洛(MC):
找了许多资料都没找到使用这方法的代码,所以只能从其定义出发说明是如何工作的。(有错误请指正)

  • 1:随机选取一个状态S开始游戏
  • 2:直到游戏终或者行动步数到达最大时,将获得的未来奖励(以目前表以及游戏每个状态本身的反馈奖励获得)。
  • 3:重复2步骤N次,所获得奖励的平均值为目前此状态S的新的未来奖励值(注意,可以使用目前平均值为新的值,直接覆盖旧的值。也可以新值与旧值加权求合)。对于(s,a)的未来奖励同理。
  • 4:重复1步骤,但要求每个状态s都能够被选到。
    很明显这要的时间相当多,所以这也应该是没人用他写代码的原因吧。

时间差分法(TD):
这个能做到每一步都更新一次,同时可以异步跟新(不用每次都要求所有状态更新一次来轮转,选到谁就更新谁,所以也要求每个状态都能够选到)。一般说的TD都指的是TD(0) (ps:为啥不叫TD(1)啊),即每次只往后看一步,这是什么意思呢,看了接下来的流程估计就懂了。(使用的都是(s,a)值)

  • 1:随机选取一个状态S开始游戏
  • 2:此s状态下选取a(根据贪婪 或者 ε-贪婪),并在动作a的状态下获得s‘,即下一状态。
  • 3:使用s状态下的反馈奖励以及s’的未来奖励更新s的未来奖励。(一般这两者与目前s状态的未来奖励加权求和)(ps: 这里就是sarsar与Qlearning的区别,s'是指s中通过策略抵达的下一状态,但此状态下也有许多的(s,a)值,该以哪个来更新呢?Qlearning中,选取最大的(s,a)为更新值。sarsar中,对所有(s,a)值求平均,作为更新值。这也是所谓的Qlearning高风险高收益,sarsar比较保守的原因。)
  • 4:重复1步骤,(但要求每个状态s都能够被选到。)
#Initialize table with all zeros
Q = np.zeros([env.observation_space.n,env.action_space.n])
# Set learning parameters
lr = .8
y = .95
num_episodes = 2000
#create lists to contain total rewards and steps per episode
#jList = []
rList = []
for i in range(num_episodes):
    #Reset environment and get first new observation
    s = env.reset()
    rAll = 0
    d = False
    j = 0
    #The Q-Table learning algorithm
    while j < 99:
        j+=1
        #Choose an action by greedily (with noise) picking from Q table
        a = np.argmax(Q[s,:] + np.random.randn(1,env.action_space.n)*(1./(i+1)))
        #Get new state and reward from environment
        s1,r,d,_ = env.step(a)
        #Update Q-Table with new knowledge
        Q[s,a] = Q[s,a] + lr*(r + y*np.max(Q[s1,:]) - Q[s,a])
        rAll += r
        s = s1
        if d == True:
            break
    #jList.append(j)
    rList.append(rAll)

这是网上找到的一个代码,每个episode运行99次动作,s最开始都是同一个地方,在这99次动作中,每次s产生的下个s1状态作为下一次的s,然后每次进行TD(0)更新。
注意,这里所用的是上面提到的TD(0),若想要TD(n) ,n>1,
(以上面代码为例)

  • 则应该在每次j下,还要添加n次循环,
  • n次循环的每一次都要用Q表选择a然后获得s‘,对每次获得的(s,a)加权求合,然后以此加权值更新当前的(s,a)。
  • 当然下一状态应该是第一次选a时所获得的状态s’。
    如果还是不懂的话,建议参考David Silver关于TD的那节(没记错的话是第五节的课)。或者是看An Introduction to RL - SuttonBook这本书中关于TD的部分。

目前为止,Qlearning所要讲的都讲完了,应该没有落下的。接下来就是DQN,将DQN必须要理解Qlearning以及神经网络的一些基本原理。

如果对你有帮助,请点个感谢,如果有问题,请私信。
照常:


微信图片_20190513121459.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271