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.

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