Unsupervised Deep Hashing With Adaptive Feature Learning for Image Retrieval
z

Unsupervised Deep Hashing With Adaptive Feature Learning for Image Retrieval

Notations:

$I= \lbrace I_{1}, I_{2}, \ldots, I_{n} \rbrace $ : 所有的图像集合
$\mathbf{X}=\left[\mathbf{x}{1}, \mathbf{x}{2}, \ldots, \mathbf{x}{n}\right] \in \mathbf{R}^{d \times n}$ : 全局特征,每一列表示一个图像。
使用$k$ 个哈希函数 $h= \lbrace h
{1}, h_{2}, \cdots, h_{k} \rbrace $ 来产生k-bit的哈希码 $\mathbf{B}=\left[\mathbf{b}{1}, \mathbf{b}{2}, \cdots, \mathbf{b}{n}\right] \in {+1,-1}^{k \times n}$
$F(\cdot)$ 为前向传播: $\mathbf{b}
{i}=h\left(I_{i}\right)=\operatorname{sgn}\left(F\left(I_{i} ; \mathbf{W}\right)\right)$

产生伪标签

对sample使用k-means聚类,生成k个类别(pseudo-class), 每个类别就对应为自标签信息。

相似度矩阵$\mathbf{S} \in{1,0}^{n \times n}$ ,如果$\bf{x_i}, \bf{x_j} $ 属于同一个类,$S_{i,j} =1 $。

在很多图像数据中,单一的标签不能够很好的表达出多样的图像属性。这将导致类内的差异大,来自两个不同类的样本可能距离很近。

对于任意一个样本,如果它到它的类心的距离大于一个设定的阈值,那么他就被视为边界样本(Edge Sample)边界矩阵$\mathbf{E}$, 当$\bf{x_i} $或者$\bf{x_j}$是边界点时,$E_{ij} = 1$ 否则为0。

属于不同类的两个样本之间的汉明距离应该尽可能的大,这样的话,考虑最大化他的似然函数。

先定义他的条件概率:
$$
p\left(S_{i j} | \mathbf{b}{i}, \mathbf{b}{j}\right)= \lbrace \begin{array}{ll}{\sigma\left(\Theta_{i j}\right)} & {S_{i j}=1} \ {1-\sigma\left(\Theta_{i j}\right)} & {S_{i j}=0}\end{array}\right.
$$
其中,$\sigma(\cdot)$ 为sigmoid函数,$\Theta_{i j}=\frac{1}{2} \mathbf{b}{i}^{\mathrm{T}} \mathbf{b}{j}$ 可以表达之间的距离。

论文将所有的edge sample都做抛弃处理,这样一来,似然函数就表现为:
$$
-\sum_{S_{i j}=0 \atop E_{i j}=0} \log p\left(S_{i j} | \mathbf{b}{i}, \mathbf{b}{j}\right)=-\sum_{S_{i j}=0 \atop E_{i j}=0}\left(S_{i j} \Theta_{i j}-\log \left(1+e^{\Theta_{i j}}\right)\right)
$$
属于同一个类的两个样本之间的汉明距离应该尽可能的小,这样的话,
$$
\operatorname{Sim}{i j}=\tanh \left(\alpha\left(\mathbf{x}{i}^{\mathrm{T}} \mathbf{x}{j}-\beta\right)\right)
\
\min \left|\operatorname{Sim}-\frac{1}{k} \mathbf{B}^{\mathrm{T}} \mathbf{B}\right|
{F}^{2}
$$
这里 $Sim_{ij}$ 表示通过样本$\bf{x_i}$和$\bf{x_j}$的距离在汉明空间的投影。由于X经过了归一化操作,因此,$\bf{x_i}^T\bf{x_j}$ 表示的是这两个样本之间的余弦距离,这里到特征空间和汉明空间的差异,使用过了$\alpha, \beta​$ 进行了调节,并且使用了tanh,使用tanh是考虑到,即使是两个非常相似的图像,他们之间特征的汉明距离也不一定接近于1,tanh能够使得当一个数超过一定阈值时非常的接近1.

所以,总体的目标函数为:
$$
\begin{aligned} \min {\mathbf{B}} &-\gamma{0} \sum_{S_{i j}=0 \ E_{ij}=0}\left(-\log \left(1+e^{\Theta_{i j}}\right)\right) \ &+\gamma_{1} \sum_{S_{i j}=1}\left|\tanh \left(\alpha\left(\mathbf{x}{i}^{\mathrm{T}} \mathbf{x}{j}-\beta\right)\right)-\frac{1}{k} \mathbf{b}{i}^{\mathrm{T}} \mathbf{b}{j}\right|_{2}^{2} \end{aligned}
$$

可适应的特征学习

上述的$\bf{x}$指的是handcraft feature。handcraft feature通常都是局部信息,接下来作者试图通过局部信息来生成全局信息。

这里主要考虑到两点:

  1. 对于任何两个相似的sample,他们学习到的全局特征之间的距离要小于原始图像特征的距离一个阈值
  2. 对于两个不相似的sample,他们之间的cosine distance要小于一个阈值
  3. 学习到的全局特征要更适合用来学习哈希码

综合以上三点,作者定义了如下的损失函数:
$$
L=\gamma_{2} \sum_{S_{i j}=1}|\max ( |f\left(I_{i}\right)^{\mathrm{T}} f\left(I_{j}\right)-\mathbf{x}{\mathrm{i}}^{\mathrm{T}} \mathbf{x}{\mathrm{j}}-\epsilon_{1}, 0)|{2}^{2}
\
+\gamma
{3} \sum_{S_{i j}=0 \atop E_{i j}=0}\left|\max \left(f\left(I_{i}\right)^{\mathrm{T}} f\left(I_{j}\right)-\epsilon_{2}, 0\right)\right|_{2}^{2}
$$
其中,$f(I)$指学到的global feature

优化

总的目标函数:
$$
\min {B}-\gamma{0} \sum_{S_{i j}=0 \atop E_{i j}=0}\left(-\log \left(1+e^{\Theta_{i j}}\right)\right)+L

+\gamma_{1} \sum_{S_{ij}=1}\left|\tanh \left(\alpha\left(f\left(I_{i}\right)^{\mathrm{T}} f\left(I_{j}\right)-\beta\right)\right)-\frac{1}{k} \mathbf{b}{\mathbf{i}}^{\mathrm{T}} \mathbf{b}{\mathbf{j}}\right|{2}^{2}
\
\text { s.t. } & \quad \mathbf{B} \in{+1,-1}^{k \times n}
$$
考虑到B难以直接优化,作者就引入了U来优化,这样:
$$
\begin{align}
\min {\mathbf{B}, \alpha, \beta} & - \gamma{0} \sum
{S_{i j}=0 \atop E_{i j}=0}\left(-\log \left(1+e^{\Psi_{i j}}\right)\right) \
&+\eta\sum_{i=1}^{n}\left|\mathbf{b}{i}-\mathbf{u}{i}\right|{2}^{2}\
& + \gamma
{1} \sum_{S_{i j}=1}\left|\tanh \left(\alpha\left(f\left(I_{i}\right)^{\mathrm{T}} f\left(I_{j}\right)-\beta\right)\right)-\frac{1}{k} \mathbf{u}{i}^{\mathrm{T}} \mathbf{u}{j}\right|{2}^{2}\
& +\gamma
{2} \sum_{S_{i j}=1}|\max ( |f\left(I_{i}\right)^{\mathrm{T}} f\left(I_{j}\right)-\mathbf{x}{i}^{\mathrm{T}} \mathbf{x}{j}-\epsilon_{1}, 0)|{2}^{2}\
& +\gamma
{3} \sum_{S_{i j}=0 \atop E_{i j}=0}\left|\max \left(f\left(I_{i}\right)^{\mathrm{T}} f\left(I_{j}\right)-\epsilon_{2}, 0\right)\right|{2}^{2}
\
\text { s.t. } &\quad \mathbf{U} \in \mathbf{R}^{k \times n}, \mathbf{U}=F(I ; \mathbf{W})
\end{align}
$$
其中, $\mathbf{\Psi}
{i j}=\frac{1}{2} \mathbf{u}{i}^{\mathrm{T}} \mathbf{u}{j}$ ,相当于是吧之前的所有的B都用U来替代了,然后U是网络的输出。

总体来说考虑的是几点:

  • 相似图像之间,网络输出的类哈希码

image-20190322134844656