Efficient Training of Very Deep Neural Networks for Supervised Hashing

1.介绍
这篇文章主要说如果高效的训练深层的神经网络。对于现存的模型,由于一些限制,比如梯度消失的情况,只能限于训练一些比较浅层的网络。而且这种模型的效率并不高。所以作者就提出来一种可以高效训练深层网络的方法。具体的是:训练过程当中引入辅助变量,通过更新辅助变量,来达到某一层的局部最优解。通过实验发现,这种方法可以训练64个隐藏层,每层1024个节点的网络,而训练的时间在3个小时左右。

2.Very Deep Supervised Hashing 方法
对于 N 个结合的数据 X={ xi}Ni=1Rd×N ,目标是通过学习获得一系列的 K bit的HashCode, B{1,1}K×N,bi{1,1}K ,每一列都表示一个数据 xi 的HashCode.
为了学习这些HashCode,我们把模型假设为 F(x,Θ) ,可以认为这个就是所要学习的模型表示。然后对于这个输出进行二值化就能够得到所要的HashCode。二值化的方式:

bi=sgn(F(xi,Θ)),sgn(x)={ 11x0x<0

下面是对于作者的特定的任务,来进行损失函数的目标函数的定义
什么样的Hash Code,才是好的Hash Code呢?
作者假设,如果学习到的HashCode,能够在后面的任务当中产生好的结果,比如对于分类任务,分类的准确性更高,那么就认为学习到的Hash Code是较为理想的。下面作者就把学习Hash Code和分类任务结合在一起,放到一个过程当中来进行学习。
损失函数的定义:
对于学习到的Hash Code,通过一个线性分类器就能够得到一个分类的结果。
假设需要分类的类别共有 C 类,每一条数据的标签为 yi=[yi1,yi2yiC] 如果 xi 属于类别 j 那么 yij=1yij=0
假设这个线性的分类器的参数是: W=[w1,w2wC]
那么对于学习到的一条数据的分类结果可以使用如下的公式来表示:
yi~=WTbi=[wT1bi,w
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值