这一集主要讲了线性回归,梯度下降,正则化方程组这三个方面的内容
线性回归:
线性回归主要解决变量之间的因果关系问题。假设我们有一组某一地区的房屋面积和价格的数据,根据常识,我们知道一般来说,房屋面积越大,价格越高,但是我们并不知道确定的对应关系,那么我们可以用线性回归来得到,并且可以预测某一面积的房屋的大概价格。
具体的过程如下:
首先我们有一组训练数据,然后通过我们的学习算法得到一个目标函数h,接着每当给我一个输入数据时,就可以根据h产生一个输出。实际上不只是线性回归,很多机器学习的算法都是通过训练得到一个目标函数h的。
其中最重要的是用什么表达式来表示目标函数h,在线性回归中,由于最终要求的是一条直线,所以我们假设h是一条一次函数即
如果假设有房屋大小和房间数两个特征的话,那么可以假设等等。如果令x0=1,则h(x)可以写成矩阵相乘的形式
为了让h(x)能够很好的预测房价,我们试图让h(x)和房价y尽可能接近,所以我们定义了一个误差函数使e在训练集里面尽可能的小,所以我们要求的参数A的值就是e最小时A的值。
接下来讲几个使e达到最小的算法
1.批量梯度下降法:
1.把向量A初始化为任意向量,比如0向量
2.不断地改变向量A的值使e越来越小
更新法则:,代入上面的式子可以算得
实际上,对于线性回归的误差函数的形状只是一个“碗型”
检验梯度是否收敛了可以设定一个比较小的值,当梯度变化小于这个值时,可以认为已经收敛了
2.随机梯度下降
每次计算梯度只用一个样本
更新法则:
for j=1 to n
(for all i)
优点:速度快
缺点:不会精确收敛,会在最小值附近震荡
3 直接计算法
实际上,对于最小二乘法,并不一定需要训练,迭代,有公式可以直接计算出最小值
提示:用到了矩阵求导,线性代数和正则化,这里就不介绍了,毕竟适用面太小
其实也很重要