AndrewNg - 线性回归【2】正规方程组

AndrewNg - 线性回归【2】正规方程组


梯度下降法是用来计算 J(θ) 的惯用方法之一,不过通常我们可以通过另一途径取代这种迭代算法。这样思考,如果我们直接对 J θ 的导数并使其为0,如果可以直接解出 θ 那不是爽歪歪。


1.矩阵求导

对于函数 f : Rm×nR ,即从 m×n 矩阵映射到实数的 f ,定义 f 对于 A 的导数为:

Af(A)=A11Am1A1nAmn

举个栗子,假如 A=[A11A21A12A22] f(A)=32A11+5A212+A21A22
Af(A)=32A2210A12A21.

同时我们还要引进一个迹的概念: trA=ni=1Aii 。当矩阵 ABCD 满足一些简单的条件时,他们的迹有一些性质值得一提:
(1)trAB=trBA,(2)trABC=trCAB=trBCA,(3)trABCD=trDABC=trCDAB=trBCDA,(4)trA=trAT,(5)tr(A+B)=trA+trB,(6)traA=atrA.

而相应的,矩阵求导和迹结合起来还有一些性质:
(1)AtrAB=BT,(2)ATf(A)=(Af(A))T,(3)AtrABATC=CAB+CTABT,(4)A|A|=|A|(A1)T

2.换个角度看最小二乘


给定一组训练集,定义矩阵 X mn 阶的矩阵(实际上算上 θ0 截距是 mn+1 阶),每行是一个训练样例:

X=(x(1))T(x(2))T(x(m))T

同时 y⃗  X 对应的m维样本分类结果向量:
y⃗ =y(1)y(2)y(m)

所以根据上一节我们有 hθ(x(i))=(x(i))Tθ ,即:
Xθy⃗ =(x(1))T(x(2))T(x(m))Ty(1)y(2)y(m)=hθ(x(1))y(1)hθ(x(2))y(2)hθ(x(m))y(m)

因为有 zTz=iz2i ,所以:
12(Xθy⃗ )T(Xθy⃗ )=12i=1m(hθ(x(i))y(i))2=J(θ).

那么现在我们要干的一件事,就变成了最小化 J (求导取导数为0):
θJ(θ)=θ12(Xθy⃗ )T(Xθy⃗ )=12θ(θTXTXθθTXTy⃗ y⃗ TXθ+y⃗ Ty⃗ )=12θtr(θTXTXθθTXTy⃗ y⃗ TXθ+y⃗ Ty⃗ )=12θ(trθTXTXθ2try⃗ TXθ)=12(XTXθ+XTXθ2XTy⃗ )=XTXθXTy⃗ 

θJ(θ)=0 则有 XTXθ=XTy⃗  θ=(XTX)1XTy⃗  (注意:这里其实还有一个巧妙的地方就是 XTX 是可以写成 xi,xj 这样的形式,也就意味着这里可以使用核函数计算)。
至此,我们没有使用任何的迭代过程却求出了 θ ,是不是很爽!不过为什么这样的回归问题我们要选择使用最小二乘法作为我们的 cost function J 呢,欲知后事如何,且听下回分晓!

你可能感兴趣的:(Machine,Learning,Algorithms,Math)