机器人运动轨迹学习——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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「Python Socket超能力:网络世界的隐形斗篷!」

Hi,我是阿佑,今天将带领大家揭开Python Socket编程的神秘面纱,赋予我们的网络应用隐形斗篷般的超能力! 深入探讨Socket编程的革命性力量,教你如何用Python的Socket模块来构建强大的网络应用。从简单的HTTP服务器到复杂…

go语言初识别(五)

本博客内容涉及到:切片 切片 1. 切片的概念 首先先对数组进行一下回顾: 数组定义完,长度是固定的,例如: var num [5]int [5]int{1,2,3,4,5}定义的num数组长度是5,表示只能存储5个整形数字&#xff0c…

【problem】解决EasyExcel导出日期数据显示为#####问题

前言 在使用EasyExcel进行数据导出时,你可能遇到日期或其他数据在Excel中显示为“#######”的情况,这通常是因为列宽不足以展示单元格内的全部内容。本文将指导你如何通过简单的步骤解决这一问题,并确保导出的Excel文件自动调整列宽或直接指…

调整图片和表格尺寸的命令:resizebox

\resizebox 是 LaTeX 中的一个命令&#xff0c;用于调整插入的内容&#xff08;如图像、表格、文本等&#xff09;的大小。它的语法如下&#xff1a; \resizebox{<width>}{<height>}{<content>}其中&#xff1a; <width> 和 <height> 分别表示…

Niantic利用Meta Llama让数字生物栩栩如生

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

代码随想录——平衡二叉树(Leetcode110)

题目链接 后序遍历高度&#xff0c;高度判断是否平衡 前序遍历深度 递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* …

关于c++的通过cin.get()维持黑框的思考

1.前言 由于本科没有学过c语言&#xff0c;研究生阶段接触c上手有点困难&#xff0c;今天遇到关于通过cin.get()来让黑框维持的原因。 2.思考 cin.get()维持黑框不消失的原因一言蔽之就是等待输入。等待键盘的输入内容并回车&#xff08;一般是回车&#xff09;后cin.get()才…

Grafana详解

目录 ​编辑 一、Grafana的主要特点 二、Grafana的基本功能 三、Grafana的使用方法 Grafana是一款开源的数据可视化工具&#xff0c;主要用于大规模指标数据的可视化展现。下面将详细介绍Grafana的特点、功能以及基本使用方法。 一、Grafana的主要特点 跨平台性&#xff…

学习笔记——STM32F103V3版本——HC-05模块控制数码管

一.硬件 1.HC-05模块 2.数码管 3.连接硬件 二.在keil5中的代码 main.c代码&#xff1a; #include "stm32f10x.h" #include "buletooth.h" #include "led.h" #include "sys.h" #include "usart.h" #include "delay.…

【计算机毕业设计】基于SSM+Vue的线上旅行信息管理系统【源码+lw+部署文档】

目录 摘 要 第1章 绪论 1.1背景及意义 1.2 国内外研究概况 1.3 研究的内容 第2章 相关技术 2.1 Java简介 2.2 SSM三大框架 2.3 MyEclipse开发环境 2.4 Tomcat服务器 2.5 MySQL数据库 第3章 系统分析 3.1 需求分析 3.2 系统可行性分析 3.2.1技术可行性&#xff1a;技术背景 …

aws eks集成wasm运行时并启动pod

参考资料 WebAssembly 在云原生中的实践指南&#xff0c;https://cloud.tencent.com/developer/article/2324065 作为一种通用字节码技术&#xff0c;wasm的初衷是在浏览器中的程序实现原生应用性能。高级语言将wasm作为目标语言进行编译并运行在wasm解释器中。和nodejs类似的…

大模型主流 RAG 框架TOP10

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…

大规模语言模型的书籍分享

在当今人工智能领域&#xff0c;大规模语言模型成为了研究和应用的热点之一。它们以其大规模的参数和强大的性能表现&#xff0c;推动着机器学习和深度学习技术的发展。对于GPT 系列大规模语言模型的发展历程&#xff0c;有两点令人印象深刻。 第一点是可拓展的训练架构与学习范…

2024年国内最全面最前沿人工智能理论和实践资料

引言 【导读】2024第11届全球互联网架构大会圆满结束。会议邀请了100余位行业内的领军人物和革新者&#xff0c;大会通过主题演讲、实践案例分享&#xff0c;以及前瞻性的技术讨论&#xff0c;探索AI技术的边界。 近日&#xff0c;备受瞩目的第十一届全球互联网架构大会&#x…

2024.05.28学习记录

1. 小林coding 计网复习 2.代码随想录刷题. 图论.和复习数组.链表 3.rosebush完成select组件

第十四届蓝桥杯c++研究生组

A 关键思路是求每个十进制数的数字以及怎么在一个数组中让判断所有的数字次数相等。 求每个十进制的数字 while(n!0){int x n%10;//x获取了n的每一个位数字n/10;}扩展&#xff1a;求二进制的每位数字 &#xff08;注意&#xff1a;进制转换、1的个数、位运算&#xff09; x…

单元测试的实现方式

单元测试的实现方式包括&#xff1a;人工静态检查、动态执行跟踪 人工静态检查 人工静态检查是一种单元测试实现方式&#xff0c;它主要依赖开发人员的人工代码审查和静态分析工具来识别潜在的代码问题。 代码审查&#xff1a;开发人员通过仔细检查代码来发现潜在的问题。他…

Warning: Each child in a list should have a unique “key“ prop.

问题描述&#xff1a; 使用ProTable的时候&#xff0c;报错如下 原因分析&#xff1a; 根据报错内容可以分析出&#xff0c;表格数据缺少唯一key&#xff0c; <PaginationTablecolumns{columns}pagination{{pageSize: 10,current: 1,showSizeChanger: true,showQuickJum…

最新!!2024年上半年软考【中级软件设计师】综合知识真题解析

2024上半年软考考试已经结束了&#xff0c;为大家整理了网友回忆版的软件设计师真题及答案&#xff0c;总共30道题。 上半年考试的宝子们可以对答案预估分数&#xff01;准备下半年考的宝子可以提前把握考试知识点和出题方向&#xff0c;说不定会遇到相同考点的题目&#xff01…

rk3568_semaphore

文章目录 前言1 什么是信号量1.1 信号量API函数2、信号量实验2.1 实验目的2.2函数源码2.3 运行结果图前言 本文记录rk3568开发板的信号量实验 1 什么是信号量 信号量是同步的一种方式,常常用于控制对共享资源的访问。 举个例子:停车场的停车位有100个,这100个停车位就是共…