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.