最小二乘模型的参数约简算法

计算科学 线性代数 优化 算法 最小二乘 数值建模
2021-12-08 00:33:09

形式的目标函数执行最小二乘拟合,其中是包含大约 20 个元素的参数向量。f(x)x

模型函数的评估有些昂贵,因此我正在探索减少模型中参数数量的选项。是否有标准方法算法来解决这个问题?

目前的方法

最小二乘完成后,我在解点使用雅可比cJxs

c=(JTJ)1

通过比较对该矩阵的对角线贡献的相对强度,我然后计算每个参数的“依赖”向量,

d=11diag(c)diag(c1).

中的元素越接近于零,相应参数对最小二乘解的依赖性就越大。例如,我得出下面雷达图中显示的值,d

在此处输入图像描述

这显示了一些关键参数(那些趋向零的参数),但许多参数接近边缘。我认为这些是减少的候选人。要么不将它们包含在模型中,要么修复那里的值。

问题是不知道先验哪些参数将是要包含的参数和要减少的参数。因此,我需要提出一种算法来动态打开和关闭参数。我打算使用依赖向量来帮助解决这个问题。但我确信我不是第一个遇到这个问题的人,并且在重新发明轮子之前想要一些建议。

1个回答

在我刚刚留下的评论之后,我将在这里添加一个真实的回复。正如@GeoffOxberry 所建议的那样,您也许可以使用活动子空间来本质上预处理您的目标函数并消除(线性组合)变量。先试试下面的。根据一定的密度随机抽样你的变量。一种合理的选择是根据可能包含最优值的区域中相对较大的高斯进行采样。(确保对每个样本都有明确的定义!)如果可以的话,如果有 20 个变量,我会说尝试 40-100 个样本。对于每个,计算梯度 fxjj=1,,Nxj

fj=f(xj)R20.
将所有这些梯度向量放入一个矩阵 并计算其 SVD,寻找奇异值中的间隙。如果奇异值有很大差距,那么您可能有一个可利用的活动子空间。
G=1N[f1fN]R20×N,
G=UΣVT

如果第一个奇异值远大于其他奇异值,则绘制的图,其中是第一个左奇异向量。统计学家称之为汇总图。的一些有趣且可利用的特征,这些特征可能有助于优化。或者它可能不会。u1Txjf(xj)u1f