高效稀疏编码算法

合集下载

稀疏编码学习笔记整理(一)

稀疏编码学习笔记整理(一)

稀疏编码学习笔记整理(⼀)最近新⼊⼿稀疏编码,在这⾥记录我对稀疏编码的理解(根据学习进度不断更新中)⼀,稀疏编码的概述稀疏编码的概念来⾃于神经⽣物学。

⽣物学家提出,哺乳类动物在长期的进化中,⽣成了能够快速,准确,低代价地表⽰⾃然图像的视觉神经⽅⾯的能⼒。

我们直观地可以想象,我们的眼睛每看到的⼀副画⾯都是上亿像素的,⽽每⼀副图像我们都只⽤很少的代价重建与存储。

我们把它叫做稀疏编码,即Sparse Coding.1959年,David Hubel和Toresten Wiesel通过对猫的视觉条纹⽪层简单细胞的研究得出⼀个结论:主视⽪层V1区神经元的感受野能对信息产⽣⼀种“稀疏表⽰”.基于这⼀知识。

1961年,H.B.Barlow[5]提出了“利⽤感知数据的冗余”进⾏编码的理论.1969年,D.J.Willshaw和O.P.Buneman等⼈提出了基于Hebbian 学习的局部学习规则的稀疏表⽰模型.这种稀疏表⽰可以使模型之间有更少的冲突,从⽽使记忆能⼒最⼤化.Willshaw模型的提出表明了稀疏表⽰⾮常有利于学习神经⽹络中的联想.1972年,Barlow推论出在(Sparsity)和⾃然环境的统计特性之间必然存在某种联系.随后,有许多计算⽅法被提出来论证这个推论,这些⽅法都成功地表明了稀疏表⽰可以体现出在⼤脑中出现的⾃然环境的统计特性.1987年,Field提出主视⽪层V1区简单细胞的⾮常适于学习视⽹膜成像的图像结构,因为它们可以产⽣图像的稀疏表⽰.基于这个结论,1988年,Michison明确提出了神经稀疏编码的概念,然后由⽜津⼤学的E.T.Roll 等⼈正式引⽤.随后对灵长⽬动物视觉⽪层和猫视觉⽪层的电⽣理的实验报告,也进⼀步证实了视觉⽪层复杂刺激的表达是采⽤稀疏编码原则的.1989年,Field提出了稀疏分布式编码(Sparse Distributed Coding)⽅法.这种编码⽅法并不减少输⼊数据的,⽽是使响应于任⼀特殊输⼊信息的神经细胞数⽬被减少,信号的稀疏编码存在于细胞响应分布的四阶矩(即Kurtosis)中.1996年,Olshausen和Field在Nature杂志上发表了⼀篇重要论⽂指出,⾃然图像经过稀疏编码后得到的类似于V1区简单细胞的反应特性.这种稀疏编码模型提取的基函数⾸次成功地模拟了V1区简单细胞感受野的三个响应特性:空间域的局部性、时域和频域的⽅向性和选择性.考虑到基函数的超完备性(基函数⼤于输出神经元的个数),Olshausen 和Field在1997年⼜提出了⼀种超完备基的稀疏编码算法,利⽤基函数和系数的模型成功地了V1区简单细胞感受野.1997年,Bell和Sejnowski 等⼈把多维独⽴分量分析(Independent Component Analysis, ICA)⽤于⾃然图像数据分析,并且得出⼀个重要结论:ICA实际上就是⼀种特殊的稀疏编码⽅法.21世纪以来,国外从事稀疏编码研究的⼈员⼜提出了许多新的稀疏编码算法,涌现出了⼤量的稀疏编码⽅⾯的论⽂,国内研究者在稀疏编码和应⽤⽅⾯也作了⼀些⼯作],但远远落后于国外研究者所取得的成果.稀疏编码的⽬的:在⼤量的数据集中,选取很⼩部分作为元素来重建新的数据。

稀疏自编码器原理

稀疏自编码器原理

稀疏自编码器(Sparse Autoencoder)是一种用于无监督学习的神经网络模型,它能够从输入数据中学习到一组有意义的特征表示。

稀疏自编码器常用于特征提取、降维和数据去噪等任务,在计算机视觉、自然语言处理和推荐系统等领域得到广泛应用。

本文将从稀疏自编码器的原理入手,详细介绍其工作原理及应用。

1. 自编码器基本原理自编码器是一种能够学习数据的有效表示并用于重构的神经网络模型。

它由编码器和解码器两部分组成,其中编码器将输入数据映射为隐藏层的表示,而解码器则将隐藏层的表示映射回重构的输入数据。

自编码器的训练目标是最小化重构误差,使得解码器输出的重构数据尽可能接近输入数据。

2. 稀疏自编码器的概念稀疏自编码器在自编码器的基础上引入了稀疏性约束,以便学习到更加鲁棒和有效的特征表示。

稀疏性约束的引入可以使得自编码器学习到更少的激活单元,从而提高了特征的稳健性和可解释性。

稀疏自编码器通常采用L1正则化或KL散度作为稀疏性约束,通过调节正则化项的权重,可以控制隐藏层神经元的稀疏程度。

3. 稀疏自编码器的数学表达假设我们有一个包含N个样本的训练数据集D={x^(1), x^(2), ..., x^(N)},其中每个样本x^(i)是一个d维的特征向量。

稀疏自编码器的目标是学习到一个能够将输入特征x^(i)映射为隐藏层表示h^(i)的映射函数f(x)=s(Wx+b),其中W是输入到隐藏层的权重矩阵,b是偏置向量,s(·)是激活函数。

稀疏性约束通常通过增加一个稀疏惩罚项来实现,假设我们使用L1正则化作为稀疏性约束,那么稀疏自编码器的优化目标可以表示为:J(W, b) = Σ_{i=1}^{N} L(x^(i), g(f(x^(i)))) + λΩ(h^(i))其中L(·, ·)是重构误差函数,g(·)是解码器函数,Ω(h^(i))是稀疏惩罚项,λ是正则化参数。

4. 稀疏自编码器的训练算法稀疏自编码器通常使用梯度下降法进行训练,在每次迭代中,首先通过前向传播计算出重构误差和稀疏惩罚项,然后通过反向传播计算梯度,并更新模型参数以减小损失函数。

稀疏编码的基本原理和应用

稀疏编码的基本原理和应用

稀疏编码的基本原理和应用稀疏编码是一种在信息处理领域中常用的技术,它通过对输入信号进行压缩表示,从而实现数据的高效存储和传输。

本文将介绍稀疏编码的基本原理和应用。

一、稀疏编码的基本原理稀疏编码的基本原理是利用信号的冗余性,将输入信号表示为一个稀疏向量。

在稀疏编码中,输入信号可以看作是由一组基向量的线性组合构成的。

而稀疏编码的目标是找到一组最优的基向量,使得输入信号在这组基向量下的表示尽可能稀疏。

稀疏编码的过程可以分为两个步骤:字典学习和信号重构。

首先,通过字典学习算法,从训练数据中学习得到一组基向量,这些基向量可以用来表示输入信号。

然后,在信号重构阶段,利用学习得到的基向量对输入信号进行重构,从而得到稀疏表示。

二、稀疏编码的应用稀疏编码在很多领域都有广泛的应用。

以下将介绍一些常见的应用场景。

1. 图像处理稀疏编码在图像处理中有着重要的应用。

通过对图像进行稀疏表示,可以实现图像的压缩和去噪。

在图像压缩中,稀疏编码可以有效地减少图像的存储空间,提高图像的传输效率。

而在图像去噪中,稀疏编码可以将噪声信号表示为稀疏向量,从而实现对图像噪声的抑制。

2. 语音识别稀疏编码在语音识别中也有着广泛的应用。

通过对语音信号进行稀疏表示,可以提取出语音信号的关键特征,从而实现语音的识别和分析。

稀疏编码可以有效地降低语音信号的维度,减少计算量,并提高语音识别的准确率。

3. 数据压缩稀疏编码在数据压缩领域中具有重要的应用价值。

通过对数据进行稀疏表示,可以将数据的冗余信息去除,从而实现数据的高效压缩。

稀疏编码可以将高维数据表示为低维的稀疏向量,大大减少了数据的存储空间和传输带宽。

4. 机器学习稀疏编码在机器学习中也有着广泛的应用。

通过对输入数据进行稀疏表示,可以提取出数据的重要特征,从而实现对数据的分类和预测。

稀疏编码可以通过学习得到的基向量,将输入数据映射到一个低维的稀疏空间,从而减少了特征的维度,提高了分类和预测的准确率。

如何使用稀疏编码进行数据预处理

如何使用稀疏编码进行数据预处理

如何使用稀疏编码进行数据预处理数据预处理是机器学习中非常重要的一步,它对于提高模型的性能和效果至关重要。

而稀疏编码是一种常用的数据预处理技术,它可以有效地压缩数据并提取出有用的特征。

本文将介绍如何使用稀疏编码进行数据预处理,并探讨其在实际应用中的优势和局限性。

1. 稀疏编码的基本原理稀疏编码是一种通过线性变换将原始数据表示为稀疏向量的方法。

它的基本原理是通过最小化数据的稀疏表示来提取出数据中的重要特征。

具体来说,稀疏编码将原始数据表示为一个稀疏向量,其中大部分元素为零,只有少数元素非零。

这种表示方式可以有效地压缩数据,并且保留了数据的重要信息。

2. 稀疏编码的应用场景稀疏编码在许多领域都有广泛的应用,如图像处理、语音识别、自然语言处理等。

在图像处理中,稀疏编码可以用于图像压缩和图像特征提取。

在语音识别中,稀疏编码可以用于语音信号的降噪和语音特征提取。

在自然语言处理中,稀疏编码可以用于文本分类和文本聚类等任务。

总之,稀疏编码可以应用于各种数据类型和任务,使得数据预处理更加高效和准确。

3. 稀疏编码的优势稀疏编码具有许多优势,使其成为一种常用的数据预处理技术。

首先,稀疏编码可以有效地压缩数据,减少存储空间和计算成本。

其次,稀疏编码可以提取出数据中的重要特征,过滤掉冗余信息,从而提高模型的性能和效果。

此外,稀疏编码还具有较好的鲁棒性,对于噪声和异常值具有一定的容忍度。

因此,稀疏编码在实际应用中具有广泛的应用前景。

4. 稀疏编码的局限性尽管稀疏编码具有许多优势,但它也存在一些局限性。

首先,稀疏编码的计算复杂度较高,需要进行迭代求解,对于大规模数据和高维数据可能存在一定的困难。

其次,稀疏编码对于数据分布的假设较为严格,如果数据分布不符合稀疏假设,则可能导致稀疏编码的性能下降。

此外,稀疏编码还对初始参数敏感,需要进行精细的调参和优化。

5. 稀疏编码的改进方法为了克服稀疏编码的局限性,研究者们提出了许多改进方法。

SENSC:一个稳定高效的非负稀疏编码算法

SENSC:一个稳定高效的非负稀疏编码算法

SENSC:一个稳定高效的非负稀疏编码算法李乐;章毓晋【期刊名称】《自动化学报》【年(卷),期】2009(0)10【摘要】非负稀疏编码(Nonnegative sparse coding,NSC)已成功应用在很多领域的研究中.目前使用的NSC算法通过梯度投影法和基于辅助函数的乘性更新法相结合来实现,其性能受迭代步长的影响很大,且效率较低.为增强NSC的可应用性,本文通过对一组凸超抛物面函数做交替最小化来实现NSC,并依据凸超抛物面特性、点到非负数集合的投影规则以及点到原点处单位超球的投影规则构造了一个无用户定义优化参数的稳定高效的NSC算法-SENSC.从数学角度,文中推断了SENSC比现有算法高效且它的解优于当前算法的解,证明了它的稳定性和收敛性.实验验证了上述理论推断的正确,说明了SENSC调节编码稀疏性的能力比已有算法更强.【总页数】15页(P1257-1271)【作者】李乐;章毓晋【作者单位】清华大学信息科学与技术国家实验室,北京,100084;清华大学电子工程系,北京,100084;清华大学信息科学与技术国家实验室,北京,100084;清华大学电子工程系,北京,100084【正文语种】中文【中图分类】TP391【相关文献】1.基于非负弹性网稀疏编码算法的图像分类方法 [J], 张勇;张阳阳;程洪;张艳霞2.改进的非负稀疏编码图像基学习算法 [J], 晁永国;戴芳;韩舒然;何静3.大规模非负线性最小二乘问题的一个新算法 [J], 雍龙泉;刘三阳;张建科;周涛4.一个求线性代数方程组非负解的算法及其在线性规划中的应用 [J], 张连生5.关于求解实对称非负定矩阵之g-逆的一个算法 [J], 孙振东;赵维谦因版权原因,仅展示原文概要,查看原文内容请购买。

稀疏编码简介及原理

稀疏编码简介及原理

稀疏编码简介及原理稀疏编码是一种在信号处理和机器学习中广泛应用的技术,它能够有效地表示和压缩数据。

在本文中,我们将介绍稀疏编码的基本概念和原理,并探讨它在实际应用中的一些重要应用。

首先,让我们来了解稀疏编码的基本思想。

稀疏编码的目标是找到一种表示方式,使得输入数据能够用尽可能少的基函数来表示。

这些基函数一般被称为“字典”,它们可以是任意形状的函数,如正弦函数、高斯函数等。

通过选择合适的字典和相应的编码算法,我们可以将输入数据表示为字典中的一组基函数的线性组合,从而实现数据的压缩和降维。

稀疏编码的核心原理是稀疏性。

稀疏性是指输入数据在字典表示下,只有很少的基函数起到显著作用,其他基函数的系数接近于零。

这意味着我们可以用一个较小的系数向量来表示输入数据,从而实现数据的压缩。

为了获得稀疏表示,我们需要设计一种合适的优化算法来求解稀疏编码问题。

常用的算法包括L1正则化、贪婪算法和迭代阈值算法等。

稀疏编码在信号处理和图像处理领域有着广泛的应用。

例如,在图像压缩中,我们可以将输入图像表示为一组基函数的线性组合,其中只有少数基函数的系数非零。

通过选择合适的字典和相应的编码算法,我们可以实现对图像的高效压缩。

此外,稀疏编码还可以用于图像去噪、图像恢复和图像分类等问题。

除了在图像处理中的应用,稀疏编码还在语音信号处理和自然语言处理等领域发挥着重要作用。

在语音信号处理中,稀疏编码可以用于语音压缩、语音识别和语音合成等任务。

在自然语言处理中,稀疏编码可以用于文本分类、情感分析和机器翻译等任务。

通过将输入数据表示为稀疏向量,我们可以提取出数据中的关键信息,从而实现更高效和准确的处理。

总结起来,稀疏编码是一种在信号处理和机器学习中常用的技术,它能够有效地表示和压缩数据。

通过选择合适的字典和相应的编码算法,我们可以将输入数据表示为字典中的一组基函数的线性组合,从而实现数据的压缩和降维。

稀疏编码在图像处理、语音信号处理和自然语言处理等领域有着广泛的应用。

稀疏编码的近似计算与加速技术

稀疏编码的近似计算与加速技术稀疏编码是一种重要的信号处理方法,被广泛应用于图像处理、语音识别、机器学习等领域。

然而,稀疏编码的计算复杂度往往较高,限制了其在实际应用中的效率和实时性。

因此,近年来研究者们致力于寻找稀疏编码的近似计算与加速技术,以提高算法的性能和效率。

稀疏编码的核心思想是通过寻找最优的稀疏表示来描述信号。

在传统的稀疏编码算法中,通常采用迭代优化的方式求解稀疏表示。

然而,这种方法在大规模数据集上的计算复杂度较高,难以满足实时性的要求。

因此,研究者们提出了各种近似计算和加速技术,以降低计算复杂度并提高算法的效率。

一种常用的近似计算方法是使用近似优化算法来求解稀疏表示。

近似优化算法通过在每次迭代中只考虑部分重要的原子,从而降低了计算复杂度。

例如,基于贪婪算法的近似优化算法可以通过选择最具代表性的原子来逐步逼近稀疏表示。

此外,还有基于压缩感知理论的近似优化算法,它利用信号的稀疏性和随机测量矩阵的特性,以较低的采样率获取近似的稀疏表示。

除了近似优化算法,还有一些基于统计学习的方法用于稀疏编码的近似计算。

这些方法通过建立稀疏表示与观测信号之间的概率模型,从而实现对稀疏表示的近似估计。

例如,基于变分贝叶斯推断的方法可以通过最大后验概率估计来求解稀疏表示,从而降低计算复杂度并提高算法的效率。

此外,还有一些加速技术可以用于稀疏编码的计算加速。

例如,图像处理领域常用的快速傅里叶变换(FFT)可以将信号从时域转换到频域,从而加速稀疏编码的计算。

此外,还有一些基于图像块的加速技术,如局部块匹配(LBM)和块稀疏编码(BSC),可以通过利用图像的局部结构来减少计算量。

总之,稀疏编码的近似计算与加速技术对于提高算法的性能和效率具有重要意义。

近年来,研究者们在稀疏编码领域取得了许多重要的成果,提出了各种近似计算和加速技术。

这些方法不仅可以降低计算复杂度,提高算法的效率,还可以在实际应用中发挥重要的作用。

未来,我们可以进一步研究和探索更加高效的稀疏编码算法和加速技术,以满足实际应用中对高性能和实时性的需求。

稀疏编码的分类与回归问题解决方法

稀疏编码的分类与回归问题解决方法稀疏编码是一种在机器学习领域中被广泛应用的技术,它在分类和回归问题的解决中发挥着重要的作用。

本文将探讨稀疏编码在分类与回归问题中的应用,并介绍一些解决这些问题的方法。

一、稀疏编码的概念和原理稀疏编码是一种基于信号表示的方法,它的目标是通过寻找一个稀疏表示来描述输入信号。

稀疏表示意味着只有很少的元素对信号的表示起到重要作用,而其他元素则可以忽略。

这种表示方式可以帮助我们提取出输入信号中最重要的特征,从而有效地解决分类和回归问题。

稀疏编码的原理是通过最小化表示误差来寻找最佳的稀疏表示。

具体而言,稀疏编码可以通过以下优化问题来定义:min ||x - Dα||^2 + λ||α||_1其中,x是输入信号,D是字典矩阵,α是稀疏表示,||·||_1表示L1范数,λ是正则化参数。

通过解决这个优化问题,我们可以得到输入信号的稀疏表示,从而实现特征提取和降维的目的。

二、稀疏编码在分类问题中的应用在分类问题中,稀疏编码可以用于特征提取和模式识别。

通过将输入信号表示为稀疏向量,我们可以选择最相关的特征,并将其用于分类器的训练和预测。

一种常见的方法是使用稀疏编码作为特征选择的工具。

通过将输入信号表示为稀疏向量,我们可以选择其中非零元素对应的特征作为最相关的特征。

这样,我们可以将特征空间降维,并且只保留最重要的特征,从而提高分类器的性能。

另一种方法是使用稀疏编码作为特征提取的方法。

通过将输入信号表示为稀疏向量,我们可以选择其中非零元素对应的特征作为提取出的特征。

这样,我们可以得到一个更加紧凑和有信息量的特征表示,从而提高分类器的性能。

三、稀疏编码在回归问题中的应用在回归问题中,稀疏编码可以用于特征选择和模型建立。

通过将输入信号表示为稀疏向量,我们可以选择其中非零元素对应的特征作为最相关的特征,并将其用于回归模型的训练和预测。

一种常见的方法是使用稀疏编码作为特征选择的工具。

通过将输入信号表示为稀疏向量,我们可以选择其中非零元素对应的特征作为最相关的特征。

稀疏自编码的原理

稀疏自编码的原理
稀疏自编码是一种无监督学习算法,用于学习特征的低维表示。

它通过在数据输入层和隐藏层之间添加稀疏性约束来进行特征提取和数据重构。

稀疏自编码的主要原理如下:
1. 数据重构:稀疏自编码将输入数据通过权重和偏置参数传递到隐藏层,然后通过隐藏层的输出与权重和偏置参数传递到输出层。

通过调整权重和偏置参数,网络尽量使输出数据与原始输入数据尽可能相似,从而实现数据重构的目标。

2. 特征提取:在进行数据重构的过程中,稀疏自编码会约束隐藏层的输出,使得只有一小部分隐藏神经元被激活。

这种约束通过添加稀疏性约束项到目标函数中实现,例如L1正则化。

稀疏性约束可以促使网络学习到对输入数据具有较高区分能力的特征,从而实现特征提取的目标。

3. 反向传播算法:稀疏自编码使用误差反向传播算法来更新权重和偏置参数。

首先计算输出层与输入层之间的误差,并利用链式求导法则计算隐藏层与输出层之间的误差。

然后根据误差反向传播,通过梯度下降法更新网络的权重和偏置参数,不断调整网络的参数以最小化重构误差。

通过反复迭代以上步骤,稀疏自编码可以逐渐学习到输入数据的低维表示,并在此过程中提取出关键的特征。

这些特征可以用于许多机器学习任务,如分类、聚类和降维等。

稀疏编码的参数调优方法与技巧

稀疏编码的参数调优方法与技巧稀疏编码是一种常用的机器学习技术,用于处理高维数据的降维和特征选择问题。

在实际应用中,如何调优稀疏编码的参数是一个关键的问题。

本文将介绍一些常用的稀疏编码参数调优方法与技巧。

首先,我们需要了解稀疏编码中的几个重要参数。

最常见的参数是稀疏性参数,用于控制编码向量的稀疏度。

较大的稀疏性参数会导致更稀疏的编码向量,而较小的稀疏性参数则会产生更密集的编码向量。

另一个重要的参数是字典大小,它决定了编码向量的维度。

较大的字典大小可以捕捉更多的特征信息,但也会增加计算复杂度。

一种常用的稀疏编码参数调优方法是网格搜索。

网格搜索通过在给定的参数范围内进行穷举搜索,找到在给定数据集上表现最好的参数组合。

例如,我们可以在一定的稀疏性参数范围内,以一定的步长逐渐增加稀疏性参数的值,然后在每个参数值下进行交叉验证,选择表现最好的参数值。

同样,我们也可以对字典大小进行网格搜索。

网格搜索的优点是简单直观,但缺点是计算复杂度较高,需要耗费大量的时间和计算资源。

另一种常用的稀疏编码参数调优方法是随机搜索。

随机搜索通过在给定的参数范围内随机选择参数组合,寻找在给定数据集上表现最好的参数组合。

与网格搜索相比,随机搜索的计算复杂度较低,但可能无法找到全局最优解。

为了提高随机搜索的效果,我们可以增加搜索的次数,增加参数组合的多样性,以及进行自适应调整,根据搜索结果调整参数范围。

除了网格搜索和随机搜索,我们还可以使用启发式算法来进行稀疏编码参数调优。

启发式算法是一类基于启发式思想的优化算法,例如遗传算法、粒子群算法等。

这些算法通过模拟自然界的进化过程或群体行为,寻找最优解。

在稀疏编码参数调优中,我们可以将参数作为个体或粒子,通过交叉、变异等操作进行进化,直到找到最优的参数组合。

启发式算法的优点是可以避免局部最优解,但缺点是计算复杂度较高,需要进行大量的迭代计算。

此外,还有一些其他的稀疏编码参数调优技巧可以尝试。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高效稀疏编码算法1 Introduction稀疏编码提供了发现对于外来刺激简明表示的一系列算法;给予未标记的输入数据,它学习可以抓住数据高水平特征的基函数。

当一个稀疏编码算法英语到自然图像时,学习的基函数就类似于视觉皮层中的神经元感受野;此外,当应用到其他自然刺激例如语音和视频时,稀疏编码产生局部基函数。

不同于其他无监督学习技术例如主成分分析,稀疏编码可以应用到学习超完备基函数,其中基函数的维度大于输入数据维度。

稀疏编码同样可以通过稀疏化它们的刺激来生成基函数之间抑制模型。

同样的性质可以在生物神经元中观察到,这样使得稀疏编码得到视觉皮层的合理模型。

尽管关于稀疏编码模型有良好的前景,我们认为它们的发展很大程度上被昂贵的计算代价所阻碍。

特别是学习大维度,超完备代表时就会极度耗费计算资源。

在这篇文章中,我们提出了一类基于变量两组子集的交替优化的高效稀疏编码。

这类优化问题是凸问题;特别地,对于第一个子集的优化是一范数最小二乘问题;第二个子集则是二范数最小二乘问题。

我们描述了每个算法并经验地分析了它们的表现。

我们的方法允许我们高效地学习来及自然图像的高维度超完备基函数。

我们证明了结果学习基展示了终止情况和对于传统感受野之外刺激的调整。

此外,稀疏编码同样提供了对于V1区神经元这些现象的局部解释。

在最近的工作中,我们展示了学习高水平特征的简明表示可以应用到监督分类任务。

2 Preliminaries稀疏的目标就是将输入向量表示为少量的(未知的)“基函数”的加权线性组合。

这些基函数可以抓住输入数据中的高水平特征。

具体地说,每个输入的向量可以简单地由基函数和稀疏加权向量或系数使得来表示。

这些基函数是超完备的(n>k),这样可以抓取输入数据的大量值。

稀疏编码是可以使用无标签数据自动获取良好的基向量。

标准生成模型假设重构误差是,且是标准高斯分布协方差为。

为了支持稀疏系数,每个系数的优先分布定义为,其中是稀疏函数,是一个常数。

例如,我们可以使用如下函数:在这篇文章中,除非提及我们将会使用一范数罚项;一范数正则化是可以产生稀疏系数并且对于不相关特征是稳健的。

考虑训练集是m个输入向量和它们相应的(未知)系数。

假设基函数先验是均一的,对于基函数和系数的后验估计的最大化就是下列优化问题的解:这个问题可以以更简明的矩阵形式表示:使是输入矩阵(每列是一个输入向量),是基函数矩阵(每列是基函数向量),是系数矩阵(每列是系数向量)。

最优化问题可以写成:假定一范数罚项或者epsilon一范数罚项是稀疏函数,最优化问题在B中是凸的(S是固定的)或在S中是凸的(B是固定的),但不是同时都是凸的。

在这篇文章中我们迭代地求解上述目标函数,通过交替地优化B(基函数)和S(系数)同时固定另一项。

对于学习基B,优化问题是有二次项约束的最小二乘问题,这里有一些方法来求解这一类问题,例如通用凸优化求解器(QCQP求解器)以及使用迭代投影的梯度下降法。

然而,通用凸优化求解器对于这类问题来说太慢了,梯度下降通常收敛太慢。

在这篇文章总,我们推导出拉格朗日对偶,并说明这种方法比基于梯度的方法更加高效。

对于学习系数S,最优化问题等效于正则化最小二乘问题。

对很多可微的系数函数,我们可以采取基于梯度方法(如共轭梯度)。

然而,对于一范数稀疏函数,目标函数并不是连续可微的且最直接的基于梯度方法难以应用其中。

在这种情况下,下面的方法可以被采用:通用QP求解器(CVX),chen等人提出的内部点方法,最小角回归的改进,或者移植法。

在这篇文章中,我们提出一种新的算法来求解一范数正则化最小二乘问题并且说明这种方法对于学习稀疏编码基是更为高效的。

3 L1-regularized least squares: The feature-sign search algorithm考虑到求解(2)式的最优化问题是固定基同时对系数加上一范数罚项,这类问题可以分别优化每个系数来求解:注意到如果我们知道在最优化值的标志(正,零或负),我们可以将项替换为(如果>0),(如果<0),或者0(如果=0)。

仅仅考虑非零系数,式(4)简化为标准无约束的二次最优化问题(QP),这样就可以高效地解析求解。

因此,我们的算法尝试去找到,或者说是“猜出”系数的特征;无论是怎么猜测我们都能够高效地求解出无约束QP问题。

此外,如果初始值是错误的,算法会系统地改善搜索值。

为了简化符号表示,我们将算法表示为下面等效的最优化问题:其中是一个常数,特征标志搜索算法仔算法1中所示。

它保持了潜在非零系数的活跃子集和相应的标志——其他的系数必须是零值,并且系统地搜索最优的活跃子集和系数标志。

算法通过一系列“特征标志步骤”来进行:在每一步,它对活跃子集和其标志进行猜测,并计算无约束QP问题的解析解;接着通过在当前解和之间的高效离散线性搜索,它会不断更新解,活跃子集和标志(详见算法1)。

我们将会表现每一步会减小目标函数f(x),最终算法总会收敛到最优解。

算法1 特征标志搜索算法1 初始化,活跃子集,其中代表标志2 从零系数x中,选择,激活x i(将i加入活跃子集)仅当它局部提高目标函数,即:如果,那么令,活跃子集:=活跃子集。

如果,那么令,活跃子集:=活跃子集。

3 特征标志步骤:令是A的子矩阵,其仅仅包含相应活跃子集的列。

令和分别是和相对于活跃子集的子向量。

计算无约束QP问题的解析解():从到的闭合线性部分进行离散线性搜索:检查目标函数在和其他所有系数标志变化点的值。

更新到有着最小目标函数值的点。

去掉在活跃子集中的零值,并更新4 检查最优化条件:(a)对于非零系数的最优化条件:如果条件(a)不满足,转到步骤3(不做任何激活);否则检查条件(b) (b)对于零系数的最优化条件:如果条件(b)不满足,转到步骤2;否则返回x为最终解。

为了证明收敛,令系数向量x和所给的活跃子集和标志向量一致如果对所有的i满足下面两个条件:(i)如果i在活跃子集中,那么,(ii)如果i不在活跃子集中,那么。

引理3.1考虑最优化问题(5)增加额外限制:x是同所给的活跃子集和标志向量相一致。

那么,如果当前系数是同活跃子集和标志向量相一致,但是对于步骤3的增广问题并不是最优的,特征标志步骤是保证严格减小目标函数。

简略证明。

令是相对于所给活跃子集中系数的子向量。

仔步骤3中,考虑到平滑的二次项函数。

因为不是的最优点,我们有。

现在考虑两种可能的情况:(i)如果和所给的活跃子集和标志向量一致,更新会严格地减小目标函数;(ii)如果不是和所给的活跃子集和标志向量一致,令为在到线性部分的第一个零交叉点(其中任何系数改变其标志),那么很明显,而且由于的凸性质,因此我们可以得到。

因此,在步骤3中描述的离散线性搜索保证了目标函数值的减少。

引理3.2考虑最优化问题(5)增加额外限制:x是同所给的活跃子集和标志向量相一致。

如果系数在步骤2的初始对于增广问题是最优的,但对问题(5)不是最优的,特征标志步骤保证严格减小目标函数。

简略证明。

因为对于增广问题是最优的,它满足最优化条件(a),但是不满足条件(b);因此,在步骤2中,存在一些i,使得;这些第i个系数被激活,i被加入活跃子集中。

在步骤3中,考虑平滑二次函数。

观察到:(i)因为在的泰勒展开仅在有一阶项(对其他系数使用条件4(a)),我们得到任何局部减小的方向必须和活跃的标志相一致,(ii)因为并不是的最优点,必须在附近沿着到的方向减小。

从(i)和(ii)得知,从到的线性搜索方向必须和活跃的标志相一致。

最终,因为当和活跃子集相一致时,或者相一致的,或者从到的第一零交叉点有最小目标函数值(同引理3.1相似)。

定理 3.3特征标志搜索算法对于最优化问题(5)在有限的步数内收敛到全局最优点简单证明。

从上述的引理中,它遵循着特征标志步骤总是严格地减小目标函数f(x)。

在步骤2的开始,x要不满足最优化条件4(a),要不是零向量;在哪种条件下,x都是同当前的活跃子集和标志向量相一致,并且对于上述引理描述的增广问题必须是最优的。

因为所有可能的活跃子集和系数标志是有限的,而且没有重复的一对(因为目标函数值是严格减少的),步骤2-4(b)的外层循环是不能无期限地重复。

这样是正确的是因为步骤3-4(a)总是导致要不退出到步骤4(b),要不减少活跃子集的大小。

注意到从任意起始点开始计算需要一点小的改进:在初始化和活跃子集,得到一个初始解,我们需要进行步骤3而不是步骤1。

当初始解在最优解附近,特征标志搜索可以比初始值是更快地得到最优解。

4Learning bases using the Lagrange dual在这一小节中,我们提出一种在固定系数S情况下求解基于基B的最优化问题(3)。

该问题简化为下列问题:这是有二次约束的最小二乘问题。

通常来说,这类约束最小化问题可以通过迭代投影梯度下降方法。

然而,使用拉格朗日对偶会更加高效。

首先,考虑拉格朗日算符:其中每个,是对偶变量。

对B解析地最小化,我们得到朗格朗日对偶:其中。

的梯度和海塞矩阵分别有下式计算:其中是第i个单位向量。

我们可以通过使用牛顿法或者共轭梯度法来优化拉格朗日对偶(8)。

在最大化后,我们得到最优基B如下所示:求解对偶的优势是它相比较于原始的方法使用了更少的最优化变量。

例如,最优化仅需要100个对偶变量。

注意到对偶变化是独立于稀疏函数(例如L1,epsilon L1,或者其他稀疏函数),而且可以延伸到其他相似的模型例如“拓扑”单元。

5Experimental results5.1The feature-sign search algorithm我们评估了我们的算法对于四种自然刺激数据集的表现:自然图像,语音,立体图像,和自然图像视频。

所有的实验是在Linux机器,配置为AMD Opteron 2GHZ CPU和2GB RAM。

首先,我们评估了特征标志搜索算法对于学习L1稀疏函数系数的表现。

我们比较了和之前最先进算法的运行时间和准确性:通用QP求解器,一种有着提前终止的LARS法的改进,移植法,和chen等人的内部点方法;所以的算法都是用MATLAB运行。

对于每个数据集,我们使用100个输入向量测试,并测量运行时间和收敛时的目标函数。

表1展现了不同系数学习算法的运行时间和准确性(计算最终目标函数的相对误差)。

在所有数据集中,特征标志搜索有最好的目标函数值以及最短的运行时间。

特征标志搜索和改进的LARS比其他算法的借要更准确。

特征标志搜索比Chen等人算法和通用QP求解器用着更小量级的时间,而且比改进LARS和移植法更明显地快。

此外,特征标志搜索有着重要的优势就是它可以以任意系数作为初始值(不同于LARS);我们甚至可以证明当应用到迭代系数学习时,特征标志搜索比LARS有着更高的加速。

相关文档
最新文档