在利用梯度下降(Gradient Descent)算法解决线性回归的课上,Andrew Ng还讲了正则方程式(Normal equation)这个东西,可以不依靠迭代算法求解线性回归问题,而是直接求出解析解。以下是一些相关的内容。

首先还是定义一下符号:

设 𝑓:ℝ𝑚×𝑛→ℝ , 𝐴∈ℝ𝑚×𝑛, 则定义𝑓的梯度如下:

设𝐴∈ℝ𝑛×𝑛, 则定义矩阵A主对角线上的元素之和为矩阵A的迹,记为:

显然: 对于 𝑎∈ℝ,tr𝑎=𝑎

tr𝐴=tr𝐴𝑇

且对于合适的矩阵A,B,C,有以下结论:


tr𝐴𝐵=tr𝐵𝐴

证明:

设𝐴∈ℝ𝑚×𝑛,𝐵∈ℝ𝑛×𝑚, 则

所以有tr𝐴𝐵=tr𝐵𝐴


tr𝐴𝐵𝐶=tr𝐶𝐴𝐵=tr𝐵𝐶𝐴

证明: 由上面的结论,有:


设𝑓(𝐴)=tr𝐴𝐵,那么∇𝐴𝑓(𝐴)=∇𝐴tr𝐴𝐵=𝐵𝑇

证明:

设𝐴∈ℝ𝑚×𝑛,𝐵∈ℝ𝑛×𝑚, 则

所以𝜕𝑓(𝐴)𝜕𝑎𝑖𝑗=𝑏𝑗𝑖

所以∇𝐴𝑓(𝐴)=∇𝐴tr𝐴𝐵=𝐵𝑇


证明: 并不会, 倒是有在网上找到一个证明,不过并不理解。姑且先记在这里。

故:


回到线性回归,对于输入𝑋|𝑛×𝑚和输出𝑌|1×𝑚,我们的目标是找出一组𝜃|𝑛×1,使得𝐽(𝜃)=12∥𝜃𝑇𝑋−𝑌∥2最小,由于:

故我们的目标是,对于给定的X和Y,求出一组𝜃,使得∇𝜃12(𝜃𝑇𝑋−𝑌)(𝜃𝑇𝑋−𝑌)𝑇=0⃗

故:

故:

这一结果根据X,Y,𝜃的定义不同而稍有不同,本质是一样的。当𝑋𝑋𝑇不可逆时,可以使用伪逆求𝜃。