Bregman 散度和Bregman information
Bregman散度
给定一个严格凸函数 Φ \Phi Φ ,由该函数生成的Bregman散度(损失函数)D Φ ( X , Y ) D_\Phi(X,Y) D Φ ( X , Y ) 通过下面的公式给出:
D Φ ( x , y ) = Φ ( x ) − Φ ( y ) − ⟨ ∇ Φ ( y ) , ( x − y ) ⟩ (1)
D_\Phi(x,y)=\Phi(x)-\Phi(y)-\left \langle \nabla\Phi(y),(x-y) \right \rangle \tag{1}
D Φ ( x , y ) = Φ ( x ) − Φ ( y ) − ⟨ ∇ Φ ( y ) , ( x − y ) ⟩ ( 1 )
其中,∇ Φ ( y ) \nabla\Phi(y) ∇ Φ ( y ) 是在 y y y 上计算 Φ \Phi Φ 的梯度,x − y x-y x − y 是x x x 与y y y 的向量差,而⟨ ∇ Φ ( y ) , ( x − y ) ⟩ \left \langle \nabla\Phi(y),(x-y) \right \rangle ⟨ ∇ Φ ( y ) , ( x − y ) ⟩ 是∇ Φ ( y ) \nabla\Phi(y) ∇ Φ ( y ) 与( x − y ) (x-y) ( x − y ) 的内积,对于欧几里得空间的点,内积就是点积。
D Φ ( x , y ) D_\Phi(x,y) D Φ ( x , y ) 可以写成:
D Φ ( x , y ) = Φ ( x ) − L ( x ) (2)
D_\Phi(x,y)=\Phi(x)-L(x)\tag{2}
D Φ ( x , y ) = Φ ( x ) − L ( x ) ( 2 )
其中
L ( x ) = Φ ( y ) − ⟨ ∇ Φ ( y ) , ( x − y ) ⟩ (3)
L(x)=\Phi(y)-\left \langle \nabla\Phi(y),(x-y) \right \rangle \tag{3}
L ( x ) = Φ ( y ) − ⟨ ∇ Φ ( y ) , ( x − y ) ⟩ ( 3 )
它代表y y y 上正切于函数Φ \Phi Φ 的平面方程,使用微积分学的术语,L ( x ) L(x) L ( x ) 是函数Φ \Phi Φ 点附近的线性部分,而Bregman 散度就是一个函数与该函数的线性近似之间的差,选取不同的Φ \Phi Φ ,可以得到不同的Bregman 散度
补充解释:
1. 凸函数:
凸函数是一个定义在某个向量空间的凸子集C C C (区间)上的实值函数f f f ,而且对于凸子集C C C 中任意两个向量 x 1 , x 2 x_1,x_2 x 1 , x 2 恒有:
f ( x 1 + x 2 2 ) ≤ f ( x 1 ) + f ( x 2 ) 2
f(\frac{x_1+x_2}{2})\leq\frac{f(x_1)+f(x_2)}{2}
f ( 2 x 1 + x 2 ) ≤ 2 f ( x 1 ) + f ( x 2 )
若这里凸集C C C 即某个区间I I I ,那么就是:设f f f 为定义在区间I I I 上的函数,若对I I I 上的任意两点x 1 , x 2 x_1,x_2 x 1 , x 2 和任意的实数 λ ∈ ( 0 , 1 ) \lambda \in(0,1) λ ∈ ( 0 , 1 ) ,总有:
f ( λ x 1 , ( 1 − λ ) x 2 ) ≤ λ f ( x 1 ) + ( 1 − λ ) f ( x 2 )
f(\lambda x_1,(1-\lambda) x_2)\leq \lambda f(x_1)+(1-\lambda)f(x_2)
f ( λ x 1 , ( 1 − λ ) x 2 ) ≤ λ f ( x 1 ) + ( 1 − λ ) f ( x 2 )
则f f f 称为I I I 上的凸函数。
对于实数集上的凸函数,一般的判别方法是求它的二阶导数,如果其二阶导数在区间上非负,就称为凸函数。(向下凸)
如果其二阶导数在区间上恒大于0,就称为严格凸函数。
2. 损失函数:
损失函数(loss function)是用来估量模型的预测值f ( x ) f(x) f ( x ) 与真实值Y Y Y 的不一致程度,它是一个非负实值函数,通常使用L ( Y , f ( x ) ) L(Y, f(x)) L ( Y , f ( x ) ) 来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:
θ ∗ = arg min θ 1 N ∑ i = 1 N L ( y i , f ( x i ; θ ) + λ Φ ( θ )
\theta^* = \arg \min_\theta \frac{1}{N}{}\sum_{i=1}^{N} L(y_i, f(x_i; \theta) + \lambda\ \Phi(\theta)
θ ∗ = arg θ min N 1 i = 1 ∑ N L ( y i , f ( x i ; θ ) + λ Φ ( θ )
其中,前面的均值函数表示的是经验风险函数,L L L 代表的是损失函数,后面的是正则化项(regularizer)或者叫惩罚项(penalty term),它可以是L 1 L1 L 1 ,也可以是L 2 L2 L 2 ,或者其他的正则函数。整个式子表示的意思是找到使目标函数最小时的值。
3. 梯度:
函数梯度是与方向导数有关联的一个概念.
设函数f ( x . y ) f(x.y) f ( x . y ) 在平面区域D D D 内具有一阶连续偏导数,则对于每一点P 0 ( x 0 , y 0 ) ∈ D P_0(x_0,y_0)\in D P 0 ( x 0 , y 0 ) ∈ D ,都可定出一个向量
f x ( x 0 , y 0 ) i + f y ( x 0 , y 0 ) j
f_x(x_0,y_0)i+f_y(x_0,y_0)j
f x ( x 0 , y 0 ) i + f y ( x 0 , y 0 ) j
这向量称为函数f ( x . y ) f(x.y) f ( x . y ) 在点P 0 ( x 0 , y 0 ) P_0(x_0,y_0) P 0 ( x 0 , y 0 ) 的梯度,记作 gradf ( x 0 , y 0 ) f(x_0,y_0) f ( x 0 , y 0 ) ,或∇ f ( x 0 , y 0 ) \nabla f(x_0,y_0) ∇ f ( x 0 , y 0 ) ,即:
g r a d f ( x 0 , y 0 ) = ∇ f ( x 0 , y 0 ) = f x ( x 0 , y 0 ) i + f y ( x 0 , y 0 ) 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
g r a d f ( x 0 , y 0 ) = ∇ f ( x 0 , y 0 ) = f x ( x 0 , y 0 ) i + f y ( x 0 , y 0 ) j
其中∇ = ∂ ∂ x i + ∂ ∂ y j \nabla =\frac{\partial}{\partial x}i+\frac{\partial}{\partial y}j ∇ = ∂ x ∂ i + ∂ y ∂ j 称为(二维的)向量微分算子或Nabla算子。
4. 内积:
设有n n n 维向量
x = ( x 1 x 2 x 3 . . . x n ) , y = ( y 1 y 2 y 3 . . . y n )
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 = ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ x 1 x 2 x 3 . . . x n ⎠ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎞ , y = ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎛ y 1 y 2 y 3 . . . y n ⎠ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎞
令
[ x , y ] = x 1 y 1 + x 2 y 2 + . . . + x n y n
[x,y]=x_1y_1+x_2y_2+. . .+x_ny_n
[ x , y ] = x 1 y 1 + x 2 y 2 + . . . + x n y n
[ x , y ] [x,y] [ x , y ] 称为向量x x x 与y y y 的内积
内积是两个向量之间的一种运算,其结果是一个实数,用矩阵记号表示当x x x 与y y y 都是列向量时,有:
[ x , y ] = x T y
[x,y]=x^Ty
[ x , y ] = x T y
由此可知:bregman散度其实是基于一级泰勒展开式的一种偏移量度量。选择不同的Φ \Phi Φ ,可以得到多种损失函数,如下图:
Bregman information
bregman information是基于bregman散度的,参见paper:Clustering with Bregman Divergences
bregman information的定义如下:
通俗点来讲就是,给定一个数据集X X X ,它的bregman information等于 x i x_i x i 到E v [ X ] E_v[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.