pytorch的基础使用(三)

435 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

梯度下降算法

1、案例分析

向量是特殊化的梯度,也就是导数变化最快的那个方向,首先看一个梯度下降的图,这个图也是我在其他地方找的一张图,也就是线性回归的里面的损失函数图。

损失函数

W的梯度:

W的梯度

W发生变化:

w的新值

从上面的图结合公式我们不难看出,▽ω 是斜率,也就是说,

当 α > 0 的时候 ω 逐渐变小,点在上图中向左边移动

当 α < 0 的时候 ω逐渐变大,点在上图中向右边移动

从上图的来看,我们需要的是损失函数最小,也就是需要这个点向右边的底部移动,这个过程就是梯度下降。

OK 到这里如果还不懂没有关系,请继续往下看。

2、什么是梯度

解释一:梯度是多元函数的变化趋势,比如二维、三维、四维..... 。其实导数是只有一个变量时候的梯度。

解释二:在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。

3、什么是梯度下降

我们还是以上图为例,我们把上图的方程看成一个函数,这个函数就是损失函数,我们需要的损失函数最小,那么我们也就是需要求这个函数的最小值,那么就是需要不断的进行梯度下降。这里是二维的,我们看一个三维的:

梯度下降

那么我们似乎可以看成为求最小值呢,呵呵,其实只要你理解了就行。

4、什么是梯度上升

这个问题我们就不多讨论了,其实就是梯度下降反过来了。

5、梯度下降的一些概念

1、步长:就是每次变化的大小,如下图

步长问题

2、损失函数: 损失函数就是预测和偏差形成的一个函数

其中Xi 表示第 i 个样本特征,Yi 表示第 i 个样本对应的输出,hθ(xi)为假设函数,也就是预测的结果, Yi 为真实值。而我们的目标就是使得这个损失函数最小