5

我正在尝试使用 Matlab 优化工具箱优化设备设计(fmincon精确地使用该函数)。为了快速理解我的观点,我提供了一个小变量集 {l_m, r_m, l_c, r_c},它的起始值等于 {4mm, 2mm, 1mm, 0.5mm}。

尽管 Matlab 没有特别推荐对输入变量进行归一化,但我的教授建议我将变量归一化为 {l_m , r_m, l_c, r_c} 的最大值。因此,变量现在将取 0 到 1 之间的值(而不是在 l_m 的情况下为 3mm 到 4.5mm)。当然,我必须修改我的目标函数以将其转换回正确的值,然后进行计算。

我的问题是:优化函数fmincon是否关心输入变量是否已标准化?由于标准化而预期性能变化是否合理?要考虑的一点是优化器如何改变变量,比如 l_m——在一种情况下,它可以将其从 4mm 更改为 4.1mm,在另一种情况下,它可以将其从 0.75 更改为 0.76。

4

1 回答 1

6

当输入归一化时,通常更容易优化。您可以预期收敛速度和输出准确性都会有所提高。

例如,正如您在这篇文章 ( http://www-personal.umich.edu/~mepelman/teaching/IOE511/Handouts/511notes07-7.pdf ) 中看到的,梯度下降的收敛速度在Hessian 矩阵的最大和最小特征值之比很小。通常,当您的数据标准化时,该比率为 1(最佳)。

于 2012-09-10T16:53:36.837 回答