记录《DEEP METRIC LEARNING USING TRIPLET NETWORK》阅读笔记

文章总体内容:

作者在前人提出的多个特征提取方法的基础上提出Triplet network模型,通过比较距离来学习有用的变量(深度学习中拟合出函数),在多个不同的数据集显示Triplet network比直接计算方法的Siamese network模型效果更好。

Triplet network基本原理:

在Siamese network中,会出现如下的问题,当使用随机对象的数据集时,一个对象可能被认为与另一个对象相似,但是当我们只想区分一组个体中的两个对象时,可能被认为与同样的另一个对象不相似。当选取特征时,并不能够足够判断两者之间的关系,在面对训练样本数量较少的简单分类问题,可能会产生误差。 因此,作者提出了Triplet network,利用三个样本组成一个训练组,从中获取拟合函数。

其基本结构如图1所示:

图1 Triplet network基本结构图

Triplet network由3个具有相同前馈网络(共享参数)组成。 接收到3个样本时,网络输出2个中间值表示与第三个变量之间的欧式距离。3个输入表示为x,x+和x-,并将网络的嵌入层表示表示为Net(x)。 简单来说,triplet是一个三元组,这个三元组是这样构成的:从训练数据集中随机选一个样本,该样本称为Anchor,然后再随机选取一个和Anchor (记为x)属于同一类的样本和不属于同一类的样本,这两个样本对应的称为Positive (记为x+)和Negative (记为x-),由此构成一个(Anchor,Positive,Negative)三元组。他们之间的关系用欧氏距离表示,并通过训练参数使得x向x+靠近,远离x-,从而实现分类任务。

图2 triplet示意图(图片来自网络)

Triplet距离与目标函数:

距离采用的计算为欧氏距离,即L-2范式距离,如下所示:

比较器即是对上述该向量进行处理,训练的loss可规定如下,针对三元组中的每个元素(样本),训练一个参数共享的网络,得到三个元素的特征表达,

分别记为:

通过训练,让x+和x特征表达之间的距离尽可能小,而和x-和x的特征表达之间的距离尽可能大,并且要让x+和x之间的距离,和x-和x之间的距离之间有一个最小的间隔,在本文中使用的间隔为1。即:

其中:

通过d+和d-可以把初始变量归一化到(0,1)范围内。

论文创新点:

1. 由于Triplet network模型允许通过比较样本而不是直接数据标签进行学习,因此可以将其用作无监督学习模型。

2. 由于Triplet network模型采用三元组作为训练样本,在数据量较少的简单分类任务中表现要准确得多。在多个数据集上取得更优的分类结果。

“Triplet network”三元组网络阅读笔记的更多相关文章

  1. OpenStack Network --- introduction部分 阅读笔记

    Basic Networking 1.混杂模式(promiscuous mode):当网卡被配置为混杂模式时,它们会将所有的frame传递给操作系统,即使MAC地址不匹配. 2.交换机(switch) ...

  2. 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification

    Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...

  3. [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximati

    [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximation 本文结构 解决问题 主要贡献 主要 ...

  4. [论文阅读笔记] Community aware random walk for network embedding

    [论文阅读笔记] Community aware random walk for network embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 先前许多算法都 ...

  5. [论文阅读笔记] LouvainNE Hierarchical Louvain Method for High Quality and Scalable Network Embedding

    [论文阅读笔记] LouvainNE: Hierarchical Louvain Method for High Quality and Scalable Network Embedding 本文结构 ...

  6. [论文阅读笔记] Structural Deep Network Embedding

    [论文阅读笔记] Structural Deep Network Embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 现有的表示学习方法大多采用浅层模型,这可能不能 ...

  7. [论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion

    [论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 (1 ...

  8. [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding

    [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...

  9. 【unix网络编程第三版】阅读笔记(五):I/O复用:select和poll函数

    本博文主要针对UNP一书中的第六章内容来聊聊I/O复用技术以及其在网络编程中的实现 1. I/O复用技术 I/O多路复用是指内核一旦发现进程指定的一个或者多个I/O条件准备就绪,它就通知该进程.I/O ...

随机推荐

  1. 关于读写APP.config文件能读却写不了的问题

    今天要求用winform写一个窗口用来读写一个App.config,要对  <appSettings>里面的add key和value进行添加和修改.要实现的效果图如下: -------- ...

  2. php下api接口的并发http请求

    php下api接口的并发http请求 ,提高app一个页面请求多个api接口,页面加载慢的问题: func_helper.php/** * 并发http请求 * * [ * 'url' //请求地址 ...

  3. JSR303 后端校验包的使用

    1.首先通过Maven导入JSR303架包. <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate- ...

  4. SSH Config 管理多主机

    使用 一般我们使用ssh连接远程主机的时候,使用命令是: ssh root@ip ssh –i [identity-file] -p [port] user@hostname 但是如果ip地址过多,其 ...

  5. Spring MVC-从零开始-@RequestMapping 注解method属性

    1.@RequestMapping 处理 HTTP 的各种方法(GET, PUT, POST, DELETE  PATCH) package com.jt; import org.springfram ...

  6. spring系列常用注解

    常见注解使用 - @SpringBootApplication,springboot的核心注解,用于开启自动配置,等效于@Configuraion.@ComponentScan和@EnableAuto ...

  7. Angular template ng-template/container/content

    1. ng-template 形式:<ng-template>...</ng-template> 默认ng-template中的内容会隐藏; 可通过[ngIf]来控制内容显示隐 ...

  8. ES6学习总结之Set和Map数据结构的理解

    前言 当我们需要存储一些数据的时候,首先想到的是定义一个变量用来存储,之后我们可能学了数组,发现数组比变量可以存储更多的数据,接着可能有其它的存储数据的方法等等,然而我今天需要介绍的是在ES6中比较常 ...

  9. Spark 学习笔记之 共享变量

    共享变量: 共享变量通常情况下,当向Spark操作(如map,reduce)传递一个函数时,它会在一个远程集群节点上执行,它会使用函数中所有变量的副本.这些变量被复制到所有的机器上,远程机器上并没有被 ...

  10. FFmpeg(三) 编解码相关函数理解

    一.编解码基本流程 主要流程: 打开视频解码器(音频一样) 软解码.硬解码 进行编解码 下面先来看打开视频解码器 ①avcodec_register_all()//初始化解码 ②先找到解码器. 找解码 ...