论文笔记 Unsupervised Learning by Predicting Noise

This paper introduces a generic framework to train deep networks, end-to-end, with no supervision.

 

这篇论文主要围绕以下公式展开,

参数含义如下:

  • n:   样本数
  • l:    Loss函数
  • fθ:  深度网络
  • yi:  目标表示
  • xi:  输入图像

在有监督框架下,yi代表label信息,上述目标函数的目的是“使得深度网络的输出与目标表示尽可能接近”。据此,我们可以通过误差方向传播算法更新θ值。

在无监督框架下,我们没有label信息。如果以某种方式指定目标表示yi,我们就可以无缝的利用有监督框架的所有tricks了。这应该是这篇paper追求的一个目标之一。

 

下面的一个问题就是如何选择目标表示yi,以及这样选择的约束是什么?

在回答这个问题之前,我们得选择一个Loss函数(毕竟不能总是用一个抽象的l表示)

X,Y是矩阵化的xi、yi,这个loss函数的好处“Using a squared l2 distance works well in many supervised settings, as long as the final activations are unit normalized. This loss only requires access to a single target per sample, making its computation independent of the number of targets”,主要是为了后续能够采用Batch SGD训练深度网络。

 

C包含k个目标表示(k>n),P是一个选择矩阵,Y=PC的含义就是“从k个表示中选择n个”(如果对公式细节比较较真,请参考论文)。当然了,我们不能乱选择一通了,因此就有了下面对选择矩阵P的约束:

这个约束很好理解,用原文的话说就是“Each image is assigned to a different target and each target can only be assigned once”.

 

这k个目标表示,我们就从单位球(因为“the final activations are unit normalized”)上随机抽取好了。下图以图像化的语言示意了上述过程

用数学公式的形式表示上述过程就是

为啥由F范数变为了Tr(迹)呢?它们是等级的,个人觉得Tr表示有很多现成的求导公式可用,比较适合我这数学功底比较薄弱的工科男。

 

下面的问题就是,怎么优化(5)呢?它是不是能够利用标准的Batch SGD呢?先看算法的流程图,再解释流程图的内涵!

这个流程图有三个特点:采用了Batch、优化P,优化θ。作者令k=n(这样就不用考虑剩余的k-n unassigned representations),每次优化P的一个子矩阵(示意图深灰色方块),剩下的就是采用标准流程更新深度网络的参数θ了。

 

总结:

  1. 将优化过程分为两步,“一步常规优化、一步标准Batch SGD优化”给我很大启发。
  2. 从函数影射的角度表示深度网络,简单、清晰、易懂。
  3. 这应该属于"基于Image的无监督"范式。
  4. 没有类内、类间的一个区分,这样学习到的特征可能discriminative能力有限。

posted on 2017-06-07 16:05  everyday_haoguo  阅读(720)  评论(1编辑  收藏  举报