Sparsified SGD with Memory 论文阅读
1 Introduction
随机梯度下降算法(SGD)的迭代过程为:
其中gt\mathbf{g}_tgt是对于梯度的无偏估计,即E[gt]=∇f(xt)\mathbb{E}[\mathbf{g}_t]=\nabla f(\mathbf{x}_t)E[gt]=∇f(xt).SGD算法可以加快计算的过程,但无法加快通信过程.在分布式机器学习环境中,通信问题是限制其发展的关键因素.
为了解决这个问题,可以对求解出来的梯度进行压缩操作,使用comp(g)comp(\mathbf{g})comp(g)来代替g\mathbf{g}g.然而压缩操作可能会影响训练的模型性能,为了避免这种情况,在本文中,我们将误差累积的机制应用于SGD中.大概来讲,在我们的压缩算法中,我们应用了一个内存向量m\mathbf{m}m来缓存被压缩的数据,即mt+1=mt+gt−comp(gt)\mathbf{m}_{t+1}=\mathbf{m}_{t}+\mathbf{g}_t-comp(\mathbf{g}_t)mt+1=mt+gt−comp(gt),并将这部分数据应用于下一次的迭代中,即下一次压缩数据为comp(gt+1+mt+1)comp(\mathbf{g}_{t+1}+\mathbf{m}_{t+1})comp(gt+1+mt+1).需要注意的是,使用了压缩技术后对于梯度的估计仍然是无偏的.
我们首先考虑需要进行优化的问题为:
其中fif_ifi为L−L-L−平滑,fff为μ−\mu-μ−强凸,我们考虑了一种具有误差累积技术的序列稀疏SGD算法和为k−k-k−压缩操作提供收敛.通过选择合适的学习率后,我们可以得到的收敛率为
其中κ=L/μ,G2≥E∣∣∇fi(xt)∣∣2\kappa=L/\mu,G^2\ge \mathbb{E}||\nabla f_i(\mathbf{x}_t)||^2κ=L/μ,G2≥E∣∣∇fi(xt)∣∣2.
2 SGD with Memory
2.1 压缩和稀疏化操作
我们考虑满足以下压缩性质的压缩算符:
下面两个操作是具有k-稀疏向量附加性质的k-收缩操作的例子:
2.2 无偏更新的方差放大
我们首先考虑如下的SGD算法的变体,其中有(d−kd-kd−k)个随机坐标会被丢弃
上式的中更新是无偏的,即Egt=∇f(x)\mathbb{E}\ \mathbf{g}_t=\nabla f(\mathbf{x})E gt=∇f(x).通过选择合适的学习率,这个算法可以对强凸和平滑的函数fff实现O(σ2/t)O(\sigma^2/t)O(σ2/t)的收敛率,其中σ2\sigma^2σ2为方差的上界,即
其中我们使用了标准假设Ei∣∣∇fi(x)∣∣2≤G2\mathbb{E}_i||\nabla f_i(\mathbf{x})||^2\le G^2Ei∣∣∇fi(x)∣∣2≤G2.
我们知道通过使用小批量梯度下降可以减少方差,因此我们可以假设公式(6)中的梯度计算为
通过这样计算,我们可以得到的方差为
2.3 SGD withMemory:算法及收敛分析
我们定义下述的算法,该算法满足之前的Difinition 2.1,
其伪代码如算法1所示.
关于算法1的收敛性如以下定理所述.
3 相关证明
我们首先构建一个虚拟序列{xt~}t>0\{\tilde{x_t}\}_{t>0}{xt~}t>0,定义如下:
因此我们可以得到:
证明:根据公式(11)的定义可以得到:
对上式进行期望求解可以得到:
为了对上式的第三项进行限定,根据函数的强凸性可以得到:
根据∣∣a+b∣∣2≤2∣∣a∣∣2+2∣∣b∣∣2||\mathbf{a}+\mathbf{b}||^2\le2||\mathbf{a}||^2+2||\mathbf{b}||^2∣∣a+b∣∣2≤2∣∣a∣∣2+2∣∣b∣∣2,可以得到:
上述不等式可以通过∣∣x~t−x∗∣∣2≤2∣∣xt−x~t∣∣2+2∣∣xt−x∗∣∣2||\tilde{x}_t-x^*||^2\le 2||x_t-\tilde{x}_t||^2+2||x_t-x^*||^2∣∣x~t−x∗∣∣2≤2∣∣xt−x~t∣∣2+2∣∣xt−x∗∣∣2得到.
将上述的两个不等式应用于公式(23)中可以得到:
接下来根据平滑性质来估计最后一项,即:
将其于(26)结合可以得到:
故得证.
根据公式(13)我们可以知道,接下来我们需要对E∣∣mt∣∣2\mathbb{E}||\mathbf{m}_t||^2E∣∣mt∣∣2进行限制,结果如下:
证明:根据
可以得到:
根据
我们可以得到
Sparsified SGD with Memory 论文阅读相关推荐
- Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling论文阅读
<Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling& ...
- 论文阅读:Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour
论文阅读:Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour 论文地址: https://arxiv.org/pdf/1706.026 ...
- 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》
深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...
- 深度学习论文阅读图像分类篇(三):VGGNet《Very Deep Convolutional Networks for Large-Scale Image Recognition》
深度学习论文阅读图像分类篇(三):VGGNet<Very Deep Convolutional Networks for Large-Scale Image Recognition> Ab ...
- 深度学习论文阅读目标检测篇(三):Faster R-CNN《 Towards Real-Time Object Detection with Region Proposal Networks》
深度学习论文阅读目标检测篇(三):Faster R-CNN< Towards Real-Time Object Detection with Region Proposal Networks&g ...
- 深度学习论文阅读图像分类篇(五):ResNet《Deep Residual Learning for Image Recognition》
深度学习论文阅读图像分类篇(五):ResNet<Deep Residual Learning for Image Recognition> Abstract 摘要 1. Introduct ...
- 论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning
论文阅读笔记:Improving Attacks on Speck32 / 64 using Deep Learning 本文通过神经网络利用了减少轮数的 Speck 的差分性质.为此,作者对神经网络 ...
- 深度学习论文阅读目标检测篇(二):Fast R-CNN《Fast R-CNN》
深度学习论文阅读目标检测篇(二):Fast R-CNN<Fast R-CNN> Abstract 摘要 1. Introduction 引言 1.1 RCNN and SPPnet 1.2 ...
- [论文阅读] (06) 万字详解什么是生成对抗网络GAN?经典论文及案例普及
<娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...
- 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](1)
[论文阅读]Learning Traffic as Images: A Deep Convolutional Neural Network for Large-Scale Transportation ...
最新文章
- oracle hot patch david,Oracle EBS使用adpatch工具打patch过程(hotpatch mode)
- 数据结构--数组队列的实现
- Ubuntu 16.04下Caffe-SSD的应用(八)——处理标注好的VOC2007数据集
- 对于当下国产CPU如火如荼有感
- 软件工程之项目管理核心框架
- Grafana教程(prometheus 基本查询语法,alerting报警)
- 周育如的音标口诀大全_音标记忆顺口溜(48个),快速记忆音标口诀!
- 百度网盘等相关百度产品账号不存在问题
- 阿里云个人网站备案流程
- linux批量对文件改名,在Linux中对文件进行批量重命名文件的方法
- 使用谷歌身份验证器(Google Authenticator)保护你的后台
- 中科大校友一次意外事故,造就了让3000万人摘掉眼镜的手术
- 【个人学习笔记】概率论与数理统计知识梳理【一】
- week4 day3/4 常用模块
- 靶机渗透练习67-Looz
- [课堂大数据] 苏格拉底教学分析系统
- 数据报表对企业运营有什么意义?
- js实现a标签点击下载图片和txt等文件,而不是浏览器打开预览
- java 操作IP工具类(子网、地址等)
- 关于网线水晶头的接法详解(1)