react如何获取option的下标和值_option 方法笔记3

原文 Between MDPs and semi-MDPs: A Framework for Temporal Abstraction in Reinforcement Learning - Sutton, Richard S. and Precup, Doina and Singh, Satinder

感觉基础不行,就拿这篇文章复习复习(水平有限,主要是翻译)

这篇论文太多了。老有种云里雾里的感觉,还是先看一下中文相关论文能更清楚其中的一些原理

主要idea

在SMDP的基础上,扩展了mdp中动作的概念,提出了option选项。本质上就是在一个连续的时间步上存在连续的动作。即所谓的时间抽象-option.

4. Interupting options

SMDP方法适用于选项,但只有当它们被视为不透明的不可分割的单元时才适用。更有趣和更强大的方法可以通过查看内部选项或改变它们的内部结构来实现,就像本文的其余部分所做的那样。在本节中,将迈出第一步,修改选项,使其更有用。可以根据SMDP分析选项,然后使用它们的mdp解释来更改它们并生成一个新的smdp。

特别是,在本节中,考虑在根据终止条件option自然终止之前中断option. 注意,将选项作为不可分割的单元来处理,就像SMDP方法一样,是不必要的限制。一旦选择了一个选项,这些方法就需要遵循它的策略,直到该选项终止为止。

假设时刻t正在执行选项o ,如果o是Markov,然后,可以继续与o,即

的值与中断o的值比较,并根据
选择一个新的选项,策略u满足

1cc2089eecfea7d694840383ecd2030f.png

如果中断的价值更高,那么允许中断并进行切换。

在下面的理论中,描述了一种新的行为方式,即遵循与原始策略

相同的策略
,但对新的一组选项;对于所有的s∈S,
。每个新选项O'都与相应的旧选项o相同,只是在切换比继续切换更好的时候,它就终止了。称u'为u 的 一个中断策略 。

Theorem2 (Interruption ) 对于任意MDP,任意options组O,任意markov策略

,定义一组新的选项,O',在这两个选项集之间进行一对一的映射,如下所示:每一个选项
,定义了一个对应的
,其中β'=β,但对于任何以状态s结尾且
的历史h,我们可以选择设置β'(h)=1。任何以这种方式改变终止条件的历史都称为中断历史。让中断的策略
使所有的s∈S,以及对于所有的O'∈O',u'(s,o')=u(s,o),其中o是与o'对应的O中的选项。然后:

(1)

(2)如果来自状态S,则在S中启动µ’时遇到中断的历史的概率为0,则

证明略

5. Intra-option model learning

在这一部分中,介绍了一种新的学习模型的方法。

给了option o 的经验和知识等。我们的方法要求策略
是确定性的,并且该选项是马尔可夫模型。对于半马尔可夫option,唯一的一般方法是在每个状态S中执行终止多次的选项,在每种情况下记录得到的下一个状态S’、累积的折扣奖励R和经过的时间K,然后对这些结果进行平均,以近似于(6)和(7)给出的
的期望值。例如,这方面的增量学习规则可以在每次执行o之后通过(16,17)更新其模型。

2268eecb68876f292d9bfe29c522d28f.png

对所有的

,其中,如果
,则
,反之为0,步长参数α可能是常数,也可能取决于状态、选项和时间。例如,如果α除以o在s中经历的次数,则这些更新将估计值作为经验结果的样本平均值保持不变。不管平均是如何完成的,我们称之为smdp模型学习方法,因为与smdp值学习方法一样,它们都是基于从启动到终止每个选项的跳跃,忽略了沿途发生的事情。在o是原始选项的特殊情况下,SMDP模型学习方法减少了用于学习常规单步模型的那些方法

SMDP模型学习方法的一个缺点是,只有当选项终止时,它们才会改进选项的模型。因此,它们不能用于不终止选项,一次只能应用于一个选项---一个正在执行的选项。对于马尔可夫选项,在选项终止之前,可以使用特殊的时差方法来了解选项的模型。我们将这些选项内的方法称为选项内的方法(intra option),因为它们从“在”选项中的一段经验中了解到了一个选项。选项内方法甚至可以用于在不执行该选项的情况下学习一个选项,只要做出与该选项一致的一些选择。选项内方法是离线策略学习方法的示例,因为他们了解一个策略的结果,而实际上是根据另一个策略进行操作的。内部选择方法可以用来同时从相同的经验中学习许多不同选项的模型。

正如存在值函数的Bellman方程一样,也有用于option模型的Bellman方程。考虑马尔可夫option模型o=(

)的intra option学习。o的正确模型与本身有关,如下:

87f9965c2255d7084691157e3ec42dab.png

如何将这些像Bellman一样的方程转化为学习模型的更新规则?首先,考虑到

是在
中采取的,它的选择方式与o=(
)是一致的,也就是说,
是用分布π(
,·)选择的。然后,上述Bellman方程提出了时间差异更新规则。

5779da473f0c263884e4e0ea0c8299ac.png

其中,

是的
的估计值,
是正的步长参数。我们调用一步内选项模型学习的方法将这些更新应用于与所采取的每个动作一致的每个选项。当然,这只是最简单的内部选项模型-学习方法.。另一些则可能使用资格跟踪和标准技巧来进行非策略学习。

6 Intra option value learning

现在来讨论option价值的intra-option 学习,以及option上的最优策略的学习。如果选项是半马尔可夫的,那么第3.2节中描述的SMDP方法也可能是唯一可行可行方法。在评估半马尔可夫option之前,必须先完成它。但是,如果选项是马尔可夫的,并且我们愿意查看它们的内部,那么我们可以考虑intra option的方法。就像模型学习一样,用于价值学习的选项内方法可能比SMDP方法更有效,因为它们从相同的经验中提取更多的训练样本。

例如,假设我们学习去逼近最优值函数

,并且o是markov的。基于选项o上从t到t+k 的执行,SMDP方法抽取了单个训练样例来达到最优值函数Q*。但是因为o是markov,在某种意义上,它也是在t和t+k之间的每一个步骤中启动的。从状态si到s_k+t的跳跃中的每个中间状态,也是o的有效经验,可以用来改进
的估计。或者,考虑一个与o非常相似的选项,它会选择相同的操作,但在一步后就会终止,在t+k+1而不是t+k。形式上,这是一种不同的选项,形式上它没有被执行,然而所有这些经验都可以用来学习与它相关的知识。事实上,一个选项通常可以从经验中学到一些东西,这些经验只与执行该选项所产生的内容略有关联(偶尔选择相同的操作)。这是off-polocy的理念---充分利用发生的任何经验,尽可能多地了解所有选项,而不论它们在产生经验方面所起的作用如何。为了更好地利用经验,我们希望有一些非政策和选项内的价值学习方法,比如q学习。

如果状态选项是马尔可夫的,并且在到达状态时执行,那么为状态选项对(state-option pair)的值引入新的符号是很方便的:

8c1e2fb7932abd892ce075e5f2e30843.png

然后,我们可以编写类似贝尔曼的方程,将

的期望值联系起来,其中s’是s的直接继承者,在启动马尔可夫选项
,在s中。(where s0 is the immediate successor to s after initiating Markov option o =(I, pi, beta)in s:)

421e662eca4b5967fec131127fd94944.png

其中,r是到达状态s'的立即奖励,现在考虑基于Bellman方程的学习方法,假设在状态

执行动作
到达新的状态
,并获得立即奖励
.选择
的方式与选项项
的马尔可夫策略π一致。然后,由上面的Bellman方程,我们可以应用off-policy一步时间差更新

90b22d359637e48af1329ad1073f9c63.png

我们称为一步intra-option q学习的方法将此更新规则应用于与所采取的每个操作(action)一致的每个选项o。注意,算法可能依赖于选项更新的顺序,因为在每次更新中,U (s, o)依赖于其他选项o'的Q(s, o)的当前值。如果option的策略是确定的,那么上面一致性的概念就很清楚了,对于这种情况,我们可以证明收敛性。对随机options的扩展是当前研究的一个课题

Theoerem3 (Convergence of intra-option Q-learning)) 。对于任意的markov选项集合

,有确定的策略,one-step intra-option Q-learning 依概率1收敛到最优Q值
。对于每个选项,不管在学习过程中执行了什么选项,只要每个操作在每个状态下都无限频繁地执行。

7. Subgoals for learning options

很自然地,可以将选项看作是实现某种子目标,并调整每个选项的策略以更好地实现其子目标。例如,如果选项任务是Open the door,然后,随着时间的推移,很自然地调整其政策,使其在开门方面更加有效和高效,这可能使其更普遍地发挥作用。有可能有许多这样的子目标,并使用一种off策略学习方法(如q学习)来独立地了解它们。在本节中,我们将在options框架中开发这个概念,并通过学习rooms示例中的走廊选项来说明它。我们假设已经给出了子目标,但是没有解决子目标来源的更大问题

制定选项子目标的一种简单方法是将终端子目标值g(S)分配给状态G⊆S的子集中的每个状态s。这些值表明了在G中的每个状态中终止选项的可取程度。例如在迷宫问题中,要学习房间任务中的走廊选项,可以为目标走廊分配的子目标值+1,而另一个走廊和房间外的所有状态都可能分配一个0的子目标值。

db5b9e0c74ef2dc45984b47c57504739.png

找到实现这些最大值的选项(子目标的最优选项)将是一个定义良好的子任务。对于马尔可夫选项,这个子任务具有Bellman方程和用于学习和规划的方法,就像在原始任务中一样。例如,用于更新

的估计值
的一步表式Q学习方法为:

4a58c16134260e72ec2227e492408b7d.png

8.conclusion

最后,虽然这篇论文强调了时间延伸的行为,但值得注意的是,这也可能意味着时间延伸的知觉。现在人们普遍认识到,行动与感知是密切相关的。看到房间里的物品,与其说是要给它们贴上标签或定位,不如说是要知道它们能提供什么样的行动机会:一扇门可以打开,一把椅子可以坐,一本书可以读,一个人可以聊天。如果将临时扩展的操作建模为选项,那么选项的模型可能很好地符合这些感知。假设一个机器人正在学习识别它的电池充电器。对它来说,最有用的概念是一组状态,它可以从这些状态成功地与充电器对接,这正是对接选项的模型将产生的结果。这些面向动作的概念很有吸引力,因为它们可以在没有外部监督的情况下由机器人进行测试和学习,正如在本文中所展示的那样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取option下标有多种方法,以下是其一种使用JavaScript的方法: 在HTML,我们可以使用`select`和`option`标签创建下拉列表,如下所示: ``` <select id="mySelect"> <option value="apple">Apple</option> <option value="orange">Orange</option> <option value="banana">Banana</option> </select> ``` 我们可以使用JavaScript来获取option下标: ``` var selectElement = document.getElementById("mySelect"); var selectedOptionIndex = selectElement.selectedIndex; var selectedOptionValue = selectElement.options[selectedOptionIndex].value; ``` 其,`selectedIndex`属性可以获取option下标,`options`属性可以获取所有的option元素,我们可以使用`selectedIndex`来获取option元素,然后再获取其`value`属性来获取。 另外,我们也可以使用jQuery来获取option下标: ``` var selectedOptionIndex = $("#mySelect").prop('selectedIndex'); var selectedOptionValue = $("#mySelect").val(); ``` 其,`prop`方法可以获取`selectedIndex`属性,`val`方法可以获取option。 还有一种方法是在`select`标签上添加`onchange`事件,当选option改变时触发该事件,然后在事件处理函数获取option下标: ``` <select id="mySelect" onchange="handleSelectChange()"> <option value="apple">Apple</option> <option value="orange">Orange</option> <option value="banana">Banana</option> </select> function handleSelectChange() { var selectElement = document.getElementById("mySelect"); var selectedOptionIndex = selectElement.selectedIndex; var selectedOptionValue = selectElement.options[selectedOptionIndex].value; } ``` 这种方法可以在选option改变时及时获取下标

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值