Siamese Network
文章目录
主要是介绍自己论文中的网络结构:siamese network。
但凡优化,无非两条路:在好的基础上更快,在快的基础上效果更好。 Siamese network训练速度快,所以只是需要其在训练效果上更好。
先来分析一下为什么训练速度快。那么不得不分析该网络结构。整个网络的输入是 (img1, img2, y) 这样的三元组,img 表示图片,y表示label。图片可以是同一类别的图片,也可以是不同类别的,y表示两张图片之间的相似程度,y的取值 (0,1),0表示相似(同一类别),1 表示不相似(不同类别)。并且y 是double 类型,属于0-1 区间任意的数字。网路结构最后的输出是 0-1 区间的任意数字。通常是以0.5 作为分界线,如果小于0.5 那么认为两种图片是属于同一类别,或者说更相似;反之也成立。 重要的一点是中间的weights 实现了权值共享,这样可以加快网络的训练速度。
loss function
这个是属于经典的 contrastive loss function (对比损失函数)。当y 接近于0的时候,右半部分消失,这个是表示两张图片很是相似,然后就不断使得 欧氏距离减少;当y 接近于1的时候,左半部分消失,这个时候两张图片很不相似,然后右边就是 hinge loss (合页损失函数)。参数m 作为一种margin 是是可以调节,我的实验中 m 取1. 总的思想:就是使得相近的图像距离相近,不想近的图像距离变远。
$L ( W , ( Y , X _ { 1 } , X _ { 2 } ) ) = ( 1 - Y ) \frac { 1 } { 2 } ( D _ { W } ) ^ { 2 } + ( Y ) \frac { 1 } { 2 } { \max ( 0 , m - D _ { W } ) } ^ { 2 }$
Spectral Normalization
图像输入到网络之前使用正则化,然后输入到激活函数之前也是使用正则化,所以这种效果也是扩展到 weights,直接对 weights 进行正则化使其符合 Lipschitz 约束,避免使用大的gradients。在GAN 网络中的 discriminator 或者 generator 都发现了其可以稳定训练的过程。在实验中,我们扩大了这种使用范围,把其应用到所有的网络的 layer上。
** Lipschitz Continuity **
在 GAN 中,假设我们有一个判别器 $\mathrm { D } : 1 \rightarrow \mathrm { R }$, 其中 I 是图像空间. 如果判别器是 K-Lipschitz continuous 的, 那么对图像空间中的任意 x 和 y,有
$$ | D ( x ) - D ( y ) | \leq K | x - y | $$
其中 $ | \cdot | $ 为L2 norm,如果K 取到最小值,那么K 被称为 Lipschitz constant。
直观来说,Lipschitz 条件限制了函数变化的剧烈程度,即函数的梯度。在一维空间中,很容易看出 y=sin(x) 是 1-Lipschitz 的,它的最大斜率是 1。
self-attention mechanism
Attention 机制自从 “Attention Is All You Need” 开始火爆,并且实验的效果也是很好的,然后在图像领域也开始尝试使用 attention 机制来解决长依赖的问题。应用到图像领域主要是 explore spatial locality information, 说白了就是细节的信息。
If we look at the DCGAN model, we see that regular GANs are heavily based on convolution operations, which use a local receptive field (convolutional kernel) to learn representations. Simple features like edges and corners are learned in the first few layers. Also, ConvNets are able to use these simple representations to learn more complex ones. However, long-range dependency might be hard to learn. Long-range dependency (long-term dependency) is from RNN, which we can say anything larger than trigram as a long term dependency. Thus, most of the image content does not exhibit elaborated shape such as sky or the ocean looks fine. The task of creating geometrically complex forms, such as four-legged animals, is far more challenging. This is where attention comes into play.
而 self-attention 中QKV 三个部分是相同的,对于这种处理方法和Res_block 还是有点相似的。
结果
训练数据集使用是 Cifar-10,记录了训练过程中 acc 和loss 的变化情况。除了训练的效果比较好外,训练速度也是非常快的,可以清楚的看到model acc 在接近25 epoches的时候就开始收敛。
文章作者 jijeng
上次更新 2019-03-26