日拱一卒之最小二乘中的一些小疑惑
范数推导
在电磁场(复数域)中推导这个公式,用到的是复向量空间的内积性质和复变函数求导(Wirtinger 导数) 。
目标函数就是:
J(α)=∣∣y−αx∣∣2 J(\alpha) = || y - \alpha x ||^2 J(α)=∣∣y−αx∣∣2
范数的展开(关键步骤)
在复数空间中,范数的平方定义为向量与自己的内积:∣∣a∣∣2=⟨a,a⟩||a||^2 = \langle a, a \rangle∣∣a∣∣2=⟨a,a⟩。
注意: 电磁学中通常定义内积 ⟨a,b⟩=a⋅b∗\langle a, b \rangle = a \cdot b^*⟨a,b⟩=a⋅b∗ (或者是 b∗⋅ab^* \cdot ab∗⋅a,这取决于教材定义,但结果结构一样,这里假设是对第二项取共轭)。
展开过程如下:
J(α)=⟨y−αx,y−αx⟩ J(\alpha) = \langle y - \alpha x, \quad y - \alpha x \rangle J(α)=⟨y−αx,y−αx⟩
根据内积的线性性质(分配律),把它拆成四项:
=⟨y,y⟩−⟨y,αx⟩−⟨αx,y⟩+⟨αx,αx⟩ = \langle y, y \rangle - \langle y, \alpha x \rangle - \langle \alpha x, y \rangle + \langle \alpha x, \alpha x \rangle =⟨y,y⟩−⟨y,αx⟩−⟨αx,y⟩+⟨αx,αx⟩
这里要注意复数系数提出的规则(第一项线性,第二项共轭线性):
- ⟨y,αx⟩=α∗⟨y,x⟩\langle y, \alpha x \rangle = \alpha^* \langle y, x \rangle⟨y,αx⟩=α∗⟨y,x⟩ (系数在后一项,提出来要变共轭)
- ⟨αx,y⟩=α⟨x,y⟩\langle \alpha x, y \rangle = \alpha \langle x, y \rangle⟨αx,y⟩=α⟨x,y⟩ (系数在前一项,直接提)
- ⟨αx,αx⟩=αα∗⟨x,x⟩=∣α∣2∣∣x∣∣2\langle \alpha x, \alpha x \rangle = \alpha \alpha^* \langle x, x \rangle = |\alpha|^2 ||x||^2⟨αx,αx⟩=αα∗⟨x,x⟩=∣α∣2∣∣x∣∣2
所以,展开后的完整式子是:
J(α)=∣∣y∣∣2−α∗⟨y,x⟩−α⟨x,y⟩+∣α∣2∣∣x∣∣2 J(\alpha) = ||y||^2 - \alpha^* \langle y, x \rangle - \alpha \langle x, y \rangle + |\alpha|^2 ||x||^2 J(α)=∣∣y∣∣2−α∗⟨y,x⟩−α⟨x,y⟩+∣α∣2∣∣x∣∣2
如何求导得到 α\alphaα?
这是一个关于复数 α\alphaα 的实值函数。求最小值的最快方法是利用 Wirtinger 导数(也叫复梯度)。
简单来说,在求极值时,可以把 α\alphaα 和 α∗\alpha^*α∗ 看作两个独立的变量。
为了让 JJJ 最小,我们需要让 JJJ 对 α∗\alpha^*α∗ 的偏导数为 0:
∂J∂α∗=0 \frac{\partial J}{\partial \alpha^*} = 0 ∂α∗∂J=0
让对上面的展开式求导:
- ∣∣y∣∣2||y||^2∣∣y∣∣2:与 α∗\alpha^*α∗ 无关 →0\rightarrow 0→0
- −α∗⟨y,x⟩-\alpha^* \langle y, x \rangle−α∗⟨y,x⟩:对 α∗\alpha^*α∗ 求导 →−⟨y,x⟩\rightarrow -\langle y, x \rangle→−⟨y,x⟩
- −α⟨x,y⟩-\alpha \langle x, y \rangle−α⟨x,y⟩:这一项看作常数(因为它只含 α\alphaα 不含 α∗\alpha^*α∗) →0\rightarrow 0→0
- +αα∗∣∣x∣∣2+\alpha \alpha^* ||x||^2+αα∗∣∣x∣∣2:对 α∗\alpha^*α∗ 求导 →+α∣∣x∣∣2\rightarrow +\alpha ||x||^2→+α∣∣x∣∣2
把它们合起来令为 0:
−⟨y,x⟩+α∣∣x∣∣2=0 -\langle y, x \rangle + \alpha ||x||^2 = 0 −⟨y,x⟩+α∣∣x∣∣2=0
解出 α\alphaα
移项:
α∣∣x∣∣2=⟨y,x⟩ \alpha ||x||^2 = \langle y, x \rangle α∣∣x∣∣2=⟨y,x⟩
得到最终结果:
α=⟨y,x⟩∣∣x∣∣2 \alpha = \frac{\langle y, x \rangle}{||x||^2} α=∣∣x∣∣2⟨y,x⟩
另一种更直观的理解(几何投影)
想用向量 xxx(猜测场)去逼近向量 yyy(真实场)。这就相当于要把 yyy 投影到 xxx 的方向上。
在线性代数中,向量 yyy 在向量 xxx 上的投影系数公式就是:
系数=两个向量的内积基向量的长度平方=⟨y,x⟩∣∣x∣∣2 \text{系数} = \frac{\text{两个向量的内积}}{\text{基向量的长度平方}} = \frac{\langle y, x \rangle}{||x||^2} 系数=基向量的长度平方两个向量的内积=∣∣x∣∣2⟨y,x⟩
1. 场景设定
想象我们在一个二维平面上(或者高维空间,原理一样):
- 向量 yyy:这是我们的目标。
- 向量 xxx:这是我们现在的方向。
- 系数 α\alphaα:我们可以把向量 xxx 拉长或缩短,变成 αx\alpha xαx。
2. 目标
我们的目标是找到一个 α\alphaα,使得 αx\alpha xαx 这个新向量,离目标 yyy 最近。也就是让误差向量 e=y−αxe = y - \alpha xe=y−αx 的长度(范数)最小。
3. 几何直觉:垂直(正交)原理
请闭上眼睛想象一下(或者看下面的示意描述):
- 你站在原点,手中拿着一支手电筒照向方向 xxx。
- 目标物体 yyy 悬在空中,不在手电筒的光柱上。
- 你想在光柱上找一点(αx\alpha xαx),这点离物体 yyy 最近。
结论是: 从 yyy 向光柱 xxx 做一条垂线,垂足的位置就是距离最近的点。
在数学上,这意味着误差向量 eee 必须垂直于方向向量 xxx。如果它们不垂直(比如有个锐角),那你就可以沿着 xxx 再往前挪一点点,误差就会变得更小,直到垂直为止。
4. 数学推导
“垂直”在数学上的定义就是内积为 0。
⟨误差向量,方向向量⟩=0 \langle \text{误差向量}, \text{方向向量} \rangle = 0 ⟨误差向量,方向向量⟩=0
⟨y−αx,x⟩=0 \langle y - \alpha x, x \rangle = 0 ⟨y−αx,x⟩=0
展开这个式子:
⟨y,x⟩−α⟨x,x⟩=0 \langle y, x \rangle - \alpha \langle x, x \rangle = 0 ⟨y,x⟩−α⟨x,x⟩=0
(注:这里假设实数域方便理解,复数域结论一致)
移项得到:
α⟨x,x⟩=⟨y,x⟩ \alpha \langle x, x \rangle = \langle y, x \rangle α⟨x,x⟩=⟨y,x⟩
α∣∣x∣∣2=⟨y,x⟩ \alpha ||x||^2 = \langle y, x \rangle α∣∣x∣∣2=⟨y,x⟩
于是直接得到系数:
α=⟨y,x⟩∣∣x∣∣2 \alpha = \frac{\langle y, x \rangle}{||x||^2} α=∣∣x∣∣2⟨y,x⟩
θ=(XTX)−1XTY\theta = (X^T X)^{-1} X^T Yθ=(XTX)−1XTY 与 α=⟨y,x⟩∣∣x∣∣2\alpha = \frac{\langle y, x \rangle}{||x||^2}α=∣∣x∣∣2⟨y,x⟩
那么,为什么之前的最小二乘的解是θ=(XTX)−1XTY\theta = (X^T X)^{-1} X^T Yθ=(XTX)−1XTY,而范数推导出来的结果却是α=⟨y,x⟩∣∣x∣∣2\alpha = \frac{\langle y, x \rangle}{||x||^2}α=∣∣x∣∣2⟨y,x⟩ ?其实,它们本质上完全是同一个公式!
公式 θ=(XTX)−1XTY\theta = (X^T X)^{-1} X^T Yθ=(XTX)−1XTY 是最小二乘法的通用矩阵形式(通常用于多元线性回归,比如一次求出几十个参数)。公式 α=⟨y,x⟩∣∣x∣∣2\alpha = \frac{\langle y, x \rangle}{||x||^2}α=∣∣x∣∣2⟨y,x⟩ 是这个通用公式在只求一个参数时的特例。
如果把通用公式里的矩阵 XXX 缩减成只有一列的向量(记为 xxx),会发生什么神奇的变化。
第一步:代入通用公式
θ=(XTX)−1XTY \theta = (X^T X)^{-1} X^T Y θ=(XTX)−1XTY
因为我们现在只有一个特征(只求一个系数 α\alphaα),所以把矩阵 XXX 换成向量 xxx,把 YYY 换成 yyy:
α=(xTx)−1xTy \alpha = (x^T x)^{-1} x^T y α=(xTx)−1xTy
第二步:理解 xTxx^T xxTx
-
xxx 是一个列向量 (N×1)(N \times 1)(N×1)。
-
xTx^TxT 是一个行向量 (1×N)(1 \times N)(1×N)。
-
它们相乘 xTxx^T xxTx 得到的是一个 1×11 \times 11×1 的数值(也就是一个标量)。
-
根据定义,向量自己和自己点乘,就是它的长度(范数)的平方:
xTx=∣∣x∣∣2 x^T x = ||x||^2 xTx=∣∣x∣∣2
第三步:理解求逆 (… )−1(\dots)^{-1}(…)−1
-
对于矩阵,我们要算逆矩阵。
-
但对于一个标量(普通数字) ,求逆就是取倒数。
(xTx)−1=1∣∣x∣∣2 (x^T x)^{-1} = \frac{1}{||x||^2} (xTx)−1=∣∣x∣∣21
第四步:理解 xTyx^T yxTy
-
这就是两个向量的点积(内积):
xTy=⟨y,x⟩ x^T y = \langle y, x \rangle xTy=⟨y,x⟩
(注:在实数域 *xTy=yTxx^T y = y^T xxTy=yTx* ,在复数域需注意共轭顺序,对应 *⟨E,Gv⟩\langle E, Gv \rangle⟨E,Gv⟩* )
第五步:合体
把上面简化的结果拼回去:
α=1∣∣x∣∣2⏟(XTX)−1⋅⟨y,x⟩⏟XTY \alpha = \underbrace{\frac{1}{||x||^2}}_{(X^T X)^{-1}} \cdot \underbrace{\langle y, x \rangle}_{X^T Y} α=(XTX)−1∣∣x∣∣21⋅XTY⟨y,x⟩
整理一下:
α=⟨y,x⟩∣∣x∣∣2 \alpha = \frac{\langle y, x \rangle}{||x||^2} α=∣∣x∣∣2⟨y,x⟩
总结
- θ=(XTX)−1XTY\theta = (X^T X)^{-1} X^T Yθ=(XTX)−1XTY 是屠龙刀(解决多变量复杂回归)。
- α=⟨y,x⟩∣∣x∣∣2\alpha = \frac{\langle y, x \rangle}{||x||^2}α=∣∣x∣∣2⟨y,x⟩ 是水果刀(解决单变量系数修正)。

被折叠的 条评论
为什么被折叠?



