最小均方误差函数
第一讲里,我们提到了最小均方误差函数,给出一组有 m 个样本的训练集,我们希望找到合适的参数 θ, 使得预测值 hθ(x) 与目标值尽可能接近。为了估计参数 θ, 我们定义如下的 cost function:
J(θ)=12∑i=1m(hθ(xi)?yi)2
这个
cost function 就是最小均方误差函数,第一讲里面,我们用梯度下降算法估计参数
θ, 而第二讲里面我们提到了矩阵的基本运算及矩阵的求导,现在就从矩阵的角度求参数
θ的解析解。
矩阵的解析解
给定一组训练样本,D={(xi,yi)|xi∈Rn,yi∈R}mi=1, xi 是维数为 n 的输入特征(默认为列向量),yi 是连续的实数值,m表示样本数,则输入特征可以用矩阵表示为:
X=[x1,x2,?,xm]T
输出变量可以用一个向量表示为:
y=[y1,y2,?,ym]T
而我们从第一讲已经知道,
hθ(xi)=xTiθ, 则我们可以得到如下的表达式:
Xθ?y=????xT1θ?xTmθ?????????y1?ym????=????hθ(x1)?y1?hθ(xm)?ym????
则最小均方误差函数可以表示为:
J(θ)=12∑i=1m(hθ(xi)?yi)2=12(Xθ?y)T(Xθ?y)
利用第二讲的矩阵基本运算将上式展开,可以得到:
J(θ)=12θTXTXθ?θTXTy?yTXθ+yTy
利用第二讲的矩阵求导,可以得到
J(θ) 对
θ 的偏导数为:
?J(θ)?θ=12(XTXθ+XTXθ?2XTy)=XTXθ?XTy
令该偏导数为0,则可以得到:
XTXθ=XTy
最终可以得到参数
θ 的解析解为:
θ=(XTX)?1XTy
如果矩阵
(XTX)?1 可逆,则该解就是全局最优解,有的时候,该矩阵不一定可逆,就是我们常常遇到的样本数远远大于参数的个数即
m?n,那么参数
θ 就只能得到近似解。
从最大似然估计到最小均方误差
有的时候我们会考虑,在做回归问题的时候,为什么用最小均方误差函数作为 \textbf{cost function}, 为什么不用其它的函数。接下来,我们从概率分布的角度去考虑这个问题,随后我们会发现,最小均方误差函数从某种意义上来说,
是从最大似然估计中演化出来的。
我们先假设目标值与输入变量之间存在以下关系:
yi=θTxi+?i
其中,
?i是一个误差项,表示由于一些我们没有考虑到的因素导致估计值域目标值之间出现得偏差,我们进一步假设这些误差项是
独立同分布的(independently and identically distributed), 并且是均值为0,方差为
σ2 的高斯分布(这是自然界非常常见的一种分布)。我们可以表示为
?i~N(0,σ2), 其概率密度函数为:
p(?i)=12π??√σexp(??2i2σ2)
将式代入,可以得到:
p(yi|xi;θ)=12π??√σexp(?(yi?θTxi)22σ2)
这里需要注意,
p(yi|xi;θ)表示的是
yi对
xi的条件概率,
θ是参数,
xi是随机变量,两者之间用
";"隔开,不能用
","隔开。当我们考虑所有的样本时,则所有的输出变量的分布表示为:
p(y|X;θ), 我们可以建立一个关于参数
θ的似然函数:
L(θ)=L(θ;X,y)=p(y|X;θ)
因为
?i 是独立同分布的,我们可以得到:
L(θ)=∏i=1mp(yi|xi;θ)=∏i=1m12π??√σexp(?(yi?θTxi)22σ2)
最大似然估计原则告诉我们,要选择参数
θ使得概率要尽可能地高。所以我们可以建立如下的优化函数:
maxθ[∏i=1m12π??√σexp(?(yi?θTxi)22σ2)]
上式是一个单调函数,根据单调函数的传递性原则,我们可以对上式取对数,则可以得到:
l(θ)=log(L(θ))=log∏i=1m12π??√σexp(?(yi?θTxi)22σ2)=∑i=1mlog12π??√σexp(?(yi?θTxi)22σ2)=mlog12π??√σ?1σ2?12∑i=1m(yi?θTxi)2
因此,要使上式最大化,则只要使其中的二次项最小化,即
minθ12∑i=1m(hθ(xi)?yi)2
我们可以看到,从概率出发,最小均方误差是最大似然估计非常自然的一种延伸,两者最后可以完美的统一起来。
参考文献
Andrew Ng, “Machine Learning”, Stanford University.