首先展示了一段视频,介绍了Dean Pomerleau利用监督学习让一辆汽车可以自动行驶。
符号 | 代表的含义 |
---|---|
m | 训练样本的数目 |
X | 输入变量,通常也可以称为特征 |
y | 输出变量,有时也称为目标变量 |
(X, y) | 表示一个样本 |
(\(X^{(i)}\), \(y^{(i)}\)) | 表示第i个样本 |
h | 假设(hypothesis)函数 |
n | 特征的个数 |
首先是单个特征的线性假设函数
多个特征的线性假设函数
为了便利,定义
则有
\Theta被称为学习算法的参数,利用训练集合选择或学习得到合适的参数值是学习算法的任务。
为了进行预测,一件可以做的事是尝试让学习算法的预测在训练数据上尽可能准确。
那么就得到了线性回归算法里的成本函数。
们要做的是要使上述函数的值最小化。
下面有两个方法可以帮助选取\(\Theta\)以使上述函数的值最小化。
这是一个搜索算法,基本的想法是先给参数向量一个初始值,然后不断地改变参数向量使得不断减小,直到我们找到了一个使得取到了最小值,这个算法称之为梯度下降。
这个导数即为梯度在\Theta_{i}上下降最陡的方向。
因此更新\(\Theta\)的过程可以总结为以下公式:
其中\(\alpha\)为学习速度参数,它控制了算法朝着最陡峭的方向下降的时候迈的步子有多大。\(\alpha\)值设的过小,算法向着最陡峭方向下降时,每次迈很小的一步,这样它会花很长时间去收敛。值设的过大,算法可能会越过最小值,因为步子迈的太大了。
最后得到更新\(\Theta\)的过程可以总结为以下公式:
算法的过程就是重复以下过程,直接最后收敛。
在批梯度下降算法中每一次迭代都需要遍历整个训练集合。当训练数据集过大时,就不太适合了,而应该使用随机梯度下降算法
伪代码示意:
一直重复上述过程,直至最后收敛。
这个算法可能会在全局最小值附近一直徘徊,通常得到的参数值能够很接近全局最小值,这已经足够了。这个算法通常比批梯度下降算法快得多,尤其是当你有一个大规模训练集合的时候。
对于最小二乘回归问题或者普通的最小二乘问题,实际上存在着方法可以直接给出参数向量的解析表达式,这样为了求参数的值就不需要进行迭代了,这个就是正规方程组。
证明正规方程过程中将用到上面所述的事实。
然后算法的目标(算法尽量收敛)是
所以有
最后就有
上述公式被称为正规方程组。我们现在可以给出这个关于的方程组解的解析表达式了:
上述公式要求X^{T}X可逆,如果X^{T}X不可逆,可以用伪逆最小化的方法来解决这个问题。