主要内容

sparsefilt

使用稀疏过滤功能提取

描述

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

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

  • 转换X通过使用学习的转换,通过了新的功能集MdlX变换

例子

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

例子

全部折叠

创建一个SparseFiltering对象的sparsefilt函数。

加载SampleImagePatches图像补丁。

data =负载('samemimagepatches');大小(data.x)
ans =1×25000 363

有5000个图像补丁,每个包含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] TransformWeights: [363x100 double] InitialTransformWeights:[]属性,方法

sparsefilt发出警告,因为它是由于达到迭代限制而停止的,而不是由于达到步长限制或梯度大小限制。的方法仍然可以在返回的对象中使用学到的特性变换函数。

继续优化稀疏过滤器。

加载SampleImagePatches图像补丁。

data =负载('samemimagepatches');大小(data.x)
ans =1×25000 363

有5000个图像补丁,每个包含363个特征。

从数据中提取100个特征,并使用20个迭代限制。

rng默认的%的再现性q = 100;Mdl = sparsefilt(数据。X,问,“IterationLimit”, 20);
警告:求解器LBFGS无法收敛到解决方案。

将得到的变换矩阵视为图像补丁。

但是= Mdl.TransformWeights;W =重塑(wts,[3 11日,11日,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;i = 1: mj = 1: n如果(f < = q) img((张)* dx + 1:我* dx, dy (j - 1) * + 1: j * dy:) = W (:,:: f);f = f + 1;结束结束结束imshow(img,“InitialMagnification”, 300);

图中包含一个轴对象。axis对象包含一个image类型的对象。

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

Mdl = sparsefilt(数据。X,问,“IterationLimit”现年40岁的“InitialTransformWeights”,WTS);
警告:求解器LBFGS无法收敛到解决方案。

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

但是= Mdl.TransformWeights;W =重塑(wts,[3 11日,11日,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;i = 1: mj = 1: n如果(f < = q) img((张)* dx + 1:我* dx, dy (j - 1) * + 1: j * dy:) = W (:,:: f);f = f + 1;结束结束结束imshow(img,“InitialMagnification”, 300);

图中包含一个轴对象。axis对象包含一个image类型的对象。

这些图像的噪声较小。

输入参数

全部折叠

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

数据类型:||表格

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

sparsefilt存储p——- - - - - -中变换权矩阵Mdl。TransformWeights.因此,设置非常大的值会导致更大的内存消耗和计算时间的增加。

数据类型:|

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“标准化”,的确,“λ”,1将预测数据标准化,并应用惩罚1到变换权矩阵。

最大迭代次数,由逗号分隔对组成“IterationLimit”一个正整数。

例子:“IterationLimit”,1 e6

数据类型:|

监视算法收敛的详细级别,指定为逗号分隔对组成“VerbosityLevel”和这个表中的值。

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

融合信息

标题 意义
有趣的价值 目标函数值。
规范研究生 目标函数梯度的范数。
标准步骤 迭代步骤的范数,表示前一个点与当前点之间的距离。
曲线 好的意味着满足弱狼条件。这种情况是目标函数的充分降低和曲率条件的组合。
γ 步长乘以梯度差的内积,除以梯度差与自身的内积。梯度差是当前点的梯度减去前一点的梯度。给出目标函数曲率的诊断信息。
α 步进方向乘法器,它不同于1当算法执行行搜索时。
接受 是的意味着算法找到了可接受的步骤。

例子:“VerbosityLevel”,1

数据类型:|

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

例子:“λ”,0.1

数据类型:|

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

如果标准化真正的,那么:

  • sparsefilt对预测数据的每一列进行中心和标度(X)的列均值和标准偏差。

  • sparsefilt利用标准化的预测矩阵提取新特征,并在属性中存储预测变量均值和标准差μσMdl

例子:“标准化”,真的

数据类型:逻辑

初始化优化的转换权重,指定为逗号分隔的对,由“InitialTransformWeights”和一个p——- - - - - -数字矩阵。p必须是列或变量的数量X的价值

提示

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

例子:InitialTransformWeights, Mdl。TransformWeights

数据类型:|

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

例子:“GradientTolerance”,1的军医

数据类型:|

绝对收敛公差上的步长,指定为逗号分隔对组成“StepTolerance”和一个正数标量。

例子:“StepTolerance”,1的军医

数据类型:|

输出参数

全部折叠

学习稀疏滤波模型,返回为SparseFiltering模型对象。

访问Mdl,使用点符号。例如:

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

  • 获取拟合信息结构,使用Mdl。FitInfo

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

算法

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

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

介绍了R2017a