论文笔记: Extremely Low Bit Neural Network: Squeeze the Last Bit Out with ADMM

读了AAAI18年发表的《Extremely Low Bit Neural Network: Squeeze the Last Bit Out with ADMM》这篇论文,收获很大。这篇论文是阿里Rong Jin团队(现在是达摩院机器智能研究团队)的论文,金榕是CMU的博士,曾任密歇根州立大学终身教授,15年到阿里。第一作者是Cong Leng。

文章把神经网络的量化问题看成是一个优化问题,使用了ADMM方法把不连续的量化和连续的参数优化分开来解,避免了采用STE方法中因为前向和反向使用的weight不是不同所导致的不稳定,采用ADMM方法量化后的效果很好。

方法

N-bit的对称量化的问题formulate为:
$$\min_{W} f(W,X)\quad s.t.\quad W \in C= \{ -2^{N-1}-1,…,-1,0,1,…,2^{N-1} \} $$
在训练的时候,需要给每一层的$W_i$乘上一个scaling factor $\alpha_i$,C就变成$C=C_1\times C_2 \times … \times C_L$
定义一个指示函数$I_C(W)$,当$W \in C$等于0,否则为正无穷。问题可以转化为:
$$\min_{W} f(W)+I_C(W)$$
引入一个辅助变量 G,问题转化为:
$$\min_{W,G} f(W)+I_C(G)\quad s.t. W=G$$
这个问题就是ADMM需要的形式了,引入拉格朗日乘子$\mu \in R^d$,其增广拉格朗日方程为:
$$L_\rho (W,G,\mu)=f(W)+I_C(G)+\rho/2||W-G||^2+\mu^T(W-G)$$
对朗格朗日乘子进行变量变换$\lambda=(1/\rho)\mu$,得到
$$L_\rho (W,G,\mu)=f(W)+I_C(G)+\rho/2||W-G+\lambda||^2-\rho/2||\lambda||^2$$
就可以轮流迭代的解下面三个方程来得到量化后的权重G:
$$W^{k+1}:=\arg\min_{W}L_\rho(W,G^k,\lambda^k)$$
$$G^{k+1}:=\arg\min_G L_\rho (W^{k+1},G,\lambda^k)$$
$$\lambda^{k+1}:=\lambda^k+W^{k+1}-G^{k+1}$$

第一个问题:排除不变的变量,等价于优化:
$$\arg\min_{W} f(W)+\rho/2||W-G+\lambda||^2$$
相当于一个神经网络训练,加上一个特殊的正则化因子

第二个问题:排除不变的变量,等价于优化:
$$\arg\min_{G} I_C(G)+\rho/2||W-G+\lambda||^2$$
进一步转化为:
$$\arg\min_{G}||W+\lambda-G||^2 s.t. G\in C$$
就是一个最小化量化到$W+\lambda$的误差的问题,论文对每一层单独解,使用5次交替优化$\alpha$和$Q$

结果

  • 在resnet-50上,binary 比BWN高了5个点,到了68.7%的top1;ternary比TWN高了7个点,到了72.5%的top1
  • 在VOC2007上,Darkent+SSD ternary到了60.9,低了3个点;VGG16+SSD ternary到了76.2mAP,低了2个点
    • 1x1卷积超低bit量化对网络的性能有较大影响,如果使用8bit,darknet在ternary下降2个点

评价

这篇论文第一次把ADMM方法引入进超低bit的神经网络量化中来,取得了非常不错的效果。也第一次把object detection做了超低bit的量化,并且分析到了1x1卷积的作用,整个文章非常solid,很有实用性。但文章并没有分析为什么ADMM就能很好地用在这种非凸优化的量化任务上来;为什么STE的方法就不稳定了,如果提升稳定性的STE能比得过ADMM吗?对activation的量化也没有做,后续应该有相应的工作值得调研。

魔法师英语语法笔记(2) 复句合句

距离笔记(1)已经有快3个月了终于有时间填坑了,介绍一下复句/合句的结构,也就是如何把两个简单句写到一起。

复句Complex Sentence 有从句+主句的结构,从句是把一个句子改造成名词、形容词、副词类,放到主句中。

合句Compound Sentence 就是两个平等、对称的简单句,中间and, but, or连接。

名词从句

特点

  • 前面加that,从句完整
  • 放在主句名词位置(主语、宾语、补语、同位语)充当名词

主语位置

  • Something is strange.
  • That he didn’t show up on time is strange.
  • It is strange that he didn’t show up on time.
    • 主语很长的时候,一般用It虚词
  • 不能省that

宾语位置

  • The defendant said that he didn’t do it.
  • 能省that,还要看省略后意思是不是清楚
  • 介词短语里做宾语
    • This is decided by whether the tumor is malignant or not.
    • 介词后面不能用连接词,可以用whether(which代名词 + either)

补语位置(补语就是和主语同等)

  • The important thing is that we’re all right.
  • 能省that

同位语位置

  • 实际上是形容词从句简化
  • The stroy that he once killed a man might just be true.
  • I am afraid that I can’t help you. 其实是I am afraid the thing that I can’t help you的省略

疑问句改装

  • I know who you are. 改成非疑问句
  • Babylon is what is now Baghdad. 名词性,不能用where
  • I can’t tell whether/if he’s telling the truth or not.
    • 注意,做主语只能用whether

副词从句

特点

  • 从句完整
  • 修饰主句中的动词,表逻辑关系。
  • 比较简单,只需关注从属连接词的意义

从属连接词

  • 原因、结果
    • because: because he needs the money, he works hard.
    • now that: There’s nothing to worry about, now that father is back.
    • so <adj.> that: He looked so sincere that no one doubted his story. 表示结果,形容词导致的结果。
    • so that: The mother locked the door from the outside, so that the kids couldn’t get out when they saw fire.
  • 目的
    • so that: The mother locked the door so that the kids wouldn’t swallow any by mistake.
    • in order that:
    • lest: I’ve underlined the key points, lest you miss them. 以免(反向的目的)
    • in case: You’d better bring more money, in case you should need it. 万一
  • 让步
    • though: The witness said this, though he didn’t really see it.
    • although
    • while
  • Wh-系列,不论
    • Whether= no matter
    • Whoever= no matter who
    • However= no matter how
    • Whichever
    • Wherever
    • Whenever
  • 限制
    • As far as: As far as money is concerned, you needn’t worry. 在xx方面
    • in that: == in the sense that 某种意义来说 Picasso was a revolutionary in that he broke all traditions.意义加限制,不是真的革命
  • 方法、状态
    • as: He played the piano as Horowitz would have. 如何弹,像xxx
    • as if: He writes as if he is left handed.
  • 条件
    • if: If he calls, I’ll say you’re sleeping
    • as long as: He won’t have it his way, as long as I’m here. 前面是一个祈使句,让这件事情按他的方式发生
    • suppose: Suppose you were ill, where would you go?
  • 时间、地点
    • after
    • until
    • when
    • where

论文笔记: A regularization method for convolutional networks

这篇是Google Brain的Quec V.Le组是发表在NeurIPS 2018的论文《A regularization method for convolutional networks》。文章的第一作者是Golnaz Ghiasi(匈牙利或者瑞典),2011-2016加利福尼亚大学欧文分校(UCI)博士,第二作者是Tsung-Yi Lin,2009本科毕业于国立台湾大学,2017年博士毕业于康奈尔,现Google高级研究员(Senior Research Scientist)。

文章介绍了一种针对卷积的dropout方法,克服了普通的dropout因为稀疏性在卷积上依然传递空间信息的问题。该方法直接把feature map上的一些连续的空间块(block)设为0。

方法

  • BN层后面加
  • 训练阶段,从(block_size, w-block_size)这些区域里面选择sample mask,概率为γ
  • 以block_size扩张mask
  • 把feature map乘以mask

block_size和γ的选择

  • block_size实验选7号
  • γ根据keep_prob来计算,keep_prob从高到低线性降到0.9

结果

  • resnet50可以涨1.6个点
  • RetinaNet在COCO可以涨1.6个点
  • 不同resolution的层来做实验,可能是越大的resolution这个最佳block_size越高
  • 从CAM上来看,可以增加空间上更分散的表达

评价

非常简单易行的一个方法,增加空间上更分散的表达是一个很重要的点,期待后面有人可以分析一下。可以看到keep_prob其实比较高,说明每个层去掉的东西不多。不太能用来减少计算量,另外这个Dropblock加到哪里,其实没有讲清楚。

论文笔记: Designing Network Design Spaces

读了一篇FAIR何凯明组刚发的论文《Designing Network Design Spaces》,作者全都来自于Facebook AI Research(FAIR),包括大名鼎鼎的Ross Girshick、Piotr Dollár和Kaiming He组合,一作是伯克利的Ph.D Ilija Radosavovic(可能是斯拉夫人名)。

这篇文章通过对网络设计空间中的模型进行分析,找到好模型的规律,手工缩小设计空间,再从缩小的设计空间中找到更小的设计空间,一步步对设计空间进行设计。最后发现了一个好模型的空间,这个空间里的模型可以由量化的线性函数确定每个block的widths和depths。

方法

初始设计空间

  • AnyNet:类ResNet的Block,每个block有4个自由度(width w, numbers of blocks d, group size(中间层是group conv) g, bottleneck ratio r)
  • 输入224x224,4个blocks,和ResNet一样的stride
  • 自由度是power of 2,(空间大小2e18)

不使用NAS,使用grid search

  • 每次从设计空间随机sample 500 models进行训练10epochs
  • 画EDF(Error distribution function)图片(x轴是error,y轴是probability,类似于ROC曲线),可以直观地看到一个搜索空间的好坏,便于比较
  • 另外一个参考指标是自由度-error 散点图,可以看到不同的自由度下面error的趋势
  • 对于网络大小的参考指标是 flops-自由度,然后把good models的区域标志出来,然后画出均值曲线
  • 好坏网络分别的 block_index-自由度 或者 自由度1-自由度2 曲线

人工优化搜索空间的目标

  • 简化搜索空间的结构
  • 提升或者保持空间的模型表现
  • 保持model的diversity
  • 可解释性

优化路径

  • AnyNetXB: shared bottleneck ratio:不同blocks共享(EDF没变化,7e16)
  • AnyNetXC: shared groups (EDF没变化 3e14)
  • AnyNetXD: $w_{i+1}>=w_{i}$ (EDF变好 1e13)
  • AnyNetXE: $d_{i+1}>=d_{i}$ 5e11
  • RegNet: quantized linear$u_j=w_0+w_a\cdot j for 0<=j<=d$,然后用一个分段函数(因为一个stage w是一样的)去近似它,让拟合误差$e_fit$小 3e8

设计hint

  • 最好网络的depth是稳定的,大概是20blocks(60 layers),不是说层数越高越好
  • 最好的网络bottleneck 1.0最好(没有bottleneck)
  • width multiplier $w_m$约2.5
  • (g,w_a,w_0)随着计算复杂度增加增加

效果

  • REGNETX-600MF top1error 25.9%
  • REGNETY-600MF top1error 24.5%(加了SE)

评价

一开看这篇文章的时候,还不是非常理解为什么有这么好的NAS算法之后还要对设计空间进行设计,难道我们不就是想找一个最优的网络吗?直接NAS不就好了?看完论文才发现,可解释性是多么的重要,神经网络不是玄学,网络的设计也不是玄学,通过一步步的优化搜索空间,我们才能直观地了解到怎样设计网络才是好的,为未来的设计提供指导性的思想。神经网络的设计也是(EDF好的才算好的)。人工优化搜索空间的四个目标是另一个需要业界注意的问题。这篇文章最让我受益匪浅的是它的方法学,在多目标优化的情况下怎么分解成一个个的小问题。还是有一些毛病:RegNet的quantize方法不是很优美、后面解释alternate design choice的时候224x224放大之类的问题不是很solid。

论文笔记: Towards Accurate and High-Speed Spiking Neuromorphic Systems with Data Quantization-Aware Deep Networks

这篇是发表在DAC2018的论文《Towards Accurate and High-Speed Spiking Neuromorphic Systems with Data Quantization-Aware Deep Networks》,作者是克拉克森大学(Clarkson University)的Fuqiang Liu和Chenchen Liu,Chenchen Liu本科毕业于陕西科技大学,硕士北京大学,博士比兹堡大学,现在是克拉克森大学的Assistant professor。

文章解决SNN网络的浮点运算与实际硬件计算需要更低的bit数目的gap。实际硬件(如忆阻器)一般使用3-4bit的weight数据表示,然后inter-layer signals越大,能量消耗越大,因此作者将网络中的Activation(文中叫inter-layer signals)与Weight按照实际需求的3-4bit去量化,然后在部署实际硬件中测试性能。

方法

Neuron Convergence

  • 在activation的两端加带权值的L1正则化,让activation绝对值尽量不超过$2^{k-1}$
    • 在activation绝对值超过$2^{k-1}$给予更大的惩罚
  • 数值分布上启发式分析了这样做的error

Weight Clustering

  • 实际上就是weight的量化,最小化量化损失
    • 假定了weight [-1,1]
  • 采用了k-nearest,虽然说也能做到,但是这样做太浪费资源了

实验

  • 在Lenet Alexnet ResNet这几个网络和MNIST和CIFAR10数据集上测试
  • 使用了忆阻器硬件,32x32的crossbar
  • 4bit ResNet18 降低3%的精度
  • 和8-bit进行比较,能减少90%以上的能耗和30%-40%的Area开销

评价

分析到SNN网络与实际硬件之间的gap这点很有意义。但是提出的方法没有什么创新点,并且实验也是很多漏洞的。比如没有考虑有关Spiking造成的误差,另外也没有考虑BN层和Pooling层的处理。这方面的需要更多的研究,是一个机会。

论文笔记: HAQ: Hardware-Aware Automated Quantization with Mixed Precision

这篇是MIT韩松组发表在CVPR2019的论文《HAQ: Hardware-Aware Automated Quantization with Mixed Precision》,第一作者是韩松组的Kuan Wang,清华毕业。

文章提出使用NAS去搜索NN网络中不同layers的最佳quantization bit-width,并且根据实际的硬件给出的表现来作为reward。

方法

算法

  • 描述成一个寻找特定constraint (Latency/Energy)下的最小accuracy degradation的网络问题
  • weight和activation使用不同的量化bit-width
    • 线性量化
    • 分布KL散度最小化求区间 $c=\arg\min_{x} D_{KL}(W_k || quantize(W_k, a_k, x))$
  • 使用RL
    • input是前一层的action+这一层的参数
    • action space使用的continuous的
    • reward只考虑accuracy下降 $\lambda \times (acc-acc_{original})$
    • 如果达不到constraint,所有层等量降低bit-width
    • DDPG优化

硬件

  • 使用了Cloud(batch-size大)和Edge的两种场景
  • 使用了两种硬件做测评原则
    • 时间维度复用硬件BISMO
    • 空间维度组合硬件BitFusion

结果分析

  • 只做了MobileNet V1和V2
    • 发现V2还比V1差
  • 根据roofline model分析
    • edge
      • depthwise的卷积是memory bound,因此分配更少的bit-width给activation
      • pointwise的卷积是computation bound,多分配
    • cloud
      • pointwise layer 更少的bitwidth

评价

CVPR2019的oral,文章算法写得非常清晰,结果也不错,韩松用NAS这一套可谓是轻车熟路。但是后面结果分析就很不清楚,edge和cloud不是很能让人信服。看完还是有很多疑问的:为什么不用classification这个很奇怪,可以把结果放出来看看;为什么不用联合reward;最后出来的cloud和edge相差有点大,让人摸不着头脑;为什么Mobilenet V1比V2好。可以从Hardware和Software联合优化的角度去看这个问题,硬件如何去设计完全可以根据算法的结果去优化,这个方面可以探讨的问题还挺多的。

论文笔记: Training and inference with integers in deep neural networks

这篇是清华施路平、李国齐组发表在2018年ICLR的论文《Training and inference with integers in deep neural networks》,引用量已有126。第一作者是博士生吴双;李国齐是清华副教授,去年一次智源会上有一面之缘,当时记得报告了SNN的训练算法;施路平是清华大学类脑计算中心主任,研究领域包括类脑计算、智能仪器,半导体非易失性存储器、光存储、集成光电子学、自旋电子学、纳米科学与技术等。

文章探讨了量化算法在神经网络训练过程中的应用问题,指出之前的量化工作的训练过程都有浮点数的存在。这篇论文提出将所有的数据和计算(包括反向传播activation和weight的gradient)都量化,从而能在不带浮点运算单元的硬件上使用。但是这样做的代价是比较大的,在ImageNet的top-5 accuracy上有4-8个点的损失。

方法

分析了神经网络训练过程需要四种数据 weights (W), activations (A), weight gradients (G) and activation errors (E),之前的工作如DoReFa-Net采用float的G来更新对float表示的weight进行更新;同时,也没有对BN层进行量化的工作。因此之前的方法不能应用到只含有整形运算的设备上做训练。

量化方法

  • Uniform均匀量化step size $\sigma(k)=2^{1-k} $
    • 其中k是bit-width
  • 对称量化
    • $Q(x,k)=Clip(\sigma(k)\cdot round[\frac{x}{\sigma(k)}],-1+\sigma(k),1-\sigma(k))$
    • 假设了x是[-1,1]
    • 负数区间的-1不用来保证对称性,所以2bit就是3个数[-1,0,1]
  • 把scale factor的乘法变成shift操作
    • $ Shift(x) = 2^{round(log_2 x)}$

BN替代方案

  • 使用单独的shift操作替代
  • 由于没有了BN,weight不合适会造成梯度消失或者梯度爆炸,初始化Weight使用$W\sim U(-L,L), L=max(\sqrt{5/n_{in}},L_{min}),L_{min}=\beta\sigma$
    • $\beta$是一个超参数,决定最大值和最小step size的距离,取了1.5
  • 计算Conv层后面的scale
    • $\alpha=max(Shift(L_{min}/L),1) $
    • 给每一个网络层提前定好
  • Activation量化的时候执行scale
    • 实际硬件中MAC后只需要截取就行了
    • 浮点的表示的话是:$Q(a/\alpha,k_{A})$

Activation Gradient量化

  • 反向传播优化中使用的是梯度方向,而不是梯度的而绝对大小。因此运行时计算最大的那个绝对数值去来决定量化区间
  • $Q(e/Shift(max(|e|)),k_E)$

Weight Gradient量化

  • 先rescale计算的gradient $g_s=g/Shift(max(|g|))$
  • 为了处理小gradient的情况,根据gradient的step size之间小数部分的大小作为概率,使用了16bit的随机数去上取整或者下取整
    • $sgn(g_s)\cdot (floor(|g_s|)+Bernoulli(|g_s|-floor(|g_s|)) )$

效果

  • W2 A8 G8 E8 bit的时候ImageNet在AlexNet达到51.6/27.8 error,分别从41.80 / 19.20降了10个点左右
  • Ablation top5
    • 28ff-BN 20.67
    • 28ff 24.14
    • 28f8 23.92
    • 288C 26.88

总结

读起来思路不是特别清晰,原因在于为了全量化做了很多手工设计。第一个做training的量化,效果还不是很理想。发现了Gradient的量化有一定的正则化功效。

论文笔记: AdderNet: Do we really need multiplications in deep learning?

这篇是华为和北大合作发表在CVPR2020的论文《AdderNet: Do we really need multiplications in deep learning?》,第一作者是北京大学的Hanting Chen,第二作者是华为诺亚方舟实验室的王云鹤,也是北大的师兄。看到这篇论文第一反应是有点遗憾,我三年前想到过这个idea,连名字都一样,但是因为自己能力不够就没有深入研究下去;又觉得非常高兴,因为提出的算法非常新颖,让我茅塞顿开,这个问题的解决方案非常漂亮。

文章基于深度学习的基本运算单元——乘累加运算(MAC)进行分析:乘法需要大量硬件运算,而加法运算的代价小很多,我们一定需要用乘法单元吗?以卷积为例子,可以简单地认为乘法是为了计算feature map和kernel之间的相似性,相似性高的区域会在output feature map上表现高的激活值。作者因此启发式地提出一种基于L1距离的相似性度量,将feature map与kernel做减法取相反数,相似性高的区域同样也会在output feature map上表现高的激活值。这样做的好处就是可以把乘法运算全部替换成加法运算,在实际硬件设备上减少能耗和计算时间。

方法

前向运算

  • $Y=-\sum_{kernel}\sum_{c_{in}}|X-F|$
    • 类似于模板匹配
  • batch normalization
    • 否则Y全是负值

反向传播优化

  • 计算gradient
    • 不用signSGD,而直接使用减法
    • 使用HardTanh来Clip到[-1,1]
  • 可适应的学习率Scale
    • 将学习率乘个系数$ \frac{\sqrt{d^2 c_{in} c_{out}}}{||grad||_2} $
    • 原因
      • 计算gradient的公式显示大的Var[Output]会造成input的gradient的数值特别小,而AdderNet正好可以导致一个很大的Var[Ouput] (这里注意是有条件的)
      • activation被bn均一化了,因为用的是L1的减法,所以weight也应该被均一化??(为什么是gradient而不是本身)

结果很好

  • ImageNet ResNet-18 89->87.6
  • ImageNet ResNet-50 92.9->91.7

评价

这篇论文我一开始看的时候,还以为是Binary Neural Network的翻版,但仔细看了之后发现这其实是一种全新的降低计算量的形式。在计算量上是Quantization计算和全精度计算的折中,在存储量上是不会少的,我想如果能结合其他方法(如量化、剪枝、SNN)等算法,会有更多新的东西出来,是一个值得研究的方向。

论文笔记: Forward and backward information retention for accurate binary neural networks

读了在CVPR2020上发表的文章《Forward and backward information retention for accurate binary neural networks》,收获颇丰。这篇论文分析了二值化神经网络的训练过程中前向和反向过程的存在的问题,分别提出了解决方案。论文的第一作者是来自于北航的Haotong Qin,通讯作者是北航的Xianglong Liu。

首先文章启发式地分析了二值神经网络前向中存在的问题是diversity的问题,因为二值化了,不管是weight的diversity和activation的diversity都变小了很多,因为网络的能力下降;反向传播中存在的问题是gradient不准,不准的原因来自于sign函数的导函数的近似。因为不同epoch的lr大小和不同,因此需要不断变化近似导函数来提升效果。

方法

前向传播(Libra-PB)

  • weight的information最大化模型
  • 当+1的weight和-1的weight数量相等时达到最大(中位数)
  • 在quantization之前将weight做重分布,也就是减中位数除标准差
    • 除以标准差是为了让weight分布范围更大(dispersed)
  • 做完权重重分布,再量化
  • 另一个优化策略是对weight做shift,避免quantization error和 extra float-point计算
    • $ B^\ast, s^\ast = \arg\min_{B_w, s} |w_{std}-B_w \ll \gg s|^2 s.t. s\in \mathbb{N}$
      • B就是二值化的weight,s是shift量
    • $ s=round(log_2(||w_{std}||_1/n)) $

反向传播(Error Decay Estimator(EDE))

  • 手工设计一个加上epoch为参数的导函数,导函数随着epoch变化
  • Stage1,在训练初期,Identity->Clip。目的是更好的训练(理解是更像全精度,更新效果好;更能重新分布weight)
  • Stage2,在训练末期,Clip->sign。目的是让网络更适应quantization

效果:在CIFAR-10,EDE能提升1.4%,Libra-PB能提升0.8%,一共提升2.7%。ImageNet上ResNet-18提升2%左右,到58.1%(bitwidth W/A 1/1)66.5%(bitwidth W/A 1/32);ResNet-34 62.9%(1/1) 70.4(W/A 1/32)

评价

我很喜欢这篇论文,首先是通过对二值量化的启发式分析(为什么精度会低)进行设计的思路,其次是提出的Libra-PB算法有部分理论支撑(信息论)。另外文章的算法有很大的提升空间,EDE算法是手工设计的,没有理论依据;前向的activation信息是关键的,是否可以针对activation信息做保留;信息论的分析是启发式的,方向对了但是方法不一定是最佳的,还有一个可能方法是最大化kernel之间的差异。

论文笔记 Experiences with ML-Driven Design: A NoC Case Study

这篇是AMD在HPCA 2020上《Experiences with ML-Driven Design: A NoC Case Study》发表论文的读书笔记,这篇文章以NoC Arbitrator的设计作为一个例子,提出了用机器学习的算法辅助系统的设计,尤其强调了专家知识参与到系统设计中的重要性。一作Jieming Yin是AMD的工程师,08年哈工大本科毕业,15年美国明尼苏达双城分校博士毕业。

这篇论文提出:使用机器学习可以帮助人类专家做出更好的系统设计,但不是直接使用机器学习那么简单,需要人去设计和优化专门的结构。这篇论文以NoC的Arbitrator作为一个例子,使用RL来解每一个router上面的arbitrator应该传输哪个数据的任务,通过分析RL的Agent网络,专家可以知道哪些输入特征是重要的,因此可以利用这些信息来设计一个更简单高效的Arbitrator,而不是直接使用RL的Agent。

方法

  • 使用一个好解释的三层NN来做RL的Agent
  • 通过分析输入feature连接中间隐层的weight平均大小来判断feature重要程度(positive negative)
  • 根据feature重要程度来设计硬件
  • 先通过一个模拟器的简单场景来做分析,得到一些结论,总结一些方法,再推到一个真实的复杂场景(APU模拟器)做分析

评价

这篇论文没有直接说用ML比其他方法是好的,而是以一种介绍一个opportunity的口吻来探索ML方法在system design中的应用,非常的机智。作者通过简单实验->复杂实验一步步分析结论,一步步总结方法的模式也是非常值得借鉴的。总的来说,我很喜欢这篇论文,但是遗憾的是没有和一些其他的方法充分比较、也没有很好地分析可解释性的问题,正好留下了一个机会。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×