度量学习也可以认为是相似度。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) ,应该是合理的
度量学习(Distance Metric Learning)介绍
一直以来都想写一篇metric learning(DML)的综述文章,对DML的意义、方法论和经典论文做一个介绍,同时对我的研究经历和思考做一个总结。可惜一直没有把握自己能够写好,因此拖到现在。
先烈一些DML的参考资源,以后有时间再详细谈谈。
2. CMU的Liu Yang总结的关于DML的综述页面。对DML的经典算法进行了分类总结,其中她总结的论文非常有价值,也是我的入门读物。
3. ECCV 2010的turorial。
4. Weinberger的页面,上面有LMNN(Distance Metric Learning for Large Margin Nearest Neighbor Classification)的论文、sclides和代码。
5.ITML(Information Throretic Metric Learning)。ITML是DML的经典算法,获得了ICML 2007的best paper award。sclides。