关于神经网络中梯度概念的浅显易懂解释
·
梯度是神经网络里绕不开的一个概念。
一句话:梯度是一个向量,用来指明在函数的某一点,沿着哪个方向函数值上升最快,这个向量的模指明函数值上升程度(速度)的大小。
接下来举例
本质上,梯度就是一个向量,如果函数是n元函数,这个向量就是由n个元素组成。如果是二元函数,

这个向量就是:

计算方式为求偏导,然后带入点值。
可以得到在(1,1)这一点,沿着方向(3,1)函数值上升速度最快。
如图,红色是函数C(x,y)的图像,在(1,1)这一点,可以看到沿着(3,1)移动,函数值(Z轴)是上升最快的。

在神经网络中,我们经常要找一个函数的最小值,这个函数即损失(loss)关于网络中各个参数(parameter)的权重的函数。
如果我们算出这个函数的梯度,我们就知道,在当前参数位置,对每一个参数,如何设置能够使损失上升最快。
每次沿着这个方向迭代后,达到一个新的位置(即各个参数组成的坐标)继续计算当前位置的梯度,继续朝着这个方向上升。
那么我们减去这个梯度(即参数vector减去梯度vector),就能使损失下降最快了。
再加一个学习率,就能控制这个下降速度了。
这个过程就是梯度下降法
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)