1. 为什么要做这件事
在人类环境中感知和操纵3D物体是一个非常有挑战性的任务,同时可以应用于一些家庭助理机器人上。
以往的方法大部分都是提取运动结构(估计关节参数和部件姿态)这种视觉上的表达来操纵3D物体。大概意思就是通过观察物体(视觉信息),从中预测出关节和部件姿态。
2. 做了件什么事
设计了一个为感知而交互的框架VAT-MART。使用好奇心驱使的强化学习模块来探索不同的交互轨迹,同时还有一个总结和概括所探索知识的感知模块,以便在不同的shape之间进行逐点预测。
3. 简介
在铰接物体的感知和操纵方面,计算机视觉和机器人领域都有所学习。
从感知的角度来看,研究者研究了各种各样的视觉方法来估计运动学结构、部件姿态、关节参数。接着在操纵方面,机器人使用估计的视觉铰接模型来规划运动策略以完成交互。感知和操纵被分为两个模块,在两个模块上聚集了视觉和机器人方面最先进的技术。
目前大家对铰接物体操纵相关的工作更多的在于研究视觉铰接模型上,但作者认为这并不是最好的选择。因为对于机器人操纵任务至关重要的几何和语义特征(交互热点,如边、洞;部件功能性,如把手、门)都在视觉铰接模型预测的运动学结构这种canonical的表达中被抽象掉了。
本文提出了一种新的可操作的视觉表达,即训练一个感知系统来预测3D铰接物体上的可操纵概率和视觉运动策略启发。通过得到带有逐点信息的、统一的Affordance map,得到在不同操作设定下都能够使用的一种启发吧,Affordance map不考虑机械臂设定、机器人位置、场景上下文等等一系列的因素,只表示铰接物体点云逐点的可交互概率等与交互有关的信息。
当有了这个Affordance map后,机器人想要完成操纵任务,就可以在给定的视觉运动策略分布组成的空间中去搜索可用的交互模式(如抓取、推动等),而不是在一个非常大的解空间内搜索,这里的意思是本文的工作有利于帮助缩小操纵任务的解空间。
为了获得这种想要的可操纵的视觉先验,文章设计了一种用于感知的交互学习框架VAT-MART。我的理解是整个pipeline由一个强化学习驱动的策略生成网络和一个用于概括从策略中概括策略知识的感知网络组成。通过对一系列铰接物体进行试错学习,使用强化学习来学到多种操纵任务下的正确的交互策略(如,将门打开到30度、将抽屉关闭0.1个单位长度)等。同时,感知网络会概括强化学习中了解到的相同或不同shapes的点上的跨域的知识。为了让感知网络进一步理解不同的交互策略,这里利用之前工作提到的好奇心驱动学习策略来学习感知网络,从而反向影响强化学习的策略。
核心贡献:
- 提出了一个用于感知的交互框架VAT-MART,使用探索性强化学习和感知网络来学习可操纵的视觉先验,这种视觉先验进一步在3D铰接物体的感知-交互的gap上搭建了桥梁。
4. Related Work
感知和操纵3D铰接物体
感知:之前的工作大部分都是通过视觉特征提取器、运动分割预测器、概率估计器的训练来获得精确的关节姿态、关节参数、运动学结构甚至是铰接物体的动态系统。
操纵:通过预测铰接部件配置、参数和状态,通过这些学习到的视觉知识来操纵3D铰接物体。
这些做法大部分都是通过关节姿态、关节参数、运动学结构来表示视觉信息,但是这样子的表示在遇到一些具有部件几何的多样性的铰接物体(比如抽屉的把手可能是圆的也有可能是条状,比如水龙头可能通过旋钮打开也可能通过上下抬起放下的方式打开)时,是不足以被下游机器人操纵任务应用的。
学习可操纵的视觉表达
可操纵的视觉表达对于下游的机器人操纵任务是十分有意义的,它能够直接指示机器人执行动作的动作概率。与预测标准的视觉语义(如类别标签、分割mask、物体姿态)不同,这种可操纵的视觉表达通常是独立于特定的机器人操作任务的。
抓取或操纵的affordance是一种主要类型的视觉表达,类似的视觉表达还有空间图,特征点,连接点等。论文的工作follow了Where2Act,使用affordance map作为可操纵的视觉表达,在这种表达中给出了3D铰接物体中每个点的建议操纵概率。同时改进了Where2Act中不以任务为驱动、只考虑短时性操纵的缺点,使用任务感知的分布作为策略启示来增强逐点运动预测,进一步更好地为下游操纵提供可操纵的信息。
从交互中学习感知
从交互中学习,允许代理在任务执行过程中不断收集在线活动数据样本来实现已有数据的增强,在导航、识别、分割和操纵任务中已经可以看出其惊人的学习效果,这种在交互过程中不断收集数据的做法会能够感知人物并且能够实现更高效地学习。还有很多任务证明了学习感知过程中模拟交互的实用性,并认为这种不断收集活动数据样本更有利于将模型泛化到真实世界中。论文的方法follow了这种搜集方式,来从交互中(通过使用强化学习交互策略来找到一些可操纵的策略,用于监督感知网络的学习)训练感知系统,同时感知系统反向影响了好奇心驱使(大概是一个奖励函数之类的)进而鼓励强化学习策略探索更多样化的动作启发。
5. 可操纵的视觉先验:操纵Affordance和策略启发
提出了一个新的可操纵的视觉表达用于3D铰接物体的操纵。对于每个铰接物体学习一个以物体为核心的可操纵视觉先验。
这个先验由以下部分组成:
- 一个在铰接物体部件上表示可操纵性的map,用于指示哪些地方可以交互;
- 逐点的视觉可操纵性策略启发,启发如何去做交互;
- 第2点提到的策略交互成功的概率,对交互的结果进行评级。
所有的预测都是以交互为条件(推、拉)的、任务感知的(打开门到30度,关闭抽屉0.1个单位长度等)
将上述的话转化成具体的符号表示:
具体地,给定一个具有铰接部件 P = { P 1 , P 2 , … } \mathcal{P}=\{P_1,P_2,…\} P={P1,P2,…}的铰接物体 O O O,交互类型 T T T,操纵任务 θ \theta θ,训练感知系统在铰接部件 p ∈ ∪ P p∈\cup\mathcal{P} p∈∪P上做逐点的密集预测:
- 可操纵性分数 a p ∣ O , T , θ ∈ [ 0 , 1 ] a_{p|O,T,\theta}∈[0,1] ap∣O,T,θ∈[0,1],指示在点 p p p处存在能完成任务 θ \theta θ的运动轨迹、且运动轨迹符合交互类型 T T T的置信分数多少;
- 视觉运动策略分布 P p ( ⋅ ∣ O , T , θ ) \mathbb{P}_p(·|O,T,\theta) Pp(⋅∣O,T,θ),从中可以采样出多个符合交互类型 T T T,且能够在点 p p p上完成任务 θ \theta θ的操纵策略 τ p ∣ O , T , θ ∼ P p ( ⋅ ∣ O , T , θ ) \tau_{p|O,T,\theta}\sim\mathbb{P}_p(·|O,T,\theta) τp∣O,T,θ∼Pp(⋅∣O,T,θ);
- 第2点中提到的每一种操纵策略成功的概率分数 r τ ∣ O , p , T , θ ∈ [ 0 , 1 ] r_{\tau|O,p,T,\theta}∈[0,1] rτ∣O,p,T,θ∈[0,1]。
问题的输入:
铰接物体 O O O以 部分点云 S O S_O SO的形式表示。
论文主要考虑了推、拉两种典型的 交互类型 :
-
推的策略保持紧闭的抓手,执行6-DoF的运动;
-
拉的策略首先在交互点的位置做一个抓取的动作,当gripper抓住并关闭到初始的状态后,在拉的过程中执行相同的6-DoF运动。
论文只考虑1-DoF的部件铰接,从而限制了 任务范围 θ ∈ R \theta∈\mathbb{R} θ∈R。这里的1-DoF铰接主要指的是像橱柜抽屉的1-DoF平移关节运动、冰箱门的1-DoF旋转关节运动。也就是说不考虑又能旋转又能平移的关节(类似于如瓶盖的操作就比较复杂)。
以弧度为单位表示旋转铰接角度数 θ ∈ [ − π , π ] \theta∈[-\pi, \pi] θ∈[−π,π];使用单位长度表示平移关节移动的相对长度 θ ∈ [ − 1 , 1 ] \theta∈[-1,1] θ∈[−1,1]。
问题的输出:
输出 可操纵性分数 a p ∣ O , T , θ a_{p|O,T,\theta} ap∣O,T,θ和 每个操纵策略成功的概率分数 r τ ∣ O , p , T , θ r_{\tau|O,p,T,\theta} rτ∣O,p,T,θ,分数越大操纵成功概率越高。可以通过指定0.5作为threshold来形成一个二分类决策任务。
同时 每个策略 τ p ∣ O , T , θ \tau_{p|O,T,\theta} τp∣O,T,θ 是一个由6-DoF运动轨迹点 ( w p 0 , w p 1 , … , w p k ) (wp_0,wp_1,…,wp_k) (wp0,wp1,…,wpk)组成的序列,同时序列长度是可变的 ( k < 5 ) (k\lt5) (k<5)。实际网络中采用残差的表示 ( w p 0 , w p 1 − w − 0 , . . . , w p k − w p k − 1 ) (wp_0,wp_1-w-_0,...,wp_k-wp_{k-1}) (wp0,wp1−w−0,...,wpk−wpk−1),经验上来说这种方式会学的更好。每个运动轨迹点由3-DoF的机器人手的中心 x x x和3-DoF的方向 R R R(欧拉角)组成。
6. VAT-MART: 用于感知的交互学习网络
VAT-MART由两个部分组成:
- 强化学习部分,用以探索多样化的操纵策略;
- 感知系统,用于学习文章提出的“可操纵的视觉先验”。
通过强化学习搜集用于监督感知网络的交互策略,感知系统提供好奇心反馈(curiosity feedback)来鼓励强化学习探索更多可能的交互策略。
训练方法:首先预训练强化学习部分,接着使用强化学习搜集的数据来训练感知网络,最后共同微调两个部分(此时使用好奇心反馈来鼓励强化学习探索更多的交互策略)。
下面将具体介绍网络的各个部分。
用于交互策略探索的强化学习方法
对于每一种交互类型 T T T和部件铰接类型,都使用TD3来训练有条件强化学习来收集能够在 所有shape O O O的点 p p p上完成变化任务 θ \theta θ的 策略。
强化学习训练的过程中,强化学习只搜集用于监督感知网络训练的数据,通过模拟环境可以获得GT的环境信息,如铰接部件姿态(大概就是物体的角度)、关节轴(joint axis,如轴的指向,pivot point->定义rotation axis等信息)、gripper的姿态。测试的过程中不需要这个强化学习部分。
任务初始化
交互shape:
- 通过同等概率sample的物体类别,以减轻类别不平等的问题;
- 在选择的类别中均匀的sample一些shape用于训练。
交互任务:
- 对于revolute部件在 [ 10 ° , 70 ° ] [10°,70°] [10°,70°]内采样,对于prismatic部件在 [ 0.1 , 0.7 ] [0.1,0.7] [0.1,0.7]内采样;
- 随机sample初始部件pose θ 0 \theta_0 θ0,确保在这个pose下能够完成任务 θ \theta θ。
交互gripper:
- 在离交互点 p p p 0.02个单位长度的地方初始化gripper;
- gripper指向点 p p p表面法线负方向30度圆锥体(圆锥体角度见补充)内。
状态空间
以下的信息concat连接成33维用于强化学习网络的训练
- 在当前时间步下1-DoF的部件pose改变 Δ θ i = θ i − θ 0 \Delta\theta_i=\theta_i-\theta_0 Δθi=θi−θ0;
- 目标任务 θ \theta θ ;
- 完成结果与目标的difference: θ − Δ θ i \theta-\Delta\theta_i θ−Δθi;
- 交互时第一个时间步下的gripper pose w p 0 = ( x 0 , R 0 ) ∈ S E ( 3 ) wp_0=(x_0,R_0)∈SE(3) wp0=(x0,R0)∈SE(3);
- 当前时间步的gripper pose w p i = ( x i , R i ) ∈ S E ( 3 ) wp_i=(x_i,R_i)∈SE(3) wpi=(xi,Ri)∈SE(3);
- gripper手指的局部位置 x f ∈ R 2 x_f∈\mathbb{R}^2 xf∈R2;
- 当前接触点(contact point)的位置 p i ∈ R 3 p_i∈\mathbb{R}^3 pi∈R3;
- 铰接part joint axis n j ∈ R 3 n_j∈\mathbb{R}^3 nj∈R3;
- 铰接part joint location x j ∈ R 3 x_j∈\mathbb{R}^3 xj∈R3,被定义为离接触点(contact point)最近的joint axis上的一点;
- contact point到joint axis的最近距离 d c j ∈ R d_{cj}∈\mathbb{R} dcj∈R;
- joint axis指向contact point的方向向量 n c j ∈ R 3 n_{cj}∈\mathbb{R}^3 ncj∈R3;
动作空间
每一个时间步预测残差gripper pose w p i − w p i − 1 ∈ S E ( 3 ) wp_i-wp_{i-1}∈SE(3) wpi−wpi−1∈SE(3),通过这个残差来确定下一个步骤的路径点waypoint w p i wp_i wpi的位置来作为强化学习网络的输出。这个 S E ( 3 ) SE(3) SE(3)包括一个中心偏移 x i − x i − 1 ∈ R 3 x_i-x_{i-1}∈\mathbb{R}^3 xi−xi−1∈R3和一个欧拉角的变换 R i − R i − 1 ∈ S O ( 3 ) R_i-R_{i-1}∈SO(3) Ri−Ri−1∈SO(3)
奖励设计
奖励分为外部任务奖励和内部好奇心反馈奖励(任务奖励在介绍感知网络的时候再说,这里是外部任务奖励):
- 当当前部件pose pose在相对容差范围15%内达成了目标,完成任务最后一步成功奖励500;
- 一个逐步的引导奖励为 300 ( ∣ θ − Δ θ i − 1 ∣ − ∣ θ − Δ θ i ∣ ) 300(|\theta-\Delta\theta_{i-1}|-|\theta-\Delta\theta_i|) 300(∣θ−Δθi−1∣−∣θ−Δθi∣)鼓励当前步的part pose相比前一步更接近目标;
- 一个距离惩罚为 300 ⋅ 1 [ d g c > 0.1 ] + 150 d g c 300·\mathbb{1}[d_{gc}>0.1]+150d_{gc} 300⋅1[dgc>0.1]+150dgc,用以阻止gripper飞离预定的接触点 p p p,其中 d g c d_{gc} dgc表示从contact point p p p到当前指尖的L2距离,且 1 [ q ] \mathbb{1}[q] 1[q]是一个非0即1的指示函数用以指示predicate q q q(q应该是“[]”内的任务)。
停止标准与训练补充
在任务成功后停止交互尝试,或者是在五个maximal waypoint步骤之后停止交互尝试。
使用MLP来实现TD3网络,并使用一个大小为2048的replay buffer(不知道是什么)。为了鼓励高效学习的正数据例子,利用Hindsight Experience Replay(一篇论文):一个交互尝试可能会无法完成预期的任务 θ \theta θ,但最后会达成任务 θ k − θ 0 \theta_k-\theta_0 θk−θ0。
用于可操纵视觉先验学习的感知网络
感知系统用于预测想要的逐点可操纵视觉先验,除了一些信息编码模块外,还有三个解码头:
- 一个可操纵性预测模块,输出可操纵性分数 a p ∣ O , T , θ ∈ [ 0 , 1 ] a_{p|O,T,\theta}∈[0,1] ap∣O,T,θ∈[0,1];
- 一个策略提出模块,建模每个点的多个视觉可操纵性策略 τ p ∣ O , T , θ = ( w p 0 , w p 1 − w p 0 , … , w p k − w p k − 1 ) \tau_{p|O,T,\theta}=(wp_0,wp_1-wp_0,…,wp_k-wp_{k-1}) τp∣O,T,θ=(wp0,wp1−wp0,…,wpk−wpk−1);
- 一个策略分数模块,计算每个策略的成功概率 r τ ∣ O , p , T , θ ∈ [ 0 , 1 ] r_{\tau|O,p,T,\theta}∈[0,1] rτ∣O,p,T,θ∈[0,1]。
输入编码器
感知网络的输入包括四个部分:部分点云 S O S_O SO,接触点 p p p,策略 τ \tau τ,任务 θ \theta θ。
对于输入点 S O S_O SO,使用分割版本的PointNet++来提取逐点特征 f s ∈ R 128 f_s∈\mathbb{R}^{128} fs∈R128。
利用三个MLP分别将输入 p p p, τ \tau τ和 θ \theta θ分别编码成 f s ∈ R 32 f_s∈\mathbb{R}^{32} fs∈R32, f τ ∈ R 128 f_\tau∈\mathbb{R}^{128} fτ∈R128和 f θ ∈ R 32 f_\theta∈\mathbb{R}^{32} fθ∈R32。
在展开所有waypoint的信息后,将每一个策略序列化成30维的向量,并简单地通过用0填充来增加短于5个路径点的策略。
可操纵性预测模块
采用了类似于Where2Act中的方式。可操纵性预测模块 D a D_a Da的输入是逐点特征、连接点contact point特征、任务 θ \theta θ的特征concat后的结果;输出是逐点的可操纵性分数 a p ∣ O , T , θ ∈ [ 0 , 1 ] a_{p|O,T,\theta}∈[0,1] ap∣O,T,θ∈[0,1]。聚集所有contact point p p p可以获得输入部分点云的可操纵性map A O , T , θ A_{O,T,\theta} AO,T,θ,继而在测试的时候可以根据归一化的可操纵性分布来采样交互点。
策略启发模块
策略启发模块通过经典的cVAE实现。编码模块 E τ E_\tau Eτ将策略 τ \tau τ map到高斯噪声 z z z上,进而解码模块 D τ D_{\tau} Dτ从噪声向量中重构策略 τ \tau τ。两个网络都同时加入了额外的输入:逐点特征、连接点contact point特征、任务 θ \theta θ的特征来作为条件。
使用MLP来实现编码和解码模块,同时正则化合成的噪声向量,使其更接近于均匀的高斯分布。进而可以实现将随机高斯噪声连同逐点特征、连接点特征、任务 θ \theta θ的特征连接后输入解码器 D τ D_\tau Dτ中,对不同的策略进行采样。
策略评分模块
策略评分模块 D s D_s Ds的输入是逐点特征、连接点contact point特征、任务 θ \theta θ特征以及策略特征 f τ f_\tau fτ进行连接;输出是预测的成功概率 r τ ∣ O , p , T , θ ∈ [ 0 , 1 ] r_{\tau|O,p,T,\theta}∈[0,1] rτ∣O,p,T,θ∈[0,1]。可以通过限制threshold为0.5来进行二分类的决策。
用于训练的数据搜集、其他补充
训练的数据是从强化学习中搜集的。其中包含强化学习中产生的5000个成功交互的策略(正样本),还采样了同样数量的负样本,这些负样本是通过在正样本上给目标任务 θ 0 \theta_0 θ0添上了一个随机值(revolute parts加上 [ 0.1 θ 0 , 45 ° ] [0.1\theta_0,45°] [0.1θ0,45°],prismatic parts加上 [ 0.1 θ 0 , 0.45 ] [0.1\theta_0,0.45] [0.1θ0,0.45])。对于推动的实验,还考虑其他类型的负样本,如第一次抓取失败的负样本。
在训练可操纵性预测模块 D a D_a Da前,先训练策略评分模块 D s D_s Ds和策略启发模块 E τ E_\tau Eτ和 D τ D_\tau Dτ。在训练cVAE的过程中,除了对高斯噪声 z z z使用KL-loss外,还在回归出的策略waypoint上上使用L1 loss,还有用于训练waypoint方向的6D-rotation loss 。
对于可操纵性模块 D a D_a Da,从 D τ D_\tau Dτ中采样100个随机策略,通过 D s D_s Ds估计它们的策略分数,接着使用L1 loss来回归5个平均分数最高的策略,得到最终的可操纵性预测。
好奇心驱动的探索
这里指的是在RL和感知网络之间建立了双向的监督。感知网络使用RL探索的策略来训练,RL探索受到感知网络的好奇心反馈。这鼓励RL去探索更多样化和新颖的交互策略,进一步使得策略启发模块 D τ D_\tau Dτ学到的分布更加多样化。
最直观地想法是让RL去探索那些被感知网络中的策略评分模块 D s D_s Ds打了低分的策略。在RL和感知网络共同训练的过程中,使用了额外的内部好奇心奖励—— 500 r τ ∣ O , p , T , θ 500r_\tau|O,p,T,\theta 500rτ∣O,p,T,θ,也就是对RL提出的策略 τ \tau τ使用这个好奇心奖励,并使用新的交互数据来继续监督感知网络的学习。
同时确保在不同的epochs中RL网络都会生成训练策略并放置在buffer中,以避免生成模型 D τ D_\tau Dτ的追逐式训练。
7. 实验
实验在SAPIEN模拟器中进行,使用PartNet-Mobility数据集。在实验中:
- 评估学习到的视觉先验的预测质量;
- 在下游任务中将本文的方法与其他baseline做对比。
数据主要使用数据集中的7个类别共562个shape。在门和抽屉两个常见的部件铰接类别上进行实验。7个类别被分为训练、测试类别;562个shape被分为训练、测试shape。
可操纵性视觉先验
用评估二分类问题的指标来做定量评估:accuracy、precision、recall和F-Score(这些指标的释义见二分类任务评价指标 - 知乎 (zhihu.com)),其中accuracy越大越好;precision我理解应该并不是越大越好,但也不是越小越好,感觉和分母有关系;recall越大越好;F-Score是同时考虑精确率和召回率的指标,越大越好。
表中所展示的结果是(训练类别中的测试shape/测试类别)的结果。
图中每一格展示的是:任务输入shape、生成的可操纵性热力图(也就是在哪些位置上去操作最有可能成功)、在选定点上的三个示例操纵策略。
除了Affordance生成模块 D a D_a Da和策略建议模块 D τ D_\tau Dτ以外,还展示了策略评分模块 D s D_s Ds的定性结果。
这里的heatmap不再表示affordance,而是表示在每个点上运用如图所示策略成功的概率。
我的理解是这个策略是应用在每个点上,得到最终的分数。
下游操纵任务
和三个baseline比较:
- 一个简单的TD3 RL方法,输入点云和期望任务,输出完成任务策略的waypoint;
- 一个启发式的方法,手工地为不同任务设计一组规则,同时这个启发式的方法有GT的handle mask和关节参数;
- 多步的Where2Act,因为Where2Act考虑的是短期的任务,所以这里将多个短步骤叠加起来形成完成任务的步骤。
指标上来看,基于RL的方法失败了,因为在具有多样化形状的所有任务上从零开始训练一个端到端的RL策略是极其困难的,这也侧面印证了,将一些视觉信息抽象后学习的效果并不好;
启发式的方法在抽屉推动的任务中比文章提出的方法要好。作者认为具体的原因是在这个任务里知道一些GT的信息,而文中的方法这些信息都是通过预测得到的。这种启发式的方法在几种情况下会导致失败:1) 当拉的任务中没有handle的时候会失败;2) 一些handle的几何形状比较复杂的时候可能会失败或者没抓住,滑了;3) 由于惯性的作用,在一些推的任务中无法具体地控制推的范围,从而导致超出一类的问题。
Where2Act的baseline改进,这个方法没有显示地将任务作为输入,因此很容易导致操纵超过预想范围的问题。
真实世界实验
第一第二行是从RBO数据集合Google Scanned Object数据集中拿到的数据,给出了Affordance合操纵性策略的建议;
第三行和右边一列是对真实数据的扫描和真实机器人的操纵结果。
8. 总结和限制
这篇文章第一次尝试找到这样一个Visual Actionable表达,我翻译为视觉可操纵性。
限制在于当前是单帧输入,多帧输入可能会有更好的结果;另外能够做的铰接操作的任务还是相对较少(虽然推、拉覆盖了大部分任务),但是一些比较复杂的任务还不能做,可以考虑更多的铰接运动。
9. 其他补充
策略启发模块的输入输出
感知网络中的策略启发模块是cVAE构成的。其中Encoder的输入是策略的高维128维向量+逐点特征128+contact point接触点特征32+任务特征32=320维;输出是估计的高斯分布均值128维+方差128维。Decoder的输入是从高斯分布中sample的128维向量,连接上逐点特征128维+接触点特征32维+任务特征32维=320维;输出是策略30维。
注意,策略编码MLP中是将30维的信息(由5个waypoints组成)编码成128维向量。
具体30维度怎么展开成5个waypoints,应该是一个waypoints有6维,包括waypoint所在的位置+waypoint的orientation信息,一共6维。
感知网络中模块的训练顺序
先使用RL收集的数据(包括正例负例)来训练感知网络中的 D s D_s Ds策略分数估计模块,使用cross-entropy loss。接着训练策略启示模块,这里使用6D-rotation loss来监督waypoints的方向,L1 loss监督waypoints之间的距离,另外还使用KL散度损失来使得预测出的分布与高斯分布尽可能接近。最后训练可操纵性预测模块,这里是使用策略分数最高的top-5分数来求均值,来训练可操纵性预测模块。
好奇心反馈的奖励
奖励定为 − 500 r τ ∣ O , p , T , θ -500r_{\tau|O,p,T,\theta} −500rτ∣O,p,T,θ,通过一个负反馈,来打击RL进而不去训练那些 D s D_s Ds认为置信分数高的策略,反之去训练那些置信分数低的策略。
waypoints
我认为waypoints指的是执行器移动的位置吧
10. 补充
欧拉角
参考欧拉角(Euler Angle)-CSDN博客和欧拉角,轴角,四元数与旋转矩阵详解-CSDN博客
在文章中的运用是说运动轨迹点的方向,大概是通过Pitch、Yaw、Roll来表示方向的变换。
TD3 RL
看了几篇文章还是不太理解强化学习架构上的这种方法,暂且当它为一种架构吧
6D-rotation loss
来自On the Continuity of Rotation Representations in Neural Networks (thecvf.com)
实在不知道具体是哪个- -…
圆锥体角度
我理解圆锥体角度就是角1的角度。
强化学习
参考B站视频:【强化学习】一小时完全入门
强化学习的第一层结构(基本元素)
- Agent(智能体)
- Environment(环境)
- Goal(目标)
强化学习是Agent在Environment内进行交互,最终达到Goal的过程。
强化学习的第二层结构(主要元素)
- State(状态):当前环境的信息、智能体自身的信息
- Action(动作):根据当前状态判断执行特定的行动/动作
- Reward(奖励):在围棋中,胜出一盘旗则获得奖励,和棋或输棋则没有奖励,根据动作结果可以根据特定情况计算奖励,进一步改进动作
强化学习的第三层结构(核心元素)
- Policy(策略):在某一个状态下应当采取怎么样的行动
- Value(价值):策略函数取决于价值函数。一个是状态价值(State Value),指的是智能体处于当前状态能够得到所有奖励的期望值;另一个是状态行动价值函数(State-Action Value),指的是在特定状态下,采取某种行动所具有的价值。
强化学习的核心:学习一个好的价值函数,一个好的价值函数决定一个好的策略
强化学习的层间结构关系
强化学习的两个主要特点
- Trial and Error,试错学习。通过不断试错的过程,来学习哪种行动的价值最大。
- Delayed Reward,延迟奖励。在围棋中,每一步行动都没有及时的奖励,但是每一步行动对最后的胜利都可能是有价值的,一步的行动可能在很多步的行动后体现出其自身的价值,再给出奖励,故称为延迟奖励。
强化学习的核心问题Exploration vs. Expoitation
- 后者翻译为利用,基于已有的经验,利用学到的价值函数来推测出所要做的动作;
- 前者翻译为创新,在已有经验的基础上,我们还应该不断地去创新。以围棋为例,某一步棋可能在当前状态下的价值相对较小,但它有可能对之后的棋局带来较大的价值,故我们还需要不断地做创新。
强化学习实例:简单的多臂老虎机问题
多臂老虎机问题中,只有一个状态,即老虎机摆在那里,状态就不会发生改变,就算我们拉动了臂玩了一次老虎机,它仍然是那样的状态。在这个问题中,我们只需要使用行动价值函数,这是最简单的函数,只有一个自变量行动和一个因变量价值。我们做出的一个动作就对应得到一个奖励。
首先需要确定价值函数和策略函数。
价值函数如下:
假设两台老虎机有其对应的概率分布,假设臂1和臂2的奖励分布为 N ∼ ( 500 , 450 ) \mathcal{N}\sim(500,450) N∼(500,450)和 N ∼ ( 550 , 100 ) \mathcal{N}\sim(550,100) N∼(550,100)。定义选择臂1这一行动的实际价值为 q ( L ) q(L) q(L),选择臂2这一行动的实际价值为 q ( R ) q(R) q(R)。选择臂1行动价值的估计值为 Q ( L ) Q(L) Q(L),选择臂2行动价值的估计值为 Q ( R ) Q(R) Q(R)。
问题在于,我们如何学习应当选择哪一个臂呢?在这个简单的问题中,我们可以直接利用实际获得的奖励来估计价值,即用奖励的平均值来作为价值期望值的估计。因此可以获得这样一个表达式:
Q t ( a ) = ∑ i = 1 t − 1 R i ∗ 1 ( A i = a ) ∑ i = 1 t − 1 1 ( A i = a ) , a = L / R Q_t(a)=\frac{\sum^{t-1}_{i=1}R_i*1(A_i=a)}{\sum^{t-1}_{i=1}1(A_i=a)},a=L/R Qt(a)=∑i=1t−11(Ai=a)∑i=1t−1Ri∗1(Ai=a),a=L/R
其中, Q t ( a ) Q_t(a) Qt(a)代表在 t t t时刻对行动 a a a这个行动的价值估计, a a a是选择臂1或者臂2,其实也就是选择该臂时候所有期望值之和除以选择该臂的次数,这也称为Sample-Average样本平均。
大数定律:当我们无限次地尝试某一个行动,估计的平均值就会无限接近真实期望值。
策略函数如下:
有了价值函数,如何确定使用哪一个策略?最直接的策略是选择价值最大的行动: A t = a r g m a x a Q t ( a ) A_t=argmax_aQ_t(a) At=argmaxaQt(a),使得我们的选择是估计价值最大的那一个。如果估计价值一样大就随机选择一个,该策略称之为Greedy,贪婪。
但如果使用这个策略,假如我们估计价值的初始值定为0,我们随机选择了臂1得到了520的奖励,那么当前臂1的价值最大,我们就会重复的选择臂1而不选择臂2,就无法体现出Exploration。
所以还可以让价值函数的初始值不为0,让它特别大,比如为998。这样选择任何一个行动之后,价值就会变少,这样会让我们去探索另外一个行动,这样不断反复地探索来逼近它的期望。实现了Exploration。在这里,我们选择了这样的初始值后,我们可以考虑将这个初始值或不将这个初始值计入价值函数的平均计算之中。假如将初始值计入了平均计算之中,可以鼓励更多次的探索,假如不将初始值计入平均计算之中,就是相当于让所有的方法都先过了一遍,选择最优的那个一直强化学习。
假如采用了不讲初始值计入平均计算的方法,就相当于每个方法过一遍选最好的那个,故这里引入一个新概念, ϵ − \epsilon- ϵ−Greedy,这个策略的含义是在大多数的情况下做出贪婪的选择(Expoitation),在少部分情况下进行新策略的探索(Exploration)。
误差Error
样本平均(Sample Average) 估计: Q n + 1 = 1 n ∑ i = 1 n R i Q_{n+1}=\frac{1}{n}\sum^n_{i=1}R_i Qn+1=n1∑i=1nRi,以这些奖励的平均值作为我们的价值估计值。 Q 1 Q_1 Q1表示行动价值初始值, Q n + 1 Q_{n+1} Qn+1就是多个奖励的平均。
可以推导出 Q n + 1 = 1 n ∑ i = 1 n R i = Q n + 1 n ( R n − Q n ) Q_{n+1}=\frac{1}{n}\sum^n_{i=1}R_i=Q_n+\frac{1}{n}(R_n-Q_n) Qn+1=n1∑i=1nRi=Qn+n1(Rn−Qn),其中, Q n Q_n Qn表示在采取行动之前的旧价值估计Old Estimate, Q n + 1 Q_{n+1} Qn+1表示在采取行动之后的新价值估计New Estimate。除了这两项外, R n − Q n R_n-Q_n Rn−Qn中, Q n Q_n Qn表示的是我们基于过去的经验推测出这一步行动的价值 Q n Q_n Qn,而 R n R_n Rn表示的是我们实际获得的奖励,所以 R n − Q n R_n-Q_n Rn−Qn就是实际值和预测之间的误差。
样本平均法中,步长为 1 n \frac{1}{n} n1,误差对学习的影响越来越小。而实际上我们应该随时根据误差来调整对价值的估计,我们不希望学习率越来越小,尝试使用 α \alpha α作为学习率,得到: Q n + 1 = Q n + α ( R n − Q n ) = ( 1 − α ) n Q 1 + ∑ i = 1 n α ( 1 − α ) n − i R i Q_{n+1}=Q_n+\alpha(R_n-Q_n)=(1-\alpha)^nQ_1+\sum^n_{i=1}\alpha(1-\alpha)^{n-i}R_i Qn+1=Qn+α(Rn−Qn)=(1−α)nQ1+∑i=1nα(1−α)n−iRi文章来源:https://www.toymoban.com/news/detail-833677.html
在新公式中,对价值的估计不再是实际得到奖励的平均值了,而是一个加权平均值(Weighted Average),越早的奖励对价值的影响越小,越后面的奖励对价值的影响越大。文章来源地址https://www.toymoban.com/news/detail-833677.html
到了这里,关于【计算机图形学】VAT-MART:Learning Visual Action Trajectory Proposals for Manipulating 3D Articulated Objects的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!