吴恩达机器学习笔记-5(正规方程)
正规方程(Normal Equation)
在某些问题中,用正规方程求解参数\(\theta\)的最优值更好。
相比梯度下降的多次迭代,正规方程可以一次性求出参数\(\theta\)的最优值,它提供了一种求解参数\(\theta\)的解析解法。
正规方程法概览
首先假设有这样一个代价函数\(J(\theta)=a\theta^2+b\theta+c(\theta\in{R}且\theta是标量)\)那么求这样一个二次函数的最小值,就应该是求其导数=0的点的函数值。
若代价函数较为复杂呢?如下式
其中\(\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}\))。此时通过删除一些特征或者使用正则化方法来解决

浙公网安备 33010602011771号