sparsefilt
利用稀疏滤波进行特征提取
描述
例子
创建稀疏的过滤器
创建一个SparseFiltering
对象。sparsefilt
函数。
加载SampleImagePatches
图像补丁。
data =负载(“SampleImagePatches”);大小(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: [] Properties, Methods
sparsefilt
发出警告,因为它由于达到迭代限制而停止,而不是达到步长限制或梯度大小限制。方法,仍然可以在返回的对象中使用学到的特性变换
函数。
重新启动sparsefilt
继续优化稀疏过滤器。
加载SampleImagePatches
图像补丁。
data =负载(“SampleImagePatches”);大小(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: m为j = 1: n如果(f < = q) img((张)* dx + 1:我* dx, dy (j - 1) * + 1: j * dy:) = W (:,:: f);f = f + 1;结束结束结束imshow (img,“InitialMagnification”, 300);
图像补丁出现噪声。要清除噪音,请尝试更多迭代。从停止的地方重新启动优化,再进行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: m为j = 1: n如果(f < = q) img((张)* dx + 1:我* dx, dy (j - 1) * + 1: j * dy:) = W (:,:: f);f = f + 1;结束结束结束imshow (img,“InitialMagnification”, 300);
这些图像不那么嘈杂。
输入参数
X
- - - - - -预测数据
数字矩阵|表格
预测数据,指定为n——- - - - - -p数字矩阵或表格。行对应个别的观察结果,列对应个别的预测变量。如果X
是一个表,那么它的所有变量都必须是数值向量。
数据类型:单
|双
|表格
问
- - - - - -要提取的特征数量
正整数
从预测器数据中提取的特征数量,指定为正整数。
sparsefilt
存储p——- - - - - -问
中的变换权矩阵Mdl。TransformWeights
.因此,设置非常大的值问
会导致更大的内存消耗和计算时间的增加。
数据类型:单
|双
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:“标准化”,的确,“λ”,1
标准化预测器数据并应用惩罚1
变换权矩阵。
IterationLimit
- - - - - -最大迭代次数
1000
(默认)|正整数
最大迭代次数,指定为逗号分隔的对,由“IterationLimit”
一个正整数。
例子:“IterationLimit”,1 e6
数据类型:单
|双
VerbosityLevel
- - - - - -冗长的水平
0
(默认)|非负整数
用于监视算法收敛的冗长级别,指定为逗号分隔的对,由“VerbosityLevel”
和这个表中的一个值。
价值 | 描述 |
---|---|
0 |
sparsefilt 不会在命令行上显示收敛信息。 |
正整数 | sparsefilt 在命令行显示收敛信息。 |
融合信息
标题 | 意义 |
---|---|
有趣的价值 |
目标函数值。 |
规范研究生 |
目标函数梯度的范数。 |
标准步骤 |
迭代步长范数,表示上一个点到当前点的距离。 |
曲线 |
好吧 表示满足弱沃尔夫条件。该条件是目标函数的充分递减和曲率条件的结合。 |
γ |
阶跃的内积乘以梯度差,除以梯度差与自身的内积。梯度差是当前点的梯度减去前一点的梯度。给出目标函数曲率的诊断信息。 |
α |
步进方向乘法器,其区别于1 当算法执行行搜索时。 |
接受 |
是的 意味着算法找到了可以接受的步骤。 |
例子:“VerbosityLevel”,1
数据类型:单
|双
λ
- - - - - -l2正则化系数值
0
(默认)|积极的数字标量
l2变换权矩阵的正则化系数值,指定为逗号分隔的对,由“λ”
和一个正的数值标量。如果您指定0
,则目标函数中不存在正则化项。
例子:“λ”,0.1
数据类型:单
|双
InitialTransformWeights
- - - - - -初始化优化的转换权重
randn (p, q)
(默认)|数字矩阵
GradientTolerance
- - - - - -梯度范数的相对收敛公差
1 e-6
(默认)|积极的数字标量
梯度范数上的相对收敛公差,用逗号分隔的对表示“GradientTolerance”
和一个正的数值标量。这个梯度就是目标函数的梯度。
例子:“GradientTolerance”,1的军医
数据类型:单
|双
StepTolerance
- - - - - -步长上的绝对收敛公差
1 e-6
(默认)|积极的数字标量
步长上的绝对收敛公差,指定为逗号分隔的对,由“StepTolerance”
和一个正的数值标量。
例子:“StepTolerance”,1的军医
数据类型:单
|双
输出参数
Mdl
-学习稀疏滤波模型
SparseFiltering
模型对象
学习了稀疏滤波模型,返回为SparseFiltering
模型对象。
访问的属性Mdl
,使用点表示法。例如:
要访问学习到的变换权值,请使用
Mdl。TransformWeights
.若要访问拟合信息结构,请使用
Mdl。FitInfo
.
为新数据寻找稀疏过滤系数,请使用变换
函数。
算法
的sparsefilt
函数创建了输入特征到输出特征的非线性转换。这种转换基于优化一个目标函数,该函数鼓励通过尽可能少的输出特征来表示每个示例,同时保持输出特征在示例间同样活跃。
有关详细信息,请参见稀疏的滤波算法.
版本历史
介绍了R2017a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。