首页 > 其他 > 详细

Reinforcement Learning 笔记(1)

时间:2020-02-26 21:09:14      阅读:63      评论:0      收藏:0      [点我收藏+]

   研究生方向终于尘埃落定。开始学习RL,计划先看莫烦的视频教程,然后看silver的书。

  终究还是没能跑掉深度学习啊,但是能离开模拟电路已经是万幸力。

  基本上是相当于学习笔记。

  以上。

  莫烦RL教程:https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/

  首先讲解的是名为Q Learning的学习模式。请原谅我确实看了几遍视频也没弄明白意思。。。于是直接看后面的简单例子,才逐渐明白过来。

  在状态空间和行为模式都是离散且有限的情况下,QLearning将学习过程分为状态State 奖励Reward 行为Action几个部分,通过一张Qtable来选择action,通过之前的Qtable和Reward来更新Qtable

  直至Qtable达到某种最优。

  仍以2.1的简单例子为例:状态空间就是位置,从左到右为0~5,其中5为重点,到达即成功(学习终止)。行为包括【向左走,向右走】,在位置0向左走等于不走,在位置4向右走即成功,位置5实际上不包含行为。

  因此,实际上 只有在状态:“处于位置4”,且行为:“向右走”的情形下, 才会获得奖励。

  接下来是核心的学习过程:基本上就是把公式变成代码,

技术分享图片

 

 

 

 

q_predict = q_table.loc[S, A]

 

 

q_target = R + GAMMA * q_table.iloc[S_, :].max()

 

q_table.loc[S, A] += ALPHA * (q_target - q_predict) 

 

S = S_

 

  q_predict即是当前状态的权重值,q_target即是未来预期的权重值(由reward和下一状态的权重值求得),然后用q_predict和q_target对q_table内当前状态的权重值进行更新

  需要注意的是,仅有S_=terminate的时候,reward才为1,而q_table初始化为0,所以,实际上权重更新是从终点逐渐向起点推进的,在第一次乱撞得到reward之后,对位置4的权重更新,然后当S_=位置4时,对位置3进行权重更新,诸如此类。

 

    left     right
0 0.000000 0.004320
1 0.000000 0.025005
2 0.000030 0.111241
3 0.000000 0.368750
4 0.027621 0.745813
5 0.000000 0.000000

从最后的table来看,确实权重是从终点到起点逐渐减小的。

Reinforcement Learning 笔记(1)

原文:https://www.cnblogs.com/aitashi/p/12364709.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!