1. 程式人生 > >Metric Learning——度量學習

Metric Learning——度量學習

2018年04月10日 15:30:29 敲程式碼的quant 閱讀數:1567 標籤: 度量學習metric learning機器學習聚類 更多

個人分類: 機器學習

看到一篇知乎大神Flood Sung發表在CVPR2018上的paper,介紹了一種基於metric的模式識別方法,創新之處在於它不同於常用的matric-based方法,使用人為定義的度量,像簡單的歐式距離、馬氏距離,而是採用了用神經網路去訓練這個度量,模型雖然簡單,但是效果卻很顯著。

1、度量(Metric)

先說一下關於度量這個概念:在數學中,一個度量(或距離函式)是一個定義集合中元素之間距離的函式。一個具有度量的集合被稱為度量空間

2、度量學習的作用

度量學習也叫作相似度學習,根據這個叫法作用就很明確了。

之所以要進行度量學習,一方面在一些演算法中需要依賴給定的度量:如Kmeans在進行聚類的時候就用到了歐式距離來計算樣本點到中心的距離、KNN演算法也用到了歐式距離等。這裡計算的度量,就是比較樣本點與中心點的相似度。

這裡的度量學習在模式識別領域,尤其是在影象識別這方面,在比較兩張圖片是否是相同的物體,就通過比較兩張圖片的相似度,相似度大可能性就高。

因為在研究時間序列這方面的問題,所以想到了在時間序列中度量學習的體現,如果是判斷兩個區間的相似性,通常用到的度量方式就是採用常用到的歐式或者其他人為定義的距離函式,這樣也就侷限於了這樣一個二維或者多維的空間中,而如果是用到Flood Sung大神提出的方法的話,我們把思路拓寬,能不能也是用神經網路來訓練這個度量,這樣的好處就是:

  • 長度不同的片段也可以進行比較。
  • 可以拓寬維度,從其他維度上尋找關聯。

以下摘自:https://blog.csdn.net/nehemiah_li/article/details/44230053

3、常用到的度量學習方法

從廣義上將度量學習分為:通過線性變換的度量學習和度量學習的非線性模型。

3.1線性變換的度量學習

線性的度量學習問題也稱為馬氏度量學習問題,可以分為監督的和非監督的學習演算法。

3.1.1監督的全域性度量學習

  • Information-theoretic metric learning(ITML)
  • Mahalanobis Metric Learning for Clustering(MMC)
  • Maximally Collapsing Metric Learning (MCML)

3.1.2監督的區域性度量學習

  • Neighbourhood Components Analysis (NCA)
  • Large-Margin Nearest Neighbors (LMNN)
  • Relevant Component Analysis(RCA)
  • Local Linear Discriminative Analysis(Local LDA)

3.1.3非監督的度量學習

  • 主成分分析(Pricipal Components Analysis, PCA)
  • 多維尺度變換(Multi-dimensional Scaling, MDS)
  • 非負矩陣分解(Non-negative Matrix Factorization,NMF)
  • 獨立成分分析(Independent components analysis, ICA)
  • 鄰域保持嵌入(Neighborhood Preserving Embedding,NPE)
  • 區域性保留投影(Locality Preserving Projections. LPP)

3.2度量學習的非線性模型

非線性降維演算法可以看作屬於非線性度量學習:

  • 等距對映(Isometric Mapping,ISOMAP)
  • 區域性線性嵌入(Locally Linear Embedding, LLE) 
  • 拉普拉斯特徵對映(Laplacian Eigenmap,LE ) 

通過核方法來對線性對映進行擴充套件:

  • Non-Mahalanobis Local Distance Functions
  • Mahalanobis Local Distance Functions
  • Metric Learning with Neural Networks

4、論文推薦

  • Distance metric learning with application to clustering with side-information
  • Information-theoretic metric learning(關於ITML)
  • Distance metric learning for large margin nearest neighbor classification(關於LMNN)
  • Learning the parts of objects by non-negative matrix factorization(Nature關於RCA的文章)
  • Neighbourhood components analysis(關於NCA)
  • Metric Learning by Collapsing Classes(關於MCML)
  • Distance metric learning a comprehensive survey(一篇經典的綜述)

個人總結

想了一下,度量學習定位的話應該是最基礎的部分。現在在用的無論是深度學習、強化學習還是神經網路或是監督學習,為了避免結果發散或者收斂結果好些,在使用前一般需要一個特徵轉換或者聚類的處理,在進行特徵轉換或者聚類時最基本的和最容易忽略的部分就是關於度量的學習,使用人為定義的方法必然有其侷限性,那麼通過神經網路或者其他方法是否效果會更好呢,將這個可以進一步研究。

《Discriminative Deep Metric Learning for Face Verification in the Wild》閱讀記錄

簡介

度量學習(Metric Learning)也就是常說的相似度學習。如果需要計算兩張圖片之間的相似度,如何度量圖片之間的相似度使得不同類別的圖片相似度小而相同類別的圖片相似度大(maximize the inter-class variations and minimize the intra-class variations)就是度量學習的目標。  例如如果我們的目標是識別人臉,那麼就需要構建一個距離函式去強化合適的特徵(如髮色,臉型等);而如果我們的目標是識別姿勢,那麼就需要構建一個捕獲姿勢相似度的距離函式。為了處理各種各樣的特徵相似度,我們可以在特定的任務通過選擇合適的特徵並手動構建距離函式。然而這種方法會需要很大的人工投入,也可能對資料的改變非常不魯棒。度量學習作為一個理想的替代,可以根據不同的任務來自主學習出針對某個特定任務的度量距離函式。

conventional Mahalanobis distance metric learning

傳統馬氏距離度量學習是從訓練集XX中尋找矩陣M∈Rd×dM∈Rd×d,計算兩個樣本x1x1,x2x2之間的馬氏距離: 

dM(xi,xj)=(xi−xj)TM(xi−xj)−−−−−−−−−−−−−−−−−√dM(xi,xj)=(xi−xj)TM(xi−xj)

由於MM為對稱半正定矩陣,因此可以分解為: 

M=WTWM=WTW

其中W∈Rp×d,p<dW∈Rp×d,p<d 。那麼: 

dM(xi,xj)=(xi−xj)TWTW(xi−xj)−−−−−−−−−−−−−−−−−−−−√=∥Wxi−Wxj∥2dM(xi,xj)=(xi−xj)TWTW(xi−xj)=‖Wxi−Wxj‖2

根據上面公式可知傳統的馬氏距離度量學習是通過尋找一個線性轉換將每一個樣本xixi投影到低維子空間中(因為 p<dp<d),投影后樣本間的歐式距離即為原空間中的馬氏距離。

discriminative deep metric learning (DDML)

由於傳統方法用到的線性變換不能夠捕捉面部圖片所依賴的非線性流形(nonlinear manifold)

線性流型  幾何空間的直線或平面具有性質:集合中任意2點生成的直線一定包含在這個集合裡,即直線和平面是平和直的。把平和直的概念推廣到高維就能得到線性流形的概念。

為了解決傳統方法的限制,論文提到將樣本投影到高維特徵空間中,在高維空間中進行距離度量。 這裡寫圖片描述

度量學習之論文參考

2018.07.24 22:53 142瀏覽

 字號

一. 傳統的距離度量學習方法:

監督方法

無監督方法:

二. 深度距離度量學習:

三. 輔助論文學習(上述距離度量論文中涉及的內容):