• 论文笔记 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能力有限。
  • 相关阅读:
    wpf中防止界面卡死的写法
    wpf list<T>与ObservableCollection<T>的区别
    wpf 将对象按照正圆的顺序排列的写法
    .net 如何高效地使用string(转)
    wpf 查找DataTemplate中的控件的实现方式
    wpf 属性变更通知类的实现
    wpf 3D图形的实现(转)
    SpringBoot之HandlerInterceptorAdapter
    websocket简单实现
    mockjs基本使用
  • 原文地址:https://www.cnblogs.com/everyday-haoguo/p/note-PredictingNoise.html
Copyright © 2020-2023  润新知