机器学习
一、单变量线性回归
1.模型描述
(1)常见的字符的意义:
-
m代表训练集(即样本容量)中实例的数量 -
x代表特征/输入变量 -
y代表目标变量/输出变量 - (x(i), y(i))表示第i个样本
-
h代表学习算法的解决方案或函数也称为假设(hypothesis)
(2)一个监督学习算法的工作方式:
2.代价函数
(1)什么是代价函数(平方误差函数、目标函数)?
我在网上找了很长时间代价函数的定义,但是准确定义并没有,我理解的代价函数就是用于找到最优解的目的函数,这也是代价函数的作用。
注意:
①上面的代价函数是二变量的,事实上代价函数可以是n变量的,多变量的我们通常用泰勒公式去逼近目标函数,方便研究目标函数的性质。
②另外,图片上的代价函数只是代价函数的一种,即它只是使假设函数最逼近真实情况的一个式子(工具)
③图片上的代价函数前面乘以1/2,是因为后面求导会有2,为了简便计算。这样,就产生了图片上的代价函数
图片上的代价函数图像为:
可以看见,该代价函数与z∈R相切的点(θ0, θ1)为最优解.再将(θ0, θ1)带入到h(x)中,此时的h(x)就是拟合度最高的函数,通过此函数去预测也将是最准确的。
由此可见,我们需要一种高效算法的软件,自动的找到最优解。
3. 梯度下降
(1)梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数 的最小值。
(2)梯度下降背后的思想是:开始时我们随机选择一个参数的组合,计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到找到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。
想象一下你正站立在山的这一点上,站立在你想象的公园这座红色山上,在梯度下降算法中,我们要做的就是旋转360度,看看我们的周围,并问自己要在某个方向上,用小碎步尽快下山。这些小碎步需要朝什么方向?如果我们站在山坡上的这一点,你看一下周围,你会发现最佳的下山方向,你再看看周围,然后再一次想想,我应该从什么方向迈着小碎步下山?然后你按照自己的判断又迈出一步,重复上面的步骤,从这个新的点,你环顾四周,并决定从什么方向将会最快下山,然后又迈进了一小步,并依此类推,直到你接近局部最低点的位置。
同过上面的图片,你会发现,初始位置不一样,你找到的局部最优解也可能不一样。
(3)批量梯度下降(batch gradient descent)算法的公式为:
- 其中是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
- 后面的式子是代价函数求偏倒
-
:=表示赋值语句,而=表示左边和右边是否相等
在梯度下降中我们要同步、实时更新,所以下面第一幅为正确过程,第二幅图为错误过程: