主要内容

sparsefilt

利用稀疏滤波进行特征提取

描述

MDL.= sparsefilt(X返回一个稀疏滤波模型对象,该对象包含对预测器数据的表或矩阵应用稀疏滤波的结果X包含p变量。是从中提取的功能数量X,因此sparsefilt学习A.p-经过-变换权的矩阵。对于不完全或过完全的特征表示,可以分别小于或大于预测变量的数量。

  • 要访问学习到的转换权值,请使用Mdl。TransformWeights

  • 转换X通过对所学到的新功能集进行转换,传递MDL.X转换

例子

MDL.= sparsefilt(X名称,值使用一个或多个指定的其他选项名称,值对参数。例如,您可以标准化预测器数据或应用l2正则化。

例子

全部折叠

创建一个SparseFiltering通过使用的对象sparsefilt函数。

加载SampleImagePatches图像补丁。

data =负载(“SampleImagePatches”);大小(data.x)
ans =1×25000 363.

有5,000个图像修补程序,每个图像补丁包含363个功能。

从数据中提取100个特征。

RNG.默认%的再现性Q = 100;obj = sparsefilt(数据。X,问,“IterationLimit”, 100)
警告:解LBFGS无法收敛到一个解。
Obj = SparseFiltering ModelParameters:[1x1 struct] NumPredictors:363 NumLearnedFeatures:100 mu:[] Sigma:[] FitInfo:[1x1 struct]变换重量:[363x100双] InitialTransformweights:[]属性,方法

sparsefilt出现警告,因为它由于达到迭代限制而停止,而不是达到梯度大小的限制或梯度大小限制。您仍然可以通过调用返回对象中的学习功能转换函数。

继续优化稀疏滤波器。

加载SampleImagePatches图像补丁。

data =负载(“SampleImagePatches”);大小(data.x)
ans =1×25000 363.

有5,000个图像修补程序,每个图像补丁包含363个功能。

从数据中提取100个功能并使用20的迭代限制。

RNG.默认%的再现性q = 100;Mdl = sparsefilt(数据。X,问,“IterationLimit”, 20);
警告:解LBFGS无法收敛到一个解。

将生成的变换矩阵视为图像补丁。

wts = mdl.transformuights;w =重塑(WTS,[11,11,3,Q]);[dx,dy,〜,〜] =尺寸(w);f = 1:q wvec = w(:,:,f);wvec = wvec(:);WVEC =(WVEC  -  MIN(WVEC))/(MAX(WVEC) -  min(WVEC));W(:,::,f)=重塑(wvec,dx,dy,3);结束m =装天花板(sqrt (q));n = m;img = 0 (m * dx, n * dy, 3);f = 1;我= 1:mj = 1: n如果(f <= q)img((i-1)* dx + 1:i * dx,(j-1)* dy + 1:j * dy,:) = w(:,::,f);f = f + 1;结束结束结束imshow (img,'InitialMagnification', 300);

图包含轴。轴包含类型图像的对象。

图像补丁出现噪声。为了消除噪音,尝试更多的迭代。从停止的地方重新启动优化,再进行40次迭代。

Mdl = sparsefilt(数据。X,问,“IterationLimit”现年40岁的'InitialTransformweights',WTS);
警告:解LBFGS无法收敛到一个解。

将更新后的变换矩阵视为图像补丁。

wts = mdl.transformuights;w =重塑(WTS,[11,11,3,Q]);[dx,dy,〜,〜] =尺寸(w);f = 1:q wvec = w(:,:,f);wvec = wvec(:);WVEC =(WVEC  -  MIN(WVEC))/(MAX(WVEC) -  min(WVEC));W(:,::,f)=重塑(wvec,dx,dy,3);结束m =装天花板(sqrt (q));n = m;img = 0 (m * dx, n * dy, 3);f = 1;我= 1:mj = 1: n如果(f <= q)img((i-1)* dx + 1:i * dx,(j-1)* dy + 1:j * dy,:) = w(:,::,f);f = f + 1;结束结束结束imshow (img,'InitialMagnification', 300);

图包含轴。轴包含类型图像的对象。

这些图像的噪声较小。

输入参数

全部折叠

预测器数据,指定为n-经过-p数字矩阵或表格。行对应个别观察结果,列对应个别预测变量。如果X是一个表,那么它的所有变量都必须是数字向量。

数据类型:单身的|双倍的|表格

从预测器数据中提取的特征数,指定为一个正整数。

sparsefilt存储p-经过-转换权重矩阵Mdl。TransformWeights.因此,设置非常大的值可能导致更大的内存消耗和增加计算时间。

数据类型:单身的|双倍的

名称-值对的观点

指定可选的逗号分隔对名称,值论点。名称参数名和价值是相应的价值。名称必须出现在引号内。您可以按如下顺序指定几个名称和值对参数Name1, Value1,…,的家

例子:'标准化',真实,'lambda',1使预测数据标准化,并施加惩罚1转换权重矩阵。

最大迭代次数,指定为逗号分隔的对,由“IterationLimit”和一个正整数。

例子:'iterationlimit',1E6

数据类型:单身的|双倍的

监控算法收敛的冗长级别,指定为包括的逗号分隔对“VerbosityLevel”这个表中的值。

价值 描述
0 sparsefilt在命令行中不显示会聚信息。
正整数 sparsefilt在命令行显示收敛信息。

融合信息

标题 意义
有趣的价值 目标函数值。
常规毕业 目标函数的梯度规范。
规范步骤 迭代步骤的规范,这意味着前一点与当前点之间的距离。
cur 好的表示满足弱沃尔夫条件。该条件是目标函数的充分降低和曲率条件的结合。
伽玛 阶跃函数的内积乘以梯度差,再除以梯度差与自身的内积。梯度差是当前点的梯度减去前一点的梯度。给出目标函数曲率的诊断信息。
Α 步进乘法器,其不同1当算法执行一行搜索时。
接受 是的意味着该算法发现了一个可接受的步骤。

例子:“VerbosityLevel”,1

数据类型:单身的|双倍的

l2变换权重矩阵的正则化系数值,指定为包括的逗号分隔对“λ”一个正数标量。如果您指定0,则目标函数中不存在正则化项。

例子:'lambda',0.1

数据类型:单身的|双倍的

标记来标准化预测器数据,指定为逗号分隔的对,由'标准化'真的1)或0).

如果标准化真的,那么:

  • sparsefilt中心并缩放预测器数据的每列(X)通过柱式和标准偏差分别。

  • sparsefilt使用标准化的预测矩阵提取新功能,并将预测器变量装置和标准偏差存储在属性中Sigma.MDL.

例子:“标准化”,真的

数据类型:逻辑

初始化优化的转换权重,指定为包括的逗号分隔对'InitialTransformweights'A.p-经过-数字矩阵。p必须是列数或变量数吗X是价值

提示

通过在另一个调用中将其作为初始值传递,您可以继续优化先前返回的转换权重矩阵sparsefilt.输出模型对象MDL.将学习到的变换权重矩阵存储在TransformWeights财产。

例子:InitialTransformWeights, Mdl。TransformWeights

数据类型:单身的|双倍的

梯度范数上的相对收敛容限,指定为逗号分隔对,由“GradientTolerance”一个正数标量。这个梯度就是目标函数的梯度。

例子:“GradientTolerance”,1的军医

数据类型:单身的|双倍的

绝对收敛公差上的步长,由逗号分隔的对组成'steptolerance'一个正数标量。

例子:“StepTolerance”,1的军医

数据类型:单身的|双倍的

输出参数

全部折叠

学习了稀疏过滤模型,作为一个返回SparseFiltering模型对象。

访问MDL.,使用点表示法。例如:

  • 访问学习的变换权重,使用Mdl。TransformWeights

  • 访问拟合信息结构,使用mdl.fitinfo.

为新数据寻找稀疏滤波系数,使用转换函数。

算法

sparsefilt函数创建输入功能的非线性转换到输出功能。该转换基于优化的目标函数,该目标函数通过尽可能少的输出特征来鼓励每个示例的表示,同时保持输出特征在示例上同样活跃。

有关详细信息,请参见稀疏的滤波算法

介绍了R2017a