您好,欢迎访问这里是您的网站名称官网!
新闻资讯

服务热线400-123-4567

常见问答

首页 > 新闻资讯 > 常见问答

梯度下降优化算法原理——神经网络的数学基础原理(4)

作者:佚名 发布时间:2024-04-22 15:05:22点击:

在BP神经网络的范畴中,一般说到优化算法,指的就是梯度下降。梯度下降的公式可以表示如下,其中J(θn)表示要优化的损失函数,η表示学习率:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	heta _{n+1} = 	heta _{n} - \eta \frac{\partial }{\partial 	heta _{n}}J(	heta _{n})

至于梯度下降公式的原理,之前有文章介绍过,传送门:神经网络权重更新的原理和方法——softmax前世今生系列(7)

因此假设损失函数如下:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? J(x) = x^{2}

则有:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\frac{\partial }{\partial x}J(x) = (x^{2})' = 2x

此时假设损失函数的初始值为5,学习率为0.3,则梯度下降的优化算法过程为:

? ? ? ? ? ?

从图中可以看出,经过4轮迭代,损失函数从5下降到0.128,这也说明拟合的模型与真实情况的差距越来越小。

?

随机梯度下降优化算法的本质和梯度下降是一样的,但是当训练数据量很大时,如果对每一条数据在训练时都进行运算,会导致训练速度相当慢。

比如我们有10000条数据,每一个训练的epochs,都要对这10000调数据全部进行一次梯度下降算法。

所以我们在训练模型的过程中,从一批训练数据中随机抽取某一条数据对损失函数进行优化,来代表全局数据,这样训练的速度就大大加快了。

比如我们有10000条数据,每一个训练的epochs,只选取1条数据进行梯度下降算法。

随机梯度下降的缺点也是很明显的,一条数据有时并不能代表一批数据的特征,这往往会导致网络无法达到全局最优,甚至不能达到局部最优。

?

根绝上述两种情况的,选取出一种折中方案,就是分批梯度下降。

首先将大量数据分成小批次,用每个小批次的数据对损失函数进行优化,这样不会比随机梯度慢很多,同时计算量比全局数据的梯度下降又要快。

比如我们有10000条数据,将其分成100个batch,每个batch100条数据,每一个训练的epochs中,只用对这一个batch的100条数据使用梯度下降算法。但是整个训练方法要循环100次,将100batch都训练一遍。

?

?

相关标签: 数据 下降

平台注册入口