首页系统随机梯度下降(什么是随机梯度下降法)

随机梯度下降(什么是随机梯度下降法)

编程之家2024-05-1095次浏览

一、确定性梯度是什么意思

确定性梯度是一种在强化学习中使用的梯度下降算法。它与普通梯度下降的不同之处在于,确定性梯度使用的是确定性的策略来更新参数,而不是像普通梯度下降那样使用随机策略。

随机梯度下降(什么是随机梯度下降法)

确定性梯度通过计算策略在当前状态下的平均收益来更新参数,从而使得策略更加接近最优策略。

在确定性梯度的计算中,通常需要用到策略的确定性表示,例如值函数或者策略梯度等。确定性梯度在许多强化学习任务中都表现出优异的性能,因此被广泛应用于实际应用中。

二、随机梯度下降算法是什么

随机梯度下降算法是基于梯度下降法中最原始的方法——批量梯度下降法(BGD)的缺点而演变出的改良。

在训练过程中常见的损失函数为:

批量梯度下降法(BatchGradientDescent,简称BGD)的方法是先求偏导,再用每个θ各自的梯度负方向依次更新每个θ:

它的效果如图:

随机梯度下降(什么是随机梯度下降法)

可以看出是一种思路简单、易于实现的算法,并且在较少迭代次数的情况下就可以得到全局最优解,但是每次迭代都要调用全部数据,如果样本数量(上面式子中的m)较大,将会导致计算极其慢。基于这一缺点,随机梯度下降法(StochasticGradientDescent,简称SGD)被提出。它不再每次迭代都用上所有样本,而是每次迭代仅仅对一个样本进行更新,从而达到对于数量庞大的样本只需使用其中的相对少量就把θ最优化的目的。它的方法是在改写损失函数之后,θ的更新是基于每个样本对theta求偏导后所得梯度:

相比BGD算法SGD算法速度大幅提升,几十万条样本基本只需要用上万或者只要上千条样本就饿可以得到结果。但是SGD伴随更多噪音、最优化方向准确度下降的问题。效果如下图,可以看出相比于BGD,SGD迭代次数显著增加,并且并不是每一次迭代都是向着最优化方向。同时,SGD算法在实现难度上不如BGD算法简单。

虽然理论上BGD比SGD得到全局最优,但是在生产场景中,并不是每一个最优化问题中的目标函数都是单峰的,反而是sgd更容易跳出局部最优。

三、梯度法的步骤

1、选定初始控制u0(t)u^0(t)u0(t),凭经验给定,选取时应根据u(t)u(t)u(t)的物理意义选择合适的u0(t)u^0(t)u0(t),允许误差?>0\epsilon>0?>0;

2、将u0(t)u^0(t)u0(t)待人状态方程中,以x(t0)x(t_0)x(t0?)为初值,得到与u0(t)u^0(t)u0(t)对应的状态轨迹线x0(t)x_0(t)x0?(t);

3、计算性能指标J[u0(t)]J[u_0(t)]J[u0?(t)];

随机梯度下降(什么是随机梯度下降法)

4、将x0(t)x^0(t)x0(t)待人正则方程中,得到对应的lambda0(t)lambda^0(t)lambda0(t);

5、计算性能指标在u0u^0u0处的梯度▽J[u0(t)]=g0=?H?u\bigtriangledownJ[u^0(t)]=g^0=\frac{\partialH}{\partialu}▽J[u0(t)]=g0=?u?H?;

6、确定搜索步长,由一维搜索法确定。J[u0?αg0]=min?α>0J[u0?αg0]J[u^0-\alphag^0]=\min\limits_{\alpha>0}J[u^0-\alphag^0]J[u0?αg0]=α>0min?J[u0?αg0];

7、修正控制向量:u1(t)=u0(t)?αg0u^1(t)=u^0(t)-\alphag^0u1(t)=u0(t)?αg0

8、以u1u^1u1代替u0u^0u0,重复步骤2、3、4、5、6、7,直到满足终止条件;

meego系统(什么是meego软件)triplets是什么意思,tripletloss