正则化是指定模型灵活性约束的技术,从而减少估计参数值的不确定性。
模型参数是通过将实测数据拟合到预测的模型响应中得到的,如三极点传递函数或二阶状态空间模型。模型的顺序是其灵活性的衡量标准——顺序越高,灵活性就越大。例如,三极模型比两极模型更灵活。增加阶数会使模型以更高的精度拟合观测数据。然而,增加的灵活性带来了估计中更高的不确定性的代价,用更高的随机或方差错误。另一方面,选择一个阶数过低的模型会导致更大的系统误差。这种误差不能归因于测量噪声,也称为偏见错误。
理想情况下,一个好的模型的参数应该最小化均方误差,由系统误差(偏差)和随机误差(方差)之和给出:
MSE = | |偏见2+方差
因此,最小化是约束模型的一种折衷。灵活的(高阶)模型偏差小,方差大,而简单的(低阶)模型偏差大,方差小。通常,您可以通过对一组灵活性不断提高的模型进行交叉验证测试来调查偏差和方差误差之间的这种权衡。然而,这样的测试在管理参数估计行为时并不总是给予完全的控制。例如:
你不能使用已知的(先天的)有关模型的信息,以影响拟合质量。
在灰盒和其他结构化模型中,顺序由底层ode固定,不能更改。如果数据不够丰富,无法捕获动态行为的全部范围,这通常会导致估价值的高不确定性。
改变模型顺序不能让您显式地塑造基础参数的方差。
通过在最小化标准中引入惩罚模型灵活性的额外术语,正则化可以更好地控制偏差与方差的折衷。不需要正则化,对于只有一个输出且没有加权的模型,参数估计是通过最小化预测误差的加权二次范数得到的ε(t,θ):
在哪里t为时间变量,N是数据样本的数量,和ε(t,θ)为模型的观测输出与预测输出之间的差值计算出的预测误差。
正则化通过添加与参数向量范数的平方成比例的项来修改代价函数θ,使参数θ通过最小化得到:
在哪里λ是一个正常数,在V中对交易方差误差有影响N(θ)为偏倚误差- λ值越大,偏倚越高,方差越小θ.增加的项惩罚了参数值,使其在估计期间保持较小的值。在统计学中,这种类型的正则化称为正则化岭回归.有关更多信息,请参见岭回归(统计学和机器学习工具箱).
请注意
规范的另一种选择θ向量是L1规范,即套索正规化.然而,系统识别工具箱™只支持基于2范数的惩罚,称为L金宝app2正则化,如上面的方程所示。
用正定矩阵使罚项更有效R,它允许参数矢量的权重和/或旋转:
的方阵R给予额外的自由:
塑造惩罚项以满足所需的约束条件,例如保持模型稳定
添加模型参数的已知信息,如单个参数的可靠性θ向量
对于灰盒模型等结构化模型,您可能希望将估计参数保持在其猜测值附近,以保持估计模型的物理有效性。这可以通过将惩罚项推广到 ,使成本函数为:
将这个成本函数最小化会产生估计的效果θ这样它们的值就会接近最初的猜测θ*.
在正则化:
θ*表示关于未知参数的先验知识。
λ*R表示对未知参数先验知识的置信度。这意味着值越大,置信度越高。
在贝叶斯背景下,一个正式的解释是θ有一个平均θ*的高斯先验分布和协方差矩阵 ,σ2为ε(t)的方差。因此,正规化的使用可以与有关系统的一些预先信息联系起来。这可能是相当软的,比如系统是稳定的。
您可以使用正则化变量λ和R作为找到一个好的模型的工具,它可以平衡复杂性,并在偏差和方差之间提供最好的权衡。您可以获得传递函数、状态空间、多项式、灰盒、过程和非线性黑盒模型的参数的正则化估计。定义刑罚期限的三个术语,λ,R和θ*,由正则化选项表示λ
,R
,名义上的
,分别在工具箱中。您可以在线性和非线性模型的估计选项集中指定它们的值。在“系统识别”应用中,单击正则化在线性模型估计对话框或估计选项在“非线性模型”对话框。
使用正则化:
识别overparameterized模型。
实施先天的了解结构化模型中的模型参数。
在ARX和FIR模型中结合系统行为的知识。
过度参数化的模型具有丰富的参数。它们的估计通常会产生具有高度不确定性的参数值。对于非线性ARX (idnlarx
)模型,也可用于使用自由参数化的线性状态空间模型。
在这种情况下,正则化改进了估计的数值条件。你可以探索偏见和。-方差权衡使用不同的正则化常数值λ
.通常,名义上的
Option的默认值为0
,R
是一个单位矩阵,使下列代价函数最小:
在下面的例子中,一个使用大量神经元的非线性ARX模型估计导致了一个病态估计问题。
%负载估计数据。负载regularizationExampleData.matnldata%不需要正则化的估计模型。订单= [1 2 1];问= idSigmoidNetwork (“NumberOfUnits”, 30);sys = nlarx (nldata、订单、问);比较(nldata sys)
即使应用很小的正则化惩罚,也能使模型与数据很好地匹配。
%使用正则化常数λ = 1e-8估计模型。选择= nlarxOptions;opt.Regularization.Lambda = 1 e-8;sysr = nlarx (nldata、订单、问、选择);比较(nldata sysr)
在由微分方程导出的模型中,参数具有物理意义。您可能对这些参数的典型值有一个很好的猜测,即使每个参数的猜测的可靠性可能不同。因为模型结构在这种情况下是固定的,所以不能简化结构以减少方差误差。
使用正则化常数名义上的
,您可以保持估价值接近他们的初始猜测。你也可以设计R
来反映参数初始猜测的置信度。例如,如果θ是一个2元向量,你可以更有把握地猜测第一个元素的值,而不是第二个元素,集合R
是一个大小为2 × 2的对角矩阵,使R(1,1) >> R(2,2)
在下面的例子中,一个直流电动机模型被静态增益参数化G
时间常数τ。根据先验知识,假设你知道G
大约是4,τ大约是1。同时,假设你对τ的值更有信心G
并希望指导估计保持接近最初的猜测。
%负载估计数据。负载regularizationExampleData.matmotorData%创建idgrey模型的直流电机动力学。mi = idgrey (@DCMotorODE, {‘G’4;“τ”1},“cd”{}, 0);mi = setpar (mi,“标签”,“默认”);%配置正则化选项。选择= greyestOptions;opt.Regularization.Lambda = 100;%指定第二个参数比第一个参数更广为人知。opt.Regularization.R = [1,1000];%指定初始猜测为名义。opt.Regularization.Nominal =“模型”;%的估计模型。sys = greyest(motorData,mi,opt) getpar(sys)
在许多情况下,您可以从冲击试验中知道系统脉冲响应的形状。例如,稳定系统的脉冲响应是平滑的、指数衰减的,这是很常见的。您可以使用这种系统行为的先验知识来为参数中的线性模型(如ARX和FIR结构模型)推导良好的正则化常数值arxRegul
命令。
对于任意结构的黑盒模型,往往很难确定的最优值λ
和R
这就产生了最好的偏见。方差权衡。因此,建议您从获取ARX或FIR结构模型的正则化估计开始。然后,将模型转换为状态空间、传递函数或多项式模型idtf
,中的难点
,或idpoly
命令,如果需要,然后是订单减少。
在下面的例子中,由于数值病态,直接估计一个15阶连续时间传递函数模型失败。
%负载估计数据。负载dryer2干燥机= iddata (y2, u2, 0.08);Dryerd =去趋势(干燥器,0);Dryerde = Dryerd (1:50 0);xe = Dryerd (1:50 0);泽= Dryerd (1:50 0);zv = Dryerd(501:结束);%不需要正则化的估计模型。sys1 =特遣部队(泽,15);
因此,使用正则化ARX估计,然后将模型转换为传递函数结构。
%指定正则化常量。[L, R] = arxRegul(ze,[15 15 1]);optARX = arxOptions;optARX.Regularization.Lambda = L;optARX.Regularization.R = R;%估计ARX模型。sysARX = arx(ze,[15 15 1],optARX);%转换模型为连续时间。sysc = d2c (sysARX);%将模型转换为传递函数。sys2 = idtf (sysc);%验证模型sys1和sys2。比较(zv sys1 sys2)
正则化常数λ和的选择准则R
是用贝叶斯解释的。附加惩罚项是假设参数向量θ是一个具有平均θ*和协方差矩阵的高斯随机向量
.
你可以很自然地将这种假设与灰盒模型联系起来,其中的参数是已知的物理解释。在其他情况下,这可能更困难。然后,你必须使用岭回归(R
= 1;θ* = 0),通过反复试验调整λ。
使用下列技术来确定λ和R
价值观:
使用可调内核合并之前的信息。
执行交叉验证测试。
中调整ARX模型的正则化常数arxRegul
是基于对真实脉冲响应性质的简单假设。
对于FIR模型,参数向量包含脉冲响应系数bk的系统。根据系统的先验知识,我们通常知道脉冲响应是平滑的,呈指数衰减的:
在哪里相关系数意味着相关性。这个方程是正则化常数的参数化,用系数C, μ和ρ表示,所选择的形状(衰减多项式)称为a内核.因此,核包含关于脉冲响应系数的先验协方差参数化的信息。
您可以估计核的参数,通过调整它们到测量数据使用RegularizationKernel
输入的arxRegul
命令。例如,直流
核估计所有三个参数,而TC
内核链接
.这种调整核的技术适用于所有的参数线性模型,如ARX和FIR模型。
测试和评估任何正则化参数的一般方法是根据估计数据集上的某些参数估计模型,并评估模型是否适合另一个验证数据集。这被称为交叉验证.
交叉验证完全类似于选择模型顺序的方法:
生成一个候选λ和的列表R
需要测试的值。
估计每个候选正则化常数集的模型。
将模型拟合值与验证数据进行比较。
使用最适合验证数据的常量。
例如:
%创建估计和验证数据集。泽z = (1: N / 2);zv = z (N / 2:结束);%指定正则化选项和估计模型。选择= ssestOptions;对于test = 1:M opt.Regularization.Lambda = Lvalue(test);opt.Regularization.R =右值(测试);m{测试}= ss(泽,顺序,选择);比较模型与验证数据的模型拟合。[~,适合]=比较(zv, m {:))
[1] l . Ljung。线性系统辨识的一些经典与新思想控制、自动化与电气系统学报。2013年4月,第24卷第1-2期,第3-10页。
[2] L. Ljung和T. Chen。“正规化能为动态系统的估计提供什么?”在控制和信号处理中的自适应和学习国际研讨会论文集, ALCOSP13,法国卡昂,2013年7月。
[3] L. Ljung和T. Chen。"系统辨识中的凸性问题"第10届IEEE控制与自动化国际会议论文集, ICCA 2013,中国杭州,2013年6月