本文主要是介绍随即近似与随机梯度下降,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、均值计算
-
方法1:是直接将采样数据相加再除以个数,但这样的方法运行效率较低,要将所有数据收集到一起后再求平均。
-
方法2:迭代法
二、随机近似法: Robbins-Monro算法(RM算法)
-
- g(w)是有界且递增的
-
- ak的和等于无穷,并且ak平方和小于无穷。我们会发现在许多强化学习算法中,通常会选择 ak作为一个足够小的常数,因为 1/k 会越来越小导致算法效率较低 。尽管在这种情况下第二个条件没有被满足,但算法仍然可以有效地工作,因为实际迭代的次数是有限。
-
- 关于系数 η ,表明 η 的期望为0,方差有界
RM算法是个迭代式的算法,对 w* 第 k 次的估计是 wk,第 k+1 次的估计是 wk+1,则有
最开始的时候我输入 w1,得到 g~1,然后带入到下式的右侧,得到 w2,再把 w2 输入,再得到 g~2,再带入下式的右侧,得到 w3,以此类推。最后我们会得到 {wk} 的序列和 {g~k} 的序列。RM 算法就是通过这样一种方式来求解的
随机梯度下降(SDG)
SGD 是 RM 算法的特殊情况,mean estimation 算法也是 SGD 的特殊情况
求解这个问题有多种方法,下面给出三种方法:
方法1:梯度下降(gradient descent,GD)
因为我们的目标是最小化一个目标函数,所以要用梯度下降;如果目标是最大化一个目标函数,就要用梯度上升。
缺点:难以获得期望值(expected value)。对此有两种解决方法:第一种方法,如果有模型就可以求出来;第二种方法,如果没有模型,用数据求
方法2:批量梯度下降(batch gradient descent,BGD)
缺点:每次迭代都需要对每个 wk 进行多次采样。在每次更新 wk 的时候都要采样 n 次或者多次。这在实际中还是不实用,那么来到了方法3
方法3:随机梯度下降(stochastic gradient descent,SGD)
这篇关于随即近似与随机梯度下降的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!