写点什么

如何高效保证强化学习过程中的安全性?

  • 2020-02-24
  • 本文字数:1763 字

    阅读完需:约 6 分钟

如何高效保证强化学习过程中的安全性?

本文介绍了高效保证强化学习过程中安全性的一种方法,将强化学习与控制屏障函数结合起来,从而求得安全的控制输入。

强化学习

强化学习(RL)是机器学习的一个子领域,代理通过与环境交互来学习,观察这些交互的结果并相应地获得奖励(正面或负面)。 这种学习方式模仿了我们人类学习的基本方式。



随着我们朝着通用人工智能(AGI)的方向发展,设计一个可以解决多个任务(即对图像进行分类,玩游戏等)的系统确实具有挑战性。当前的机器学习技术范围,无论是有监督的学习还是无监督的学习,都擅长随时处理一项任务,同时这也就限制了 AI 实现通用性的范围。


为了实现 AGI,RL 的目标是使代理执行许多不同类型的任务,而不是只专注于一项任务,这可以通过多任务学习和记忆学习来实现。


我们已经看到了 Google Deep Mind 在多任务学习方面的最新工作,在该工作中,代理可以学习识别数字并玩 Atari。但是,在扩展流程时,这确实是一项非常具有挑战性的任务,因为学习任务需要大量的训练时间和大量的迭代。


另一个挑战来自代理对环境的感知方式。在许多现实世界的任务中,代理没有观察整个环境的范围。这种局部观察使代理人不仅从当前的观察结果,而且从过去的观察结果中采取最佳行动。因此,记住过去的状态并对当前的观察采取最佳行动是 RL 成功解决现实问题的关键。


RL 代理总是从探索和开发中学习。RL 是一种基于反复试验的连续学习,代理试图在状态上应用不同的动作组合来获得最高的累积奖励。在现实世界中,探索几乎是不可能的。让我们考虑一个示例,在该示例中您希望使机器人学会在复杂的环境中导航以避免碰撞。随着机器人在环境中四处学习,它将探索新的状态并采取不同的动作进行导航。但是,在现实世界中采取最佳行动并不可行,因为在现实世界中,环境动态变化非常频繁,对于机器人来学习的代价是非常高昂的。


因此,为避免上述问题,在 RL 代理上应用了其他各种机制来使其学习。很少有人尝试在机器人上尝试通过模仿来模仿期望的行为来进行学习,通过演示进行学习以在模拟中学习环境。但是,这种学习变得非常针对环境。


在过去几年强化学习算法在模拟应用之外取得了很有限的成功,其中一个主要原因就是在学习过程中缺乏安全保证。


考虑由元组(S,A,f,g,d,r,ρ0,γ)定义的带有控制仿射,确定性动力学(处理机器人系统时的一个很好的假设)的无限水平马尔可夫(MDP)决策过程。 S 是一组状态,A 是一组动作,f:S→S 是名义上的未激励动力学,g:S→R^n,m 是名义上的激励动力学,d:S→S 是未知的系统动力学。 系统的时间演化由下式给出:


控制屏障函数(CBF)

考虑由连续微分函数 h : R^n -> n 定义的超水平集(安全集合)



为了在学习过程中保持安全,系统状态必须始终保持在安全集 C 内(即,集合 C 为正向不变) 。 例如,将操纵者保持在给定的工作空间内,或确保四轴飞行器避免障碍物。 本质上,学习算法应仅在集合 C 中学习/探索。


其中 h 函数就是控制屏障函数(control barrier funcations),C 就是安全集合。

通过控制屏障函数来补偿强化学习

通过控制屏障泛函的概念,我们很容易就发现,如果我们针对 MDP 采用 CBF 方法,我们就能得到满足安全要求的控制输入 u,正如下图所示:



无模型的 RL 控制器 u_RL 提出了一种试图优化长期奖励的控制措施,但可能并不安全。 在部署 RL 控制器 u_RL 之前,CBF 控制器 u_CBF 会过滤建议的控制措施,并提供所需的最小控制干预措施,以确保整个控制器 u3 将系统状态保持在安全范围内。本质上,CBF 控制器 u_CBF 将 RL 控制器 u_RL“投影”到安全策略集中。 在自动驾驶汽车的情况下,无论 RL 控制器建议采取何种行动,此行动都可能会在附近的汽车之间保持安全距离。


取决于 RL 控制的 CBF 控制器 u_CBF 由以下二次规划(QP)定义,可以在每个时间步上有效地对其进行求解:



直观地,RL 控制器提供了“前馈控制”,而 CBF 控制器则补偿了使安全设置向前不变所必需的最小控制。 如果不存在这样的控制(例如由于扭矩约束),则 CBF 控制器将提供使状态尽可能接近安全设定的控制。

小结

在无模型的 RL 框架中甚至添加了粗略的模型信息和 CBF,就能使我们能够在确保端到端安全的同时改善对无模型学习算法的探索。这一方法可以高效的保证强化学习过程中的安全性。


作者介绍:


刘文有,研究生在读,主要从事控制器相关理论与人工智能深度强化学习的结合方面的相关研究。


2020-02-24 11:582301
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 288.5 次阅读, 收获喜欢 1303 次。

关注

评论

发布
暂无评论
发现更多内容

LeetCode-144. 二叉树的前序遍历(java)

bug菌

Leet Code 7月月更

Vue 灰度发布新功能的那些事

南城FE

Vue 前端 灰度发布 7月月更

关于 Web Content-Security-Policy Directive 通过 meta 元素指定的一些测试用例

汪子熙

JavaScript 前端开发 CSP meta 7月月更

【Python技能树共建】动态渲染页面爬取

梦想橡皮擦

Python 7月月更

基于鲲鹏原生安全,打造安全可信的计算平台

极客天地

最佳实践 | 用腾讯云AI意愿核身为电话合规保驾护航

牵着蜗牛去散步

人工智能 腾讯云 腾讯 技术干货 电话合规

小程序目录结构

小恺

7月月更

为租客提供帮助

源字节1号

微信小程序 软件开发 前端开发 后端开发 租房小程序

系统入门-Linux系统基础命令

Albert Edison

7月月更

云计算安全扩展要求关注的安全目标和实现方式区分原则有哪些?

行云管家

云计算 等保 等保2.0 云计算安全扩展

千人规模互联网公司研发效能成功之路

laofo

互联网 DevOps 研发效能 工程效率

【玩转 RT-Thread】 RT-Thread Studio —— 按键控制电机正反转、蜂鸣器

攻城狮杰森

OS 7月月更 RT-Thread

java零基础入门-Java正则表达式

喵手

Java 7月月更

决策树算法

秃头小苏

决策树 7月月更

得物客服热线的演进之路

得物技术

大前端 客服

作战图鉴:12大场景详述容器安全建设要求

青藤云安全

网络安全 解决方案 容器安全

【堡垒机】云堡垒机和普通堡垒机的区别是什么?

行云管家

云计算 数据安全 堡垒机 云堡垒机 IT安全

盘点JS判断空对象的几大方法

猪痞恶霸

前端 js 7月月更

Scala 基础 (六):面向对象(下篇)

百思不得小赵

scala 大数据 7月月更

Python|正则表达式

AXYZdong

Python 7月月更

ORACLE进阶(五)SCHEMA解惑

No Silver Bullet

oracle schema 7月月更

重磅!海泰方圆工业强基智能网联汽车项目顺利通过验收

电子信息发烧客

Linux透明大页机制在云上大规模集群实践介绍

百度Geek说

Linux 运维 linux 文件权限控制

2022PAGC 金帆奖 | 融云荣膺「年度杰出产品技术服务商」

融云 RongCloud

交付效率提升52倍,运营效率提升10倍,看《金融云原生技术实践案例汇编》(附下载)

York

云原生 金融科技 金融行业

开发一个小程序商城需要多少钱?

CRMEB

wallys/Qualcomm IPQ8072A networking SBC supports dual 10GbE, WiFi 6

wallys-wifi6

IPQ8072 IPQ9072a

如何参与开源项目 - 细说 GitHub 上的 PR 全过程

胡说云原生

GitHub 开源 pull request DevStream

风靡B站的《看漫画学Python》到底是什么来头?

博文视点Broadview

社会责任·价值共创,中关村网络安全与信息化产业联盟对话网信企业家海泰方圆董事长姜海舟先生

电子信息发烧客

如何高效保证强化学习过程中的安全性?_AI&大模型_刘文有_InfoQ精选文章