机器学习之线性回归、梯度下降

327 阅读5分钟

学前知识点:

1.监督学习:输入数据有标签 2.非监督学习:输入数据无标签

1.模型描述

图1 如图,有一个关于房子尺寸与其价格的关系,对应图上的红叉点。问题来了?由现在已知的size与price的关系,在下次知道房子的size的时候能否对其房价做一个预测呢?观察散点的分布规律,发现其总是散落在某根直线的周围。那么可以用某根直线来模拟这个规律,如图蓝线(不一定是最优解)。 进一步分析这些数据: (X,Y)分别对应上面直角坐标系的(size,price). 由输入X来预测Y的值在机器学习上称只为“回归”

下图了解一下机器学习,监督学习的流程: 在这里插入图片描述 流程:由训练集(多个训练样本),训练集里面包括特征值,目标值。目标值即需要做预测的字段(或标签),如上面的price,特征值就是训练集中除去特征值后剩的部分,如上面的部分(特征值一般要与目标值存在相关性,如果某个特征值与目标值的相关性为0,那么将该特征值留下来做预测的因子意义也不大) 由于上述用直线来模拟预测,那么改假设函数可以表示为: 在这里插入图片描述其图像类似一元一次函数y=aX+b

2.代价函数

在这里插入图片描述 假设函数表达式:hθ (x) = θ0+θ1X 由上图可知,θ0,与θ1会影响hθ.假设函数hθ则会影响预测的准确率。所以预测结果的准确率会与θ0,θ1有关。 在这里插入图片描述 由上图的第一个公式可知,是用来计算 预测值与真实值之间的误差的平方之和。再加一个参数 在这里插入图片描述

现在 变为 预测值与真实值平均平方误差。现在的目标就是求 J(θ0,θ1)的最小值。 记作在这里插入图片描述 即有: 在这里插入图片描述 J(θ0,θ1)为二元函数,坐标轴为三维图行。不好讨论。 在这里插入图片描述

如下图,对J(θ1) 的取值进行讨论,发现J(θ1)的图像大致为类一元二次函数 图中可以发现,函数会存在某个最小值或者局部最小值。这样便可以达到求miniJ(θ1)的目的 在这里插入图片描述

现在更一步讨论 J(θ0,θ1),涉及到了二元函数。 得到二元函数的图像,是一个三维立体图形。 那么三维图形如何求miniJ(θ0,θ1) 在这里插入图片描述 其有等高线: 在这里插入图片描述 等高线中心点即miniJ(θ0,θ1)

3.梯度下降算法

梯度下降算法:它的主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。

一个人被困在山上,需要从山上下来(找到山的最低点,也就是山谷)。但此时山上的浓雾很大,导致可视度很低;因此,下山的路径就无法确定,必须利用自己周围的信息一步一步地找到下山的路。这个时候,便可利用梯度下降算法来帮助自己下山。怎么做呢,首先以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着下降方向走一步,然后又继续以当前位置为基准,再找最陡峭的地方,再走直到最后到达最低处。 在这里插入图片描述 而梯度下降的算法思想和下山的思想很相似。首先,我们有一个可微分的函数。这个函数就代表着一座山。我们的目标就是找到这个函数的最小值,也就是山底。根据之前的场景假设,最快的下山的方式就是找到当前位置最陡峭的方向,然后沿着此方向向下走,对应到函数中,就是找到给定点的梯度 ,然后朝着梯度相反的方向,就能让函数值下降的最快!(梯度的含义在 微积分中有介绍,grad) 在这里插入图片描述 所以,我们重复利用这个方法,反复求取梯度,最后就能到达局部的最小值,这就类似于我们下山的过程。而求取梯度就确定了最陡峭的方向,也就是场景中测量方向的手段。

在这里插入图片描述 α在梯度下降算法中被称作为学习率或者步长,意味着我们可以通过α来控制每一步走的距离,不要走太快,错过了最低点如上图绿色路径)。同时也要保证不要走的太慢,导致太阳下山了(如上图红色路径),还没有走到山下。所以α的选择在梯度下降法中往往是很重要的!α不能太大也不能太小,太小的话,可能导致迟迟走不到最低点,太大的话,会导致错过最低点!

现在放在二元函数J(θ0,θ1)上面来讨论,三维图像为: 在这里插入图片描述

那么梯度下降算法表现为: 在这里插入图片描述 在这里插入图片描述

都是在各个方向寻找“山谷”

在这里插入图片描述

4. 线性回归与梯度下降

在这里插入图片描述