强化学习-随机近似与随机梯度下降
强化学习-数学理论
- 强化学习-基本概念
- 强化学习-贝尔曼公式
- 强化学习-贝尔曼最优公式
- 强化学习-值迭代与策略迭代
- 强化学习-蒙特卡洛方法
- 强化学习-随机近似于随机梯度下降
文章目录
- 强化学习-数学理论
- 一、前言
- 二、再谈mean eatimation
- 2.1 回顾蒙特卡洛法
- 2.2 新角度解决求均值问题
- 2.3 新方法的优势及推广
- 三、RM算法(Robbins-Monro Algorithm)
- 3.1 Stochastic Approximation的定义
- 3.2 RM算法
- 3.3 RM算法收敛性分析数学理论(3个条件)
- 3.4 RM算法求解mean eatimation
- 四、Stochastic gradient descent(随机梯度下降)
- 4.1 SGD算法介绍
- 4.2 使用SGD求解(一个例子)
- 4.3 SGD收敛性分析
- 4.4 SGD算法随机性分析
- 4.4 BGD、MBGD、SGD
- 4.4.1 算法介绍
- 4.4.2 算法异同点
- 总结
- 内容小结
- 参考资料
一、前言
本篇博客主要包含如下内容:1️⃣ 新的角度再看mean eatimation;2️⃣ Robbins-Monro Algorithm;3️⃣ 随机梯度下降以及它的各种变体(GD、BGD、SGD、MBGD)。
二、再谈mean eatimation
2.1 回顾蒙特卡洛法
上一篇蒙特卡洛章节关于mean eatimation problem是这么求解的: E [ X ] ≈ x ‾ : = 1 N Σ N i = 1 x i \mathbb{E}[X]\approx\overline{x}:=\frac{1}{N}\underset{i=1}{\overset{N}\Sigma}x_i E[X]≈x:=N1i=1ΣNxi,其含义是:抽样多个关于X的样本序列 x i i = 1 N {x_i}_{i=1}^N xii=1N,然后对采样的数据进行求平均去最终去近似的等于 E [ X ] \mathbb{E}[X] E[X]。这种方法有一个弊端,就是要等所有的采样数据都结束才能去计算均值,这无疑是不高效的。
2.2 新角度解决求均值问题
基于上述的问题,本篇讲从一个新的角度再去求解mean eatimation problem。为了避免等待,我们采用增量式(迭代式)的方式去求解,即来几个先求几个的方式进行计算。推理过程如下所示:
假设: w k + 1 = 1 k Σ k i = 1 x i , k = 1.2.3... w_{k+1}=\frac{1}{k}\underset{i=1}{\overset{k}\Sigma}x_i, k=1.2.3... wk+1=k1i=1Σkxi,k=1.2.3...
那么, w k = 1 k − 1 Σ k − 1 i = 1 x i , k = 2 , 3 , . . . w_k=\frac{1}{k-1}\underset{i=1}{\overset{k-1}\Sigma}x_i, k=2,3,... wk=k−11i=1Σk−1xi,k=2,3,...
然后,我们用 w k w_k wk去表示 w k + 1 w_{k+1} wk+1,可得:
w k + 1 = 1 k Σ k i = 1 x i = 1 k ( Σ k − 1 i = 1 x i + x k ) = 1 k ( ( k − 1 ) w k + x k ) = w k − 1 k ( w k − x k ) \begin{aligned} w_{k+1}&=\frac{1}{k}\underset{i=1}{\overset{k}\Sigma}x_i \\ &=\frac{1}{k}(\underset{i=1}{\overset{k-1}\Sigma}x_i+x_k) \\ &=\frac{1}{k}((k-1)w_k+x_k)=w_k-\frac{1}{k}(w_k-x_k) \\ \end{aligned} wk+1=k1i=1Σkxi=k1(i=1Σk−1xi+xk)=k1((k−1)wk+xk)=wk−k1(wk−xk)
最后,可以得到一个迭代的公式: w k + 1 = w k − 1 k ( w k − x k ) w_{k+1}=w_k-\frac{1}{k}(w_k-x_k) wk+1=wk−k1(wk−xk),这样我们在计算第k步的时候就不需要等前面所有的 x i x_i xi了,下面我们利用该等式求解mean eatimation problem,求解过程如下图所示:
2.3 新方法的优势及推广
算法优势: 在计算第k步时,不需要把前面所有的 x i x_i xi全部加起来再求平均,只需要通过一步的计算就可以得到一个新的正确的平均数。
算法推广: w k + 1 = w k − α k ( w k − x k ) , α k ≥ 0 w_{k+1}=w_k-\textcolor{red}{\alpha_k}(w_k-x_k),\alpha_k\geq0 wk+1=wk−αk(wk−xk),αk≥0。
三、RM算法(Robbins-Monro Algorithm)
3.1 Stochastic Approximation的定义
在本小节开始前,我们先说一下Stochastic approximation(SA)随机近似理论的定义,它代表了一类算法,是指使用随机迭代的算法去解决方程求解问题以及优化问题的这类算法。有很多的方法可以求解上述的问题,但SA算法的优点在于:它不需要知道这个方程或者是目标函数的表达式。
3.2 RM算法
RM算法是SA的一个开创性的工作,下面进行详细的讲解:
问题定义:求解 g ( w ) = 0 g(w)=0 g(w)=0,假设 w ∗ w^* w∗是方程 g 的最优解,注意这里的方程 g 的表达式我们是不知道,大家可以联想一下神经网络,即:我们给一系列的输出,中间过程是个网络结构,最后输出我们想要的值。
RM算法表达式: w k + 1 = w k − a k g ~ ( w k , η k ) , k = 1 , 2 , 3... w_{k+1}=w_k-a_k\tilde{g}(w_k,\eta_k), k=1,2,3... wk+1=wk−akg~(wk,ηk),k=1,2,3...
这里的 w k w_k wk表示的是对最优解 w ∗ w^* w∗的第k次估计; g ~ ( w k , η k ) = g ( w k ) + η k , η 表示噪音 \tilde{g}(w_k,\eta_k)=g(w_k)+\eta_k,\eta表示噪音 g~(wk,ηk)=g(wk)+ηk,η表示噪音, g ~ \tilde{g} g~是g的一个带噪音的观测。 a k a_k ak是一个系数。
RM算法求解方程的过程:输入 { w k } \{w_k\} {wk}的一个序列,输出是一个含噪音的序列 { g ~ ( w k , η k ) } \{\tilde{g}(w_k,\eta_k)\} {g~(wk,ηk)}
RM为什么能找到最优?这里用一个具体的例子来阐述,如下所示:
g ( w ) = t a n h ( w − 1 ) g(w)=tanh(w-1) g(w)=tanh(w−1), g ( w ) = 0 g(w)=0 g(w)=0的解 w ∗ = 1 w^*=1 w∗=1,假设: w 1 = 3 , a k = 1 k , η k = 0 ( 没有噪音 ) w_1=3,a_k=\frac{1}{k},\eta_k=0(没有噪音) w1=3,ak=k1,ηk=0(没有噪音)。
那么RM算法的表达式为: w k + 1 = w k − a k g ( w k ) w_{k+1}=w_k-a_kg(w_k) wk+1=wk−akg(wk),求解过程仿真图如下所示:
由图示可得, w k + 1 w_{k+1} wk+1比 w k w_k wk更接近最优解 w ∗ w^* w∗。
当 w k > w ∗ w_k>w^* wk>w∗,我们有 g ( w k ) > 0 g(w_k)>0 g(wk)>0。那么, w k + 1 = w k − a k g ( w k ) < w k w_{k+1}=w_k−a_kg(w_k)<w_k wk+1=wk−akg(wk)<wk,因此 w k + 1 w_{k+1} wk+1比 w k w_k wk更接近 w ∗ w^* w∗;
当 w k < w ∗ w_k<w^* wk<w∗,我们有 g ( w k ) < 0 g(w_k)<0 g(wk)<0。那么, w k + 1 = w k − a k g ( w k ) > w k w_{k+1}=w_k−a_kg(w_k)>w_k wk+1=wk−akg(wk)>wk,因此 w k + 1 w_{k+1} wk+1比 w k w_k wk更接近 w ∗ w^* w∗;
3.3 RM算法收敛性分析数学理论(3个条件)
RM算法成立的3个条件:


这里只给出数学理论,感兴趣的朋友们可以直接去观看视频RM算法的数学理论支撑
3.4 RM算法求解mean eatimation
问题描述:假如我们要估计某个随机变量的 E [ X ] \mathbb{E}[X] E[X],假设有一个方程 g ( w ) = ⋅ w − E [ X ] g(w)\stackrel{\mathrm{\cdot}}{=}w-\mathbb{E}[X] g(w)=⋅w−E[X],那么我们只要找到一个 w w w使得方程 g ( w ) = 0 g(w)=0 g(w)=0,这样我们就可以估计出这个随机变量X的 E [ X ] \mathbb{E}[X] E[X]。注意:这里我们并不知道 g ( w ) g(w) g(w)的表达式(上述等式只是一个用于显示化推理的假设),但我们可得到观测值,即: g ~ ( w , x ) = ⋅ w − x \tilde{g}(w,x)\stackrel{\mathrm{\cdot}}{=}w-x g~(w,x)=⋅w−x。
推导过程:
g ~ ( w , η ) = w − x = w − x + E [ X ] − E [ X ] = ( w − E [ X ] ) + ( E [ X ] − x ) = ⋅ g ( w ) + η \begin{aligned} \tilde{g}(w,\eta)&=w-x \\ &=w-x+\mathbb{E}[X]-\mathbb{E}[X] \\ &=(w-\mathbb{E}[X])+(\mathbb{E}[X]-x) \\ &\stackrel{\mathrm{\cdot}}{=}g(w)+\eta \end{aligned} g~(w,η)=w−x=w−x+E[X]−E[X]=(w−E[X])+(E[X]−x)=⋅g(w)+η
因此我们可以通过 RM 算法来进行求解:
w k + 1 = w k − α k g ~ ( w k , η k ) = w k − α k ( w k − x k ) w_{k+1}=w_k-\alpha_k\tilde{g}(w_k,\eta_k)=w_k-\alpha_k(w_k-x_k) wk+1=wk−αkg~(wk,ηk)=wk−αk(wk−xk)
四、Stochastic gradient descent(随机梯度下降)
4.1 SGD算法介绍
SGD算法是RM算法的一个特殊情况,而mean estimation算法又是一个特殊的SGD算法。SGD算法解决的是一个优化问题,详细内容如下所示:
我们的目标是去求解优化问题,如方程: w m i n J ( w ) = E [ f ( w , X ) ] \overset{min}{w}J(w) = \mathbb E[f(w,X)] wminJ(w)=E[f(w,X)],这里的 w w w是我们要优化的参数, X X X是一个随机变量,这里要求的也是关于 X X X的期望,求解该问题我们有如下3种方法:
第一种:gradient descent(GD),该方法的使用条件是:已知了X的分布,换句话说就是知道了X的表达式。w k + 1 = w k − α k ∇ w E [ f ( w k , X ) ] = w k − α k E [ ∇ w f ( w k , X ) ] \begin{aligned} w_{k+1}&=w_k-\alpha_k\nabla_w\mathbb E[f(w_k,X)] \\ &=w_k-\alpha_k\mathbb E[\textcolor{blue}{\nabla_w}f(w_k,X)] \end{aligned} wk+1=wk−αk∇wE[f(wk,X)]=wk−αkE[∇wf(wk,X)]
第二种:batch gradient descent(BGD),还是我们老生常谈的事情,没有模型要有数据,该方法使用的条件是:我有很多的数据采样,下面等式中的 x x x表示 X X X的采样,具体的计算如下所示:
假如我们有了: E [ ∇ w f ( w k , X ) ] ≈ 1 n E n i = 1 ∇ w f ( w k , x i ) \mathbb E[\nabla_wf(w_k,X)]\approx\frac{1}{n}\underset{i=1}{\overset{n}E}\nabla_wf(w_k,x_i) E[∇wf(wk,X)]≈n1i=1En∇wf(wk,xi)
借助蒙特卡洛(MC)的思想,我们就可以得到下述等式:
w k + 1 = w k − α k 1 n E n i = 1 ∇ w f ( w k , x i ) w_{k+1}=w_k-\alpha_k\frac{1}{n}\underset{i=1}{\overset{n}E}\nabla_wf(w_k,x_i) wk+1=wk−αkn1i=1En∇wf(wk,xi)第三种:Stochastic gradient descent(SGD),第二种方案的缺点在于:我在每一次去更新 w k w_k wk的时候,需要采样很多次才能够去计算,在实际中这算法是低效的。
SGD的计算公式: w k + 1 = w k − α k ∇ w f ( w k , x k ) w_{k+1}=w_k-\alpha_k\nabla_wf(w_k,x_k) wk+1=wk−αk∇wf(wk,xk)
与GD的方法对比,这里使用随机梯度 ∇ w f ( w k , x k ) \nabla_wf(w_k,x_k) ∇wf(wk,xk)去替代了真实的梯度 E [ ∇ w f ( x k , X ) ] \mathbb E[\nabla_wf(x_k,X)] E[∇wf(xk,X)]
4.2 使用SGD求解(一个例子)
这里有一个例子,我们需要求解该的优化问题: m i n w J ( w ) = E [ f ( w , X ) ] = E [ 1 2 ∣ ∣ w − X ∣ ∣ 2 ] \underset{w}{min}J(w)=\mathbb E[f(w,X)]=\mathbb E[\frac{1}{2}||w-X||^2] wminJ(w)=E[f(w,X)]=E[21∣∣w−X∣∣2],这里的 f ( w , X ) = ∣ ∣ w − X ∣ ∣ 2 / 2 , ∇ w f ( w , X ) = w − X f(w,X)=||w-X||^2/2,\nabla_wf(w,X)=w-X f(w,X)=∣∣w−X∣∣2/2,∇wf(w,X)=w−X。
练习一:证明最优解是 w ∗ = E [ X ] w^*=\mathbb E[X] w∗=E[X]。
J ( w ) J(w) J(w)最小的必要条件是 ∇ w J ( w ) = 0 \nabla_wJ(w)=0 ∇wJ(w)=0,根据这个条件以及上面的方程,我们可以到的如下的推理过程:
∇ w J ( w ) = ∇ w E [ 1 2 ∣ ∣ w − X ∣ ∣ 2 ] = E [ ∇ w 1 2 ∣ ∣ w − X ∣ ∣ 2 ] = E [ w − X ] = 0 \begin{aligned} \nabla_wJ(w)&=\nabla_w\mathbb E[\frac{1}{2}||w-X||^2] \\ &=\mathbb E[\nabla_w\frac{1}{2}||w-X||^2] \\ &=\mathbb E[w-X]\\ &=0 \end{aligned} ∇wJ(w)=∇wE[21∣∣w−X∣∣2]=E[∇w21∣∣w−X∣∣2]=E[w−X]=0
由于 w w w本身不是一个随机变量所以它的expectation就是它自己,因此,我们可以得到: w = E [ X ] w=\mathbb E[X] w=E[X]。
练习二:写出解决这个问题的GD算法。
w k + 1 = w k − α k ∇ w J ( w k ) = w k − α k E [ ∇ w f ( w k , X ) ] = w k − α k E [ w k − X ] \begin{aligned} w_{k+1}&=w_k-\alpha_k\nabla_wJ(w_k)\\ &=w_k-\alpha_k\mathbb E[\nabla_wf(w_k,X)]\\ &=w_k-\alpha_k\mathbb E[w_k-X] \end{aligned} wk+1=wk−αk∇wJ(wk)=wk−αkE[∇wf(wk,X)]=wk−αkE[wk−X]
练习三:写出解决这个问题的SGD算法。
w k + 1 = w k − α k ∇ w f ( w k , x k ) = w k − α k ( w k − x k ) \begin{aligned} w_{k+1}&=w_k-\alpha_k\nabla_wf(w_k,x_k)\\ &=w_k-\alpha_k(w_k-x_k)\\ \end{aligned} wk+1=wk−αk∇wf(wk,xk)=wk−αk(wk−xk)
4.3 SGD收敛性分析
这里我们来分析SGD的一个收敛性,分析过程如下所示:
GD的算法表达式: w k + 1 = w k − α k E [ ∇ w f ( w k , X ) ] w_{k+1}=w_k-\alpha_k\mathbb E[\nabla_wf(w_k,X)] wk+1=wk−αkE[∇wf(wk,X)],而SGD算法表达式为: w k + 1 = w k − α k ∇ w f ( w k , x k ) w_{k+1}=w_k-\alpha_k\nabla_wf(w_k,x_k) wk+1=wk−αk∇wf(wk,xk)。与GD的方法对比,这里使用随机梯度 ∇ w f ( w k , x k ) \nabla_wf(w_k,x_k) ∇wf(wk,xk)去替代了真实的梯度 E [ ∇ w f ( x k , X ) ] \mathbb E[\nabla_wf(x_k,X)] E[∇wf(xk,X)]
因此,就会存在一个误差 η \eta η,那么随机梯度等于真实梯度加上一个误差,如下式所示:
∇ w f ( w k , x k ) = E f ( w , X ) + ∇ w f ( w k , x k ) − E [ ∇ w f ( x , X ) ] ⏟ η \nabla_wf(w_k,x_k)=\mathbb Ef(w,X)+\underbrace{\nabla_wf(w_k,x_k)-\mathbb E[\nabla_wf(x,X)]}_{\eta} ∇wf(wk,xk)=Ef(w,X)+η ∇wf(wk,xk)−E[∇wf(x,X)]
因为,随机梯度是不等于真实梯度的,因此,在这种情况下使用SGD是否能够找到那个最优解呢?即使用 SGD 时 w k → w ∗ a s k → ∞ w_k \rightarrow w^*\ as\ k\rightarrow \infty wk→w∗ as k→∞ 是否成立。
这里我们的基本思想是:证明SGD是一个特殊的RM算法,然后就可以根据RM算法的收敛性推断出SGD算法也是收敛的,具体过程如下:
SGD算法的目标是:最小化 J ( w ) = E [ f ( w , X ) ] J(w)=\mathbb E[f(w,X)] J(w)=E[f(w,X)],
而最小值问题,可以转化为求方程解的问题,即 ∇ w J ( w ) = E [ ∇ w f ( w , X ) ] = 0 \nabla_wJ(w)=\mathbb E[\nabla_wf(w,X)]=0 ∇wJ(w)=E[∇wf(w,X)]=0
此时,我们便可以参考RM算法,那么我们便可以得到下列等式:
g ( w ) = ∇ w J ( w ) = E [ ∇ w f ( w , X ) ] = 0 g(w)=\nabla_wJ(w)=\mathbb E[\nabla_wf(w,X)]=0 g(w)=∇wJ(w)=E[∇wf(w,X)]=0,
SGD的问题就变成了如何求解 g ( w ) = 0 g(w)=0 g(w)=0这个方程。
接着,我们可以得到观测值 g ~ \tilde{g} g~的表达式:
g ~ ( w , η ) = ∇ w f ( w , x ) = E [ ∇ w f ( w , X ) ] ⏟ g ( w ) + ∇ w f ( w , x ) − E [ ∇ w f ( w , X ) ] ⏟ η \begin{aligned} \tilde{g}(w,\eta)&=\nabla_wf(w,x)\\ &=\underbrace{\mathbb E[\nabla_wf(w,X)]}_{g(w)}+\underbrace{\nabla_wf(w,x)-\mathbb E[\nabla_wf(w,X)]}_{\eta} \end{aligned} g~(w,η)=∇wf(w,x)=g(w) E[∇wf(w,X)]+η ∇wf(w,x)−E[∇wf(w,X)]
因此,我们便可以使用RM算法来求解 g ( w ) = 0 g(w)=0 g(w)=0了,可得:
w k + 1 = w k − a k g ~ ( w k , η k ) = w k − a k ∇ w f ( w k , x k ) w_{k+1}=w_k-a_k\tilde{g}(w_k,\eta_k)=w_k-a_k\nabla_wf(w_k,x_k) wk+1=wk−akg~(wk,ηk)=wk−ak∇wf(wk,xk)
而上述等式就是SGD算法,因此可得SGD是一个特殊的RM算法,其收敛性自然随之而来,SGD的收敛性理论如下所示,这里不在证明,感兴趣的朋友们可以查阅相关资料。
4.4 SGD算法随机性分析
问题:SGD它是把GD当中的ture gradient用stochastic gradient来代替,由于stochastic gradient是随机的,那会不会造成SGD的收敛性也存在较大的随机性?下面给出推理过程。
我们通过考虑两者之间的相对误差(relative error)来回答这个问题,下面给出ture gradient和stochastic gradient之间相对误差的计算等式:
δ k = ⋅ ∣ ∇ w f ( w k , x k ) − E [ ∇ w f ( w k , X ) ] ∣ ∣ ∣ E [ ∇ w f ( w k , X ) ] ∣ \delta_k\stackrel{\mathrm{\cdot}}{=}\frac{|\nabla_wf(w_k,x_k)-\mathbb E[\nabla_wf(w_k,X)]||}{|\mathbb E[\nabla_wf(w_k,X)]|} δk=⋅∣E[∇wf(wk,X)]∣∣∇wf(wk,xk)−E[∇wf(wk,X)]∣∣
而,上面的等式可以被证明得到如下的等式的(这里不进行证明,只给出结论):
δ k ≤ ∣ ∇ w f ( w k , x k ) − E [ ∇ w f ( w k , X ) ] ∣ c ∣ w k − w ∗ ∣ \delta_k\leq\frac{|\nabla_wf(w_k,x_k)-\mathbb E[\nabla_wf(w_k,X)]|}{c|w_k-w^*|} δk≤c∣wk−w∗∣∣∇wf(wk,xk)−E[∇wf(wk,X)]∣
上面等式的含义是: δ k ≤ ∣ s t o c h a s t i c g r a d i e n t − t r u e g r a d i e n t ∣ w k 与 w ∗ 之间的距离 \delta_k\leq\frac{|stochastic \ gradient- true \ gradient|}{w_k与w^*之间的距离} δk≤wk与w∗之间的距离∣stochastic gradient−true gradient∣,因此我们就可以得到如下的结论:
一个例子去看SGD算法的收敛情况。

4.4 BGD、MBGD、SGD
4.4.1 算法介绍
假设我们有一个目标函数 J ( w ) = E [ f ( w , X ) ] J(w)=\mathbb E[f(w,X)] J(w)=E[f(w,X)],还有一组关于 X X X的采样 { x i } i = 1 n \{x_i\}_{i=1}^n {xi}i=1n,我们要用这样的数据去优化目标函数,有三种解法如下所示:
BGD: w k + 1 = w k − α k 1 n Σ n i = 1 ∇ w f ( w k , x i ) w_{k+1}=w_k-\alpha_k\frac{1}{n}\underset{i=1}{\overset{n}\Sigma}\nabla_wf(w_k,x_i) wk+1=wk−αkn1i=1Σn∇wf(wk,xi)
MBGD: w k + 1 = w k − α k 1 m Σ n j ∈ I k ∇ w f ( w k , x j ) w_{k+1}=w_k-\alpha_k\frac{1}{m}\underset{j\in I_k}{\overset{n}\Sigma}\nabla_wf(w_k,x_j) wk+1=wk−αkm1j∈IkΣn∇wf(wk,xj)
SGD: w k + 1 = w k − α k ∇ w f ( w k , x k ) w_{k+1}=w_k-\alpha_k\nabla_wf(w_k,x_k) wk+1=wk−αk∇wf(wk,xk)
4.4.2 算法异同点
- BGD中的B指的是batch,BGD每次都要用到n个所有的采样,然后在这个基础上求平均。
- MBGD(mini-bath)的意思是我不用所有的采样,我将所有的采样分成 I I I组,随机的从这 I I I组中选取一组进行计算,然后在这一组数上进行求平均。
- SGD就很简单了,我从n个采样中随机采样一个出来。
- 注意:从MBGD等式入手,当 m = 1 m=1 m=1时,MBGD=SGD;当 m = n m=n m=n时,MBGD ≠ \neq =BGD,虽然此时MBGD和BGD都用到了n个采样,但BGD用的是所有的n个采样,而MBGD是在n个采样中随机抽取的,因此对于MBGD而言会存在有的采样没有被抽到的可能性。
总结
内容小结
- RM算法公式: w k + 1 = w k − a k g ~ ( w k , η k ) , k = 1 , 2 , 3... w_{k+1}=w_k-a_k\tilde{g}(w_k,\eta_k), k=1,2,3... wk+1=wk−akg~(wk,ηk),k=1,2,3...
- GD算法公式: w k + 1 = w k − α k E [ ∇ w f ( w k , X ) ] w_{k+1}=w_k-\alpha_k\mathbb E[\nabla_wf(w_k,X)] wk+1=wk−αkE[∇wf(wk,X)]
- BGD算法公式: w k + 1 = w k − α k 1 n Σ n i = 1 ∇ w f ( w k , x i ) w_{k+1}=w_k-\alpha_k\frac{1}{n}\underset{i=1}{\overset{n}\Sigma}\nabla_wf(w_k,x_i) wk+1=wk−αkn1i=1Σn∇wf(wk,xi)
- SGD算法公式: w k + 1 = w k − α k ∇ w f ( w k , x k ) w_{k+1}=w_k-\alpha_k\nabla_wf(w_k,x_k) wk+1=wk−αk∇wf(wk,xk)
- MBGD算法公式: w k + 1 = w k − α k 1 m Σ n j ∈ I k ∇ w f ( w k , x j ) w_{k+1}=w_k-\alpha_k\frac{1}{m}\underset{j\in I_k}{\overset{n}\Sigma}\nabla_wf(w_k,x_j) wk+1=wk−αkm1j∈IkΣn∇wf(wk,xj)
参考资料
1、随机近似与随机梯度下降视频讲解
相关文章:
强化学习-随机近似与随机梯度下降
强化学习-数学理论 强化学习-基本概念强化学习-贝尔曼公式强化学习-贝尔曼最优公式强化学习-值迭代与策略迭代强化学习-蒙特卡洛方法强化学习-随机近似于随机梯度下降 文章目录 强化学习-数学理论一、前言二、再谈mean eatimation2.1 回顾蒙特卡洛法2.2 新角度解决求均值问题2…...
前端怎么排查幽灵依赖
“幽灵依赖”是指项目中实际使用但未在 package.json 中显式声明的依赖项。排查幽灵依赖可以帮助避免潜在的版本冲突和运行时错误。以下是排查幽灵依赖的几种常见方法: 使用 npm ls 或 yarn list 命令 运行 npm ls 或 yarn list 可以查看项目中安装的所有依赖及其依…...
分布式锁实现方案对比与最佳实践
目录 分布式锁的应用场景常见的锁实现方案Redisson实现分布式锁的最佳实践方案对比与选择建议 分布式锁的应用场景 在分布式系统中,常常需要控制对共享资源的访问。典型的应用场景包括: 缓存击穿防护:防止大量请求同时查询数据库库存扣减…...
从 XMLHttpRequest 到 Fetch:现代 Web 请求技术的演进
在现代 Web 开发中,与服务器进行数据交互是必不可少的一部分。无论是加载动态内容、提交表单数据,还是实现实时更新,都需要通过 HTTP 请求来完成。本文将介绍两种主流的 Web 请求技术:XMLHttpRequest 和 Fetch API,探讨…...
Linux纯命令行界面下SVN的简单使用教程
诸神缄默不语-个人技术博文与视频目录 我用的VSCode插件是这个: 可以在文件中用色块显示代码修改了什么地方,点击色块还可以显示修改内容。 文章目录 1. SVN安装2. checkout3. update1. 将文件加入版本控制 4. commit5. 查看SVN信息:info6.…...
python 初学攻略(上)
废话写在前面,后面都是干货,这个语言教学到处都是。我这里直接给你搞定所有要用的就好了。 环境安装(略) 输出函数print 转义字符 二进制与字符编码 标识符和保留字 变量的定义和使用 数据类型 整数类型 浮点类型 布尔类型 字符串…...
大语言模型 智能助手——既能生成自然语言回复,又能在必要时调用外部工具获取实时数据
示例代码: import json from langgraph.graph import Graph, END,StateGraph from langchain_core.utils.function_calling import convert_to_openai_function from langchain_community.tools.openweathermap import OpenWeatherMapQueryRun from langchain_core…...
人工智能开发面经AI、大数据、算法
以下是一份AI算法开发岗位的面试面经,结合最新行业趋势和经典问题,涵盖技术解析与实战案例,供参考: 一、机器学习基础(占比约30%) 1. 过拟合与欠拟合的解决方案 问题:如何解决模型过拟合&…...
计算机网络——子网掩码
一、子网掩码是什么?它长什么样? 子网掩码的定义 子网掩码是一个32位的二进制数字,与IP地址“配对使用”,用于标识IP地址中哪部分属于网络地址,哪部分属于主机地址。 示例:IP地址 192.168.1.10,…...
《基于大数据的相州镇新农村商务数据分析与研究》开题报告
目录 一、选题依据 1.选题背景 2.国内外研究现状与水平 (1)国外研究现状 (2)国内研究现状 3.发展趋势 4.研究意义 二、研究内容 1.学术构思与思路 (1)主要研究内容 (2)拟解决的关键问…...
Linux : 环境变量
目录 一 环境变量 1.基本概念 二 常见环境变量 三 查看环境变量的方法 1.env:查看系统中所有环境变量 2. echo $NAME 四 如何不带路径也能运行的自己的程序 1.将自己的程序直接添加到PATH指定的路径下 五 环境变量与本地变量 1.本地变量 2. 环境变量 六C、C中main()…...
SQL-labs13-16闯关记录
http://127.0.0.1/sqli-labs/less-13/ 基于POST单引号双注入变形 1,依然是一个登录框,POST型SQL注入 2,挂上burpsuite,然后抓取请求,构造请求判断漏洞类型和闭合条件 admin 发生了报错,根据提示闭合方式是(…...
2025-03-04 学习记录--C/C++-PTA 习题5-4 使用函数求素数和
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 二、代码(C语言)⭐️ #include <stdio.h>// 函数声明:判断一个数是…...
Mybatis-Plus 插件机制与自定义插件实现
1. Mybatis-Plus 插件系统概述 Mybatis-Plus 提供了一个简单而强大的插件机制,允许开发者在 MyBatis 执行 SQL 的过程中插入自定义逻辑。通过插件机制,用户可以实现对 SQL 执行过程的拦截和修改。Mybatis-Plus 插件基于 MyBatis 的拦截器模式进行实现&a…...
Virtuose 6D TAO HF力反馈系统:加强力遥操作主手
Virtuose 6D TAO是一款搭载六主动自由度的力反馈设备,该产品自带被动式夹持器,工作空间大,可与EtherCAT接口通信,是轻松控制从机械臂的首选产品,特别适合工业遥操作、核工业遥操作等应用。 产品特点 ▪ 六主动自由度、…...
使用AI后为什么思考会变得困难?
使用AI后为什么思考会变得困难? 我总结了四篇近期的研究论文,来展示AI是如何以及为什么侵蚀我们的批判性思维能力。 作者使用AI制作的图像 前言:作者在这篇文章中,借AI技术的崛起,揭示了一场悄然发生的思想博弈。表面…...
【Resis实战分析】Redis问题导致页面timeout知识点分析
事故现象:前端页面返回timeout 事故回溯总结一句话: (1)因为大KEY调用量,随着白天自然流量趋势增长而增长,最终在业务高峰最高点期占满带宽使用100%。   (2&#x…...
【金融量化】Ptrade中交易环境支持的业务类型
1. 普通股票买卖 • 特点: 普通股票买卖是最基础的交易形式,投资者通过买入和卖出上市公司的股票来获取收益。 ◦ 流动性高:股票市场交易活跃,买卖方便。 ◦ 收益来源多样:包括股价上涨的资本利得和公司分红。 ◦ 风险…...
FlashMLA(DeepSeek开源周,第一个框架):含源码分析
1. 概述 FlashMLA 是由 DeepSeek 原创开发的一种深度学习框架,专门用于加速多头注意力机制(MLA)架构的推理过程。它通过优化内存管理和计算效率,显著提升了模型在高性能 GPU 上的推理速度。FlashMLA 主要适用于 DeepSeek 的架构模…...
点大商城V2-2.6.6.1全能版源码+最新排队免单插件功能
一.介绍 点大商城V2独立开源版本,版本更新至2.6.6,系统支持多端,前端为UNiapp,多端编译。 二.安装环境: Nginx 1.22PHP7.3MySQL 5.7 推荐PHP 7.3(不得大于此版本,否则容易出bug) …...
行为模式---命令模式
概念 命令模式是一种行为设计模式,它的核心思想就是将请求封装为一个对象,此对象包含与请求相关的所有信息。可以用不同的请求对客户进行参数化。命令模式通过将请求的发送者和接收者解耦,支持请求的排队、记录、撤销等操作。 使用场景 1、…...
Graph RAG 迎来记忆革命:“海马体”机制让问答更精准!
随着生成式 AI 技术的快速发展,RAG(Retrieval-Augmented Generation)和 Agent 成为企业应用大模型的最直接途径。然而,传统的 RAG 系统在准确性和动态学习能力上存在明显不足,尤其是在处理复杂上下文和关联性任务时表现不佳。近期,一篇论文提出了 HippoRAG 2,这一新型 R…...
Linux——基本指令
我们今天学习Linux最基础的指令 ls 指令 语法: ls [选项] [⽬录或⽂件] 功能:对于⽬录,该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件,将列出⽂件名以及其他信 息。 命令中的选项,一次可以传递多个 ,…...
【C++】模板编程入门指南:零基础掌握泛型编程核心(初阶)
文章目录 一、泛型编程二、函数模板1. 函数模板的概念和格式2. 函数模板的原理3. 函数模板的实例化隐式实例化显式实例化 三、类模板 一、泛型编程 泛型编程就是编写与类型无关的通用代码,是代码复用的一种手段,模板是泛型编程的基础,可能不太…...
React实现lottie文件预览(可识别json文件或压缩包带资源的素材)
React实现lottie文件预览(可识别json文件或压缩包带资源的素材) 🔴 1、React实现lottie文件预览,所用到的第三方库 🟢 1.1、 react-lottie jszip-syncnpm install react-lottie jszip-sync // 或者yarn add react-…...
网上打印平台哪个好用?网上打印资料推荐
网上打印平台哪个好用 随着数字化办公的普及,网上打印平台因其便捷性和经济性而受到越来越多人的青睐。无论是学生、上班族还是个人用户,在需要快速打印资料时,一个好用的在线打印服务可以大大节省时间和成本。 那么,如何选择一…...
Mac远程桌面软件哪个好用?
远程桌面软件能帮助我们快速的远程控制另一台电脑,从而提供远程帮助,或者进行远程办公。那么,对macOS系统有什么好用的Mac远程桌面软件呢? 远程看看是一款操作简单、界面简洁的远程桌面软件,支持跨平台操作࿰…...
【回溯 力扣】17. 电话号码的字母组合
题目 17. 电话号码的字母组合 思路 定义数组存储数字对应的字符串,本题回溯时为index1,因为下一个数字选的是下一个字符串,前两题都是属于同一个字符串。 代码 class Solution { private:vector<string>result;string duiying[10]{"&quo…...
【基础1】冒泡排序
核心思想 冒泡排序是通过相邻元素的连续比较和交换,使得较大的元素逐渐"浮"到数组的末尾,如同水中气泡上浮的过程 特点: 每轮遍历将最大的未排序元素移动到正确位置稳定排序:相等元素的相对位置保持不变原地排序…...
C#—Settings配置详解
C#—Settings配置详解 在C#项目中,全局配置通常指的是应用程序的设置(settings),这些设置可以跨多个类或组件使用,并且通常用于存储应用程序的配置信息,如数据库连接字符串、用户偏好设置等。 Settings配置…...





