论文杂记
上一篇 主目录 下一篇


前言

在本文中,作者提出了BGAN(binary generative adversarial networks),利用无监督的方式实现了图片检索。
在文中作者主要解决了两个问题:

  • 如何在没有relaxation下的情况下,生成图片的hash(二进制)表示。
  • 如何利用hash实现准备的图片检索。

作者通过设计了新的**函数和目标函数解决了这个问题。

关键词:非监督、二进制生成对抗性网络、
论文《Binary Generative Adversarial Networks for Image Retrieval》下载地址
或者联系博主获取,邮箱:[email protected]


1 论文总体介绍

1.1 网络架构

Binary Generative Adversarial Networks for Image Retrieval
如上图所示,这个架构主要由4部分组成:

  1. encoder:学习图片的表示(image representation)
  2. hash layer: 生成L-bit的hash码
  3. decoder(generator): 用生成网络由hash码重新构造图片
  4. discriminator: 判别是真实图片还是生成的图片

1.1 .1 encoder

和VGG19相似,5个卷积层和5个max convolution-pooling层。在各自的卷积层分别使用了64, 128, 256, 512, 512的filters

1.1.2 hasing

将从encoder中的最后一层fully-connected layer FC7中学习到的L-demension的表示z转变为二进制编码(不是传统意义上的0、1二进制编码;-1和1也是一种二进制编码),函数表示为:
Binary Generative Adversarial Networks for Image Retrieval
其中Z为得到L-demension的图片representation.

上面的sgn函数是non-smooth非平滑和non-convex非凸,所有的非零的输入梯度为零,所以这个函数在零处是ill-defined,这会引起梯度消失的问题。作者通过随着训练过程,逐渐的减少目标函数的smooth。最终的结果将收敛到预期的目标函数。定义了一个函数app(.)去逼近sgn(.):
Binary Generative Adversarial Networks for Image Retrieval

sgn(.)和app(.)之间存在下面的关系:

Binary Generative Adversarial Networks for Image Retrieval

  • 当β趋近无穷时,app(.)逼近sgn(.)

sgn(.)和tanh(.)之间存在下面的关系:
Binary Generative Adversarial Networks for Image Retrieval
Binary Generative Adversarial Networks for Image Retrieval

1.1.3 Generator和Discriminator

Generator生成图像
BGAN“生成器”网络G的任务是基于哈希码b生成图像。

1.让哈希码b作为大小为8×8×256的顶层完全连接层的输入。
Binary Generative Adversarial Networks for Image Retrieval
2.我们使用四个反卷积层,其内核大小为5×5、5×5、5×5,1×1和内核数256、128、32、3
3.批处理归一化层和eLU作为**函数

Discriminator判别图像(判别是原图还是Generator生成的)
定义了一个“判别者”网络D,其方式是使用与G的准则相冲突的标准对其进行优化。这样,D可以在总体上成为G的对手。最大优化过程。该优化的目的是提高G,使其能够尽可能地生成图像。对抗图像生成的过程是试图区分原始图像和重建图像的过程。如果G设法很好地生成图像以至于“愚弄” D,那么它将“赢得”最小最大游戏,并且总体GAN优化已收敛。鉴于此,给定图像分类器D评估原始(I)和重建(IR)图像的模型,我们可以正式定义最小-最大博弈,从而得出最佳系统参数,如下所示:

Binary Generative Adversarial Networks for Image Retrieval
eLU**并避免整个网络的最大池化。 它包含4个卷积层,并具有越来越多的5×5过滤内核(32、128、256和512)。 每当特征数量增加一倍时,将使用卷积来降低图像分辨率。 生成的512个特征图之后是大小为1024的密集层和最终的S型**函数,以获取样本分类的概率。

1.2 优化

作者使用了3种损失函数,分别是neighbors structure loss、content loss、adversarial loss。

1.2.1 Neighbors Structure Loss

作者对每一张图片使用2048 dimensions的向量表示,利用k-nearest来构建相似度矩阵S,如果图片i、j是相似的,则Sij=1,否则Sij=-1。由于k的增加会减少矩阵的精度,所以作者提出了如果图片i与图片j相似,图片j与图片h相似,则图片i与h也相似的方式来扩展矩阵S。扩展的方式利用两张图片对应的列相似,计算方法为:
Binary Generative Adversarial Networks for Image Retrieval
假设所有图片的hash表示为
Binary Generative Adversarial Networks for Image Retrieval
则neighbors structure loss为:
Binary Generative Adversarial Networks for Image Retrieval

1.2.2 content loss

content loss是两张图片之间的pixel-wise的损失和图片在判别网络最后一个卷积层的输出作为表示的欧几里得距离。
pixel-wise之间的损失为:
Binary Generative Adversarial Networks for Image Retrieval
图片在判别网络最后一个卷积层的输出作为表示的欧几里得距离为:
Binary Generative Adversarial Networks for Image Retrieval
所以content loss为:
Binary Generative Adversarial Networks for Image Retrieval

1.2.3 Adversarial loss

D为判别网络,IR 表示生成网络G生成的图片。
Binary Generative Adversarial Networks for Image Retrieval

所以整个网络的损失函数为:

Binary Generative Adversarial Networks for Image Retrieval

1.3 总结

作者提出了无监督的hash方法,主要解决了不在relaxation的情况下如何直接生成图片的hash和如何使得生成的hash能够准确的实现image Retrieval。

相关文章: