Bregman 散度(Bregman divergence)和Bregman信息(Bregman information)

Bregman 散度和Bregman information

Bregman散度

给定一个严格凸函数 Φ\Phi ,由该函数生成的Bregman散度(损失函数)DΦ(X,Y)D_\Phi(X,Y)通过下面的公式给出:
DΦ(x,y)=Φ(x)Φ(y)Φ(y),(xy)(1) D_\Phi(x,y)=\Phi(x)-\Phi(y)-\left \langle \nabla\Phi(y),(x-y) \right \rangle \tag{1}
其中,Φ(y)\nabla\Phi(y)是在 yy 上计算 Φ\Phi 的梯度,xyx-yxxyy的向量差,而Φ(y),(xy)\left \langle \nabla\Phi(y),(x-y) \right \rangleΦ(y)\nabla\Phi(y)(xy)(x-y)的内积,对于欧几里得空间的点,内积就是点积。
DΦ(x,y)D_\Phi(x,y)可以写成:
DΦ(x,y)=Φ(x)L(x)(2) D_\Phi(x,y)=\Phi(x)-L(x)\tag{2}
其中
L(x)=Φ(y)Φ(y),(xy)(3) L(x)=\Phi(y)-\left \langle \nabla\Phi(y),(x-y) \right \rangle \tag{3}
它代表yy上正切于函数Φ\Phi的平面方程,使用微积分学的术语,L(x)L(x)是函数Φ\Phi点附近的线性部分,而Bregman 散度就是一个函数与该函数的线性近似之间的差,选取不同的Φ\Phi,可以得到不同的Bregman 散度

补充解释:
1. 凸函数:

凸函数是一个定义在某个向量空间的凸子集CC(区间)上的实值函数ff ,而且对于凸子集CC中任意两个向量 x1,x2x_1,x_2恒有:
f(x1+x22)f(x1)+f(x2)2 f(\frac{x_1+x_2}{2})\leq\frac{f(x_1)+f(x_2)}{2}
若这里凸集CC即某个区间II,那么就是:设ff为定义在区间II上的函数,若对II上的任意两点x1,x2x_1,x_2和任意的实数 λ(0,1)\lambda \in(0,1),总有:
f(λx1,(1λ)x2)λf(x1)+(1λ)f(x2) f(\lambda x_1,(1-\lambda) x_2)\leq \lambda f(x_1)+(1-\lambda)f(x_2)
ff称为II上的凸函数。
对于实数集上的凸函数,一般的判别方法是求它的二阶导数,如果其二阶导数在区间上非负,就称为凸函数。(向下凸)
如果其二阶导数在区间上恒大于0,就称为严格凸函数。

2. 损失函数:

损失函数(loss function)是用来估量模型的预测值f(x)f(x)与真实值YY的不一致程度,它是一个非负实值函数,通常使用L(Y,f(x))L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:
θ=argminθ1Ni=1NL(yi,f(xi;θ)+λ Φ(θ) \theta^* = \arg \min_\theta \frac{1}{N}{}\sum_{i=1}^{N} L(y_i, f(x_i; \theta) + \lambda\ \Phi(\theta)
其中,前面的均值函数表示的是经验风险函数,LL代表的是损失函数,后面的是正则化项(regularizer)或者叫惩罚项(penalty term),它可以是L1L1,也可以是L2L2,或者其他的正则函数。整个式子表示的意思是找到使目标函数最小时的值。

3. 梯度:

函数梯度是与方向导数有关联的一个概念.
设函数f(x.y)f(x.y)在平面区域DD内具有一阶连续偏导数,则对于每一点P0(x0,y0)DP_0(x_0,y_0)\in D,都可定出一个向量
fx(x0,y0)i+fy(x0,y0)j f_x(x_0,y_0)i+f_y(x_0,y_0)j
这向量称为函数f(x.y)f(x.y)在点P0(x0,y0)P_0(x_0,y_0)的梯度,记作 gradf(x0,y0)f(x_0,y_0),或f(x0,y0)\nabla f(x_0,y_0),即:
gradf(x0,y0)=f(x0,y0)=fx(x0,y0)i+fy(x0,y0)j grad f(x_0,y_0)=\nabla f(x_0,y_0)=f_x(x_0,y_0)i+f_y(x_0,y_0)j
其中=xi+yj\nabla =\frac{\partial}{\partial x}i+\frac{\partial}{\partial y}j称为(二维的)向量微分算子或Nabla算子。

4. 内积:

设有nn维向量
x=(x1x2x3...xn),y=(y1y2y3...yn) x=\left( \begin{array}{ccc} x_1 \\ x_2 \\ x_3 \\ . \\ .\\ .\\ x_n \end{array} \right) , y=\left( \begin{array}{ccc} y_1 \\ y_2 \\ y_3 \\ . \\ .\\ .\\ y_n \end{array} \right)

[x,y]=x1y1+x2y2+...+xnyn [x,y]=x_1y_1+x_2y_2+. . .+x_ny_n
[x,y][x,y]称为向量xxyy的内积
内积是两个向量之间的一种运算,其结果是一个实数,用矩阵记号表示当xxyy都是列向量时,有:
[x,y]=xTy [x,y]=x^Ty

由此可知:bregman散度其实是基于一级泰勒展开式的一种偏移量度量。选择不同的Φ\Phi,可以得到多种损失函数,如下图:
在这里插入图片描述

Bregman information

bregman information是基于bregman散度的,参见paper:Clustering with Bregman Divergences

bregman information的定义如下:
定义一通俗点来讲就是,给定一个数据集XX,它的bregman information等于 xix_iEv[X]E_v[X]的bregman散度的均值。若我们把该数据集划分为多个子集(在聚类中,我们不妨把这些子集用簇来讲解),则可以得到总的bregman information等于簇内的bregman information加上簇间bregman information。如下定理所示:

在这里插入图片描述回想我们聚类的目标:使簇内差异最小化而簇间差异最大化。结合上面的定理,于是我们得到了这样一种聚类方法。即通过最小化簇内的bregman information,由上面等式可知,当簇内bregman information最小时,由于总的bregman information不变,则簇间的bregman information则相对最大。正好契合我们的聚类目标。

于是有算法一:
在这里插入图片描述对比我们经典的k-means算法如下图
在这里插入图片描述通过上面的对比,我们可以发现,两者都是参数型聚类算法(需要事先指定一些参数,比如k值),然后通过迭代重定位的策略得到最终结果。

补充解释bregman information算法(相对于簇质心)的全局目标函数是单调的,证明如下在这里插入图片描述

未完待续

参考文献
[1] Banerjee A , Merugu S , Dhillon I S , et al. Clustering with Bregman Divergences[J]. Journal of Machine Learning Research, 2005, 6(4):1705-1749.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章