机器人运动轨迹学习——GMM/GMR算法

机器人运动轨迹学习——GMM/GMR算法

  • 前置知识

    GMM的英文全称为:Gaussian mixture model,即高斯混合模型,也就是说,它是由多个高斯模型进行混合的结果:当然,这里的混合是带有权重概念的。

    • 一维高斯分布

      GMM中的个体就是高斯模型,说认真点就是高斯基函数,它还有另一个名字,径向基函数。

      对于一维变量,其高斯分布为:

      image-20240521211130226

      对应高斯概率密度的图形:

      img

      也就是说,对于一维变量x,它落在均值区间 [ u − σ , u + σ ] [u-\sigma, u+\sigma] [uσ,u+σ]的概率为68.26%

    • 多维高斯分布

      多维 Gaussian 分布的概率密度函数为:

      image-20240521211953699

      其中 μ \mu μ为均值向量, Σ \Sigma Σ为协方差矩阵

  • GMM对复杂轨迹的拟合

    一个复杂运动的表达式可由一系列简单信号的加权组合表述,我们称这些简单信号为基函数

    一些流行的基函数有:Radial Basis Functions (RBFs)Bernstein Basis FunctionsFourier Basis Functions

    其中,Radial Basis Functions (RBFs),即径向基函数,一种应用如下图所示:通过为各基函数赋予不同的权重,生成了一条相对复杂的轨迹

    img

    图片源自:Dynamic Movement Primitives介绍及Python实现与UR5机械臂仿真 - 知乎 (zhihu.com)

  • GMR的回归思想

    GMR(Gaussian mixture regression)的思想:

    对于一个输入,借用GMM进行回归,回归的结果是一个高斯分布

    也就是说,我们回归得到的结果不是一个固定的值,而是一个概率值

    以一维高斯分布为例:

    我们回归得到的结果其均值为 μ \mu μ,在 [ u − σ , u + σ ] [u-\sigma, u+\sigma] [uσ,u+σ]区间内的概率为68.26%

    而且回归得到的这个高斯分布一般不是高斯混合分布中的某一个分布,而是一个新的分布

  • GMM的学习思想

    根据我们的假设,GMM由多个高斯分布加权得到,那么GMM的概率密度函数为:

    image-20240516101413324

    其中 p ( k ) = π k p(k)=\pi_k p(k)=πk是取第 k k k个高斯核的概率, p ( x ∣ k ) = N ( x ∣ u k , Σ k ) p(x|k)=N(x|u_k,\Sigma_k) p(xk)=N(xuk,Σk)是在第 k k k个高斯核下,取值x的概率

    x可以是一个向量

    因此,如果我们要从 GMM 的分布中随机地取一个点的话,实际上可以分为两步:

    • 首先随机地在这 𝐾 个 高斯 之中选一个,每个 高斯 被选中的概率实际上就是它的系数 π k \pi_k πk
    • 选中了 高斯 之后,再单独地考虑从这个 高斯 的分布中选取一个点就可以了

    观察概率密度函数的形式,我们需要确定的参数为 π k , μ k , Σ k \pi_k,\mu_k,\Sigma_k πk,μk,Σk

    已知(假定)了概率密度函数的形式,而要估计其中的参数的过程被称作“参数估计”

  • GMM参数估计

    • 思想

      假设我们有一组数据点,假设他们服从分布p(x)(GMM中的一个高斯分布),我们要求其中的参数,

      方法是直接假设一组参数,在这组参数( π k , μ k , Σ k \pi_k,\mu_k,\Sigma_k πk,μk,Σk)下所确定的概率分布生成这组数据点的概率 π k \pi_k πk最大

      即EM算法的思想

    • 步骤一(E步,后验概率)

      计算数据由每个高斯生成的概率:

      image-20240521220124673

      其中, π k , μ k , Σ k \pi_k,\mu_k,\Sigma_k πk,μk,Σk取上一次迭代的值(或初始值)

    • 步骤二(M步,估计相关的参数)

      调整参数

      对上面的公式进行对数似然,有:

      image-20240516103429825 image-20240523110657213
      image-20240523110634766 N是数据点的个数
    • 步骤三

      重复上述步骤,直到满足我们的收敛条件(概率密度函数几乎不变)或超过设定的最大迭代次数

    • 补充

      我们注意到,在第一次执行上述步骤一时,参数 π k , μ k , Σ k \pi_k,\mu_k,\Sigma_k πk,μk,Σk未知,这时我们需要给定一组初值,初值的好坏对收敛有影响,详情可参考漫谈 Clustering (3): Gaussian Mixture Model (pluskid.org)。

  • GMR参数回归

    完成GMM模型的建立后,得到高斯混合模型:

    image-20240516101413324

    为了对给定参数进行回归,我们对其中的参数x,将其分为输入参数及输出参数,即有:

    image-20240521231922676

    其中下标t表示输入变量是t

    输出变量可以是t对应的二维坐标(x1,x2)

    根据GMR回归思想,对于均值和协方差,自然就分为:

    image-20240521232303005

    于是,直接根据公式,输入对单个高斯的回归,有:

    image-20240521232054664

    其中:

    image-20240521232244547 image-20240521232120424 image-20240521232136328 image-20240521232158989

    对于最终的结果,有:

    image-20240522102327051 image-20240522102352751

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/16614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win11安装MySQL

目录[-] 1. 1. 下载2. 2. 安装 参考文档:MySQL :: MySQL 8.4 Reference Manual 1. 下载 mysql官网下载msi安装程序:MySQL :: Begin Your Download 2. 安装 运行下载的mis程序,逐步安装。 安装模式: complete; 进入配置: data di…

Spring Boot 项目统一异常处理

在 Spring Boot 项目开发中,异常处理是一个非常重要的环节。良好的异常处理不仅能提高应用的健壮性,还能提升用户体验。本文将介绍如何在 Spring Boot 项目中实现统一异常处理。 统一异常处理有以下几个优点: 提高代码可维护性:…

Linux内核重置root密码

Ubuntu 首先重新启动Ubuntu系统,然后快速按下shift键,以调出grub启动菜单在这里我们选择第二个(Ubuntu高级选项),选中后按下Enter键 选择最高的Linux内核版本所对应的recovery mode模式,按e键编辑启动项 在…

mac brew 命令详解

brew 是 macOS 系统中 Homebrew 的命令行工具,用于在 macOS 上安装、更新和管理各种软件包。以下是对 brew 命令的详细介绍,按照功能和使用频率进行分点和归纳: 1. 安装和卸载软件包 安装软件包:使用 install 命令,后…

测试用例篇

测试用例的基本要素 **测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环 **境、操作步骤、测试数据、预期结果等要素.评价测试用例的标准:**对比好坏用例的评价标准 **用例表达清楚,无二义性用例可操作…

Spring服务启动后就执行某个方法

下边按照执行顺序前后,测试代码结果截图放到最后: 1、注解PostConstruct 时间:当前bean被创建并且所有的依赖注入完成之后执行; 使用:当前bean 所在类内的某个方法上 添加该注解;该方法没有参数&#xf…

探索移动云服务:构建高效移动互联网应用的最佳实践

一、移动云服务简介 官网:https://ecloud.10086.cn 移动云,或称为移动云计算,是通过无线网络向移动设备用户提供云计算服务的技术。它使用户能够通过智能手机、平板电脑和笔记本电脑等各类移动设备,在任何时间、任何地点便捷地访…

小程序怎么改名

经常有商家想要对自己的小程序进行重命名,改名可能是为了更好地与品牌形象以及业务相匹配,也可能是为了更好地吸引用户。那么如何才能更名呢? 一、准备几个新名字。 在决定改名之前,首先要确定几个新的小程序名字。为什么要准备…

帝国CMS如何修改时间格式,变成几分钟,几小时教程

该插件已经在帝国cms6.6上测试通过&#xff0c;至于其他版本&#xff0c;请自行测试。 目前支持&#xff1a;标签模板&#xff0c;列表模板&#xff0c;内容模板 安装说明&#xff1a; 把以下的内容复制到 /e/class/userfun.php 文件里&#xff08;放在<?php和?>之间…

自定义类型:结构体详解

1.结构体 1.1 结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量。一个整型数组&#xff0c;它的每个数组元素只能是整型&#xff0c;字符型的数组它的每个元素只能是字符型。但是结构体的每个成员可以是各种不同类型的变量。 1.2结构的声明 //声明 struct t…

孜然多程序授权系统V2.0开源

源码介绍 孜然一款多程序授权系统&#xff0c;支持自定义权限价格/新增程序配置等支持自动生成授权代码在线签到在线充值多支付接口IP/域名云黑文章系统&#xff08;富文本编辑器&#xff09;卡密功能一键云黑&#xff08;挂个大马/一键黑页/一键删库/一键删源码&#xff09; …

批处理作业调度问题 (回溯法)

目录 一、问题解析 二、实例剖析 三、算法思路 四、代码实现 结果&#xff1a; 总结 前言 【问题】n 个作业{1, 2, …, n}要在两台机器上处理&#xff0c;每个作业必须先由机器 1 处理&#xff0c;再由机器 2 处理&#xff0c;机器 1 处理作业i所需时间为 ai&#xff0c;…

【Linux-时间管理和内核定时器】

Linux-时间管理和内核定时器 ■ 设置系统节拍率■ 高节拍率和低节拍率的优缺点&#xff1a;■ jiffies 系统节拍数■ get_jiffies_64 这个函数可以获取 jiffies_64 的值■ 处理绕回■ 使用 jiffies 判断超时 ■ jiffies 和 ms、 us、 ns 之间的转换函数在这里插入代码片■ 内核…

QT常量中有换行符

头文件添加&#xff1a; #pragma execution_character_set("utf-8")

Java中的类加载器

类加载器 1.什么是类加载器&#xff1f; 启动类加载器&#xff08;Bootstrap ClassLoader&#xff09;&#xff1a;这是JVM自带的类加载器&#xff0c;负责加载Java的核心类库&#xff0c;如rt.jar等。由于安全原因&#xff0c;启动类加载器加载的类不能被其他类加载器加载的类…

数据库(8)——DML数据操作

增添数据 给指定字段添加数据 INSERT INTO 表名 (字段名1&#xff0c;字段名2,...)VALUES(值1,值2...); 没有的添加的字段默认为NULL。 给全部字段添加数据 INSERT INTO 表名 VALUE (值1,值2,....值n); 此时值的顺序对应表中字段的顺序 批量添加数据 INSERT INTO 表名(字段1,…

ssm143校园一卡通系统软件的设计与实现+jsp

校园一卡通系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本校园一卡通系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间…

聊聊变异测试

软件质量保障 所寫即所思&#xff5c;一个阿里质量人对测试的所感所悟。 1. 介绍 有句话说&#xff1a;证实容易&#xff0c;证伪难。正如测试一样&#xff0c;证明缺陷存在容易&#xff0c;但证明不存在缺陷难。而变异测试颠覆了这一原则&#xff0c;如果我们知道存在缺陷&am…

CAD二次开发(6)-用户交互之选择集

1. 简单测试 测试让选中的图形描红 [CommandMethod("SeleDemo")]public void SeleDemo(){Database db HostApplicationServices.WorkingDatabase;Editor ed Application.DocumentManager.MdiActiveDocument.Editor;PromptSelectionResult psr ed.GetSelection();…