度量學習也可以認為是相似度。knn最合適的是學習馬氏距離,怎么學?要給出先驗知識,哪兩個數據更相似,歐式距離不可靠。SVM也是metric learning的一種,因為kernel matrix就是相似度。state of art的metric learning方法LMNN,有代碼可以下載。也未必效果最好,用得很多,因為有代碼。度量就是相似度,任何方法只要用到相似度,就可以用到度量學習。度量學習主流就是學習馬氏距離!(listen to the report of Kaizhu Huang).
度量學習首篇是Eric Xing在NIPS 2002提出,nannan wang講現在metric learning基本都是通過子空間學習,就是子空間學習換了個說法,沒啥太多實際意義。
代碼
http://www.cs.cmu.edu/~liuy/distlearn.htm 其中的Principal Component Analysis(PCA)是有蔡登老師開發 http://www.cse.wustl.edu/~kilian/Downloads/LMNN.html有Large Margin NN Classifier (LMNN)的代碼在Dodo的blog中提到:在此有必要提提Lawrence Saul這個人。在Isomap和LLE的作者們中,Saul算是唯一一個以流形學習(并不限于)為研究對象開創學派的人。Saul早年主要做參數模型有關的算法。自從LLE以后,坐陣UPen創造了一個個佳績。主要成就在于他的兩個出色學生,Kilian Weinberger和 Fei Sha,做的方法。拿了很多獎,在此不多說,可以到他主頁上去看。Weinberger把學習核矩陣引入到流形學習中來。他的這個方法在流形學習中影響到不是很顯著,卻是在 convex optimization 中人人得知。但看Kilian Weinberger主頁,其論文真的很少,第一作者數量:04年1篇,05年2篇,06年3篇,07年2篇,08年3篇,09年2篇.這與灌水風格差異還是很大的
DISTANCE METRIC LEARNING FOR LARGE MARGIN NEAREST NEIGHBOR CLASSIFICATION的MATLAB代碼
程序中lmnn,Parameters注釋下面都是其自由參數,validation = (def 0) fraction of training data to be used as validation set
On line 4 of Page 225 of his paper (JLMR): To guard against overfitting, we employed a validation set consisting of 30% of the training data and stopped the training early when the lowest classification error on the validation set was reached.
Wei Bian做實驗室時,采用的默認的也就是驗證集是0.雖然論文說了用30%,他覺得這樣不太合理。但根據
http://en.wikipedia.org/wiki/Early_stopping (Mingming gong send this link to me) ,應該是合理的