基本认识:
线性回归是基本的机器学习方法。
线性回归是回归问题,其所求的值为连续值。分类问题求的值为离散的值。
线性回归问题 ,简而言之就是求一个函数 ‘f’ 使输入的自变量 X 通过 f 得到比较接近真实的 Y 的 Y* 。
举例:
比如这个X可以是今天的风力,湿度等 (超过一维的自变量我们设为矩阵或向量)
如 X=[x1,x2,x3,x4,x5,......] Xi=(i=0,1,2,3.....n)
f(X)=20 ( 设Y为 明天的温度 ),这也就达到了预测的作用
这也是线性回归的其中一个作用
一般来说(一般方程):
我们给出的直线 Y = w'x+e
w,x 均为向量,而我们要求的是这个最佳的w*,让 f 对 X 的预测总体上最准
为此我们就定义误差(也叫代价函数) J(W)=(Y-Y*)^2 这里我们采取的是方差来作为衡量我们的 W 是否优秀的依据如此假设我们有 m 个数据 Xi
(图一)(注明其中的 θ 就是我们的 W 向量,下面均为如此)
即最小化 通过某种方法得到的 W 使得 J(W) 最小 ,为此我们引入优化方法
优化方法+训练模型:
我们可以采用梯度下降法(gradient descent )来作为我们的优化方法,梯度 顾名思义,就是函数上升最快的方向
我们要做的就是利用梯度找到 J(W) 梯度的反方向走下去,走到底部就会得到一个极小值,我们的优化就完成,此时我们所得到的 W 就会大体上预测到不错的结果
下图为误差 J(W) 对于W 向量中参数的分布图(途中 θ 就是上面讲的向量 W)
(图二)就像当你站在一个山坡上,你上升最快的方向就是你的梯度,而你想做的是走到山底。
而你要做的就像下面这样。
(图三)通过不断的修正向量 W 的各个项使得误差走到山底。
那么我们该怎么做呢?
上面我们讲到了梯度就是J(W)对向量W的导数,式子如下:
(图四)
很容易由 图一 求导数得到 图四 的式子
得到的梯度我们又可以这样表示:
(图五)这样显得直观。倒三角形表示梯度,按这种方式来表示会大大的简化数学的描述。
然后呢,相信你们已经察觉到,我上面讲到,梯度是 J(W) 上升最快的方向,而我们的目的时间小误差,所以我们接下来给出式子:
(图六),
为了方便控制,我们引入 α 学习率(learning rate)来限制梯度下降的速度,α 一般都是人为根据具体情况设置(通常小于1)。
这样我们就能一步步从图二的山坡上迭代 一步一步向下走(更新 W 向量),直到达到我们设置的阀值推出迭代。
阀值 ε 使得 | Y-Y* | < ε 时退出迭代,得到最佳的W(注意,此时的W只是一个极小值而不是最小值,就像图二中不止一个山底一样)
训练好我们的模型,我们就可以开始预测了。