什么是梯度

来源:互联网 发布:sql 包含某个字段 编辑:程序博客网 时间:2024/04/29 19:18

在学习机器学习过程中,会遇到一个名词,就是梯度。因为很多情况之下,基本上没有完美的解,只能逐渐逼近它,往往要使用迭代法来求解,并且迭代法也是计算机的专长,可以说这世界上只有它是最会玩迭代算法了。在使用迭代法的过程中,又需要不断尝试各个方向。比如从一座山峰顶往下走,而这座山峰各个方向有不一样的坡度。如下图:


从上图可以看到,有一些地方比较陡峭,那么我们就会说这里的梯度比较大,因为在这里下降得最快。接着,我们来看一下定义:

在向量微积分中,标量场的梯度是一个向量场。标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率。更严格的说,从欧几里得空间Rn到R的函数的梯度是在Rn某一点最佳的线性近似。在这个意义上,梯度是雅可比矩阵的一个特殊情况。在单变量的实值函数的情况,梯度只是导数,或者,对于一个线性函数,也就是线的斜率。梯度一词有时用于斜度,也就是一个曲面沿着给定方向的倾斜程度。可以通过取向量梯度和所研究的方向的点积来得到斜度。梯度的数值有时也被称为梯度。

为了从最陡的地方走下去,那么机器怎么样才知道那个地方的梯度最大呢?导数在梯度下降中就是为了指出最快的方向,指示我们向局部最低点进发。导数(Derivative)是微积分学中重要的基础概念。一个函数在某一点的导数描述了这个函数在这一点附近的变化率。导数的本质是通过极限的概念对函数进行局部的线性逼近。我们可以在物理里想一下,一阶对位移的求导就是速度,可见导数表示这点的变化大小,当然就可以说明这点下降的速度了。



1. C++标准模板库从入门到精通 

http://edu.csdn.net/course/detail/3324

2.跟老菜鸟学C++

http://edu.csdn.net/course/detail/2901

3. 跟老菜鸟学python

http://edu.csdn.net/course/detail/2592

4. 在VC2015里学会使用tinyxml库

http://edu.csdn.net/course/detail/2590

5. 在Windows下SVN的版本管理与实战 

 http://edu.csdn.net/course/detail/2579

6.Visual Studio 2015开发C++程序的基本使用 

http://edu.csdn.net/course/detail/2570

7.在VC2015里使用protobuf协议

http://edu.csdn.net/course/detail/2582

8.在VC2015里学会使用MySQL数据库

http://edu.csdn.net/course/detail/2672


0 0