关于数值优化的定性理解
做数值优化的过程中会遇到目标函数的连续性比较差的情况。当然,这并不是说目标函数本身不连续,而是说用来定义函数连续性、且与自变量无关的常数 C 非常小:
\[\vert f(x) - f(y) \vert \leq C \Vert x - y \Vert.\]这意味着当两个函数值比较接近时,产生它们的两个自变量的值在多维优化变量空间中相距较远,从而使目标函数的优化存在一定困难。
从我近期的项目案例来看,造成上述目标函数连续性较差的原因可能是目标函数本身包含了多个动力学常微分方程的积分环节。动力学方程大体长这个样子:
\[\hat{I}(\tau_0, T) = Cn_0 s(\frac{1}{\tau_0}, T) \cdot \exp \left[ -\frac{1}{\beta}\int_{T_0}^T s(\frac{1}{\tau_0}, T') d T' \right].\]积分本身是一种能够过滤掉高频数据的算子或操作。这一积分“滤波”过程会导致细节信息的丢失,或者也可定性理解为在从高维优化变量空间映射到目标函数值空间的过程中产生了数据压缩现象,以至于在通过数值优化方法求解反问题的过程中,不能获得充足信息,最终得到的解只会是包含多种可能的解的集合,而不是唯一解。
使用基于遗传算法的全局搜索加上局部基于梯度下降优化算法的组合,一方面能够将目标函数最小化至误差限以下,另一方面可以在可行空间中搜索出多个产生这样高质量拟合精度的模型参数。而若使用局部搜索算法,只能得到一个解,该解虽能保证数值误差达标,但不一定符合物理实际。
现实中物理系统的真实参数应是唯一的。若想从全局搜索算法得到的解集合中将这个唯一的真解找到,单凭纯数学的方法是做不到的。这就需要基于物理理论与物理实验获得的先验知识来做进一步的推断与筛选。
此外需注意的是,必须保证优化变量的维度亦即系统的自由度数量足够高,目标函数值才会较容易地降下来。