31、分类器设计中的Bregman散度与相关技术

分类器设计中的Bregman散度与相关技术

1. 分类器设计中的优化技巧

在分类器设计里,为了让每个偏导数仅依赖于对应的 $\lambda_j$,可以对指数进行如下变换:
[e^{\Delta \cdot F(x_i)} = e^{\sum_{j = 1}^{m} \delta_j F_j(x_i)} = e^{(\sum_{j = 1}^{m} F_j(x_i)) \sum_{j = 1}^{m} \frac{\delta_j F_j(x_i)}{\sum_{j = 1}^{m} F_j(x_i)}}]
接着,定义 $p_j(x) = \frac{F_j(x)}{\sum_{j} F_j(x)}$,这是在指数中引入 $\sum_{j} F_j(x)$ 后得到的概率密度函数(pdf)。当利用 $p_j(x)$ 的Jensen不等式时,关键技巧就出现了。由于指数函数是凸函数,所以有 $e^{\sum_{x} p_j(x)q(x)} \leq \sum_{x} p(x)e^{q(x)}$。令 $q(x) = \sum_{j} F_j(x)$,可以得到:
[A(\Delta|\Lambda) \geq \sum_{i = 1}^{N} \left(\sum_{j = 1}^{m} \delta_j F_j(x_i)\right) + 1 - \sum_{x_i} p(x_i) \left(\sum_{j = 1}^{m} p_j(x_i)e^{\delta_j \sum_{j = 1}^{m} F_j(x_i)}\right) = B(\Delta|\Lambda)]
对 $B(\Delta|\Lambda)$ 关于 $\delta_j$ 求偏导数:
[\frac{\partial B(\Delta|\Lambda)}{\partial \delta_j} = \sum_{i = 1}^{N} F_j(x_i) - \sum_{x_i} p(x_i) \left(F_j(x_i)e^{\delta_j \sum_{k = 1}^{m} F_k(x_i)}\right)]
令每个偏导数为零,就能得到更新方程。与Alg. 19中使用的表达式不同的是,这里包含了用于构建分类器的条件模型。

2. Bregman散度的概念与性质

Bregman散度 $D_{\varphi}(x, y)$ 由一个凸可微函数 $\varphi(\cdot)$(称为生成器)来定义:
[D_{\varphi}(x, y) = \varphi(x) - \varphi(y) - (x - y)^T \nabla \varphi(y)]
当考虑一维变量 $x$ 和 $y$ 时,Bregman散度通常被视为泰勒展开的余项。一些经典的生成器及其对应的散度如下表所示:
| 生成器 $\varphi(x)$ | Bregman散度 $D_{\varphi}(x, y)$ | 名称 |
| — | — | — |
| $| | x | |^2$ | $| | x - y | |^2$ | 欧几里得距离 |
| $\sum_{i} x_i \log x_i$ | $\sum_{i} x_i \log \frac{x_i}{y_i}$ | Kullback - Leibler散度 |
| $-\sum_{i} \log x_i$ | $\sum_{i} \left(\frac{x_i}{y_i} - \log \frac{x_i}{y_i} - 1\right)$ | Itakura - Saito散度 |

一般来说,Bregman散度满足 $D_{\varphi}(x, y) \geq 0$,当且仅当 $x = y$ 时等号成立。不过,它不是度量,因为通常不满足对称性和三角不等式。但有如下勾股不等式:
[D_{\varphi}(x, y) \geq D_{\varphi}(z, y) + D_{\varphi}(x, z)]
当 $z = \min D_{\varphi}(w, y)$($w \in \Omega$)时等号成立,$z$ 被称为 $y$ 到凸集 $\Omega$ 的Bregman投影。

在指数族分布中,存在指数概率密度函数(pdf)与Bregman散度之间的有趣双射关系,这种双射通过Legendre对偶的概念建立。给定一个实值函数 $G(\cdot)$,其共轭函数 $G^ (\cdot)$ 定义为:
[G^
(a) = \sup_{\Lambda \in \Omega} {a \cdot \Lambda - G(\Lambda)}]
当 $G(\cdot)$ 严格凸且在 $\Theta = \text{int}(\Omega)$ 上可微时,存在唯一的 $\Lambda^ $ 对应于上式中的上确界。通过设置该点的梯度为零,可以得到 $a = \nabla G(\Lambda^ )$。并且,$\nabla G$ 和 $\nabla G^*$ 互为逆函数。

指数族分布可以用Bregman散度表示为:
[p_{(G,\Lambda)}(x) = e^{\Lambda \cdot F(x) - G(\Lambda)} \pi(x) = e^{-D_{G^ }(F(x), a)} b_{G^ } \pi(x)]
其中,$D_{G^ }(F(x), a)$ 是由 $G^ $ 生成的Bregman散度,$b_{G^ } = e^{G^ (F(x))}$。不同的 $G^*$ 选择可以定义指数族中的不同分布类,例如欧几里得距离对应高斯分布,Kullback - Leibler散度对应多项分布,Itakura - Saito距离对应几何分布。

3. Bregman球与核心向量机

在分类问题中,考虑一个简单的单类分类问题:给定一组观测到的向量模式 $S = {x_1, \ldots, x_N}$,$x_i \in \mathbb{R}^k$,需要找到一个能很好拟合该集合的简化描述。这个描述就是中心 $c \in \mathbb{R}^k$,它能使相对于 $S$ 的最大失真 $D(x, c) \leq r$ 最小化,其中 $r$ 是变异性阈值,需要进行估计。

这个单类分类问题可以表述为寻找 $S$ 的最小包围球(MEB)。在经典的欧几里得失真情况下,MEB问题与支持向量机(SVM)的一个变体——核心向量机(CVM)密切相关。CVM继承了SVM的核技巧,核函数 $k(\cdot, \cdot)$ 作为不相似性函数起着核心作用。如果核函数是对称的,并且得到的 $|S| \times |S| = N \times N$ 矩阵 $K_{ij} = k(x_i, x_j)$ 是半正定的(满足 $\sum_{i} \sum_{j} K_{ij} c_i c_j \geq 0$ 对于所有实数 $c_i$),则该矩阵是Gram矩阵。

在CVM中,MEB问题的原问题表述为:
[\min_{c,r} r^2 \quad \text{s.t.} \quad | c - \phi(x_i) |^2 \leq r^2, \quad i = 1, \ldots, N]
对应的拉格朗日函数为:
[L(S, \Lambda) = r^2 - \sum_{i = 1}^{N} \lambda_i (r^2 - | c - \phi(x_i) |^2)]
对偶问题为:
[\max_{\Lambda} \Lambda^T \text{diag}(K) - \Lambda^T K \Lambda \quad \text{s.t.} \quad \Lambda^T 1 = 1, \quad \Lambda \geq 0]
求解对偶问题得到 $\Lambda^ $ 后,原问题的解为:
[c^
= \sum_{i = 1}^{N} \lambda_i^ \phi(x_i), \quad r = \sqrt{\Lambda^{ T} \text{diag}(K) - \Lambda^{ T} K \Lambda^ }]

使用核技巧可以将欧几里得域中的超球形区域推广到变换域中的更一般区域。一般来说,高斯核 $k(x_i, x_j) = e^{-(x_i - x_j)^2 / s^2}$ 比多项式核产生更好的结果。

CVM类型的SVDD与使用不同的距离/散度(不一定是欧几里得距离)而不是不同的核有很高的可比性,这引出了Bregman球的概念。给定Bregman散度 $D_{\varphi}$,Bregman球定义为 $B_{(c,r)}^{\varphi} = {x \in S : D_{\varphi}(c, x) \leq r}$。

对应的拉格朗日函数为:
[L(S, \Lambda) = r - \sum_{i = 1}^{N} \lambda_i (r - D_{\varphi}(c, x_i))]
对 $L$ 关于 $c$ 和 $r$ 求偏导数并令其为零,得到:
[\sum_{i = 1}^{N} \lambda_i = 1, \quad \nabla \varphi(c) = \sum_{i = 1}^{N} \lambda_i \nabla \varphi(x_i) \Rightarrow c^* = \nabla^{-1} \varphi \left(\sum_{i = 1}^{N} \lambda_i \nabla \varphi(x_i)\right)]
对偶问题为:
[\max_{\Lambda} \sum_{i = 1}^{N} \lambda_i D_{\varphi} \left(\nabla^{-1} \varphi \left(\sum_{i = 1}^{N} \lambda_i \nabla \varphi(x_i)\right), x_i\right) \quad \text{s.t.} \quad \sum_{i = 1}^{N} \lambda_i = 1, \quad \Lambda \geq 0]

当 $\varphi(z) = | z |^2$ 时,$D_{\varphi}$ 有特定的定义。不同的Bregman散度对应不同的功能平均值,例如欧几里得距离对应算术平均值,Kullback - Leibler散度对应几何平均值,Itakura - Saito距离对应调和平均值。

求解最小包围Bregman球(SEBB)问题的对偶问题比较复杂,更实际的做法是通过求解以下问题来估计 $c^*$:
[\min_{g,r’} r’ \quad \text{s.t.} \quad | g - \nabla \varphi(x_i) |^2 \leq r’, \quad i = 1, \ldots, N]

以下是寻找中心的BC算法流程:
1. 随机选择 $c \in S$;
2. 对于给定的迭代次数 $T - 1$,对于 $t = 1, \ldots, T - 1$:
- 设置 $x \leftarrow \arg \max_{x’ \in S} | c - x’ |^2$;
- 设置 $c \leftarrow \frac{t}{t + 1} c + \frac{1}{t + 1} x$。

使用Bregman散度寻找中心的BBC算法,只需将BC算法主循环中的内容修改为:
1. 设置 $x \leftarrow \arg \max_{x’ \in S} D_{\varphi}(c, x’)$;
2. 设置 $c \leftarrow \nabla^{-1} \varphi \left(\frac{t}{t + 1} \nabla \varphi(c) + \frac{1}{t + 1} \nabla \varphi(x)\right)$。

还有一种MBC算法,它考虑了 $g^ $ 的寻找:
1. 定义一组新的变换向量:$S’ \leftarrow {\nabla \varphi(x) : x \in S}$;
2. 调用BC算法 $g^
\leftarrow BC(S, T)$;
3. 得到 $c \leftarrow \nabla^{-1} \varphi(g^*)$。

以下是BBC算法与BC算法比较的mermaid流程图:

graph TD;
    A[开始] --> B{选择算法};
    B -->|BC算法| C[随机选c];
    B -->|BBC算法| D[随机选c];
    C --> E[迭代T-1次];
    D --> F[迭代T-1次];
    E --> G[找max||c-x'||2];
    F --> H[找maxDφ(c,x')];
    G --> I[c更新];
    H --> J[c更新];
    I --> K[结束];
    J --> K;

分类器设计中的Bregman散度与相关技术

4. 统一分类:Bregman散度与替代损失函数

在分类问题中,Bregman散度被认为是理解分类器泛化误差的统一形式工具,其理论框架基于替代损失函数(surrogates),即经验风险的上界。

考虑一个简单的二分类问题,样本集 $S = (X, Y)$,其中 $X = {x_1, \ldots, x_N}$,$Y = {+1, -1}$,分类器 $h: X \to Y$。泛化误差(GE)定义为 $GE = P_{X,Y}(y \neq \text{sign}(h(x))) = E_{X,Y} \ell(y, h(x))$,通常通过经验风险(ER)$\hat{R}(h, S) = \frac{1}{N} \sum_{i = 1}^{N} \ell(y_i, h(x_i))$ 来估计。

典型的损失函数是0/1损失函数:$\ell_{0/1}(y, h(x)) = I(h(x) \neq y) = I(\text{sign}(yh(x)) \neq +1)$,但使用该损失函数的ER很难最小化。为了更方便地处理,假设 $h: X \to \mathbb{R}$ 或 $h: X \to [0, 1]$,$Y = {0, 1}$ 和 $Y^ = {-1, 1}$。此时,0/1损失可以定义为 $\ell_{0/1}^{\mathbb{R}}(y^ , h(x)) = I(\sigma(h(x)) \neq y^*)$ 或 $\ell_{0/1}^{[0,1]}(y, h(x)) = I(\tau(h(x)) \neq y)$。

替代损失函数通过使用不同的(通常是凸的)损失函数来放松估计 $\epsilon_{0/1}$ 紧上界的问题。一些典型的替代损失函数如下表所示:
| 替代损失函数 | 表达式 |
| — | — |
| 指数损失 | $\ell_{\text{exp}}^{\mathbb{R}}(y^ , h(x)) = e^{-y^ h(x)}$ |
| 逻辑损失 | $\ell_{\text{log}}^{\mathbb{R}}(y^ , h(x)) = \log(1 + e^{-y^ h(x)})$ |
| 平方损失 | $\ell_{\text{sqr}}^{\mathbb{R}}(y^ , h(x)) = (1 - y^ h(x))^2$ |

一个损失函数 $\ell(\cdot, \cdot)$ 要定义允许的替代损失函数,需要满足以下三个性质:
1. $\ell(\cdot, \cdot)$ 下界为零;
2. $\arg \min_x \epsilon_{[0,1]}(x, S) = q$,其中 $q = \hat{p}(y|x)$ 是条件概率密度函数 $p$ 的近似;
3. $\ell(y, h(x)) = \ell(1 - y, 1 - h(x))$ 对于 $y \in {0, 1}$ 和 $h(x) \in [0, 1]$(对称性质)。

一个函数 $\varphi: [0, 1] \to \mathbb{R}^+$ 是允许的,当且仅当:$-\varphi$ 在 $(0, 1)$ 上可微,严格凹,关于 $x = \frac{1}{2}$ 对称,且 $a_{\varphi} = -\varphi(0) = -\varphi(1) \geq 0$。一些允许的函数示例如下:
| 允许的函数 | 表达式 |
| — | — |
| Matsushita误差 | $\varphi_M(x) = -\sqrt{x(1 - x)}$ |
| 比特熵 | $\varphi_Q(x) = x \log x + (1 - x) \log(1 - x)$ |
| Gini指数 | $\varphi_B(x) = -x(1 - x)$ |

允许的函数与替代损失函数之间的联系在于,任何满足上述三个性质的损失函数 $\ell(y, h)$ 都可以表示为 $\ell(y, h) = D_{\varphi}(y, h)$,其中 $D_{\varphi}(\cdot, \cdot)$ 是由允许的生成器 $\varphi(\cdot)$ 生成的Bregman散度。

通过Legendre变换,$\varphi$ 的共轭函数 $\varphi^ $ 定义为 $\varphi^ (x) = \sup_{u \in \text{dom}(\varphi)} {ux - \varphi(u)}$。对于 $y \in {0, 1}$,有 $D_{\varphi}(y, \nabla^{-1} \varphi(h)) = \varphi^ ( -y^ h) + a_{\varphi}$。定义 $F_{\varphi}(x) = (\varphi^ ( -x) - a_{\varphi}) / b_{\varphi}$(当 $a_{\varphi} = 0$,$b_{\varphi} = 1$ 时,$F_{\varphi}(x) = \varphi^ ( -x)$),它是严格凸的,并且满足 $\ell_{0/1}^{\mathbb{R}}(y^ , h) \leq F_{\varphi}(y^ h)$,因此 $F_{\varphi}$ 定义了一个替代损失函数。

不同允许函数对应的 $F_{\varphi}$ 表达式如下:
| 允许的函数 | $F_{\varphi}(y^ h)$ 表达式 |
| — | — |
| $\varphi_M$ | $F_{\varphi_M}(y^
h) = -y^ h + \sqrt{1 + (y^ h)^2}$ |
| $\varphi_Q$ | $F_{\varphi_Q}(y^ h) = \log(1 + e^{-y^ h})$ |
| $\varphi_B$ | $F_{\varphi_B}(y^ h) = (1 - y^ h^2)$ |

5. 通用线性分离器(ULS)算法

对于线性分离器(LS)分类器,如Boosting中的分类器 $H(x_i) = \sum_{t = 1}^{T} \alpha_t h_t(x_i)$,可以使用Bregman散度和替代损失函数来优化。

首先,将 $\nabla^{-1} \varphi(-y^ _i h(x_i))$ 与Boosting采样策略中使用的权重 $w_i$ 进行关联。将所有分类器和所有示例之间的差异分组到一个 $N \times T$ 的矩阵 $M$ 中:
[M = - \begin{pmatrix}
y^
_1 h_1(x_1) & \cdots & y^ _1 h_T(x_1) \
\vdots & \ddots & \vdots \
y^
_N h_1(x_N) & \cdots & y^*_N h_T(x_N)
\end{pmatrix}]

一个增强分类器 $H$ 与示例 $x_i$ 对应的类别 $y^ _i$ 之间的差异(边)为 $-M_i \alpha = y^ i \left(\sum {i = 1}^{T} \alpha_t h_t(x_i)\right)$,一个弱分类器与样本集 $S$ 之间的差异为 $-M_t^T w = \sum_{i = 1}^{T} w_i y_i h_t(x_i)$。

关键的Bregman - 勾股定理在这个上下文中表示为 $D_{\varphi}(0, w) = D_{\varphi}(0, w_{\infty}) + D_{\varphi}(w_{\infty}, w)$,其中 $w_{\infty}$ 是最优权重。

ULS算法的目标是在 $\Omega \ni w$ 中最小化 $D_{\varphi}(0, w)$,即 $\min_{H} \epsilon_{0/1}^{\varphi}(H, S) = \min_{w \in \Omega} D_{\varphi}(0, w)$。

ULS算法的步骤如下:
1. 初始化:$w_1 \leftarrow \nabla^{-1} \varphi(0) \mathbf{1}$,即 $w_{1,i} = \frac{1}{2}$,$\forall i$(因为 $\nabla^{-1} \varphi(0) = \frac{1}{2}$);$\alpha_1 \leftarrow 0$。
2. 迭代更新:
- 对于 $j = 1$ 到 $T$:
- 选择 $T_j \subseteq {1, 2, \ldots, T}$,通常 $|T_j| = 1$。
- 设置 $\delta_j = 0$。
- 对于 $\forall t \in T_j$,选择 $\delta_{j,t}$ 使得 $\sum_{i = 1}^{N} M_{it} \left(\nabla^{-1} \varphi(M_i(\alpha_j + \delta_j))\right) = 0$。
- 设置 $\alpha_{j + 1} \leftarrow \alpha_j + \delta_j$。
- 更新 $w_{j + 1,i} \leftarrow \nabla^{-1} \varphi(M_i(\alpha_j + \delta_j))$。

ULS算法的收敛条件为 $\delta = 0$,$\forall T_j$,等价于 $w_j \in \text{Ker} M^T| {T_j}$,$\forall T_j$,即 $w_j = w {\infty}$。

以下是ULS算法的mermaid流程图:

graph TD;
    A[开始] --> B[初始化w1和α1];
    B --> C{迭代j=1到T};
    C --> D[选择Tj];
    D --> E[设置δj=0];
    E --> F[选δj,t使等式成立];
    F --> G[更新αj+1];
    G --> H[更新wj+1];
    H --> C;
    C -->|结束| I[输出强分类器H];
6. ULS算法在决策树中的扩展

将ULS算法扩展到决策树时,将决策树的每个节点视为一个弱分类器。内部弱分类器(测试)的输出 $h_j \in {0, 1}$,叶节点 $l \in \partial H$ 的输出 $h_l \in {-1, 1}$。

决策树将样本集 $S$ 划分为子集 $S_l$,样本属于类别 $+1$ 的概率为 $|S^+_l| / |S_l|$,属于类别 $-1$ 的概率同理。

对于决策树的每个节点,其杠杆系数 $\alpha_l$ 可以通过以下公式计算:
[\alpha_l = \frac{1}{h_l} \left(\nabla \varphi \left(\frac{|S^+ l|}{|S_l|}\right) - \sum {t \in P_l} \alpha_t h_t\right)]
其中 $P_l$ 是从根节点到叶节点 $l$ 的路径上的分类器集合。

对于到达叶节点 $l$ 的观测 $x$,分类器输出 $H(x) = \nabla \varphi(|S^+ l| / |S_l|)$,因此 $\nabla^{-1} \varphi(x) = |S^+_l| / |S_l|$。替代损失函数定义为:
[\epsilon
{R}^{\varphi}(H, S) = \sum_{i = 1}^{N} F_{\varphi}(y^* i H(x_i)) = \sum {l \in \partial H} |S_l| \left(-\varphi \left(\frac{|S^+_l|}{|S_l|}\right)\right)]

扩展ULS到决策树的步骤如下:
1. 从只有一个叶节点的树开始。
2. 在每个时刻,扩展满足以下条件的叶节点:
[\sum_{l \in \partial H} |S_l| \left(-\varphi \left(\frac{|S^+ l|}{|S_l|}\right)\right) - \sum {l \in \partial H’} |S_l| \left(-\varphi \left(\frac{|S^+_l|}{|S_l|}\right)\right) < 0]

综上所述,Bregman散度在分类器设计中具有重要作用,它不仅可以用于定义不同的距离度量和分类区域,还可以通过替代损失函数和ULS算法来优化分类器的性能,并且可以扩展到不同类型的分类器,如决策树。这些技术为解决复杂的分类问题提供了有效的工具和方法。

【四轴飞行器】非线性三自由四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由四轴飞行器模拟器的研究展开,重点介绍基于Matlab代码实现的四轴飞行器动力学建模仿真方法。研究构建了考虑非线性特性的飞行器数学模型,涵盖姿态动力学运动学方程,实现了三自由(滚转、俯仰、偏航)的精确模拟。文中详细阐述了系统建模过程、控制算法设计思路及仿真结果分析,帮助读者深入理解四轴飞行器的飞行动力学特性控制机制;同时,该模拟器可用于算法验证、控制器设计教学实验。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及无人机相关领域的工程技术人员,尤其适合从事飞行器建模、控制算法开发的研究生和初级研究人员。; 使用场景及目标:①用于四轴飞行器非线性动力学特性的学习仿真验证;②作为控制器(如PID、LQR、MPC等)设计测试的仿真平台;③支持无人机控制系统教学科研项目开发,提升对姿态控制系统仿真的理解。; 阅读建议:建议读者结合Matlab代码逐模块分析,重点关注动力学方程的推导实现方式,动手运行并调试仿真程序,以加深对飞行器姿态控制过程的理解。同时可扩展为六自由模型或加入外部干扰以增强仿真真实性。
基于分布式模型预测控制DMPC的多智能体点对点过渡轨迹生成研究(Matlab代码实现)内容概要:本文围绕“基于分布式模型预测控制(DMPC)的多智能体点对点过渡轨迹生成研究”展开,重点介绍如何利用DMPC方法实现多智能体系统在复杂环境下的协同轨迹规划控制。文中结合Matlab代码实现,详细阐述了DMPC的基本原理、数学建模过程以及在多智能体系统中的具体应用,涵盖点对点转移、避障处理、状态约束通信拓扑等关键技术环节。研究强调算法的分布式特性,提升系统的可扩展性鲁棒性,适用于多无人机、无人车编队等场景。同时,文档列举了大量相关科研方向代码资源,展示了DMPC在路径规划、协同控制、电力系统、信号处理等多领域的广泛应用。; 适合人群:具备一定自动化、控制理论或机器人学基础的研究生、科研人员及从事智能系统开发的工程技术人员;熟悉Matlab/Simulink仿真环境,对多智能体协同控制、优化算法有一定兴趣或研究需求的人员。; 使用场景及目标:①用于多智能体系统的轨迹生成协同控制研究,如无人机集群、无人驾驶车队等;②作为DMPC算法学习仿真实践的参考资料,帮助理解分布式优化模型预测控制的结合机制;③支撑科研论文复现、毕业设计或项目开发中的算法验证性能对比。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注DMPC的优化建模、约束处理信息交互机制;按文档结构逐步学习,同时参考文中提及的路径规划、协同控制等相关案例,加深对分布式控制系统的整体理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值