概述:

这篇文章的感觉是用剪枝的思想来学习神经元(通道)之间的连线。

 

算法:

将channel作为node,edge对应weight

首先将边分为:

Discovering Neural Wiring(2019 nips, nas)

Discovering Neural Wiring(2019 nips, nas)

划分的依据是edge的权重|weight|的大小,取前k大为实边

在前向传播的时候将信息只在实边上流通,如图:

Discovering Neural Wiring(2019 nips, nas)

v点的输入信息表示为:

Discovering Neural Wiring(2019 nips, nas)

u点的信息即可表示为:

Discovering Neural Wiring(2019 nips, nas)

 

f函数是**函数、batchnorm、conv的组合

 

在反向传播的时候,让梯度通过实边并对边进行更新,对于虚边,梯度会留向虚边,但是不会穿过虚边进行传播,如图:

Discovering Neural Wiring(2019 nips, nas)

 

在反向传播时对edge的权重weight进行更新,梯度信息-Δ是loss下降最快方向,让-Δ和Zu点乘,当Zu和-Δ方向一致时,更新最大,选择这条边也意味着loss下降最快:

Discovering Neural Wiring(2019 nips, nas)

Discovering Neural Wiring(2019 nips, nas)

当|Wuv|比实边里的边的绝对值大的时候,可以交换进实边集合。

更新的过程如图:

Discovering Neural Wiring(2019 nips, nas)

 

文章还提到了Dynamic Neural Graphs,和上面的static neural graphs的区别就是 传播的时候是按时间版本传播:

给出一个时间序列Discovering Neural Wiring(2019 nips, nas),对v这样的更新为:

Discovering Neural Wiring(2019 nips, nas)

这样的好处就是可以在图中引入循环,如图:

Discovering Neural Wiring(2019 nips, nas)

 

作者在实验中验证了 Dynamic Neural Graphs的效果要更好。

 

相关文章:

  • 2021-09-12
  • 2021-06-08
  • 2022-01-09
  • 2022-12-23
  • 2021-06-15
  • 2021-08-15
  • 2022-03-02
  • 2021-06-01
猜你喜欢
  • 2021-08-13
  • 2021-08-30
  • 2021-06-24
  • 2021-08-13
  • 2021-07-13
  • 2022-01-22
  • 2021-05-31
相关资源
相似解决方案