博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Discovering Neural Wiring(2019 nips, nas)
阅读量:2149 次
发布时间:2019-04-30

本文共 516 字,大约阅读时间需要 1 分钟。

概述:

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

 

算法:

将channel作为node,edge对应weight

首先将边分为:

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

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

v点的输入信息表示为:

u点的信息即可表示为:

 

f函数是激活函数、batchnorm、conv的组合

 

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

 

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

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

更新的过程如图:

 

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

给出一个时间序列,对v这样的更新为:

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

 

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

 

转载地址:http://inywb.baihongyu.com/

你可能感兴趣的文章
解决Ubuntu 64bit下使用交叉编译链提示error while loading shared libraries: libz.so.1
查看>>
Android Studio color和font设置
查看>>
Python 格式化打印json数据(展开状态)
查看>>
Centos7 安装curl(openssl)和libxml2
查看>>
Centos7 离线安装RabbitMQ,并配置集群
查看>>
Centos7 or Other Linux RPM包查询下载
查看>>
运行springboot项目出现:Type javax.xml.bind.JAXBContext not present
查看>>
Java中多线程向mysql插入同一条数据冲突问题
查看>>
Idea Maven项目使用jar包,添加到本地库使用
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>