前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Hierarchical RL】Options Framework(选项框架)

【Hierarchical RL】Options Framework(选项框架)

作者头像
不去幼儿园
发布于 2024-12-03 05:44:13
发布于 2024-12-03 05:44:13
13500
代码可运行
举报
文章被收录于专栏:强化学习专栏强化学习专栏
运行总次数:0
代码可运行

📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在👉强化学习专栏: 【强化学习】(31)---《Options Framework(选项框架)》

Options Framework(选项框架)

Options Framework(选项框架)是分层强化学习中的一种经典方法,旨在通过将动作抽象化为**选项(Options)**来简化复杂任务的学习过程。基于 Sutton 等人提出的选项框架(Options Framework),其中选项是从一个子任务执行到完成的高层决策链。高层决策什么时候调用特定选项,低层负责具体执行选项的策略。

选项框架允许智能体在多个时间步内选择并执行较高级别的策略,而不仅仅是在每个时间步选择单个动作。通过这种方式,智能体可以更好地解决长时间跨度的任务,并且可以复用已学习的子任务。

上图是文献中所用的环境(和下面代码的环境不同),房间的例子是一个网格世界环境,具有随机的cell到cell的动作和房间到房间的走廊选项。


1. 选项框架的核心思想

选项框架的核心思想是将动作抽象为选项,每个选项可以在多个时间步内控制代理的行为。每个选项由以下三个元素定义:

  • 初始条件(Initiation Set, I):选项能够被执行的状态集合,即哪些状态可以启动该选项。
  • 策略(Policy,

:选项内部的策略,定义了当选项被激活时在每个时间步中执行的具体动作。

  • 终止条件(Termination Condition,

:一个概率函数,定义了选项在每个时间步结束时是否终止。

通过这种分层结构,选项可以看作是一个高层次的操作,它包含了在多个时间步内执行的动作序列。这为复杂任务的分解和任务复用提供了可能。


2. 选项的定义

在选项框架中,**选项(Option)**是一个包含了多个步骤的决策单位。具体来说,选项可以通过以下三元组来定义:

其中:

:表示初始条件,定义在哪些状态下可以激活该选项。

:是选项的内部策略,它决定了在执行选项时,代理在每个时间步采取的具体动作。

:终止条件,表示选项在某个状态下结束的概率,即该选项是否会继续执行。


3. 选项框架的工作机制

选项框架的工作机制包括选项的选择、执行以及终止:

  1. 选项选择:在每个时间步,代理可以选择执行一个选项。选项的选择策略可以基于高层策略(也称为元策略)。
  2. 选项执行:一旦选项被选择,代理将根据该选项的内部策略

选择并执行具体的动作,直到该选项被终止。

  1. 选项终止:选项根据其终止条件

确定是否在当前状态结束。如果选项结束,代理将返回到元策略,选择下一个选项。如果选项没有结束,代理继续使用选项的内部策略。


4. 选项框架中的策略

在选项框架中,强化学习的策略分为两个层次:

  • 元策略(Meta-Policy):负责在不同的状态下选择合适的选项。元策略的作用是高层次的决策,它将复杂任务分解为一系列的子任务(选项)。
  • 选项策略(Option Policy, (\pi_o)):在选项被激活时,选项策略负责在每个时间步内选择具体的动作,直到选项终止。

元策略和选项策略通常使用不同的学习算法。例如,元策略可以通过Q-learning学习,而选项策略可以通过Actor-Critic方法来优化。


5. 选项框架的关键公式

选项框架中的值函数可以通过拓展标准强化学习的值函数来定义。选项的 Q 值函数表示为:

其中:

(s)
(s)

是当前状态。

(o)
(o)

是选择的选项。

(r(s_t, a_t))
(r(s_t, a_t))

是在时间步

(t)
(t)

执行动作后的即时奖励。

(\gamma)
(\gamma)

是折扣因子。

选项框架中的Bellman方程为:

其中,

(\tau)
(\tau)

表示选项执行的时间步数,

(s')
(s')

是选项结束后的状态,

(o')
(o')

是下一个选项。


6. 选项框架的学习方法

选项框架的学习主要包括以下两部分:

  1. 学习元策略:元策略的学习通常通过 Q-learning 或其他强化学习算法来完成,目标是最大化长时间跨度内的累积奖励。元策略学习的是如何选择最优的选项。
  2. 学习选项策略:每个选项的内部策略通过子任务的奖励信号来学习。可以使用 Q-learning、Actor-Critic 或其他强化学习算法来更新每个选项的策略。

[Python] Options Framework实现

分层强化学习的 Options Framework 是一种增强型方法,通过将动作空间划分为“选项”(options),从而在强化学习过程中实现分层控制。下面是一个简单的 Options Framework 实现,应用于经典的 CartPole 环境。

实现步骤:
  1. 创建选项:我们将定义一组选项(例如:向左、向右等),每个选项包含自己的策略和终止条件。
  2. 管理器:高层策略选择器,用于在当前状态下选择一个选项。
  3. 执行选项:一旦选定选项,就在其策略指导下进行一段时间的控制,直到满足选项的终止条件或达到最大时间步。
  4. 强化学习算法:选项和管理器都可以通过 Q-learning 或 Actor-Critic 等强化学习算法进行训练。

🔥若是下面代码复现困难或者有问题,欢迎评论区留言;需要以整个项目形式的代码,请在评论区留下您的邮箱📌,以便于及时分享给您(私信难以及时回复)。

算法训练阶段

只进行训练逻辑,无动画显示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"""《Options Framework实现项目》
    时间:2024.10
    环境:CartPole
    作者:不去幼儿园
"""
import gym
import numpy as np
import torch
import torch.nn as nn
import torch.optim as optim
import time

# 环境设置
env = gym.make('CartPole-v1')
state_dim = env.observation_space.shape[0]
action_dim = env.action_space.n

# 高层策略网络
class ManagerNet(nn.Module):
    def __init__(self, state_dim, option_dim):
        super(ManagerNet, self).__init__()
        self.fc = nn.Sequential(
            nn.Linear(state_dim, 128),
            nn.ReLU(),
            nn.Linear(128, option_dim)
        )

    def forward(self, state):
        return self.fc(state)

# 选项策略网络
class OptionNet(nn.Module):
    def __init__(self, state_dim, action_dim):
        super(OptionNet, self).__init__()
        self.fc = nn.Sequential(
            nn.Linear(state_dim, 128),
            nn.ReLU(),
            nn.Linear(128, action_dim)
        )

    def forward(self, state):
        return self.fc(state)

# 选项类定义
class Option:
    def __init__(self, policy_net, termination_net):
        self.policy_net = policy_net
        self.termination_net = termination_net

    def select_action(self, state):
        state = torch.FloatTensor(state).unsqueeze(0)
        action_probs = self.policy_net(state)
        action = torch.argmax(action_probs).item()
        return action

    def should_terminate(self, state):
        state = torch.FloatTensor(state).unsqueeze(0)
        termination_prob = self.termination_net(state)
        return termination_prob.item() > 0.5

# 初始化管理器和选项
option_dim = 2  # 两个选项,分别对应左右
options = [Option(OptionNet(state_dim, action_dim), OptionNet(state_dim, 1)) for _ in range(option_dim)]
manager_net = ManagerNet(state_dim, option_dim)
manager_optimizer = optim.Adam(manager_net.parameters(), lr=0.001)

# 训练
def train_options_framework(env, num_episodes=1000):
    for episode in range(num_episodes):
        state, _ = env.reset()
        total_reward = 0
        option = np.random.choice(len(options))  # 随机选择一个选项

        for t in range(200):  # 每个episode最多执行200步
            # 选择高层选项
            state_tensor = torch.FloatTensor(state).unsqueeze(0)
            option_probs = manager_net(state_tensor)
            option = torch.argmax(option_probs).item()

            # 执行选项的策略
            action = options[option].select_action(state)
            next_state, reward, done, _, _ = env.step(action)
            total_reward += reward

            # 检查选项终止条件
            if options[option].should_terminate(next_state) or done:
                option = np.random.choice(len(options))  # 重新选择选项

            state = next_state

            if done:
                break

        print(f'Episode {episode}: Total Reward: {total_reward}')


# 开始训练
print("Starting training...")
train_options_framework(env, num_episodes=100)
算法测试阶段

通过调用 env.render() 显示动画,并在测试时使用模型进行推理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 测试函数(带动画显示)
def test_options_framework_with_render(env, num_episodes=5):
    for episode in range(num_episodes):
        state, _ = env.reset()
        total_reward = 0
        option = np.random.choice(len(options))  # 随机选择一个选项

        for t in range(200):  # 每个episode最多执行200步
            env.render()  # 显示动画

            # 选择高层选项
            state_tensor = torch.FloatTensor(state).unsqueeze(0)
            option_probs = manager_net(state_tensor)
            option = torch.argmax(option_probs).item()

            # 执行选项的策略
            action = options[option].select_action(state)
            next_state, reward, done, _, _ = env.step(action)
            total_reward += reward

            # 检查选项终止条件
            if options[option].should_terminate(next_state) or done:
                option = np.random.choice(len(options))  # 重新选择选项

            state = next_state

            if done:
                break

        print(f'Test Episode {episode}: Total Reward: {total_reward}')
        time.sleep(0.01)  # 控制动画播放速度

    env.close()  # 关闭环境


# 测试阶段(显示动画)
print("Starting testing with render...")
env = gym.make('CartPole-v1', render_mode="human")
test_options_framework_with_render(env, num_episodes=5)

[Notice] 代码说明:

  1. ManagerNet:高层策略网络,用于在当前状态下选择一个选项。
  2. OptionNet:每个选项的策略网络,用于选择动作。
  3. Option类:定义了选项的策略(select_action)和终止条件(should_terminate)。
  4. 训练逻辑:在每个episode中,管理器会选择一个选项,然后选项控制动作,直到它的终止条件触发或episode结束。

由于博文主要为了介绍相关算法的原理应用的方法,缺乏对于实际效果的关注,算法可能在上述环境中的效果不佳,一是算法不适配上述环境,二是算法未调参和优化,三是等等。上述代码用于了解和学习算法足够了,但若是想直接将上面代码应用于实际项目中,还需要进行修改。


7. 选项框架的优点与挑战

(1) 优点
  • 处理长时间跨度任务:选项允许代理跨多个时间步执行策略,使其特别适合处理需要长时间规划的任务。
  • 任务分解与复用:选项框架可以将复杂任务分解为可复用的子任务,减少了学习的难度,并提高了任务完成效率。
  • 灵活性:选项框架允许在分层结构中灵活地定义不同时间尺度的子任务,适用于多种任务场景。
(2) 挑战
  • 选项设计:如何设计有效的选项(包括初始条件、策略和终止条件)是一个关键问题。如果选项设计不合理,可能导致低效或无效的学习过程。
  • 选项的自动化发现:在一些复杂任务中,如何自动发现并学习有用的选项仍然是一个具有挑战性的问题。

8. 选项框架的应用场景

选项框架广泛应用于需要长时间规划和任务分解的场景,包括:

  • 机器人控制:例如,机器人导航和机械臂操作可以通过将任务分解为选项来解决复杂的操作问题。
  • 策略游戏:选项框架可以用于分解复杂的游戏策略,例如在棋类游戏或实时策略游戏中分解长期规划。
  • 多步骤规划任务:例如物流、资源分配、路径规划等任务,选项框架可以帮助代理通过分解和复用子任务来实现复杂目标。
相关文献:

Options Framework 是由 Richard S. Sutton 等人在以下论文中提出的:

Sutton, Richard S., Precup, Doina, and Singh, Satinder. "Between MDPs and semi-MDPs: A framework for temporal abstraction in reinforcement learning." Artificial Intelligence 112.1-2 (1999): 181-211.

🔥想了解更多分层强化学习的文章,请查看文章: 【RL Latest Tech】分层强化学习(Hierarchical RL)

文章若有不当和不正确之处,还望理解与指出。由于部分文字、图片等来源于互联网,无法核实真实出处,如涉及相关争议,请联系博主删除。如有错误、疑问和侵权,欢迎评论留言联系作者

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
图说人工智能简史,每一张图片都是一个里程碑
在人类文明的漫长历程中,对于智慧的追求从未停歇。自古代哲学家对逻辑和推理的探索,到20世纪计算机科学的诞生,我们见证了人工智能(Artificial Intelligence, AI)从概念的萌芽到技术的蓬勃发展。人工智能,作为计算机科学的一个分支,其核心目标是模拟人类思维,赋予机器学习、推理乃至创造的能力。AI大眼萌将带大家回顾人工智能发展的各个阶段。
AI大眼萌
2025/01/27
6.4K1
图说人工智能简史,每一张图片都是一个里程碑
入门必读!写给初学者的人工智能简史!
人们在关注AI,企业在拥抱AI,资本在追逐AI。凡是和AI有关的概念,都会吸引大量的目光。
鲜枣课堂
2024/07/25
1.1K0
入门必读!写给初学者的人工智能简史!
AI人工智能的发展史
艾伦·图灵(Alan Turing),被誉为人工智能之父,是英国的数学家、逻辑学家、密码学家和计算机科学家。他在第二次世界大战期间对盟军破译德军密码做出了巨大贡献,研制了破译专用的电子管计算机“巨工”。图灵在1950年提出了著名的图灵测试,通过“问”与“答”模式,观察者通过打字机与两个试验对象通话,其中一个是人,另一个是机器,以此来判断机器是否具备智能。
用户11026630
2024/09/19
7916
LLM大语言模型原理、发展历程、训练方法、应用场景和未来趋势
LLM,全称Large Language Model,即大型语言模型。LLM是一种强大的人工智能算法,它通过训练大量文本数据,学习语言的语法、语义和上下文信息,从而能够对自然语言文本进行建模。这种模型在自然语言处理(NLP)领域具有广泛的应用,包括文本生成、文本分类、机器翻译、情感分析等。本文将详细介绍LLM大语言模型的原理、发展历程、训练方法、应用场景和未来趋势。
正在走向自律
2024/12/18
1.6K0
LLM大语言模型原理、发展历程、训练方法、应用场景和未来趋势
​从 ChatGPT 到 Sora | 生成式人工智能如何改变数字人文研究和服务 ?
作为历史文化遗产的重要组成部分,古籍资源是中华民族宝贵的精神财富,也是优秀传统文化的必要载体(张,2022),其中蕴含着丰富的哲学思想、文化精髓和历史信息。古籍的研究与保护对于中华文化的传承、文化自信的提升以及传统文化的宝藏挖掘具有重大意义。然而,由于年代和保存条件的限制,古籍保护面临着许多困难。古籍的物质损害是不可避免的,且难以保护古籍的原貌和原创性。作为一种再生的保护措施,数字古物出版可以再现古物的精神内容,并通过社会出版传播古物。
AIGC 先锋科技
2024/07/08
3640
​从 ChatGPT 到 Sora | 生成式人工智能如何改变数字人文研究和服务 ?
宗成庆:人类语言技术展望
摘要 机器翻译伴随着世界上第一台计算机的诞生而出现,随后成为人工智能领域最具挑战性的研究课题之一。70 多年来,以机器翻译、人机对话系统、文本自动分类、自动文摘和信息抽取等为代表性应用的人类语言技术所走过的曲折发展历程,从不同的侧面折射出人工智能领域的荣禄兴衰。本文在简要回顾人类语言技术发展历程的基础上,重点介绍当前该技术面临的主要挑战和研究现状,并对未来发展的趋势进行展望。 关键词
马上科普尚尚
2020/05/11
1.1K0
未来十年:人工智能的巨大飞跃与挑战
在未来十年,人工智能技术预计将迎来巨大飞跃,引领着各行各业的革命性变革。从更智能的自动化系统到高度个性化的服务,人工智能将为我们带来前所未有的便利与创新。然而,伴随着这些进步,我们也将面临着诸多挑战,如隐私保护、失业风险等。在探索人工智能的未来应用的同时,我们必须谨慎思考如何平衡发展与社会利益,以确保人工智能的持续健康发展。
默 语
2024/11/20
1210
未来十年:人工智能的巨大飞跃与挑战
【机器学习】探索未来科技的前沿:人工智能、机器学习与大模型
随着科技的不断进步,人工智能(AI)、机器学习(ML)和大模型(Large Models)成为了现代计算机科学领域的核心技术。它们不仅推动了科学研究的进步,也在多个行业中掀起了革命性的变革。从自动驾驶汽车到智能语音助手,再到精准医疗和金融预测,这些技术的应用已经深入到我们日常生活的方方面面。本文将深入探讨这三大技术的基本概念、历史发展、实现原理及其在实际生活中的应用,旨在为读者提供一个全面而深入的了解。
E绵绵
2024/06/01
8790
GPT-5:人工智能的新篇章,未来已来
在21世纪的黎明,人工智能(AI)已经从科幻小说的幻想变成了现实世界的一部分。随着技术的不断进步,AI正以前所未有的速度重塑我们的生活和工作方式。如今,我们站在了一个新时代的门槛上,一个由GPT-5引领的时代。
正在走向自律
2024/12/18
1840
GPT-5:人工智能的新篇章,未来已来
面向初学者的人工智能教程(1)--人工智能简介
我认为学习AI除了实践外,其理论基础也非常重要,微软最近推出了一门12周,24课的非常系统的、面向初学者的人工智能课程,不过课程是全英文的,我用GPT4将文字翻译成中文,分享给大家。
成江东
2023/06/13
1K0
面向初学者的人工智能教程(1)--人工智能简介
斯坦福教授曼宁AAAS特刊发文:大模型已成突破,展望通用人工智能
机器之心报道 编辑:泽南、小舟 NLP 正在推动人工智能进入激动人心的新时代。 当前人工智能领域热度最高的方向就是预训练大模型了,很多人相信,这项研究已在通用人工智能领域初显成效。 自然语言处理领域著名学者,斯坦福大学教授克里斯托弗 · 曼宁(Christopher Manning)近期在美国人文与科学学院(AAAS)期刊的 AI & Society 特刊上发表了题为《Human Language Understanding & Reasoning》的文章,探讨了语义、语言理解的本质,展望了大模型的未来。
机器之心
2022/05/05
4380
斯坦福教授曼宁AAAS特刊发文:大模型已成突破,展望通用人工智能
人工智能论文解读(三)
下面带领大家了解一下人工智能大模型方面的论文,为给大家普及大模型知识,特意读了几篇论文,从论文中提取出来分享给大家。
摆烂小白敲代码
2025/01/26
940
AIGC:人工智能生成内容的未来
AIGC的影响正在渗透到多个领域,包括但不限于内容创作、娱乐、教育、广告和营销。它不仅提高了生产效率,还推动了个性化创作和多样化表达的可能性。然而,随着AIGC技术的发展,我们也需要面对内容原创性、版权、伦理等一系列新问题。
用户11286421
2024/11/21
2630
【人工智能】推理大模型与预训练大模型:架构差异与认知范式的技术解构
在大模型领域中预训练大模型与推理优化大模型代表着两种截然不同的认知范式。本文将从预训练大模型和推理大模型的发展之路开始,从表征学习、计算图优化、任务泛化三个维度展开技术剖析,说明二者在模型动力学层面的本质差异。
云帆沧海
2025/04/23
1420
人工智能|初探定义、分类以及未来思考
人工智能(Artificial Intelligence,简称AI)是一门研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的新技术科学。1955年8月31日“人工智能”一词是由美国科学家约翰·麦卡锡(达特茅斯学院)、马文·明斯基(哈佛大学)、纳撒尼尔·罗切斯特(IBM)和克劳德·香农(贝尔电话实验室)提交的“为期2个月、10人的人工智能研究”提案中创造的。一年后,在1956年7月和8月举行的研讨会通常被认为是这一新领域的正式诞生日。
六月暴雪飞梨花
2024/12/09
2.2K2
人工智能|初探定义、分类以及未来思考
人工智能的发展历程和当前状态,全面认识大语言模型的发展之路
截至 2023 年 11 月,人类创造的人工智能工具已经取得了长足的进步,在自然语言处理、机器翻译、问答系统等领域取得了显著成果。当前走到了大语言模型阶段。
LIYI
2023/12/04
3K0
人工智能的发展历程和当前状态,全面认识大语言模型的发展之路
《探秘人工智能:从基础到未来变革》
在当今科技飞速发展的时代,人工智能(AI)无疑是最具影响力和变革性的技术之一。从手机里智能语音助手到自动驾驶汽车,从智能医疗诊断到智能金融服务,人工智能已经渗透到我们生活和工作的方方面面,悄然改变着世界的面貌。
程序员阿伟
2025/01/27
1660
几经沉浮,人工智能(AI)前路何方?
如同蒸汽时代的蒸汽机、电气时代的发电机、信息时代的计算机和互联网,人工智能(AI)正赋能各个产业,推动着人类进入智能时代。
算法进阶
2022/06/01
1.1K0
几经沉浮,人工智能(AI)前路何方?
从数学神经元到硅基文明:人工智能进化史诗
当GPT-4在律师考试中超越90%人类考生时,我们突然意识到:图灵在1950年提出的"模仿游戏",早已从哲学思辨演变为文明级的技术革命。这场以二进制代码重塑碳基智慧认知体系的征程,正以无法想象的速度改写人类文明的定义边界。
AI.NET 极客圈
2025/03/20
1150
从数学神经元到硅基文明:人工智能进化史诗
通用人工智能(AGI):定义、挑战与未来展望
通用人工智能(Artificial General Intelligence, AGI)是人工智能领域的终极目标,代表着一种能够执行人类所有智力任务的系统。与当前的任务导向型人工智能(Artificial Narrow Intelligence, ANI)不同,AGI具备跨领域学习、自我适应和抽象推理的能力,标志着智能系统从“专才”向“通才”的转变。本文将深入探讨AGI的定义、实现挑战、与超级智能(Artificial Superintelligence, ASI)的关系,以及其对未来的潜在影响。
码事漫谈
2025/03/11
4530
通用人工智能(AGI):定义、挑战与未来展望
推荐阅读
相关推荐
图说人工智能简史,每一张图片都是一个里程碑
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验