1、梯度概念
(1)从几何意义上讲,就是函数变化最快的地方。
- 在单变量的函数中,梯度只是导数,其实就是函数在某个给定点的切线的斜率;
- 在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向。
(2)举例说明
(3)举例说明
- 多变量求微分,需要对每个变量求微分
- 梯度就是多变量求微分的一般化
2、代价函数
假设有训练样本(x, y),模型为h,参数为θ。
代价函数其实就是指任何能够衡量模型预测出来的值 h(θ) 与真实值 y 之间的差异的函数都可以叫做代价函数 C(θ) 。它的标准定义如下:
其中的1/2是为了方便后面计算加入的。最后用以下公式表示目标函数(代价函数):
实例:
3、梯度下降
(1)梯度下降是一个用来求函数最小值的算法。
梯度下降背后的思想是:开始时我们随机选择一个参数的组合,计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到找到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(globalminimum),选择不同的初始参数组合,可能会找到不同的局部最小值。
(2)梯度下降算法公式表示:
有一点需要注意的是步长a的大小,如果a太小,则会迭代很多次才找到最优解,若a太大,可能跳过最优,从而找不到最优解。(用a代替阿发)
另外,在不断迭代的过程中,梯度值会不断变小,所以θ1的变化速度也会越来越慢,所以不需要使速率a的值越来越小.
4、批量梯度下降
它是指在每一次迭代时使用所有样本来进行梯度的更新。从数学上理解如下:
其中‘:=’表示赋值。
注意这里更新时存在一个求和函数,即为对所有样本进行计算处理。
5、随机梯度下降
随机梯度下降法不同于批量梯度下降,随机梯度下降是每次迭代使用一个样本来对参数进行更新。使得训练速度加快。