• 模仿学习(DMP与GMM应用)


    模仿学习

    为了赋予机器人“举一反三”的操作能力,学界提出了机器人操作技能的高效率模仿学习方法,一是基于动态系统的机器人操作技能模仿;二是基于非线性回归模型对运动轨迹进行编码的机器人操作技能模仿
    (Q1.法二是与控制系统无关只管轨迹吗,然后设置控制器跟随)
    例一:
    DMP中是在PD控制器中加入一非线性项(可看做外力),来控制轨迹。非线性项是多个基函数的叠加,基函数的均值和方差根据正则系统确定,基函数叠加的权重系数根据示教数据由训练得到Dynamic Movement Primitives介绍及Python实现与UR5机械臂仿真
    Q1 :论文[1]提到:构建DS,一般依赖于两步学习:构建 Lyapunov 函数和求解 DS,知乎这文章中没有稳定性证明,最后非线性项等于0,直接就是稳定的,可以这么说吗?

    例二:
    GMM-GMR
    利用概率混合模型的方法,表征机器人运动轨迹。
    写一下自己对高斯混合模型GMM的理解,如何采用GMR 进行数据回归

    一维高斯分布:
    f ( x ) = 1 2 π ⋅ δ ⋅ e − ( x − μ ) 2 2 δ 2 f(x)=\frac{1}{\sqrt{2\pi} \cdot \delta}\cdot e^{-\frac{(x-\mu)^2}{2 \delta^2}} f(x)=2π δ1e2δ2(xμ)2
    二维高斯分布:
    假设两变量 x 1 , x 2 x_1,x_2 x1,x2相对独立,且都服从高斯分布,存在以下等式:
    f ( x 1 , x 2 ) = f ( x 1 ) ⋅ f ( x 2 ) f(x_1,x_2)=f(x_1)\cdot f(x_2) f(x1,x2)=f(x1)f(x2)
    式中 f ( x 1 ) f(x_1) f(x1):
    f ( x 1 ) = 1 2 π ⋅ δ 1 ⋅ e − ( x 1 − μ 1 ) 2 2 δ 1 2 f(x_1)=\frac{1}{\sqrt{2\pi} \cdot \delta_1}\cdot e^{-\frac{(x_1-\mu_1)^2}{2 \delta_1^2}} f(x1)=2π δ11e2δ12(x1μ1)2
    其中 d e l t a 1 delta_1 delta1 μ 1 \mu_1 μ1是变量 x 1 x_1 x1的标准差和均值,二维的高斯分布函数可以表示为:
    f ( x 1 , x 2 ) = f ( x 1 ) ⋅ f ( x 2 ) f(x_1,x_2)=f(x_1)\cdot f(x_2) f(x1,x2)=f(x1)f(x2)
    = 1 2 π ⋅ δ 1 δ 2 ⋅ e − δ 2 2 ( x 1 − μ 1 ) 2 + δ 1 2 ( x 2 − μ 2 ) 2 2 δ 1 2 δ 2 2 =\frac{1}{{2\pi} \cdot \delta_1\delta_2}\cdot e^{-\frac{\delta_2^2(x_1-\mu_1)^2+\delta_1^2(x_2-\mu_2)^2}{2 \delta_1^2\delta_2^2}} =2πδ1δ21e2δ12δ22δ22(x1μ1)2+δ12(x2μ2)2

    扩展多维高斯分布:

    N ( X → ∣ μ → , Σ ) = 1 ( 2 π ) D 2 ⋅ ∣ Σ ∣ 1 2 ⋅ e − ( X → − μ → ) T ⋅ Σ − 1 ⋅ ( X → − μ → ) 2 N(\overrightarrow{X} | \overrightarrow{\mu},\Sigma)=\frac{1}{(2\pi)^{ \frac{D}{2} } \cdot |\Sigma|^{\frac{1}{2}} } \cdot e ^{-\frac{(\overrightarrow{X}-\overrightarrow{\mu})^{T}\cdot \Sigma^{-1}\cdot(\overrightarrow{X}-\overrightarrow{\mu})}{2}} N(X μ ,Σ)=(2π)2D∣Σ211e2(X μ )TΣ1(X μ )
    式中:
    X → \overrightarrow{X} X 表示维度为D的向量
    μ → \overrightarrow{\mu} μ 表示 X → \overrightarrow{X} X 各维度的均值组成的向量
    Σ \Sigma Σ代表所有向量的协方差矩阵,是一D×D维的矩阵
    补充一下协方差的定义,帮助理解:如何理解协方差矩阵(散布矩阵)

    高斯混合回归
    目的:找出x→y的映射;

    高斯混合回归(GMR)的基本假设是,联合输入(x)×输出(y)空间中的数据可以用一组高斯分布很好地表示,这被称为高斯混合模型(GMM)
    (Q2 这里的输入x是时间或者相位?参考[6]中x是时间,y是描述路径例如末端执行器的位置)
    高斯混合回归,在输入空间X上进行调节时,在输出空间Y中产生均值和方差
    左图:在20个示例数据点上具有3个高斯的高斯混合模型(gmm)。该模型是在联合输入×输出空间上通过无监督学习(EM)获得的。右图:高斯混合回归,调节输入空间X,获得输出空间Y的均值和方差

    通过EM方法训练,得到高斯混合模型。

    对于高斯混合回归,我们的目的在于预测: y ‾ = E ( y ∣ x ) \overline{y}=E(y|x) y=E(yx),给定x时y的期望。为此,可以按如下方式分解 µ e µ_e µe ∑ e ∑_e e

    µ e = [ µ e , X T , µ e , Y T ] T µ_e=[µ_{e,X}^T,µ_{e,Y}^T]^T µe=[µe,XT,µe,YT]T
    Σ e = [ Σ e , X Σ e , X Y Σ e , Y X Σ e , Y ] \Sigma_e= [Σe,XΣe,XYΣe,YXΣe,Y]

    Σe=[Σe,XΣe,YXΣe,XYΣe,Y]
    给定输入x,输出y的条件概率为
    p ( y ∣ x ) = ∑ e = 0 E h e ( x ) N ( µ e , Y + Σ e , Y X Σ e , X − 1 ( x − µ e , X ) , Σ e , Y X Σ e , X − 1 Σ e , X Y ) p(y|x)=\sum_{e=0}^Eh_e(x)N(µ_{e,Y}+ \Sigma_{e,YX}\Sigma^{-1}_{e,X}(x-µ_{e,X}),\Sigma_{e,YX}\Sigma^{-1}_{e,X}\Sigma_{e,XY}) p(yx)=e=0Ehe(x)N(µe,Y+Σe,YXΣe,X1(xµe,X),Σe,YXΣe,X1Σe,XY)

    给定输入x,y的期望为(这算不算找到了x→y的映射):
    y ‾ = ∑ e = 0 E h e ( x ) ( µ e , Y + Σ e , Y X Σ e , X − 1 ( x − µ e , X ) ) \overline{y}=\sum_{e=0}^Eh_e(x)(µ_{e,Y}+ \Sigma_{e,YX}\Sigma^{-1}_{e,X}(x-µ_{e,X})) y=e=0Ehe(x)(µe,Y+Σe,YXΣe,X1(xµe,X))

    其中 h e ( x ) h_e(x) he(x)
    h e ( x ) = π e N ( x ; µ e , X , Σ e , X ) ∑ l = 1 E π l N ( x ; µ l , X , Σ l , X ) h_e(x)=\frac{\pi_e N(x;µ_{e,X},\Sigma_{e,X})}{\sum_{l=1}^E\pi_l N(x;µ_{l,X},\Sigma_{l,X})} he(x)=l=1EπlN(x;µl,X,Σl,X)πeN(x;µe,X,Σe,X)

    参考
    [1] 基于模仿学习的机械臂运动规划与柔顺控制研究
    [2] 漫谈 Clustering (3): Gaussian Mixture Model
    [3] 高斯混合模型GMM
    [4] Many Regression Algorithms, One Unified Model – A Review
    [5] 基于增量高斯混合回归的自适应软测量方法_李德阳
    [6] A tutorial on task-parameterized movement learning and retrieval

  • 相关阅读:
    Windows编译yolov5_obb的nms_rotated模块报错解决
    网络编程.
    Flask框架配置celery-[1]:flask工厂模式集成使用celery,可在异步任务中使用flask应用上下文,即拿即用,无需更多配置
    倒置边框半径卡片
    超级羊毛!Splashtop SOS 远程软件免费用!
    论文阅读【ACM_2020】SimSwap: An Efficient Framework For High Fidelity Face Swapping
    C++类中若没有显示指定访问权限,默认情况下类的成员变量和成员函数是私有的
    Windows IOCP相关资料
    springboot中如何使用log4j制作统一的请求日志呢?
    Dubbo+Zookeeper的简单使用---实现RPC远程调用
  • 原文地址:https://blog.csdn.net/weixin_44562141/article/details/126030381