1. 核心结论

  • 凸性只保证存在唯一全局最优解,不保证能写出解析解(闭式解)
  • 线性回归有解析解,是因为其目标函数是二次凸函数,梯度为 0 得到线性方程组,可直接求逆求解。
  • 逻辑回归虽然也是凸函数,但因引入了 sigmoid 非线性变换,梯度为 0 得到非线性方程组,无通用闭式解,只能迭代优化。

2. 线性回归:凸 + 二次 → 有解析解

线性回归使用平方误差损失
[
J(\theta) = \frac{1}{2}\sum_{i=1}^n \left(y^{(i)} - \theta^T x{(i)}\right)2
]

写成矩阵形式:
[
J(\theta) = \frac{1}{2}|X\theta - y|^2
]

(1)凸性证明

对 (\theta) 求二阶导(Hessian 矩阵):
[
\nabla^2 J(\theta) = X^T X
]
(X^T X) 是半正定矩阵,因此 (J(\theta)) 是凸函数

(2)为什么有解析解

对 (\theta) 求梯度并令其为 0:
[
\nabla_\theta J(\theta) = X^T(X\theta - y) = 0
]

得到线性方程组
[
X^T X \theta = X^T y
]

当 (X^T X) 可逆时,直接解出:
[
\hat{\theta} = (X^T X){-1}XT y
]

这就是正规方程(Normal Equation),是典型的解析解


3. 逻辑回归:凸但非线性 → 无解析解

逻辑回归的预测值经过 sigmoid 映射:
[
h_\theta(x) = \sigma(\theta^T x) = \frac{1}{1+e{-\thetaT x}}
]

使用对数似然损失(交叉熵)
[
J(\theta) = -\frac{1}{n}\sum_{i=1}^n\left[ y^{(i)}\log h_\theta(x^{(i)}) + (1-y{(i)})\log\left(1-h_\theta(x{(i)})\right) \right]
]

(1)依然是凸函数

可以证明其 Hessian 矩阵半正定,因此 (J(\theta)) 是严格凸函数,全局最优唯一。

(2)为什么没有解析解

对 (\theta) 求梯度:
[
\nabla_\theta J(\theta) = \frac{1}{n}\sum_{i=1}^n \left( h_\theta(x^{(i)}) - y^{(i)} \right) x^{(i)}
]

令梯度为 0:
[
\sum_{i=1}^n \left( \frac{1}{1+e{-\thetaT x^{(i)}}} - y^{(i)} \right)x^{(i)} = 0
]

这是一个关于 (\theta) 的非线性超越方程组,里面包含指数函数与分式结构,无法通过代数变形、求逆等方式消去 (\theta) 得到闭式表达式,因此不存在解析解,只能用梯度下降、牛顿法等迭代方法逼近最优解。


4. 模型有解析解的条件

一个优化问题存在解析解(闭式解),通常满足以下全部条件:

  1. 目标函数是二次凸函数
    形如
    [
    J(\theta) = \theta^T A \theta + b^T \theta + c
    ]
  2. 模型是线性预测
    无非线性激活(如 sigmoid、softmax、ReLU 等)。
  3. 梯度为 0 得到线性方程组
    [
    M\theta = d
    ]
  4. 系数矩阵可求逆或伪逆
    即 (M) 满秩或可使用广义逆。

只要引入非线性激活非二次损失,一般就不再存在解析解。


5. 一句话总结

  • 凸函数:保证最优解唯一。
  • 二次 + 线性:才能得到解析解。
  • 非线性激活(sigmoid):方程变非线性 → 无解析解,只能迭代。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐