
简介这是一份基于高斯过程的机器人模仿学习研究论文PDF面向机器人技术、机器学习与智能控制领域的科研人员和学生可作为参考文献与专业指导。资源仅包含1个PDF文件容量308KB。论文源自《北京工业大学学报》围绕机器人模仿学习中控制策略获取问题提出利用高斯过程回归模型刻画示教机器人感知与行为之间的映射关系并将其作为模仿机器人的控制策略文中以Braitenberg车辆为仿真对象研究趋光模仿学习行为并通过不同任务环境下的仿真实验验证算法有效性与适应性。阅读后可系统了解高斯过程在模仿学习中的建模思路、关键步骤数据采集、特征提取、模型训练、行为再现及与逆强化学习方法的对比适合用于课题调研、论文参考或算法复现。目前已有116人学习值得机器人/机器学习方向学习者收藏研读。1. 高斯过程回归为什么能拿下模仿学习的控制策略获取很多做机器人示教学习的团队第一次尝试都会选逆强化学习但逆强化学习要先有一个像样的代价函数而“模仿这个动作”本身很难用代价函数描述。这篇论文的思路很直接把示教行为看作一组样本点用高斯过程回归去拟合传感器输入到电机输出的映射拟合出来的函数就直接当控制策略用。严格说它把模仿学习从一个最优控制问题降维成了一个带置信区间的回归问题。这个思路从2015年至今在机器人行为克隆、机器人导航、机械臂示教复现中一直被沿用特别是样本量少、又需要量化策略不确定性的场景。2. 高斯过程回归的建模原理与超参数训练过程2.1 高斯过程的定义与核函数的角色高斯过程不是某个具体的函数表达式而是一族随机变量的集合集合中任意有限个随机变量都服从联合高斯分布。一个高斯过程由均值函数 m(x) 和协方差函数 k(x, x) 唯一确定写作 f(x) ~ GP(m(x), k(x, x))。均值函数描述函数的整体趋势协方差函数描述两个输入点上函数值之间的相关性。为了方便推导论文和多数实现都取零均值函数把全部表示能力放在协方差函数上。协方差函数也叫核函数是GP回归里最需要花心思的部分。它隐含了对函数光滑性、周期性和噪声水平的先验假设。论文选的是平方指数协方差函数RBF核k(x_p, x_q) σf² exp(-(x_p - x_q)² / (2l²)) σn² δ_pq公式里三个超参数各有明确的物理含义。参数集合 θ [l, σf², σn²] 全部通过训练过程自动优化不需要人工逐项调整。2.1.1 三个超参数的物理含义与初始值设定超参数的含义决定了模型的归纳偏置这里整理成参数速查表超参数符号物理含义初始值范围优化方式长度尺度l输入变化多少才会引起输出明显变化0.1~10负对数边际似然最小化信号方差σf²函数值的整体幅度0.1~100负对数边际似然最小化噪声方差σn²观测噪声水平0.001~1负对数边际似然最小化l 设得过大曲线过分平滑传感器输出剧烈变化时电机响应跟不上l 设得过小模型把噪声也当成信号学进去预测曲线剧烈抖动。σf² 决定输出幅度的先验一般参照归一化后的样本方差来设。σn² 在有真实传感器噪声时不能设成 0否则协方差矩阵可能奇异数值上不稳定。2.2 预测过程从先验分布到后验分布的闭式解GP回归的预测有完整的闭式解不需要像神经网络那样反复迭代。考虑噪声模型 y f(x) εε ~ N(0, σn²)训练观测的先验分布为y ~ N(0, K(X, X) σn² I)把测试点 X* 的预测值 f* 与训练观测 y 拼成联合高斯分布利用条件分布性质可以得到 f* 的后验分布。均值 μ* 和协方差 cov(f*) 分别对应论文的公式13和14。μ* 就是给定传感器读数时最可能的电机输出cov(f*) 对角线方差开根号乘以 1.96得到 95% 置信区间也就是论文图 6 里的灰色区域。这套推导的工程价值在于GP回归天然自带不确定性估计这在模仿学习里非常实用。示教数据覆盖不到的区域置信区间会明显变宽机器人能据此判断“当前状态在不在我学过的范围里”而不是盲目外推。这一点是 SVM 回归和神经网络在标准实现里给不了的。2.3 训练过程负对数边际似然最小化GP 的“训练”与传统机器学习不太一样它不做参数迭代更新而是优化三个超参数。优化目标是最小化训练样本的负对数边际似然L(θ) ½ yᵀ C⁻¹ y ½ log|C| (n/2) log(2π)其中 C K(X, X) σn² I。这个式子的第一项是数据拟合项第二项是复杂度惩罚项两项的平衡让 GP 在拟合和泛化之间自动取舍。对 θ 求偏导后可以用共轭梯度法或拟牛顿法求解。整个过程的计算瓶颈在每次迭代都要对 n×n 矩阵求逆复杂度 O(n³)。论文取 15 个样本点在 MATLAB 里拟合几乎瞬时完成但样本量涨到几千时就必须考虑稀疏 GP 或 FITC 近似了。对比同样做模仿学习的逆强化学习逆强化学习要先设计代价函数再在代价函数空间里搜索对代价函数的形式要求很高GP 回归把问题转成监督回归只要准备好“(传感器值, 电机值)”的成对样本就能直接得到带置信区间的控制策略。这种低建模成本是它被选用的核心理由。提示负对数边际似然不是损失函数意义上的误差。它衡量的是“这个超参数组合下观测数据出现的概率有多大”所以训练目标是概率最大化而不是让预测曲线严格穿过每个样本点。3. Braitenberg 车模仿学习系统搭建与样本采集3.1 Braitenberg 车的四种连接方式与行为特征Braitenberg 车是认知科学家 Valentino Braitenberg 设计的最小仿真车结构上只有光传感器和车轮电机中间没有控制器。它的神奇之处在于仅仅改变传感器到电机的连接方式并行/交叉和作用方向正比/反比就能涌现出不同的类情感行为。四种基本构型的差异可以用一个表讲清楚车型传感器-电机连接比例方向典型行为命名A并行反比靠近光源减速面向光源停下LoverB交叉反比背对光源停下扰动后驶离ExplorerC并行正比光照越强速度越大迅速远离FearD交叉正比高速冲向光源越过或撞击Aggressor论文选 A 车Lover作为示教对象理由很明确A 车的行为是收敛且稳定的。光照强的一侧传感器输出电流大反比连接下该侧电机转速低车头自然向光源偏转越靠近光源两侧转速整体下降最终面向光源停在附近。这个“趋光-减速-停驻”过程输入输出关系清晰适合用来验证模仿学习算法有效性。相比之下D 车的“侵略者”行为可能冲过头B 车停在背光侧还不稳定作为示教行为可控性差。3.2 示教机器人与模仿机器人的结构差异系统里有两台结构不同的 Braitenberg 车。示教机器人光传感器与同侧电机并行连接传感器输出与电机输出成反比映射关系完全已知。模仿机器人同样采用非交叉连接结构但传感器输出与电机输出之间是正比还是反比、比例系数是多少全部未知要通过 GP 学习出来。模仿学习的任务就是让模仿机器人学会示教机器人那种“感知到行为”的映射。注意这里学的不是轨迹。轨迹是特定起点、光源位置下的产物换一个起点就失效而映射关系描述的是“看到这个光强应该给电机多大输出”与具体位置无关。这正是论文后面做任务环境改变实验的理论基础。3.3 样本数据采集15 个样本点怎么采、为什么够论文的采样过程很朴素示教机器人从初始位置出发完成一次完整的趋光动作在时间轴上随机选取 15 个时间点每个时间点记录一对值 (s_i, m_i)s_i 是某一侧光传感器的输出电流m_i 是对应电机的输出值。左右两侧分开采集各得 15 个样本点所以论文图 6 的样本点图有 (a)(c) 两幅。15 个样本点全部用于 GP 模型训练没有像深度学习那样划分训练集、验证集。这不是省略而是 GP 回归的机制决定的后验推断本来就基于全部样本点泛化能力由核函数和超参数而不是样本数量保证。样本点少时 GP 的优势最明显——它能在小样本下给出合理的函数分布和不确定性估计这是神经网络做不到的。从工程角度看样本采集需要覆盖传感器输出的有效量程。趋光过程中传感器电流会从初始环境光强逐渐变化到光源附近的最大值15 个点按时间随机撒在这条变化曲线上能大致覆盖量程。如果采集点集中在某一小段量程GP 在未覆盖区域的预测置信区间会显著变大模仿策略在这个区域几乎不可用。采样时注意让样本点在时间轴上尽量分散而不是集中在起始段或结束段。4. 基于 GP 的控制策略获取与仿真实现4.1 从示教到模仿的完整流程论文的实现流程可以拆成五步配置示教机器人反比连接、映射已知光源位置任意模仿机器人连接关系未知等待学习。示教机器人执行一次趋光动作按时间随机采集样本点 D {(s_i, m_i)}左右传感器各一组。对样本点建立 GP 回归模型训练超参数得到传感器-电机映射。将映射写入模仿机器人的控制策略执行趋光行为。对比示教行为与模仿行为评估模仿效果。整个流程的关键在第 3 步。这里额外强调一点整个流程没有反向传播没有学习率没有 epochGP 训练的本质是超参数优化收敛快且不需要调网络结构这也是它在 2015 年的算力下就能跑通的直接原因。4.2 用 Python 复现 GP 回归建模与策略提取论文的仿真环境是 MATLAB但 GP 回归的复现不依赖具体平台。这里用 scikit-learn 的 GaussianProcessRegressor 给出等价实现方便没有 MATLAB 环境的人直接跑import numpy as np from sklearn.gaussian_process import GaussianProcessRegressor from sklearn.gaussian_process.kernels import ConstantKernel, RBF, WhiteKernel np.random.seed(42) # 模拟示教机器人左侧传感器样本点输入为光传感器输出电流(mA) sensor_left np.array([0.8, 1.6, 2.4, 3.1, 3.9, 4.6, 5.2, 6.0, 6.8, 7.5, 8.2, 8.9, 9.3, 9.7, 10.0]).reshape(-1, 1) # 对应电机输出反比关系电流越大转速越低 motor_left np.array([9.2, 8.6, 8.0, 7.4, 6.8, 6.3, 5.7, 5.1, 4.6, 4.0, 3.5, 2.9, 2.4, 1.8, 1.2]) # 组合核ConstantKernel*RBF 描述信号WhiteKernel 描述传感器噪声 kernel ConstantKernel(1.0, (1e-3, 1e3)) * RBF(1.0, (1e-2, 1e2)) \ WhiteKernel(0.1, (1e-3, 1e3)) gp GaussianProcessRegressor( kernelkernel, n_restarts_optimizer5, # 多次随机重启避免超参数陷入局部最优 alpha0, # 噪声已由WhiteKernel建模这里不再叠加 normalize_yTrue # 输出零均值归一化对应论文均值函数取0 ) gp.fit(sensor_left, motor_left) # 在传感器量程内做密集预测 x_pred np.linspace(0.5, 10.5, 200).reshape(-1, 1) y_mean, y_std gp.predict(x_pred, return_stdTrue) # 95%置信区间对应论文图6中的灰色区域 lower y_mean - 1.96 * y_std upper y_mean 1.96 * y_std # 后验均值即控制策略对应论文图6中的蓝色/红色曲线 policy y_mean这段代码里最需要注意的是核函数的组合方式。ConstantKernel 提供 σf² 的缩放RBF 提供 exp(-(x_p-x_q)²/2l²) 的相关性描述WhiteKernel 单独建模传感器噪声。三者相加正好还原论文公式15的平方指数协方差函数。alpha0 是刻意为之因为噪声已经由 WhiteKernel 承担再设 alpha 等于重复叠加噪声方差会让置信区间偏宽。如果是从示教机器人实际采集的数据直接把 sensor_left 和 motor_left 替换为数组即可后面的建模流程完全一样。训练完成后可以打印优化得到的超参数prod_kernel gp.kernel_.k1 # ConstantKernel * RBF 的乘积核 white_kernel gp.kernel_.k2 # WhiteKernel print(f长度尺度 l {prod_kernel.k2.length_scale:.3f}) print(f信号方差 sigma_f^2 {prod_kernel.k1.constant_value:.3f}) print(f噪声方差 sigma_n^2 {white_kernel.noise_level:.3f})这三行输出就是训练过程的结果。长度尺度如果落在 0.5~2 之间说明核函数对输入变化的响应尺度是合理的如果优化后长度尺度接近边界要回头检查输入是否做了标准化或者样本点是否覆盖了完整量程。4.3 置信区间宽度怎么用策略选取与风险判断论文图 6 的灰色区域是 95% 置信区间蓝色和红色曲线选取的是后验概率最大的函数也就是后验均值。用后验均值做策略等价于最小化期望平方误差这是最常规的选择。如果任务对安全性要求高可以改用置信区间下界做策略让机器人对不确定的传感器状态输出更保守的电机值反过来如果希望行为更激进可以用上界。置信区间宽度本身也是一个重要信号。宽度在新传感器读数处迅速增大说明该状态远离示教数据分布策略在此区域的可靠性低。在仿真里这种状态可能不出现但换到真实机器人或 ROS2 部署场景时任何未覆盖的传感器状态都会触发宽置信区间这是 GP 方法相对其他回归方法在处理分布外输入时的独有优势。4.4 模仿行为的判定轨迹像不是重点策略像才是论文的示教行为中机器人初始位置在 (20cm, 80cm)车头与水平方向呈 90°光源在 (160cm, 20cm)。示教机器人快速转向光源速度逐渐降低最终面向光源停住。模仿机器人在同样的初始条件下复现时判定标准不是轨迹误差多少厘米而是行为特征是否一致是否在起始阶段快速转向光源、是否逐步减速、是否最终停在光源附近。速率变化曲线的形态对比论文图 5(b) 和图 7(b)比位置对比更有说服力因为速率曲线直接反映控制策略的作用效果。实际部署到 ROS2 机器人上时GP 模型训练完成后封装成节点订阅光传感器话题、发布电机速度话题即可预测只需要 numpy 和加载好的模型文件。5. 任务环境改变下的适应性验证与 GP 落地技巧5.1 环境改变实验怎么设计论文的环境改变实验分三组只改模仿机器人的初始位置、只改初始方向、位置方向都改。三组都成功复现趋光行为。这个结论的本质是GP 学到的是从光传感器读值到电机输出的映射光源移动、起点改变都会体现在传感器读值的变化上而映射关系本身不受影响。与 DAGGER 这类需要在线交互采样的模仿学习方法不同GP 方案在示教阶段完成后就不再需要示教者参与环境改变完全由传感器读值的变化来体现。如果学的是纯轨迹换起点必然失败学的是感知-行为映射换环境只是换输入策略不需要重新训练。5.2 从仿真到实车的三个工程注意点注意点集中在数据分布和超参数上。第一传感器量程要对齐。示教机器人和模仿机器人用同型号光传感器量程不一致时模仿机器人的读值会落进 GP 外推区置信区间快速变宽策略不可用。这种情况下要么对两侧传感器读数做标准化要么在预测前判断当前输入是否落在训练数据的最小最大值范围内。第二超参数优化方面n_restarts_optimizer 建议设成 10 以上。GP 的负对数似然面在低样本量时可能有多个局部极小多随机重启能降低陷入局部最优的概率。第三仿真实时性方面GP 预测需要对训练集协方差矩阵求逆样本量上千时单次预测延迟明显要换稀疏 GP 或 FITC 近似。5.3 用置信区间做安全兜底一个很实用的工程技巧给 GP 策略加一个“不确定性开关”。设定阈值当预测标准差 y_std 超过阈值时说明当前传感器读值在示教分布之外机器人切换为保守行为比如减速或请求人工干预。阈值可以直接取训练集上预测标准差的分位数。这个机制在论文里表现为“不同任务环境下的适应性”在实车上则是一个低成本的安全兜底。本文还有配套的精品资源点击获取