我正在尝试使用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。
答案 0 :(得分:5)
当输入标准化时,通常更容易优化。除了收敛速度和输出精度之外,你可以改进。
例如,正如您在本文中所看到的那样(http://www-personal.umich.edu/~mepelman/teaching/IOE511/Handouts/511notes07-7.pdf),当Hessian的最大和最小特征值的比率很小时,梯度下降的收敛速度更好。通常,当您的数据标准化时,此比率为1(最佳)。