论文笔记 《FTT-NAS: Discovering Fault-Tolerant Neural Networks》

这篇文章是发在ASP-DAC2020的《FTT-NAS: Discovering Fault-Tolerant Neural Networks》,作者来自清华汪玉组,共同第一作者Wenshuo Li和Xuefei Ning。

这篇文章针对硬件运行神经网络可能会有错误的场景,提出使用NAS来搜索抗错误的神经网络架构(FT-NAS);并使用抗错误训练(FTT)的方法来减少错误。结合这两种方法就是FTT-NAS。

Motivation:
安全性和可信特性需要去解决。
safety-critic applications的需要:硬件对于soft error更加sensitive(来自atmospheric neutrons大气中子/radioactive impurities放射性杂质)。
边缘设备:Voltage instability/aging/temperature variation。
malicious attackers:embedding hardware trojans(硬件木马)/manipulating back-doors/memory injection。

方法

错误模型

  • 模型用8bit量化
  • 训练模型
    • random bit-flip
    • $y=f(Wx+b+\theta 2^{\alpha} (-1)^\beta)$
    • $\theta~ Bernoulli(p)$ p概率产生bit偏移
    • $\alpha ~ Uniform(0,1,\dots, Q-1)$ Q-1个比特随机选
    • $\beta~ Uniform(0,1)$ 随机产生正负偏移
  • 注意,为了效率,这个模型只在feature map上面加,相当于bias

NAS

  • RL的模型,CIFAR-10
  • super-net里面选择,用shared-weights
    • shared weights使用FTT方法训练
  • search space
    • normal cell和reduce cell
    • 7 operations: none, skip connect, 3x3 avg, 3x3 max, 1x1 conv, 3x3 relu-conv-bn, 5x5 relu-conv-bn
    • B-2 nodes,2个输入来自于上两个cell
    • 6.9*10^21 B=6
  • searching
    • $R=(1-\alpha)acc_c+\alphaacc_f$
    • search iter
      • 数据集$D_t$训练shared weights
      • 另一个数据集$D_v$训练controller
    • FTT训练的loss $L=(1-\beta)acc_c+\betaacc_f$

实验

  • ResNet-20 1110M flpps 3%flip 13.6%
  • FT-NAS-Net 750M flops 3%flip 78.2%
  • FTT-NAS-Net-20 704M flops 3%flip 88.6%
    • 发现双重connections between some pairs of nodes
    • 说明可能找到了敏感的connections,然后用冗余的path来保护这些nodes
  • ResNet-M (使用5%的错误率训练) 862M flops 81.9%
    • 使用了double connection
    • base channel 从64降到了40,保持flops
  • 提升来自于两个方面:1.架构,2.redundancy的forwarding
    • 简单的inference conv两次,然后取平均 57.4%
  • 其它noise的效果
    • 对于bit-flips效果最好>gaussian noise> salt-and-pepper noise

总结

这篇文章使用简单的加feature map噪声的方法将神经网络对于noise的鲁棒性提升了,并且总结了可能的原因。但是加的噪声比较简单,而且结论太启发式,需要进一步研究。

Your browser is out-of-date!

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

×