论文阅读 -- unsupervised triplet hashing for fast image retrieval笔记
#无监督 #哈希
- 论文:https://arxiv.org/abs/1702.08798
文章目录
- 摘要
- 引言
- 相关工作
- 本文方法
- 无监督的三元组损失LTL_TLT
- 量化损失LQL_QLQ
- 信息熵损失LEL_ELE
- 实验
- 实验设置
- 个人思考
摘要
本文是用来做大规模图片索引的.名字叫无监督三元组哈希法 (UTH) ,依据以下三规则设计:
- 对于图片索引有更强的鉴别性(既保证相似语义图片类间差小,也保证不同语义图片类间差大?)
- 原始特征描述算子和学习到的哈希码之间量化损失最小
- 学习到的特征码的信息熵最大
引言
Restricted Boltzmann Machines(RBMs) 需要预训练且复杂.一些使用图片增强的方法效果不错,尤其带旋转的,通过尝试原始图片和旋转图片的的二进制码距离来实现.但是这种方法也仅仅只提供了正样本,不能确保模型能区分不同语义图片的二进制码.
本文是可以区分不同语义图片的 hash 码的.主要创新点:
- 用三元组损失替换了 DeepBit 中的旋转不变损失
- 使用无标签的数据构造三元组
- 三元组损失可以强行平衡训练数据,而旋转不变损失是不考虑负样本的
相关工作
略
本文方法
LTL_TLT 表示三元组损失,使得图像索引有更多的判别性(Ag 图片和原始图片相近,随机图片和原始图片较远),LQL_QLQ表示原始特征和学习到的哈希码的之间的量化损失,LEL_ELE表示哈希码的信息熵损失函数.最终损失是:
L=αLT+βLQ+γLE(1)L=\alpha L_T+ \beta L_Q+ \gamma L_E \tag{1} L=αLT+βLQ+γLE(1)
无监督的三元组损失LTL_TLT
对于一个未标注的数据集,使用原始图片 ppp 和旋转图片 p+p^+p+ 和随机的另一张图片 p−p^-p− 组成三元组, 则:
LT=max{0,m+∣∣F(p)−F(p+)∣∣22−∣∣F(p)−F(p−)∣∣22}(2)L_T=\max{\{0,m+||F(p)-F(p^+)||_2^2-||F(p)-F(p^-)||_2^2\}} \tag{2} LT=max{0,m+∣∣F(p)−F(p+)∣∣22−∣∣F(p)−F(p−)∣∣22}(2)
FFF为学习到的哈希函数,mmm为设置的边界.
量化损失LQL_QLQ
在哈希层后额外加一层 ReLU 激活层.二进制码 bbb 通过量化输出特征来生成,即对输出的函数F(p)F(p)F(p)取个阈值二值化:
b={1,if F(p)> threshold0,otherwise(3)b= \begin{cases} 1, & \text{if $F(p)$ > threshold} \\ 0, & \text{otherwise} \\ \end{cases} \tag{3} b={1,0,if F(p) > thresholdotherwise(3)
本文实验中,我们设置阈值为0.5,并将输出的特征F(p)F(p)F(p)和量化之后的特征码之间平方差作为正则来缩小差异.其实就是为了保证特征码尽量携带更多的最终特征信息.得到:
LQ=∑n=1N∑m=1M∣∣F(p)−b∣∣2L_Q=\sum_{n=1}^N \sum_{m=1}^M ||F(p)-b||^2 LQ=n=1∑Nm=1∑M∣∣F(p)−b∣∣2
$$
\begin{cases}
\sum_{n=1}^N \sum_{m=1}^M ||F§-1||^2 , & \text{if F(p)F(p)F(p) > 0.5} \
\sum_{n=1}^N \sum_{m=1}^M ||F§||^2 , & \text{otherwise} \
\end{cases}
\tag{4}
$$
NNN 是训练数据的数量, MMM 是哈希码的长度
信息熵损失LEL_ELE
根据 DeepBit 和信息论启发,编码中每个单元的信息分布约均匀,那么信息熵越大.因此我们添加了一个正则:
LE=∑m=1M(um−0.5)2,um=1N∑n=1Nbn(m)(5)L_E=\sum_{m=1}^M (u_m -0.5)^2, u_m= \frac{1}{N} \sum_{n=1}^N b_n(m) \tag{5} LE=m=1∑M(um−0.5)2,um=N1n=1∑Nbn(m)(5)
实验
实验设置
优化方法SGD,使用VGG作为于训练,然后添加一个 ReLU 进行激活.三元组共享权重.旋转图片是分别旋转 ±10\pm 10±10,±5\pm 5±5,训练时设置 α=β=γ=1\alpha =\beta=\gamma=1α=β=γ=1.先使用原始的训练数据训练网络,收敛目标是最小化量化损失和信息熵损失,然后在使用三元组损失来微调. 对于 CIFAR-10 和 MNIST 数据集分别设置哈希为 16位,32位,64位,对于 In-shop 数据设置哈希为 64位,128位,256位.
个人思考
没代码,看不到整个网络架构,但是这里哈希也能算是一个启发
论文阅读 -- unsupervised triplet hashing for fast image retrieval笔记相关推荐
- 图像检索--Deep Supervised Hashing for Fast Image Retrieval
CVPR2016 Deep Supervised Hashing for Fast Image Retrieval 源代码: https://github.com/lhmRyan/deep-super ...
- 论文阅读 [TPAMI-2022] Ball $k$k-Means: Fast Adaptive Clustering With No Bounds
论文阅读 [TPAMI-2022] Ball kkkk-Means: Fast Adaptive Clustering With No Bounds 论文搜索(studyai.com) 搜索论文: B ...
- 论文阅读:Multi-Scale Triplet CNN for Person Re-Identification
中国科技大学的Jiawei Liu等发表在Acm on Multimedia Conference上的论文.作者提出一个多尺度的triplet CNN,在一个数据集Market1501上表现出好的性能 ...
- [论文阅读] Unsupervised Domain Adaptive Salient Object Detection Through Uncertainty-Aware Pseudo-Label
论文地址:https://arxiv.org/abs/2202.13170 代码:https://github.com/Kinpzz/UDASOD-UPL 发表于:AAAI 22 Abstract 深 ...
- 论文阅读——Unsupervised Neural Machine Translation with Indirect Supervision
带有间接监督的无监督神经机器翻译(未开源) https://arxiv.org/pdf/2004.03137.pdf 虽然使用单语数据进行无监督神经机器翻译 UNMT 可以取得不错的结果,但是与监督 ...
- [论文阅读] Cascaded Partial Decoder for Fast and Accurate Salient Object Detection
论文地址:https://arxiv.org/abs/1904.08739 代码:https://github.com/wuzhe71/CPD 发表于:CVPR'19 Abstract 现有的最先进的 ...
- 论文阅读Unsupervised Corpus Aware Language Model Pre-training for Dense Passage Retrieval
密集文本检索的无监督语料库感知语言模型预训练 ACL2022 论文链接 摘要 最近的研究证明了使用微调语言模型(LM)进行密集检索的有效性.然而,密集检索器很难训练,通常需要经过精心设计的微调管道才能 ...
- [论文阅读] Unsupervised Domain Adaptation for Cross-Modality Retinal Vessel Segmentation
[论文地址] [代码] [ISBI 22] Abstract 各种深度学习模型已经被开发出来,用于从医学图像中分割解剖结构,但当在另一个具有不同数据分布的目标域上测试时,它们通常表现不佳.最近,人们提 ...
- 目标检测论文阅读:DeFCN(POTO+3DMF)算法笔记
标题:End-to-End Object Detection with Fully Convolutional Network 会议:CVPR2021 论文地址:https://ieeexplore. ...
- 跨模态检索论文阅读:Context-Aware Attention Network for Image-Text Retrieval
Context-Aware Attention Network for Image-Text Retrieval基于上下文感知的图文检索注意网络 Motivation: 以前的方法没有考虑到单模态中模 ...
最新文章
- 数据结构(08)— 线性单链表基本操作
- 送给 Java 程序员的 Spring 学习指南
- boost::geometry::detail::overlay::select_rings用法的测试程序
- 1、.Net Core 基础
- 关于cookie使用的几个方法
- 帆软超级链接对象、插入子报表、网页框传参的个人使用心得
- linux+脚本+pid,Linux启动脚本输出pid
- 关于《Delphi源代码分析》的讨论
- powerbuilder防止反编译: pbkiller无法解析的部分公布
- win7鼠标指针主题包_轻松办公之全局鼠标手势软件
- 【放马过来---谈禅修打坐】
- 一个TCP FIN_WAIT2状态细节引发的感慨
- MTCNN + Deep_Sort实现多目标人脸跟踪之MTCNN人脸检测部分(一)
- 楚留香获取服务器信息未响应,楚留香手游后期输出乏力解决方法分享
- 背景图自适应屏幕大小
- python 调用ocx
- 高中历史教师资格证考试成功通过前辈备考经验分享
- Windows(IA-32e模式)系统调用
- 建筑工程质量竣工资料软件
- 使用MDC增强日志记录
热门文章
- 2019税改有哪些变化?什么是专项扣除?这些改动与你的工资息息相关!
- Python使用在线接口SDK模块(baidu-aip)实现人脸识别
- 每日哲学与编程练习3——无重复数字(Python实现)
- 超全汇总 | 基于Camera的3D目标检测算法综述!(单目/双目/伪激光雷达)
- 【应急基础】————13、VBS遍历目录获取文件Hash
- windows 7计算机用户名和密码忘了,教你电脑密码忘了怎么办
- vscode中显示隐藏文件
- 关于JSON的常见问题以及首字母大写的JSON
- SpringBoot 启动报错 No property found for type !
- python--pandas长宽数据转换