count sketch

                               关于FetchSGD的全过程

背景

1.错误累积
在FetchSGD中用到的错误累积算法主要来源于[1].
在这里插入图片描述仅基于梯度的每个坐标的符号进行更新的方法在训练深度学习模型中非常受欢迎,但是如果不管梯度的符号直接进行压缩,将会造成误差。于是,在本文中,将压缩操作符所造成的错误合并到下一步中,可以解决压缩操作符不收敛及其推广的问题。
上图执行过程:(1)用梯度范数来缩放有符号的向量(这里使用梯度的一范数)(2)局部存储实际梯度和压缩梯度之间的差异(3)将它添回到下一步中,这样就不会改变其正确方向。
2.动量
使用SGD训练参数时,有时候下降的非常慢,有时候甚至会陷入局部最小值,动量的引入就是为了加快学习过程。动量的主要思想是积累了之前梯度指数级衰减的移动平均。(https://blog.csdn.net/u012328159/article/details/80311892)
在这里插入图片描述
3.Count sketch算法
在这里插入图片描述
在这里插入图片描述

创建长度为h个w维的数组。h代表两两独立的哈希函数(是指b个事件中的两个事件P(AB)=P(A)P(B),但是P(ABC)不一定等于P(A)P(B)P©,g代表的是哈希函数映射到{-1,+1},并且是均匀随机的分配在输入域上的。g函数的出现是为了减少冲突。(冲突是是如何产生的,比如说由于w是有限的,不同的值通过哈希函数,可能会映射到相同的位置上,这样就会使元素的出现频率变大。count Min sketch就使用直接加的方式,会导致查询元素的频率变大,因此选择出现频率最小的次数返回,这样可以减少误差。而count sketch中引入了g函数的使用,可以减少不同的值通过hash函数映射到相同的位置的冲突,因为输入域上的g函数可能使-1,因此可以减少冲突)。除此之外,count sketch算法具有线性特征。假设S可以表示count sketch算法,则a1,a2表示元素。则会产生S(a1+a2)=S(a1)+S(a2)。那么如何将count sketch用到梯度中呢,(一个模型应该上传的是一个count sketch)一个模型的多组梯度向量可以合并成一组梯度向量,例如<1,4,3,8,7,5,9>则将向量中的每个坐标映射到count sketch中相同的位置,一个模型应该使用的是同一个count sketch表,因此使用的是相同的一系列的hash函数。(不懂的话,可以看一下count min sketch算法的代码https://blog.csdn.net/admondchen/article/details/121694680)
其中意思差不多。

count sketch
我们主要的兴趣是去寻找梯度向量的频繁项,频繁项草图起源于流模型,为什么可以将梯度作为数据流呢,因为在每次批量训练的时候(梯度是一个向量),梯度都会进行更新。

sparsify gradient(unbiased)
在大部分场景应用中,神经网络模型的梯度往往呈现稀疏性(大部分值为零),如下图所示(鸢尾花数据集迭代20000次梯度分布图)也就意味着,我们在更新时,只有部分权值W进行更新,大部分的权值更新要么更新变化不大,要么不进行更新。所以我们可以只选用最大的k个梯度值进行传输更新,而其他的梯度我们认为是零。所以代表性的方法是只取出梯度值中的Topk来进行权值更新,提高速度,减少损耗(reduction)
原文链接:https://blog.csdn.net/qq_53072706/article/details/121379285

Heavy MIX算法

在这里插入图片描述
这个算法是要从上传的草图中恢复频繁项

创新点:我可以每次都将频率较小的梯度留在本地,每次使用top-k算法选择最大的梯度上传到中央服务器,这样也可以不用携带误差累积,并且也减少了通信量。(产生的问题:为什么不直接使用top-k呢,)

网络层中的特征变化有利于我们进行不同的任务,一般来说网络层数越浅,特征的维度也越低,特征所表现出的信息越细节,覆盖越局部,内容也越具体。反之,网络层数越深,特征维度也越高,特性表现出的信息也越整体,覆盖越全面,内容也越抽象。

创新点:自适应选择层:当前由于教师网络和学生网络之间层数的不一致,

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值