SGD中梯度期望等于GD的梯度证明

知乎大佬那边学习到,这边做下笔记!

训练集X=\left\{\left(x_{1}, y_{i}\right),\left(x_{2}, y_{2}\right), \ldots,\left(x_{n}, y_{n}\right)\right\}  ,学习算法 f ,损失函数是J(X)=\frac{1}{n} \sum_{i=1}^{n} \operatorname{Loss}\left(f\left(x_{i}\right), y_{i}\right)

对上述式子求梯度:

\nabla J(X)=\frac{1}{n} \sum_{i=1}^{n} \nabla \operatorname{Loss}\left(f\left(x_{i}\right), y_{i}\right)

我们想证明使用SGD(随机梯度下降)算法求得的梯度,它的期望等于使用梯度下降求得的梯度。(注意:这里的SGD是广义上的SGD,包括了batch_size=1的随机梯度下降以及mini-batch梯度下降算法)

不妨设SGD中batch_size为m,即证明 :

E\left[\frac{1}{m} \sum_{i=1}^{m} \nabla \operatorname{Loss}\left(f\left(x_{i}\right), y_{i}\right)\right]=\nabla J(X)

根据期望的一个公式;E[X+Y]=E[X]+E[Y] 我们易得到:

\begin{array}{l} E\left[\frac{1}{m} \sum_{i=1}^{m} \nabla \operatorname{Loss}\left(f\left(x_{i}\right), y_{i}\right)\right] \\ \end{array}

\begin{array}{l} =\frac{1}{m} \sum_{i=1}^{m} E\left[\nabla \operatorname{Loss}\left(f\left(x_{i}\right), y_{i}\right)\right] \end{array}

在根据期望的定义:

E[X]=\sum_{x} x \cdot P(X=x)

在SGD中,由于每个样本都是从训练集中随机选择,所以每个样本被选择的概率均为 1/n 可得

E\left[\nabla \operatorname{Loss}\left(f\left(x_{i}\right), y_{i}\right)\right]=\sum_{j=1}^{n} P(i=j) \cdot \nabla \operatorname{Loss}\left(f\left(x_{j}\right), y_{j}\right)

其中P(i=j)=\frac{1}{n},因此

E\left[\nabla \operatorname{Loss}\left(f\left(x_{i}\right), y_{i}\right)\right]=\frac{1}{n} \sum_{j=1}^{n} \cdot \nabla \operatorname{Loss}\left(f\left(x_{j}\right), y_{j}\right)=\nabla J(X)

由此可以继续推的:

E\left[\frac{1}{m} \sum_{i=1}^{m} \nabla \operatorname{Loss}\left(f\left(x_{i}\right), y_{i}\right)\right]

=\frac{1}{m} \sum_{i=1}^{m} E\left[\nabla \operatorname{Loss}\left(f\left(x_{i}\right), y_{i}\right)\right]

=\frac{1}{m} \sum_{i=1}^{m} \nabla J(X)

=\nabla J(X)

证毕!SGD中梯度期望等于GD的梯度证明!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值