距離度量學習

爲何學習距離度量?

在機器學習中,對高維數據進行降維的主要目的是但願找到一個合適的低維空間,在此空間中進行學習能比原始空間性能更好.事實上,每一個空間對應了在樣本屬性上定義的一個距離度量,而尋找合適的空間,實質上就是在尋找一個合適的距離度量.那麼,爲什麼不直接嘗試「 學習」 出一個合適的距離度量呢?這就是度量學習(metric learning)的基本動機. 在數據分類或者聚類中咱們應該讓類似數據的距離儘量地接近,不類似的距離儘量地疏遠,這就是距離度量學習的目的.html

擴展

度量學習的目的是在樣本上學習距離度量函數. 距離度量函數必須服從4個公理非負性,對稱性,次可加性及不可分與同一性.在實踐中,度量學習算法通常忽略了不可分與同一性並學習僞度量.python

首先,瞭解僞度量空間.僞度量空間是度量空間的推廣,一個僞度量空間\((X,d)\)是有非負實值函數組成的集合\(X\),若\(d:X \times X\mathbb{\rightarrow R \geq}0\),對於\(\forall x,y,z \in X\)知足條件則可稱爲僞度量.git

\[{d(x,x) = 0 }\]
\[{d(x,y) = d(y,x) }\]github

與度量空間不一樣,僞度量空間中的點可能不知足不可分與同一性,也就是說若是\(d(x,y) = 0\)可能\(x \neq y\).算法

假設有集合\(\mathcal{S} = \left( x_{i}|x_{i} \subseteq \mathbb{R}^{n} \right)\),給出了成對類似矩陣的定義,它是兩兩類似點的集合數組

\(S:\quad\left( x_{i},x_{j} \right) \in \mathcal{S}\quad\ (x_{i}\ 與\ x_{j}類似)\)curl

同理給出成對不類似矩陣\(D\)的定義,它是兩兩不類似點的集合機器學習

\(D:\left( x_{i},x_{j} \right) \in S\quad\ (x_{i}\ 與\ x_{j}不類似)\)ide

咱們經過學習距離度量矩陣來解決類似點之間的距離度量\(d(x,y)\)函數

\(d(x,y) = d_{A}(x,y) = \| x - y\|_{A} = \sqrt{(x - y)^{T}A(x - y)}\)

爲了確保公式知足度量距離函數的非負性和次可加性,咱們要求\(A\)是正半正定的矩陣,即\(A \succcurlyeq 0\).若是\(A = I_{0}\),那麼就是採用歐氏距離度量.

提出優化問題

定義成對類似點\(\left( x_{i},x_{j} \right)\)之間的最小平方距離\(\ {\min{}_{A}}\sum_{\left( x_{i},x_{j} \right) \in \mathcal{S}}^{}\left\| x_{i} - x_{j} \right\|_{A}^{2}\).若是對\(A\)不加以限制,那麼當\(A = 0\)時,雖然可讓類似點\(d_{A}(x_{i},x_{j}),(x_{i},x_{j} \in S)\)等於零,可是這樣作不類似的成對點\(d_{A}(x_{i},x_{j}),(x_{i},x_{j} \in D)\)也將變爲0,因此咱們應該添加約束條件防止該問題發生.所以得出優化問題以下

\[\begin{array} { c l } { \min _ { A } } & { \sum _ { \left( x _ { i } , x _ { j } \right) \in \mathcal { S } } \left\| x _ { i } - x _ { j } \right\| _ { A } ^ { 2 } } \\ { \text { s.t. } } & { \sum _ { \left( x _ { i } , x _ { j } \right) \in \mathcal { D } } \left\| x _ { i } - x _ { j } \right\| _ { A } \geq 1} \\ { } & { A \succeq 0 } \end{array}\]

公式\(\sum_{\left( x_{i},x_{j} \right) \in \mathcal{D}}^{}\left\| x_{i} - x_{j} \right\|_{A} \geq 1\)中,右邊的常數1的更改爲任意常數\(c\),若將1改成常數\(c\)只會讓學習的度量矩陣從\(A\)線性變換到\(c^{2}A\).此外,該優化問題是求解半正定矩陣\(A\),兩個約束爲凸約束.所以,對於此類凸優化問題,咱們可以使用局部最小來求解它.

計算\(A\)的對角元素

咱們可使用Newton-Raphson(牛頓拉夫森)來推導學習半定陣\(A\)對角線的算法.定義

\(g(A) = g\left( A_{11},\ldots,A_{{nn}} \right) = \sum_{\left( x_{i},x_{j} \right) \in \mathcal{S}}^{}\left\| x_{i} - x_{j} \right\|_{A}^{2} - \log\left( \sum_{\left( x_{i},x_{j} \right) \in \mathcal{D}}^{}\left\| x_{i} - x_{j} \right\|_{A} \right)\)

易證\(\min g(A)\)\(A \succcurlyeq 0\)目標優化等效,解爲線性相關.所以可使用\(Newton-Raphson\)可以有效地優化問題.

\(g(A) = g\left( A_{11},\ldots,A_{\text{nn}} \right) = \sum_{S}^{}\left\| x_{i} - x_{j} \right\|_{A}^{2} - \ln\left( \sum_{D}^{}\left\| x_{i} - x_{j} \right\|_{A} \right)\)

\(\begin{matrix} x_{\text{ij}} = \left. \ \left( x_{i1} - x_{j1} \right)^{2},\ldots,\left( x_{\text{id}} - x_{\text{jd}} \right)^{2} \right)\rbrack^{T} \\ A = \left\lbrack A_{11},\ldots,A_{\text{dd}} \right\rbrack \\ \end{matrix}\)

而後

\(\begin{matrix} \left\| x_{i} - x_{j} \right\|_{A}^{2} = \left( x_{i} - x_{j} \right)^{T}A\left( x_{i} - x_{j} \right) = x_{\text{ij}}^{T}A \\ g(A) = \sum_{S}^{}x_{\text{ij}}^{T}A - \ln\left( \sum_{D}^{}\left( x_{\text{ij}}^{T}A \right)^{\frac{1}{2}} \right) \\ \end{matrix}\)

得出

\(\begin{matrix} g^{'}(A) = \left( \sum_{S}^{}x_{\text{ij}}^{T}A - \ln\left( \sum_{D}^{}\left( x_{\text{ij}}^{T}A \right)^{\frac{1}{2}} \right) \right)^{'} \\ = \sum_{S}^{}x_{\text{ij}} - \frac{1}{\sum_{D}^{}\left( x_{\text{ij}}^{T}A \right)^{\frac{1}{2}}}\sum_{D}^{}\frac{1}{2}\left( x_{\text{ij}}^{T}A \right)^{- \frac{1}{2}}x_{\text{ij}} \\ \end{matrix}\)

\(g^{'}(A)\)是一個與\(A\)大小相同的矩陣. 在這種狀況下,咱們想使用NewtonRaphson方法獲得\(A\),因此咱們須要推導出更新中使用的Hessian矩陣\(g^{''}(A)\)規則.推導過程

\(\begin{matrix} g^{''}(A) = \partial g^{'}(A)^{T}/\partial A \\ = \partial\left\lbrack - \left\lbrack \sum_{D}^{}\left( x_{\text{ij}}^{T}A \right)^{\frac{1}{2}} \right\rbrack^{- 1}\sum_{D}^{}\frac{1}{2}\left( x_{\text{ij}}^{T}A \right)^{- \frac{1}{2}}x_{\text{ij}}^{T} \right\rbrack/\partial A \\ = \left\lbrack \sum_{D}^{}\left( x_{\text{ij}}^{T}A \right)^{\frac{1}{2}} \right\rbrack\rbrack^{- 2}\sum_{D}^{}\frac{1}{2}\left( x_{\text{ij}}^{T}A \right)^{\frac{1}{2}}x_{\text{ij}}\sum_{D}^{}\frac{1}{2}\left( x_{\text{ij}}^{T}A \right)^{- \frac{1}{2}}x_{\text{ij}}^{T} - \\ \left\lbrack \sum_{D}^{}\left( x_{\text{ij}}^{T}A \right)^{\frac{1}{2}} \right\rbrack^{- 1}\sum_{D}^{} - \frac{1}{4}\left( x_{\text{ij}}^{T}A \right)^{- \frac{3}{2}}x_{\text{ij}}x_{\text{ij}}^{T} \\ \end{matrix}\)

計算半正定陣\(A\)

在計算\(A\)的時候,約束\(A \succcurlyeq 0\)用牛頓拉弗森進行迭代反轉Hessian時間複雜度過大.

因此提出對偶問題

\[\begin{array} { l l } { \max _ { A } } & { g ( A ) = \sum _ { \left( x , x _ { j } \right) \in \mathcal { D } } \left\| x _ { i } , x _ { j } \right\| _ { A } } \\ { \text { s.t. } } & { f ( A ) = \sum _ { \left( x _ { i } , x _ { j } \right) \in \mathcal { S } } \left\| x _ { i } , x _ { j } \right\| _ { A } ^ { 2 } \leq 1 } \\ { } & { A \succeq 0 } \end{array}\]

使用梯度上升和迭代投影來優化求解. 爲了確保 \(A \succeq 0\),若是對角元素 \(A_{ii}\) 是非負的,那麼用 \(H ^ { - 1 } \nabla g\) 替換牛頓更新 \(\alpha H ^ { - 1 } \nabla g\),其中 \(\alpha\) 是經過優化的步長參數。

求解\(A\)優化算法以下

Iterate
Iterate
\(\begin{array} { l } { A : = \arg \min _ { A ^ { \prime } } \left\{ \left\| A ^ { \prime } - A \right\| _ { F } : A ^ { \prime } \in C _ { 1 } \right\} } \\ { A : = \arg \min _ { A ^ { \prime } } \left\{ \left. \left| A ^ { \prime } - A \right| \right| _ { F } : A ^ { \prime } \in C _ { 2 } \right\} } \end{array}\)
until(條件:半定陣 \(A\) 收斂)
\(A : = A + \alpha \left( \nabla _ { A } g ( A ) \right) _ { \perp } \nabla _ { A } f\)
until (迭代收斂)

原文: Xing EP,Ng AY,Jordan MI, et al.Distance Metric Learning,with Application to Clustering with Side-information[C]//International Conference on Neural Information Processing Systems, 2002.
擴展閱讀: https://metric-learn.github.io/metric-learn
周志華 - 機器學習

GitHub : python版本 https://github.com/JasonYee/Distance-metric-learning
Matlab版本 https://github.com/arlenlee/Metric-Learning
補充:
Python版本簡介見 https://github.com/JasonYee/Distance-metric-learning

matlab調用簡介
X:數據
S:類似性約束(以成對類似性矩陣的形式)
D:相異性約束(以成對相異矩陣的形式)
A:初始距離度量矩陣
w:來自相似數據的權重向量(見論文)
t:約束C1的上限(成對距離的總和)
maxiter:最大迭代次數
iter_projection_new2(X, S, D, A, w, t, maxiter)

敬請你們批評指正

聲明

歡迎轉載,請註明出處和做者。
做者:Arlen Lee
出處:http://www.javashuo.com/article/p-qbtaqtob-md.html

相關文章
相關標籤/搜索