闭式解是什么?能用公式一步算出来的答案
闭式解(Closed-form Solution),也叫解析解,是指可以用一个明确的数学公式直接写出来的解:只需要有限次的加减乘除、开方、指数、对数等基本运算,就能直接算出答案,而不需要通过反复迭代、逐步逼近来求得。
一个简单的例子
一元二次方程的求根公式就是一个闭式解:无论系数是多少,代入公式就能直接得到两个根。相反,对于五次及以上的一般多项式方程,数学家阿贝尔和伽罗瓦证明了不存在用根式表示的通用求根公式,只能用数值方法近似地求解。
机器学习中的闭式解
线性回归是最典型的例子。用最小二乘法拟合线性回归时,令误差平方和对参数的导数为零,可以直接推导出最优参数的公式:参数等于特征矩阵的转置乘以特征矩阵再求逆,然后乘以特征矩阵的转置和目标向量,这被称为正规方程。岭回归在此基础上加入了正则化项,同样有闭式解,只是在求逆之前给矩阵的对角线加上一个常数,这还顺带解决了矩阵不可逆的问题。高斯过程回归的预测均值和方差、线性判别分析的投影方向(通过特征值分解)、主成分分析,以及极大似然估计中正态分布的均值和方差,都有闭式解。
闭式解的好处与局限
闭式解的好处是精确、确定,不需要选择学习率、迭代次数等超参数,也不存在收敛不收敛的问题,而且结果的性质便于理论分析。但它也有局限。很多问题根本没有闭式解:逻辑回归的损失函数令导数为零后得到的方程无法用公式直接解出,只能迭代求解;支持向量机、神经网络、大多数概率模型同样需要数值优化。即使有闭式解,计算代价也可能太高:正规方程需要对一个大小等于特征数量的矩阵求逆,计算量大约与特征数量的三次方成正比,当特征有几十万个时就难以承受;当矩阵接近奇异时,直接求逆还会带来数值不稳定。此外,当数据量极大、无法一次装进内存时,也不方便使用闭式解。
实践中的选择
因此在实践中,人们常根据问题规模来选择:数据和特征不多时,直接用闭式解(实际计算中通常借助 QR 分解或奇异值分解,而不是显式求逆);规模很大时,即使有闭式解,也常改用随机梯度下降等迭代方法。深度学习几乎完全依赖迭代优化,因为神经网络的损失函数高度非线性,不存在闭式解。