《Andrew Ng 机器学习笔记》这一系列文章文章是我再观看Andrew Ng的Stanford公开课之后自己整理的一些笔记,除了整理出课件中的主要知识点,另外还有一些自己对课件内容的理解。同时也参考了很多优秀博文,希望大家共同讨论,共同进步。
网易公开课地址:http://open.163.com/special/opencourse/machinelearning.html
上篇博文介绍了梯度下降算法的线性回归,本篇将介绍另外一种线性回归,它是利用矩阵求导的方式来实现梯度下降算法一样的效果。
本篇博文涉及到的线性代数知识有:矩阵,矩阵求导,转置矩阵,矩阵的迹,矩阵相乘以及相关的定理。
首先先介绍一些线性代数中的知识点:
(1)矩阵求导:定义表示m×n的矩阵,那么对该矩阵进行求导可以用下式表示,可以看出求导后的矩阵仍然为 m×n。(A∈
)
![](http://images.cnitblog.com/blog/492570/201409/082124567468939.png)
(2)矩阵的迹(trace):. 对于一个n阶的方阵(n×n),它的迹(tr)为对角线元素之和。
![](http://images.cnitblog.com/blog/492570/201409/082133141846068.png)
矩阵的迹的相关定理:
a. 对于一个实数,它的迹即为它本身 : tr a = a
b. 如果AB是一个方阵,那么 tr AB = tr BA
c. 由此可推导出 trABC = trCAB = trBCA(将末尾循环前移)
b. 如果AB是一个方阵,那么 tr AB = tr BA
c. 由此可推导出 trABC = trCAB = trBCA(将末尾循环前移)
d. 假设A 和 B为方阵,a为实数,那么又可以推导出以下的特性:
trA = trAT
tr(A + B) = trA + trB
tr aA = atrA
tr(A + B) = trA + trB
tr aA = atrA
e. 对迹进行求导,具有以下特性:
现在开始利用矩阵求解:
定义一个设计矩阵X:
定义目标集合为:
![](http://images.cnitblog.com/blog/492570/201409/082153133405821.png)
![](http://images.cnitblog.com/blog/492570/201409/082154109653649.png)
因为有:
所以可得到:
利用这个定理:
![](http://images.cnitblog.com/blog/492570/201409/082158401999562.png)
此时,代价函数J(θ)又可以写为:
对J(θ)进行求导可得:(得到红框这一结果,需要用到上面提到的几个定理,此处没有做具体解析)
最后,要使得miniminzes J(θ),即:
至此,我们通过正规方程组的方法求解了参数θ。