概率论、统计学与最优化方法

把"不确定性、数据分布、参数寻优"翻译成概率模型和优化算法——这是机器学习、强化学习和机器人控制的数学基础。

3-4周
8 个章节
代码示例
4 个实验

本阶段目录

  1. 概率论基础
  2. 随机变量与分布
  3. 统计学推断
  4. 信息论入门
  5. 最优化方法
  6. 凸优化与约束优化
  7. 机器人中的概率应用

1. 概率论基础

为什么机器人需要概率

传感器噪声、执行器误差、环境变化——机器人永远活在不确定的世界里。概率论让机器人量化不确定性并做出最优决策。

贝叶斯定理是机器人定位、目标跟踪、传感器融合的数学基石:

$$P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)}$$

条件概率:$P(A|B) = \frac{P(A \cap B)}{P(B)}$,在已知B发生时A的概率。

贝叶斯定位

# 贝叶斯更新示例:机器人定位
class BayesianLocalization:
    def __init__(self, num_locations):
        self.belief = np.ones(num_locations) / num_locations
    def update(self, likelihood):
        self.belief = self.belief * likelihood
        self.belief /= self.belief.sum()
        return self.belief
    def predict(self, transition_matrix):
        self.belief = transition_matrix @ self.belief
        return self.belief

2. 随机变量与分布

分布符号使用场景
伯努利$B(p)$抓取成功/失败
高斯$\mathcal{N}(\mu,\sigma^2)$传感器噪声建模
GMM$\sum\pi_k\mathcal{N}(\mu_k,\Sigma_k)$多模态抓取姿态

高斯分布

$$\mathcal{N}(x | \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp(-\frac{(x-\mu)^2}{2\sigma^2})$$

中心极限定理:大量独立随机变量的和趋近高斯分布→传感器噪声普遍服从高斯分布。

3. 统计学推断

MLE:$$\hat{\theta}_{MLE} = \arg\max_\theta \prod_{i=1}^{n} p(x_i | \theta)$$

MAP:$$\hat{\theta}_{MAP} = \arg\max_\theta \, p(\mathcal{D} | \theta) \cdot p(\theta)$$——MLE+先验=正则化

偏差-方差权衡:$$\text{MSE} = \text{Bias}^2 + \text{Variance} + \text{Noise}$$

机器人类比:高偏差≈机械臂太刚动不了;高方差≈太软乱抖。

4. 信息论入门

:$$H(X) = -\sum_x p(x) \log_2 p(x)$$——衡量不确定性

KL散度:$$D_{KL}(P \| Q) = \sum_x P(x) \log \frac{P(x)}{Q(x)}$$——PPO用KL限制策略更新

互信息:$$I(X;Y) = H(X) - H(X|Y)$$——RL中好奇心驱动的内在奖励

5. 最优化方法

梯度下降:$$\theta_{t+1} = \theta_t - \eta \nabla_\theta \mathcal{L}(\theta_t)$$

方法创新机器人适用
SGD+Momentum动量通用
Adam自适应学习率默认首选
AdamW解耦weight decayRL训练
class Adam:
    def step(self, params, grad):
        self.t += 1
        self.m = 0.9 * self.m + 0.1 * grad
        self.v = 0.999 * self.v + 0.001 * grad**2
        m_hat = self.m / (1 - 0.9**self.t)
        v_hat = self.v / (1 - 0.999**self.t)
        params -= self.lr * m_hat / (np.sqrt(v_hat) + 1e-8)

6. 凸优化与约束优化

凸函数:局部最优=全局最优

拉格朗日乘子法:$$\mathcal{L}(x, \lambda, \mu) = f(x) + \lambda^T g(x) + \mu^T h(x)$$

应用:关节限位约束优化、MPC二次规划、接触力优化

7. 机器人中的概率应用

卡尔曼滤波

class KalmanFilter:
    def __init__(self, Q=0.01, R=0.1):
        self.Q, self.R = Q, R
    def predict(self, u, dt=1.0):
        self.x += u * dt; self.P += self.Q
    def update(self, z):
        K = self.P / (self.P + self.R)
        self.x += K * (z - self.x)
        self.P *= (1 - K)

蒙特卡洛

用随机采样估计关节不确定性对末端位姿的影响——$n=10000$次FK计算→末端位置分布。

阶段总结

概率论是处理不确定性的语言,优化方法是所有ML算法的引擎。贝叶斯思维贯穿SLAM、目标跟踪、传感器融合全过程。

知识地图

从数学到机器人算法

概率论回答“我有多确定”,统计学回答“如何从数据估计规律”,最优化回答“怎样找到最好的参数或动作”。三者共同支撑机器学习、强化学习、SLAM、MPC和机器人控制。

知识点连接到后续内容典型落地场景
贝叶斯公式卡尔曼滤波、粒子滤波、SLAM后端移动机器人定位、目标跟踪
高斯分布与协方差多传感器融合、状态估计RGB-D+IMU融合、关节噪声建模
MLE/MAP监督学习、策略学习、系统辨识动力学参数估计、抓取成功率建模
梯度下降深度学习、RL策略优化、VLA训练训练视觉编码器、训练动作策略
凸优化与约束优化MPC、轨迹优化、接触力分配机械臂避障、力控装配、全身控制

能力清单

实验任务

  1. 传感器噪声建模:采样1000次距离测量,拟合高斯分布并画出直方图、均值线和3σ区间。
  2. 贝叶斯定位:实现“预测-更新”循环,比较错误观测概率从0.05到0.3时的定位稳定性。
  3. 梯度下降可视化:在二次函数和Rosenbrock函数上比较SGD、Momentum、Adam的收敛轨迹。
  4. 约束优化小项目:为2D机械臂设计末端到目标点的最短轨迹,同时满足关节角限位。

常见面试题

  1. 为什么SLAM和传感器融合常用高斯噪声假设?什么时候这个假设会失效?
  2. MLE和MAP有什么区别?为什么L2正则化可以看作高斯先验?
  3. 梯度下降陷入局部最优和鞍点时,学习率、动量、Adam分别有什么作用?
  4. MPC为什么通常会被写成带约束的优化问题?机器人里常见约束有哪些?

下一阶段前置要求

进入机器学习与深度学习前,应能熟练读懂概率密度、损失函数、梯度、正则化和训练/验证误差曲线。若这些概念仍模糊,优先完成本阶段4个实验,不要急着进入神经网络。

代码挑战

1. 贝叶斯定位器:10格网格预测-更新循环
2. MLE参数估计:关节摩擦模型(速度,力矩)→参数估计
3. 卡尔曼滤波:调整Q/R使位置估计RMSE<0.05m

推荐论文与项目

📖 Probabilistic Robotics · 📖 PRML - Bishop · 📖 Stanford EE364A 凸优化

教材式自测与学习进度

概念自测

  1. 解释先验、似然、后验在机器人定位中的含义。
  2. 说明为什么协方差矩阵能表示二维/三维不确定性椭圆。
  3. 比较MLE和MAP在小样本噪声数据上的差异。
  4. 解释KL散度为什么不是对称距离。
  5. 说明学习率过大和过小时训练曲线分别会怎样。
  6. 解释凸优化中局部最优为什么就是全局最优。
  7. 举例说明机器人任务中的等式约束和不等式约束。
  8. 说明拉格朗日乘子在约束优化中的直觉意义。

推导练习

  1. 从条件概率推导贝叶斯公式。
  2. 推导一维高斯分布负对数似然与平方误差的关系。
  3. 写出带L2正则的线性回归目标,并解释其MAP视角。
  4. 推导梯度下降在一维二次函数上的收敛条件。
  5. 写出带关节限位的机械臂末端误差最小化问题。

进度追踪

里程碑验收标准完成
概率基础能用贝叶斯公式完成一次定位更新
统计推断能从数据估计均值、方差和模型参数
优化算法能画出不同优化器的收敛轨迹
约束优化能写出目标函数、约束和决策变量
机器人应用能解释卡尔曼滤波、SLAM和MPC为何需要本阶段知识