diff --git a/deploy/paddleserving/pipeline_http_client.py b/deploy/paddleserving/pipeline_http_client.py index bc3fab2524cbb23f2f398d3effb667d3629363c7..49b3ce00615e946faaf5b57736a9edc5889ac3bd 100644 --- a/deploy/paddleserving/pipeline_http_client.py +++ b/deploy/paddleserving/pipeline_http_client.py @@ -1,7 +1,5 @@ -import numpy as np import requests import json -import cv2 import base64 import os diff --git a/deploy/paddleserving/pipeline_rpc_client.py b/deploy/paddleserving/pipeline_rpc_client.py index 62de9ea996996c7c2d06f24521f7289a5982861d..75bcae0dd4d2088e01de96d07df2b67c8245a524 100644 --- a/deploy/paddleserving/pipeline_rpc_client.py +++ b/deploy/paddleserving/pipeline_rpc_client.py @@ -15,12 +15,7 @@ try: from paddle_serving_server_gpu.pipeline import PipelineClient except ImportError: from paddle_serving_server.pipeline import PipelineClient -import numpy as np -import requests -import json -import cv2 import base64 -import os client = PipelineClient() client.connect(['127.0.0.1:9993']) diff --git a/docs/zh_CN/metric_learning.md b/docs/zh_CN/metric_learning.md deleted file mode 100644 index 6c94c87f4e6e247af7b757886939f1b6ad6e373a..0000000000000000000000000000000000000000 --- a/docs/zh_CN/metric_learning.md +++ /dev/null @@ -1,26 +0,0 @@ -# Metric Learning - -## 简介 - 在机器学习中,我们经常会遇到度量数据间距离的问题。一般来说,对于可度量的数据,我们可以直接通过欧式距离(Euclidean Distance),向量内积(Inner Product)或者是余弦相似度(Cosine Similarity)来进行计算。但对于非结构化数据来说,我们却很难进行这样的操作,如计算一段视频和一首音乐的匹配程度。由于数据格式的不同,我们难以直接进行上述的向量运算,但先验知识告诉我们ED(laugh_video, laugh_music) < ED(laugh_video, blue_music), 如何去有效得表征这种”距离”关系呢? 这就是Metric Learning所要研究的课题。 - - Metric learning全称是 Distance Metric Learning,它是通过机器学习的形式,根据训练数据,自动构造出一种基于特定任务的度量函数。Metric Learning的目标是学习一个变换函数(线性非线性均可)L,将数据点从原始的向量空间映射到一个新的向量空间,在新的向量空间里相似点的距离更近,非相似点的距离更远,使得度量更符合任务的要求,如下图所示。 Deep Metric Learning,就是用深度神经网络来拟合这个变换函数。 -![example](../images/ml_illustration.jpg) - - -## 应用 - Metric Learning技术在生活实际中应用广泛,如我们耳熟能详的人脸识别(Face Recognition)、行人重识别(Person ReID)、图像检索(Image Retrieval)、细粒度分类(Fine-gained classification)等. 随着深度学习在工业实践中越来越广泛的应用,目前大家研究的方向基本都偏向于Deep Metric Learning(DML). - - 一般来说, DML包含三个部分: 特征提取网络来map embedding, 一个采样策略来将一个mini-batch里的样本组合成很多个sub-set, 最后loss function在每个sub-set上计算loss. 如下图所示: - ![image](../images/ml_pipeline.jpg) - - -## 算法 - Metric Learning主要有如下两种学习范式: -### 1. Classification based: - 这是一类基于分类标签的Metric Learning方法。这类方法通过将每个样本分类到正确的类别中,来学习有效的特征表示,学习过程中需要每个样本的显式标签参与Loss计算。常见的算法有[L2-Softmax](https://arxiv.org/abs/1703.09507), [Large-margin Softmax](https://arxiv.org/abs/1612.02295), [Angular Softmax](https://arxiv.org/pdf/1704.08063.pdf), [NormFace](https://arxiv.org/abs/1704.06369), [AM-Softmax](https://arxiv.org/abs/1801.05599), [CosFace](https://arxiv.org/abs/1801.09414), [ArcFace](https://arxiv.org/abs/1801.07698)等。 - 这类方法也被称作是proxy-based, 因为其本质上优化的是样本和一堆proxies之间的相似度。 -### 2. Pairwise based: - 这是一类基于样本对的学习范式。他以样本对作为输入,通过直接学习样本对之间的相似度来得到有效的特征表示,常见的算法包括:[Contrastive loss](http://yann.lecun.com/exdb/publis/pdf/hadsell-chopra-lecun-06.pdf), [Triplet loss](https://arxiv.org/abs/1503.03832), [Lifted-Structure loss](https://arxiv.org/abs/1511.06452), [N-pair loss](https://papers.nips.cc/paper/2016/file/6b180037abbebea991d8b1232f8a8ca9-Paper.pdf), [Multi-Similarity loss](https://arxiv.org/pdf/1904.06627.pdf)等 - -2020年发表的[CircleLoss](https://arxiv.org/abs/2002.10857),从一个全新的视角统一了两种学习范式,让研究人员和从业者对Metric Learning问题有了更进一步的思考。 -