machine learning

最小均方误差函数

之前的讲义里, 我们提到了最小均方误差函数,给出一组有 m 个样本的训练集,我们希望找到合适的参数 θ , 使得预测值 hθ(x) 与目标值尽可能接近。为了估计参数 θ , 我们定义如下的 cost function:

J(θ)=12i=1m(hθ(xi)yi)2

这个 cost function 就是最小均方误差函数,第一讲里面,我们用梯度下降算法估计参数 θ , 而第二讲里面我们提到了矩阵的基本运算及矩阵的求导,现在就从矩阵的角度求参数 θ 的解析解。

矩阵的解析解

给定一组训练样本, D={(xi,yi)|xiRn,yiR}mi=1 , xi 是维数为 n 的输入特征(默认为列向量), yi 是连续的实数值, m 表示样本数,则输入特征可以用矩阵表示为:

X=[x1,x2,,xm]T

输出变量可以用一个向量表示为:
y=[y1,y2,,ym]T

而我们从第一讲已经知道, hθ(xi)=xTiθ , 则我们可以得到如下的表达式:
Xθy=xT1θxTmθy1ym=hθ(x1)y1hθ(xm)ym

则最小均方误差函数可以表示为:
J(θ)=12i=1m(hθ(xi)yi)2=12(Xθy)T(Xθy)

利用第二讲的矩阵基本运算将上式展开,可以得到:
J(θ)=12θTXTXθθTXTyyTXθ+yTy

利用第二讲的矩阵求导,可以得到 J(θ) θ 的偏导数为:
J(θ)θ=12(XTXθ+XTXθ2XTy)=XTXθXTy

令该偏导数为0,则可以得到:
XTXθ=XTy

最终可以得到参数 θ 的解析解为:
θ=(XTX)1XTy

如果矩阵 (XTX)1 可逆,则该解就是全局最优解,有的时候,该矩阵不一定可逆,就是我们常常遇到的样本数远远大于参数的个数即 mn ,那么参数 θ ϵi


矩阵的基本概念

假设 aijR , 其中 i=1,2,...,m ; j=1,2,...,n . 我们定义如下的行列式:

A=a11a21am1a12a22am2a1na2namn

是一个维数为 m×n 的实数矩阵。有时候我们会用如下的表达式来表示一个矩阵:
A=[aij],i=1,2,...,m;j=1,2,...,n

这表示一个 m n 列的矩阵,下标的第一个数 i 表示行,第二个数 j 表示列。
列向量定义: 一个向量可以看成是只有一列的矩阵,所以,这里讨论的所有向量都默认为列向量。
符号定义: 矩阵用大写的粗体字母表示,比如矩阵 A,B,X , 而向量用小写的粗体字母表示,比如向量 a,b,x .
矩阵的转置: 矩阵 A 的转置为 AT .
矩阵的逆: 如果一个矩阵 A 存在逆矩阵,则该逆矩阵表示为 A1 .
矩阵的 determinant: 如果一个矩阵 A 是一个方阵,则它的determinant表示为 |A|
单位矩阵表示为 I , 零矩阵空矩阵表示为 0
矩阵的迹: 如果一个矩阵是 n×n 的方阵,则该矩阵的迹(trace) 为 trA=ni=1aii , 等于所有主对角线元素之和,一个实数的迹是它本身,
矩阵的迹满足下列关系:
trAT=trAtrAB=trBAtrABC=trCAB=trBCA

矩阵的乘法

A 是一个 m×n 的矩阵, B 是一个 n×p 的矩阵, 则两者的乘积 AB 表示为:

C=AB

其中 C 是一个 m×p 的矩阵, C 中的任意一个元素 cij 表示为:
cij=k=1naikbkji=1,2,...,m;j=1,2,...,n

类似的,一个 m×n 的矩阵 A 与一个 n×1 的列向量 x 相乘, 等于
z=Axzi=k=1naikxki=1,2,...,m

而一个 m×1 的列向量 y 与一个 m×n 的矩阵 A 相乘,等于
zT=yTAzi=k=1makixki=1,2,...,n

因此,一个 m×1 的列向量 y ,一个 m×n 的矩阵 A 以及一个 n×1 的列向量 x , 他们的
乘积(是一个标量)可以表示为:
α=yTAxα=j=1mk=1najkyjxk

如果 ARm×n , BRn×p , 则满足以下关系:
C=ABcij=k=1naikbkjCT=BTATcji=k=1najkbki

矩阵的求导

假设有如下的函数:

y=Ψ(x)

其中 yRm×1 xRn×1 , 则向量 y 关于 x 的导数,可以表示为:
yx=y1x1y2x1ymx1y1x2y2x2ymx2y1xny2xnymxn

这个 m×n 的矩阵,是向量 y 关于 x 的一阶偏导数,这个矩阵也称为Jacobian矩阵。如果 x 是一个标量,则Jacobian矩阵
是一个 m×1 的矩阵,如果 y 是一个标量,则Jacobian矩阵是一个 1×n 的矩阵。\
已知, yRm×1 xRn×1 , ARm×n ,
y=Axwe can get:yx=A

证明
yi=k=1naikxkyixj=aiji=1,2,...m,j=1,2,...n.yx=A

如果 x 是关于 z 的函数
y=Axwe can get:yz=Axz

如果: α=yTAx 则:
αx=yTAαy=xTAT

如果: α=xTAx , xRn×1 , ARn×n 则:
αx=xT(A+AT)

证明
α=xTAx=j=1ni=1naijxixjαxk=j=1nakjxj+i=1naikxik=1,2,...nαx=xTAT+xTA=xT(A+AT)

如果 A 是一个对称矩阵,那么 α=xTAx x 的导数为, αx=2xTA 。\
α=yTx , 其中 x y 是关于 z 的函数。则
αz=xTyz+yTxz


参考:http://blog.csdn.net/matrix_space/article/details/44516553

http://blog.csdn.net/matrix_space/article/details/44516765


参考文献

Andrew Ng, Machine Learning, Stanford University.
Randal J. Barnes, Matrix Differentiation, University of Minnesota, Minneapolis, USA
Dhrymes, Phoebus J., 1978, Mathematics for Econometrics, Springer-Verlag, New york, 136 PP.
Golub, Gene H., and Charles F. Van Loan, 1983, Matrix Computations, Johns Hopkins University Press, Baltimore, Maryland, 476 pp.
Graybill, Franklin A., 1983, Matrices with Applications in Statistics, 2nd Edition, Wadsworth Internationl Group, Belmont, California, 461 pp.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值