6
$ \ begingroup $

我正在努力实施Q-Learning(基于国家的代表,没有神经/深的东西),但我很难让它学到任何东西。

我相信我的问题是探索函数和/或学习率。事情是,我在追随的来源中看到了不同的解释,所以我不确定什么是正确的方式了。

到目前为止,我理解的是Q-Learning是Q-Val迭代的TD。

所以有时间限制的Q-Val迭代步骤是:

q [k + 1](s,a)=σ(s'):t(s,a,s')* [r(s,a,s')+γ* max(a'):q [k](s',a')]

哪里:

Q = Q -table: state,action -> real t = MDP transition model r = MDP reward func γ = discount factor。

但由于这是一个无模型的,基于样本的设置,上面的更新步骤变成:

Q(s,a)= q(s,a)+α*(样本 -  q(s,a))

哪里:

样本= r + γ * max(a'):Q(s',a') r =奖励,也来自于在步骤s中采取行动a后来自于知觉者的下一个状态。

例如,假设以下MDP:

0 1 2 3 4 0 [10t] [s] [?] [?] [1t]折扣:0.1 |随机性:0 |t =终端(只有退出操作是可能的)s =开始

通过上述所有内容,我的Algo(在伪代码中)是:

输入:MDP,剧集,PERCEPT Q:S,A  - > Real初始化为所有A,Sα= .3对于所有剧集的初始化为0:s = mdp.start而s不是none:a = argmax(a):q(s,a)s',r = percept(s,a)样本= r +γ* max(a'):q(s',a')q(s,a)= q(s,a)+α* [样本 -  q(s,a)] s = s'

如上所述,算法将不会学习。因为它会很快得到贪婪。

它将从0,1开始,并选择到目前为止最好的操作。所有的q值都是0,所以它将根据q中存储的q值的任意顺序进行选择。假设选择“W”(向西)。它将走向0,0,奖励为0,q-val更新为0(因为我们还不知道0,0退出会产生10)

在下一步中,它将采取唯一可能的动作退出0,0并获得10。

此时Q-Table将是:

0,1,W:0 0,0,退出:3(通过学习率平均10的奖励.3)

并且这一集结束了,因为0,0是终端。在下一个剧集中,它将再次从0.1开始,并因为任意顺序再次拍摄。但现在0,1,W将更新至0.09。然后0,0,将再次拍摄退出(和0,0,退出更新为5.1)。然后第二集将结束。

此时Q-Table是:

0,1,W:0.09 0,0,退出:5.1

并且序列0,1,W-> 0,0,出口将被拍摄AD Infinitum。

所以这把我带到了学习率和勘探功能。

《人工智能:现代方法betway电竞》一书(3ed,罗素著)首先提到(第839-842页)探索函数作为val更新的内容(因为它讨论的是基于模型的价值迭代方法)。

因此,从本书中的Val更新讨论外推开,我假设Q-Val更新成为:

q(s,a)=σ(s'):t(s,a,s')* [r(s,a,s')+γ* max(a'):e(s',a')]

其中E将是一个探索功能,根据书籍可能是如下:

e(s,a)= 如果访问count(s,a)< else q(s,a)

作为人工抽取的想法,尚未尝试的行动vals,所以现在他们至少会尝试宣传时代。

但是,在Page 844本书显示Q-Learning的伪代码,而是在Q-Val更新中不使用此E,而是在动作选择的argmax中使用。我猜是有意义的?由于探索量来选择一个动作......

另一个资料来源是加州大学伯克利分校CS188讲座视频/讲稿。在这些(强化学习2:2016)中,他们显示了q-val更新步骤中的探索功能。这与我从书中关于值迭代方法的讨论中推断出的结果是一致的,但与书中展示的Q-Learning不一致(请记住,书中使用了argmax中的探索函数)。

我尝试在更新步骤中放置探索函数,操作选择步骤和同时在两者中。并且仍然是最终的贪婪和卡住。

所以不确定在哪里以及如何实施。

另一个问题是学习率。解释通常“你需要随时间减少它”。好的..但有一些启发式吗?现在,基于我在做的书:

学习(s,a)= 0.3 / visitcount(s,a)。但不知道是太多还是太少,或者刚刚好。

最后,假设我进行了探索并学习正确,我怎么知道要训练多少集呢?

我认为我必须保留2个版本的Q-Table并检查Q-Vals不会从以前的迭代换多少(类似于解决已知的MDP的价值迭代)。

\ endgroup美元
1
3.
$ \ begingroup $

你的主要问题是你需要分开驱动的东西行为政策从Q-table。

Q学习是一个违规算法。它最终学习的Q-table是为了最佳政策(也称为目标政策)。为了能够了解这一政策,代理需要探索。通常的方法是使代理人遵循不同的政策(称为行为政策)。为了高效学习,您通常需要行为政策与...类似目标政策。因此,从q表中驱动行为策略是很常见的,但不是绝对必要的。

您不需要探索功能,但它是驱动探索的一种好​​方法。

最简单的行为策略是完全随机的行为——忽略q表并随机选择操作。对于简单的玩具问题,这应该可以很好地工作。

一种更常见的方法是表现$ \ epsilon $- 繁茂地。对于一些概率$ \ epsilon $(如。$ \ epsilon = 0.1 $),随机行为。否则拿走Argmax$ q(s,a)$

探索功能方法与您到目前为止的探索方法类似,您刚刚缺少从Q表更新中的行为策略的分离。Q-Table Update忽略了探索功能,并最大化估计的下一个值:

$$ Q(s,a)= q(s,a)+ \ alpha(r + \ gamma \ text {max} _ {a'} q(s',a') - q(s,a))$$

通过使用探索功能可以决定选择要采取的实际接下来操作的行为策略:

$$ a'= \ text {argmax} _ {a'} e(s',a')$$

注意,在随机环境中(所选择的行动可能会随机导致多种不同的状态),你可以在没有任何单独行为策略的情况下脱身,并总是根据q表进行贪婪的操作。然而,这并不是一个通用的解决方案——这样的学习代理在确定性的环境中表现很差。

\ endgroup美元
2
  • 1
    $ \ begingroup $ 没错,我的探索功能是指从严格的e-greedy策略中“升级”(以便在学习到最优策略时减轻阵痛)。但我不明白为什么即使我只在动作选择(行为策略)中使用它也不会奏效。另外,我认为将其纳入更新步骤的想法是传播一种乐观主义,即不仅要对存在问题的国家进行探索,也要对通向那个国家的国家进行探索。至于区分行为和学习,难道不应该根据目前的研究结果来决定行为吗? \ endgroup美元- - - - - -SaldaVonSchwartz 2月16日18日10:12
  • 1
    $ \ begingroup $ @SaldaVonSchwartz:“我认为在更新步骤中插入它的想法是传播探索的乐观主义”——这与你所描述的功能类似,因为它在特定数量的行动之后就会中断。最终,由于学习速率固定,q表会忘记较大的乐观初始值。但实际上,这与开始时随机行为(例如100步),然后接近最佳状态是一样的。在探索功能耗尽之后,您仍然需要进行一些探索,因此需要一个非贪婪的操作选择。 \ endgroup美元- - - - - -尼尔斯拉特 2月16日18日10:47

你的答案

点击“发表您的答案”,即表示您同意我们的答案服务条款,隐私政策饼干的政策

不是你想要的答案?浏览其他标记的问题必威英雄联盟要么必威电竞问自己的问题