Loading

吴恩达机器学习笔记-5(正规方程)

正规方程(Normal Equation)

在某些问题中,用正规方程求解参数\(\theta\)的最优值更好。
相比梯度下降的多次迭代,正规方程可以一次性求出参数\(\theta\)的最优值,它提供了一种求解参数\(\theta\)的解析解法。

正规方程法概览

首先假设有这样一个代价函数\(J(\theta)=a\theta^2+b\theta+c(\theta\in{R}且\theta是标量)\)那么求这样一个二次函数的最小值,就应该是求其导数=0的点的函数值。

若代价函数较为复杂呢?如下式

\[J(\theta_0,\theta_1,...,\theta_m)=\frac{1}{2m}\sum^m_{i=1}(h_\theta(x^{(i)})-y^{(i)})^2 \]

其中\(\theta\in{R^{n+1}}\),即\(\theta\)是n+1维的向量。
这种复杂的函数同样可以通过求偏导,置零,来求出最小值,但是遍历m次,实在是太繁琐,此时需要用到正规方程法,等价地求出最小值。

正规方程公式

有这样一个训练集m=4,n=4

--- 面积 卧室数量 楼层数量 房龄 价格
\(x_0\) \(x_1\) \(x_2\) \(x_3\) \(x_4\) \(y\)
1 2104 5 1 45 460
1 1416 3 2 40 232
1 1534 3 2 30 315
1 852 2 1 36 178
为了计算方便,表示简洁,我们用矩阵来表示这个训练集
\(x=\begin{bmatrix} 1&2104&5&1&45\\\\1&1416&3&2&40\\\\ 1&1534&3&2&30\\\\1&852&2&1&36 \end{bmatrix}\) \(y=\begin{bmatrix} 460\\\\232\\\\315\\\\178\end{bmatrix}\)
显然X是一个\(m\times{n+1}\)阶矩阵,y是一个m维向量。
那么参数\(\theta=(X^TX)^{-1}X^Ty\),这就是正规方程法的公式。
在octave\matlab中,该公式的命令为pinv(X'X)X'*y

详解公式

回到上面的那个矩阵X,我们又称这个矩阵X为设计矩阵(design matrix)
设计矩阵是表示数据集的一种常见的方式,每一行表示不同的样本,每一列表示同一样本不同的特征。
这个特性说明了,只有当数据集的所有样本都可以表示成相同维度的向量时,才能将数据集表示为设计矩阵。

设有m个样本(\((x^1,y^1),...,(x^m,y^m)\));每个样本有n个特征。
那么每个样本的特征可用向量表示为
\(x^i=\begin{bmatrix} x^i_0\\\\x^i_1\\\\x^i_2\\\\...\\\\x^i_n \end{bmatrix}\),n+1维向量,\(x^i_0=1\)
那么设计矩阵\(X=\begin{bmatrix}(x^1)^{T}\\\\(x^2)^{T}\\\\...\\\\(x^m)^{T} \end{bmatrix}=\begin{bmatrix} 1&2104&5&1&45\\\\1&1416&3&2&40\\\\ 1&1534&3&2&30\\\\1&852&2&1&36 \end{bmatrix}\)
显而易见,正规方程法可以省略均值归一化的步骤。

与梯度下降法的比较

梯度下降法需要选择学习速率\(\alpha\),需要多次迭代
正规方程法不需要选择学习速率,不需要迭代,一步到位。
但是梯度下降法

梯度下降法 正规方程法
需要选择\(\alpha\) 不需要选择\(\alpha\)
需要多次迭代 不需要迭代
\(O(kn^2)\) \(O(n^3)\)
适用于n非常大时 适用于n不那么大时
具体地说,一般\(n\leq10000\)时,常选用正规方程法。

不可逆性

正规方程很少出现矩阵不可逆的情况,一般会在如下两种情况下矩阵会不可逆:
1.多余的特征。如:\(x_1=面积(英尺^2)\),\(x_2=面积(米^2)\),1 m = 3.28 feet,那么此时两个特征将始终满足线性依赖,\(x_1=x_2{3.28}^2\)
2.过多的特征(例如\(m\leq{n}\))。此时通过删除一些特征或者使用正则化方法来解决

posted @ 2021-06-09 10:30  mmmhongyu  阅读(408)  评论(0)    收藏  举报