• 【论文笔记】Sparse filtering


    论文来源NIPS2011

    • 相比于其它的无监督学习算法,Sparse filtering并不是去学习数据的分布,它是去分析特征的分布,良好的特征分布满足一定的特性,有了这个思想,只需要优化简单的目标函数,下面介绍。Sparse filtering可以有效地学习高维输入的特征,当进行分层训练时,Sparse filtering可以运用贪婪的思想进行训练,比如先进行第一层的训练,再进行第二层的训练,每一层都有自己的目标函数。
    • Sparse filtering还有个优点是需要调的参数只有特征的维度。
    • 这篇论文其实主要就包括两个部分,一是什么样的特征是好的特征,二是如何利用这个思想构造目标函数。

    什么样的特征是好的特征

    满足三个特性的特征是好特征,下面介绍。

    Population Sparsity

    sparse features per example,每个样本应该只被少数的特征激活。sparse filtering的结果如下图。

    类似于一层的神经网络,但是不同的是没有偏置项。我们的输出矩阵(f_j^i)表示第i个样本在第j个特征处的激活值,那么由Population Sparsity的思路我们希望,第i列就尽可能多的零值,只有少部分特征被激活。

    Lifetime Sparsity

    特征应该是具有分辨能力的,因此每个特征应该只被部分样本激活。这意味着,特征矩阵的每一行拥有尽可能多的零值。

    High Dispersal

    直观上理解,每个特征都不应该比其它特征拥有更多的激活值。即特征的地位是均等的。这些思想来源于神经科学。

    如何设计目标函数

    如上便是目标函数。其中

    首先对特征进行给规范化,使用L2范数,其次对每个样本进行规范化,仍然使用L2范数。结果用L1范数进行约束。对所有的样本进行求和,即得到的目标函数。下面解释这样的目标函数满足特征的三个特性。

    目标函数满足特征三要素

    满足polulation sparsity

    观察目标函数,对每个样本先L2规范化,再L1规范化,L2使得某个特征值增大,其余均减小,某个特征值减小,其余均增大。L1的最小化,要求特征值绝大多数的值尽可能接近于0。结合L1和L2的特点,使得特征值在大多数维度为0,在某些不为0的维度尽可能的大。满足了popylation sparsity条件。

    满足high dispersal


    对每个维度特征的L2规范化,使得每个特征的平方期望都为1,这样实现了每个特征被同等地激活。

    满足lifetime sparsity

    满足population sparstity说明每个样本中的大部分特征为0,满足high dispersal说明这些0被均等地分布在各个特征中。于是对于每个特征中激活或者未激活的个数基本是均等的,这就满足了lifetime sparsity。

    Matlab代码如下:

  • 相关阅读:
    swfupload控件文件上传大小限制设置
    C# 判断和创建目录路径
    [转载]Python ImportError: No module named 'requests'解决方法
    使用SQL语句进行特定值排序
    使用SQL语句进行数据复制
    Email正则表达式验证
    c#winform程序的改名(修改名称)
    关于无法加载DLL"***.dll":找不到指定的模块(异常来自HRESULT:0x8007007E)问题的解决办法
    C#中倒计时汇总
    C#中倒计时
  • 原文地址:https://www.cnblogs.com/zuotongbin/p/10880855.html
Copyright © 2020-2023  润新知