对深度学习中的基本概念—梯度的理解

本文讨论一下对“梯度”的理解。

“梯度”是深度学习中基本又非常核心的概念,没有它就没有人工智能的今天。

然而,即使抛开令人眼花缭乱的术语(比如sgd、ada、moment、adam)不谈,即使最简单的“梯度”本身,也值得讨论一下。

  1. 提出问题
    该如何理解梯度?

让我们结合具体的例子来体会一下。

  1. 定义例子
    首先,我们定义一个简单的例子,来模拟一下深度学习的学习过程。

已知:

有一个正确的数据对(或者叫样本),(x,y)

其中,x代表输入值,y代表输出值。这里我们假定x等于 1, y也等于1。

也就是说这个已知的、正确的数据对为(1,1)

求:

根据上面的数据对,求出y和x之间的映射关系

该如何求呢?

解:

我们设计一个神经网络来求这个映射关系。

简单又不失一般性,我们设计一个只有一个参数w的神经网络。

用这个简单的神经网络来表示x和y之间的映射关系的话,如下表示:

Y = wx

现在我们已经知道 x等于1的时候,y也等于1,那么w等于多少能正确表达出他们之间的映射关系来呢?

  1. 解决问题:
    聪明如你,肯定会脱口而出:w等于1!

完全正确,如果w等于1,那么用这个最简神经网络表示的x和y之间的映射关系就变成了

Y = 1*x

当x=1时,y=w1 = 11 = 1

正好完美符合了我们已知的数据点(1,1)

但是,这个“显然”的最优解,是因为我们把问题简化了的原因。

在实际中,w动辄会有成千上万个维度,这时候w等于多少就没这么容易得到了

所以,我们得有一套固定的套路,来解决w到底等于多少时,能最好的表达出x和y之间的变换关系的问题。

没错,梯度就是这个固定套路的核心。

那具体怎么做呢?

首先,我们不知道w取多少最好,那么不管三七二十一,先让w随便取个值,比如5。

当w=5的时候,如果x=1,那么y=多少? y= 5*1 = 5

这里的y=5是预测出来的值。但y的实际值应该为1。

预测值和实际值不一致。

那么怎么让他俩一致呢?

调整w的值。也就是我们常说的调整参数。

怎么调整?

有两个维度可调。

第一个维度,是调整的方向。

调整的方向只有两个,要么变大,要么变小。

比如,把w从5变大一些,预测值离实际值更远了还是更近了?

如果把w从5变小一些呢?

可以看到,调整的方向应该选择“变小” 才对。

变小w,预测值离实际值才会更近。比如w从5变小到4.

选择调整的方向(变大或者变小)是梯度的第一要素。

这也是很多人忽视的地方。

第二个维度,是变大或者变小的力度。

即如果变小的话,该变小多少?

变小0.1 ?0.01?还是1?

比如我们变小1吧,w就从5变成了4.

这时候预测值成了 4*1=4. 确实相比原来的5,离实际值1 近了一些。

如果变小0.1,w就从5变成了4.9

这时候预测值成了 4.9*1=4.9 和5相比,也离实际值1 近了一些。

实际中,我们调整的力度,是损失值对于w的导数(或者偏导数)的绝对值。

重复此操作,w会慢慢的接近最佳值1。

当w到达最佳值的时候,预测值和实际值变得完全一样。

这时候就得到了最优解 y = 1*x。

我们通过对w梯度下降,得到了y和x关系的最优解。

  1. 扩展
    上面的例子中,只有w一个变量需要求最佳值

实际中,可能有 w1,w2…wn 很多个变量,都需要求最佳值。

那就对每一个w,分别进行上面例子中的操作就可以。

  1. 总结
    所谓的梯度,其实就是对于每一个变量来说,首先它是增加还是减小?其次是增加或者减小多少?才能让预测的结果和期望的结果更加接近。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值