Simultaneous Feature Learning and Hash Coding with Deep Neural Networks
来源:互联网 发布:类似维棠软件 编辑:程序博客网 时间:2024/06/04 19:03
Simultaneous Feature Learning and Hash Coding with Deep Neural Networks
论文下载地址
自从2014年中山大学潘炎老师讲deep hash搬上舞台以来,关于deep hash的paper如雨后春笋般喷薄而出。本文也是潘炎老师15年参与发表的一篇paper,和之前的deep hash方法相比,本篇论文还是和先前的论文有着明显的改进。首先对于deep hash之前的方法主要是采用手工特征,这些特征最明显的缺点就是不能保证语义的相关性,即相同语义的图片应该具有比较接近的hash code。对于deep hash 方法主要是这样的思路,输入图像二元组和他们之间的label信息,从卷积层获取图像特征,从全连接层得到hash code,针对目标函数进行求导迭代。本文主要作了以下工作:
- 网络输入为图片三元组,分别代表查询图片,与查询图片近似图片,与查询图片不近似的图片
- 输入三元组通过共享的网络结构得到特征
- 使用divide-and-module的模块切分图像的特征为q个branch,每一个branch对应1bit
使用三元组损失函数,即查询图片与相似图片之间的距离小于查询图片与不相似图片之间的距离
网络的整体模型如下图1所示:
图1
Proposed Approach
Notation And Problem Definition
假定
公式(1)中
用
shared Sub-Network
网络的主要参数如表1所示:
表1
作者在别人网络结构的基础上进行修改,在原始网络的每一个convolution层后面添加了
Divide-and-Encode
之前的deep hash方法就是直接拿图像的feature通过一个全连接层,然后用sigmoid函数进行激活,得到q bits的hash code,如图2中b所示。但是作者提出了一种新的方法,如果需要得到q bits的hash code。网络应该输出50q长度的特征,然后将50q的特征平均划分为q个slice,每一个slice通过一个全连接层,接下来使用sigmoid激活函数限制输入在[0,1]之内,得到1bit。q个slice总共得到q比特的hash code。如图2的a所示:
图2
作者通过实验发现Divide-And-Encode方法比直接使用全连接层效果要好。究其原因,作者认为直接使用全连接层,每一位的hash code都要和所有的image feature相关,可能导致hash code之间的冗余;Divide-And-Encode的方法主要是每一位hash code只是和一个slice相关,每一个code之间的相关性比较小。
对每一个slice,总共有50维的数据,通过全连接层变为一个
一幅图片得到最终的二进制hash code如图4所示:
图片 4
Experiment
实验数据集有:
- SVHN 600000 张32*32大小,总共10类。训练每类500张,100张测试。
- CIFAR-10
- NUS-WIDE
图 5 实验结果
Reference
Simultaneous Feature Learning and Hash Coding with Deep Neural Networks Hanjiang Lai ,Yan Pan, Ye Liu, Shuicheng Yan.
- Simultaneous Feature Learning and Hash Coding with Deep Neural Networks
- 深度学习入门:Simultaneous Feature Learning and Hash Coding with Deep Neural Networks
- Neural Networks and Deep Learning
- Neural Networks and Deep Learning
- Neural networks and Deep Learning
- Neural Networks and Deep Learning
- 《Neural networks and deep learning》概览
- 《Neural networks and deep learning》概览
- 《Neural networks and deep learning》概览
- Neural Networks And Deep Learning(1)
- Neural networks and deep learning materials
- neural-networks-and-deep-learning mnist-loader
- neural-networks-and-deep-learning mnist_pca.py
- neural-networks-and-deep-learning expand_mnist.py
- neural-networks-and-deep-learning mnist_average_darkness.py
- neural-networks-and-deep-learning mnist_svm.py
- neural-networks-and-deep-learning network.py
- neural-networks-and-deep-learning network2.py
- JAVA Synchronized 修饰代码块;
- 今天学会了Fedora下,如何切换root用户
- 50个常用的sql语句
- 马上十一月啦,事情颇多
- Linux多节点连接配置
- Simultaneous Feature Learning and Hash Coding with Deep Neural Networks
- 经典SQL语句大全
- 洛谷 P1472 奶牛家谱 Cow Pedigrees
- 【自学考试】散列表总结
- java 抽象类的理解
- 运用C#编程通过OPC方式实现PC机与西门子PLC通讯
- 在Pillow和matplotlib中遇到的一些中文乱码问题
- Android Broadcast 广播
- mysql的二种安装方式