
一种基于概率关联的局部高斯过程回归算法
高斯过程回归(Gaussian process regression, GPR)广泛应用于机器人、控制系统和航空航天飞行器等领域, 如机器人的逆动力学模型估计[1-3]. 它是仅利用简单的线性代数处理非线性模型的有效工具, 提供了一种简单但有效的方法来表示数据的先验分布, 其特点是使用较少的参数得到准确的学习结果[1]. 作为应用范围广泛的非参数回归, 它在样本外预测测试中脱颖而出, 已成为机器学习的重要手段[4]. 然而, 随着现实世界中训练集和测试集的增长, 高斯过程回归模型在面对大数据量时暴露了缺点. 当数据量
降低这种复杂度的解决方案主要分为两种类型, 其中一种方法是稀疏高斯过程回归和高斯回归混合模型[6-7]. 另一种是将数据分割并使用多个局部模型代替全局高斯过程模型, 这种方法称为局部高斯过程回归(Local GPR, LGPR). 在稀疏高斯过程中, 按照设定的规则减少输入点的数量, 以降低计算复杂度[8]. 局部高斯过程回归用多个局部子模型替换整体高斯过程模型, 由于每个局部模型具有较少数量的数据点并且被单独训练和更新, 因此总体计算成本降低[4]. 对于局部高斯过程回归, 最关键的是如何划分数据并将其分配给不同的模型.
根据最近的文献, 夏嘉欣等[9]提出一种基于噪声输入的稀疏高斯算法, 并将其应用于解决人体姿态估计问题. 乔少杰等[10]利用高斯过程回归预测移动对象最可能运动轨迹. 王传云等[11]对图像局部区域建立高斯混合模型解决图像的背景模型构建问题. Da等[12]研究了一种基于单任务聚合方案的局部高斯过程回归模型. Liu等[13]提出了一种基于流形学习方法的局部高斯过程相似度维持算法. Binois等[14]使用基于似然的高斯过程回归方法, 将异方差性问题表征为单目标函数, 使用完整的闭合形式导数, 实现了基于库的优化. 任志刚等[15]利用加权的优秀样本预估高斯均值改进了传统高斯分布估计算法. Sarkar等[16]使用高斯过程回归构建了一种鲁棒算法, 能够处理不确定性和数据中的噪声, 并验证了相比经典谐波分析方法的优势. 文献[17]中的工作通过测量距离来选择合适的局部模型并最终计算加权预测, 但该方法在每次预测时仍然考虑所有模型, 因此不完全遵循局部支持的概念.
为了进一步降低计算量, 本文拟提出一种基于边界平滑过渡的局部高斯过程回归模型, 即训练集中的数据不是确定性地插入到单个局部模型中, 而是按概率分布分配给若干相邻的局部模型. 这意味着数据点属于某一模型的概率分布在特定区域内是连续的, 而在超出该区域的概率分布则为零. 这种分布将每个模型限制在一个定义清晰的区域, 通过仅考虑实际相关且可能对所考虑的数据点有贡献的模型来提高计算效率方面的性能, 也就是说对于特定的数据点只需要考虑少量数据点所属范围内的局部模型. 另外, 模型更新过程中使用矩阵块的求逆方法进行矩阵求逆, 大大减少了计算量. 为了实现更新与预测阶段局部模型的快速检索, 本文还引入并利用了来自计算几何领域的k-d树最近邻搜索算法[18].
1. 局部高斯过程回归模型
1.1 高斯过程回归
高斯过程回归是机器人和控制理论领域中用于监督机器学习的常用技术, 它的优点是通过少量的超参数实现高预测精度. 但是, 当数据点的总数
(1) |
其中,
(2) |
其中,
(3) |
(4) |
其中,
(5) |
(6) |
其中,
因此, 对问询点
(7) |
对于内核函数
(8) |
平方指数协方差函数只有两个自由参数, 即信号方差
(9) |
使用文献[20]中提出的共轭梯度算法最大化对数边际似然
(10) |
其中,
(11) |
1.2 局部高斯过程回归
由于高斯过程回归在训练点数量大时表现不佳, 为了在保持高斯过程回归的优势的同时降低计算复杂度, 提出了局部高斯过程回归. 局部高斯过程回归可以实现模型的快速更新, 因此更适合使用在需要通过实时产生的数据不断更新模型的领域. 局部高斯过程回归方法背后的基本思想是引入多个回归模型并减少每个模型的数据点数量, 从而降低计算复杂度. 该方法将数据点分配到多个局部模型并单独训练[1]. 对应于平方指数协方差函数, 点与模型中心之间的距离通过如下距离测量来计算, 以将数据点分配给最近的局部模型
(12) |
其中,
式(12)中的距离度量也用于加权预测. 使用式(7)对第
(13) |
由于每个局部模型中的数据点的数量比高斯过程回归中的低, 用于更新模型的计算工作量得以减少, 并且与高斯过程回归相比可以实现整体性能改进. 在第2.1节, 本文提出的算法对以上方法进行了改进, 采用概率数据关联将数据点在其最近的
1.3 高效k近邻查询树
为了实现快速搜索算法, 本文使用k-d树来存储数据. 利用k-d树进行局部模型检索, 可以有效提高模型更新与对未知数据点预测的速度. k-d树是二叉搜索树(Binary search tree, BST)的多维形式, 而二叉搜索树是用于快速可靠查询的合适方法[18]. 文献[21]中提出了这个k-d树的优化版本.
1.3.1 k-d树的创建
对于树的第零层, 首先在第1个维度分割数据, 并使用此维度中数据的中值作为分离的边界. 此步骤将数据集分为两部分: 一部分是由小于或等于中值的数据组成的树的左侧; 另一部分是剩余数据构成的树的右侧. 在每个子树上重复此过程, 直到只剩下包含一个点的节点, 将其作为树的子节点. 由于在每个节点中重复划分并将剩余的边处理为新的子树, 因此这是一个递归定义. 分割的维度是根据树中当前节点的级别来决定的, 即在层级
1.3.2 k-d树最近邻搜索
k-d树最近邻搜索是一种快速且可靠的搜索算法, 其基于预定义的相似性或距离度量来判断距查询点最近的
2. 基于概率关联进行模型选择的局部高斯过程回归
本研究提出一种无硬边界局部模型概率关联方法, 这种方法确保了在仅有局部支持的条件下实现模型之间的平滑过渡. 模型建立阶段, 通过定义模型相邻部分的概率分布, 数据点被根据其坐标分配到局部模型中. 对未知数据预测阶段, 由距离查询点最近的若干模型计算加权平均值, 从而求和得到全局预测值. 因此, 该算法包括3个阶段: 1)初始模型的建立; 2)局部模型的更新; 3)测试集的加权预测. 第2.1节将讨论局部模型的概率型数据关联, 第2.2节和第2.3节描述了模型的建立和模型的更新, 第2.4节提出了对未知数据的预测方法.
2.1 边界约束的局部高斯过程回归模型
紧致支持的边界约束局部模型是本在线学习模型的基本组成部分, 本节介绍如何构建本地模型.
根据文献[1, 17]局部高斯过程回归方法通常使用模型内数据点的平均值作为每个模型的中心. 因此, 对于每个新输入的数据点, 这些中心都需要更新, 即局部模型需要持续地改变. 为了减少每次更新造成的计算量, 本文提出一种固定的模型网络, 同时为了实现局部模型与数据之间的概率关联, 我们提出了一种激活函数. 激活函数
所有局部模型组成一个覆盖数据集空间的模型网格, 在维度为一维时, 该网格由每个中心之间的距离
相邻的局部模型在共享边界处做出不同的预测, 导致边界处的预测是不连续的[24]. 实际上, 对于几个模型的交汇处的点, 属于每个模型的概率可能都大于
(14) |
其中,
(15) |
由此该激活函数实现了数据点与邻近局部模型的概率关联.
图1为一维情况下局部模型的初始化示意图. 基于这种一维方法, 本文开发了具有更高维度的数据的解决方案. 对于模型布局和激活功能, 基本原理保持不变. 但是, 每个数据点可能被分配进的模型最多为
图2展通过在二维空间内构建
对于多维数据, 使用输入数据点在每个维度上的最大值和最小值来计算各局部模型的中心. 局部模型的数量和中心可表示为
(16) |
(17) |
其中,
初步确定模型的位置后, 根据式(14)的激活函数将训练集中的所有数据点分配到各个局部模型中. 在每个维度上模型中心之间的距离都是
(18) |
2.2 局部模型的初始化
本文提出的在线学习模型由初始化和更新阶段两个阶段建立, 本节解释了如何使用训练集构建初始局部模型.
为了初始化模型, 本研究使用了一种对训练集数据点进行聚类从而创建局部模型的方法. 首先, 通过训练集中的数据计算各个局部模型中心的坐标, 构建第2.1节中所述的模型网络. 然后将所有数据点分配到相应的局部模型中. 为了确定最终分配数据点的模型
2.3 局部模型的更新
本文提出的紧致支持的边界约束局部模型最突出的特点是支持在线学习, 这意味着局部模型能够通过实时数据不断进行更新. 模型的在线更新可以应对一些现实世界的工程问题, 例如机械特性和机器人交互随时间的变化[25]. 在更新阶段, 依据第2.2节中分配数据点的方法, 新输入点
为了更新预测矢量, 首先, 将局部模型的数据集更新为
(19) |
其次, 预测矢量
(20) |
其中,
(21) |
其中
(22) |
(23) |
(24) |
根据以上方法得到
(25) |
由式(21)可知, 每次在计算新的协方差矩阵的逆时, 都利用了它在更新前的值以减少计算量. 因此, 在模型的更新阶段需要更新并储存数据集、协方差矩阵的逆和预测矢量.
如果在使用新数据点更新模型阶段检测到数据点不在任何已有局部模型范围内, 即在储存局部模型的k-d树中没有搜索到足够接近数据点的模型, 则会创建一个仅包含此新点的新模型, 其中心是新数据点, 并补齐模型网格的其余部分. 最后使用第1.1节中的方法计算这个模型的超参数
2.4 局部模型对未知数据的预测
基于输入数据预测输出数据是本局部高斯过程回归模型的一个重要功能. 在多个模型处于激活状态的区域, 可以通过激活函数计算查询点属于各局部模型的概率, 再通过各模型的预测结果计算加权预测. 首先, 通过k-d树搜索查找到距查询点
(26) |
其中,
通过每个局部模型对应的概率对其预测值进行加权求和, 计算对查询点
(27) |
因此, 最终的全局预测值表示为
(28) |
3. 实验结果及分析
本节通过实验, 在更新时间、预测时间和误差三个方面评估边界约束的局部高斯过程回归算法的性能. 第3.1节通过人工生成的低维数据, 将本文算法与全局高斯过程回归方法和具有硬边界的局部高斯回归过程方法进行比较, 验证了低维数据时本算法的优势. 第3.2节使用来自F16飞机的真实多维工程数据进行实验并将本算法应用于机械手臂上, 分析了本算法在多维数据和大数据量的场景下, 实现在线学习的可行性.
3.1 低维数据实验
为了验证该基于边界约束的局部高斯过程回归算法的有效性, 本文通过模拟带有噪声的高斯过程对该算法进行测试, 并与全局高斯过程回归方法和具有硬边界的局部高斯回归过程方法进行比较[17, 19]. 对于训练和测试, 数据集由正弦函数的组合产生, 超参数通过第1.1节中的方法计算. 本算法的性能取决于局部模型间距参数的选择, 本文首先评估它们对预测结果的影响. 通过下面正弦函数组合生成二维数据集
(29) |
并为输出
图中展示了局部模型间距以8为间隔由4增加到44时, 用单个数据点更新模型和预测未知输出所用时间及预测误差值的变化情况. 小的局部模型宽度意味着总的模型数量多, 即每个局部模型分配的数据点较少, 对应着较大的误差和较短的模型更新和预测时间. 当局部模型宽度增加时, 每个局部模型分配的数据点也随之增加, 使得预测结果更为准确. 但同时由于求协方差逆矩阵的计算工作量随着更多数据点而上升, 消耗的时间也随模型宽度增加而延长. 因此, 模型设计过程中需要对预测精度和计算时间做出权衡. 由图中可见, 当模型宽度增加到20以后, 模型预测的准确度变化不大, 但更新和预测时间仍然随模型宽度增加而大幅增加, 因此20是这个数据集范围内较好的局部模型宽度参数.
为了直观地比较3种方法的预测结果, 本文使用以下等式生成一维输入与输出数据集
(30) |
图4展示了3种方法的预测情况, 其中本文提出的算法的预测误差为0.03292, 全局回归方法的误差为0.03239, 硬边界的局部回归方法的误差为0.50499. 在这个数据集中, 本算法实现了与全局高斯过程回归同一量级的精度, 比硬边界局部高斯过程回归方法的精度高一个数量级.
为了进一步比较3种算法的性能, 本文使用式(24)生成的二维数据, 将3种方法的模型各重复50次, 分别得到它们的平均预测误差、单个数据点的更新和预测时间, 如表1所示. 其中, 边界约束的局部高斯过程模型的模型宽度参数设置为20.
从表中可以看出, 全局高斯过程回归方法的预测精度最佳, 而本算法的预测误差与它处于同一数量级, 硬边界局部模型方法的预测误差约为全局高斯过程回归方法的80倍. 考虑到全局高斯过程回归使用全部数据构建单个模型, 本算法的精度稍低于它是可以接受的. 本算法通过与硬边界局部模型方法接近的局部模型数量(各约100个), 实现了更好的预测精度. 比较更新模型的时间时, 全局高斯过程回归方法的弊端显现出来, 其使用单个数据点更新模型的时间为132.753 ms, 是局部模型方法的100倍以上. 当数据量继续增大时, 计算量将迅速增大直至无法被接受, 而本算法和硬边界局部模型方法的模型更新时间处于同一数量级. 另外, 3种方法对单个数据点的预测时间为同一数量级, 其中本文算法的预测时间最短, 为1.342 ms. 综上可见, 本文提出的算法在保证高精度预测的同时, 能大量减少局部模型的更新时间.
3.2 多维工程数据实验
在机器人控制和航空航天等工程领域, 输入数据通常是多维的, 离线学习的数据集很难覆盖所有情景. 即时能够使用大量数据集提前进行离线学习, 计算量也会是巨大的. 针对这些工程场景, 本文提出的在线学习模型能够使用实时数据更新模型, 实现预测功能.
为了分析该模型处理真实多维工程数据时的性能, 本文采用葡萄牙波尔图大学公开的来自F16型号飞机升降电梯的数据集进行实验[26]. F16型号飞机升降电梯的数据集共包括9 517个数据点. 输入数据有6个属性: 爬升率、高度、转轮角速度、转轮角度、爬升加速度和爬升加速度的变化率, 这6个属性的数值组成了6维输入数据. 输出是控制信号
首先, 用一个新数据点更新模型所需的时间
图5中
图6展示了对一个未知数据点进行预测所需的时间
图7显示了平均预测误差随数据量增长的变化趋势. 该图的趋势表明, 随着训练集中数据点的增加, 模型的预测误差减少. 也就是说随着数据流的输入, 在线学习模型能够越来越精确.
综合图5 ~ 7, 对于这一特定数据集
为了进一步验证本模型在机器人控制场景下的可用性, 本文将模型应用到具有两个自由度的机器人的机械手臂上进行实验, 测试其在机器人控制方面应用的可行性. 该机器人手臂由文献[27]中提出的基于PD反馈的计算扭矩控制方法进行控制. 我们为机器人手臂设置期望的二维平面活动轨迹, 通过模型的在线学习, 预测控制机械臂所需的关节扭矩, 并以此控制机器人手臂使得它能按照期望的活动轨迹运动. 本文通过下式为机器人手臂设定期望的活动轨迹
(31) |
(32) |
其中,
图8显示了预设和实际运动轨迹分别对应的参数随时间的变化情况, 其中, 4条由星号绘制的粗曲线分别对应的是实际运动轨迹的角度和角速度, 4条虚线分别对应的是预设运动轨迹的角度和角速度. 从图中可以看出, 在开始阶段, 实际运动轨迹和预设运动轨迹的曲线相差较大, 但随着模型的运行, 两者的曲线趋于重合.
为了更直观地展示图8中预设和实际运动轨迹间的误差变化情况, 使用轨迹误差矢量的范数
(33) |
其中,
以上各实验从不同角度验证了本文模型能够适用于工程中的大数据量场景, 并且满足在线学习的实时性需求.
4. 结束语
为了在保持全局高斯过程回归预测精度高等优点的情况下, 减小其立方复杂度带来的过大的计算量, 本文提出了一种基于边界约束的概率相关局部高斯过程回归模型. 本文在该模型中使用一种基于贝叶斯原理的数据关联方法, 定义了用于数据点的分配和预测的激活函数. 同时, 本文将局部模型放置在空间网格中, 实现空间重叠的局部模型设置, 提高了模型的精度. 在算法方面, 利用对计算过程的优化和k-d树最近邻搜索, 以及更新模型预测矢量时采用已储存数据求矩阵的逆, 降低了模型更新阶段的计算量. 评估结果表明, 与其他局部高斯过程回归方法相比, 本文方法可以显著缩短计算时间, 同时实现与全局高斯过程回归方法相似的预测精度, 能够更好地处理大量且持续更新的数据. 在真实工程场景下, 能够很好地完成在线学习功能. 该模型具有能够快速更新和预测的特点, 满足在线学习的需求, 对于机器人控制、航空航天等实时产生大量多维数据的领域, 具有一定的工程意义.
- 2025年中科院分区表已公布!Scientific Reports降至三区
- 官方认定!CSSCI南大核心首批191家“青年学者友好期刊名单”
- 2023JCR影响因子正式公布!
- 国内核心期刊分级情况概览及说明!本篇适用人群:需要发南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的学者
- 我用了一个很复杂的图,帮你们解释下“23版最新北大核心目录有效期问题”。
- 重磅!CSSCI来源期刊(2023-2024版)最新期刊目录看点分析!全网首发!
- CSSCI官方早就公布了最新南核目录,有心的人已经拿到并且投入使用!附南核目录新增期刊!
- 北大核心期刊目录换届,我们应该熟知的10个知识点。
- 注意,最新期刊论文格式标准已发布,论文写作规则发生重大变化!文字版GB/T 7713.2—2022 学术论文编写规则
- 盘点那些评职称超管用的资源,1,3和5已经“绝种”了