首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器学习之——距离度量学习

如何衡量人脸之间的距离?

很多机器学习任务中都会使用到距离的概念,即衡量两个样本之间的距离。最为常见的场景就是聚类算法,为了对样本进行更合理的聚类,需要使用尽可能合理的距离函数。例如,我们有一组人脸数据,想将长相相似的人脸聚为一类,那么就需要一个较好的度量人脸之间距离的函数。常见的距离度量函数包括:欧氏距离、曼哈顿距离、Jaccard距离、余弦距离等。

欧氏距离

例如最常见的欧氏距离,就是高中阶段学习过的两点之间的距离,或者两个向量之间的距离。举例而言,有两个点(1, 2)和(4, 6),它们之间的距离就是(4-1)^2+(6-2)^2=25,再开根号,等于5,于是这两个点之间的距离就是5。

图中所示的点是关键点,比其他位置更为重要

欧式距离在聚类算法中十分常见,但其缺点在于将各个维度视为平等的,但实际情况往往不是这样。例如人脸图像,五官的距离要比背景的距离重要的多。因此,如果能通过学习的方法得到距离度量函数将再好不过。

绝大多数机器学习问题都要解决两个问题:要学习的参数是什么,以及学习的目标是什么。

距离度量学习中,要学习的参数就是各维度的权重(当然也可以更进一步,考虑各维度之间的相关性,此处略去对此的讨论)。

那么学习的目标呢?有多种可行的方案。例如,可以通过学习参数使得K近邻分类器尽可能的准确。也可以通过人工标注一些样本,指出哪些样本是相似的,哪些是不相似的,然后最小化相似样本的距离、同时最大化不相似样本的距离。

这样,明确了参数和学习目标以后,就可以通过梯度下降等方法进行学习了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171229A101QY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券