AIR学术沙龙 I《动态卷积神经网络》视频学习笔记
AIR学术沙龙 I《动态卷积神经网络》视频学习笔记
Convolutional Networks
多种网络模型被提出来:AlexNet,VGG...
网络在做什么?为什么要提出新的结构?
网络结构影响着:
表达能力(Representation power)
深度学习表达能力更好。
优化性质(Optimization Characteristic)
不同的网络结构优化性质很不一样。
泛化(Generalization)
效率(Efficiency)
小的设备运行模型,效率非常关键,不同模型有效率上的区别。
下一步的方向?
迁移学习、图网络、NAS、Spiking NN...
Dynamic Neural Networks
为什么要做动态网络?
小的设备上可能无法用大模型。
为什么大模型好?好在哪里?
不常见的图片:特征不明显。人是动态识别的,当看到常见的马的照片的时候反应很快,但看到很局部的照片时反应会很慢。
人的动态识别机制可以在不同的图像上花费不同的计算。但普通的卷积神经网络不是(计算图固定,静态网络)。
模型之所以大,是因为要像识别出来不常见的马的照片,可能需要很多层,但用这么深的网络来识别典型的马的照片就是一种浪费,所以神经网络能不能像人一样进行动态推理?
motivation:小一点的网络识别典型图片,大的网络识别不典型图片。
但是问题在于我们不知道图片是否是典型的。
naive的想法
假设有从小到大三个模型,所有图像先用最小的模型跑,对输出的图像确定置信度(分类问题),如果预测概率值足够大则直接预测,否则接着往下送入。注意神经网络的置信度是有意义的,越大则概率越大。
但问题是如果跑第一个模型置信度不高接着跑第二个,那么第一个模型的计算量就浪费了。
改进的方案
在网络中间加分类器。![截屏2021-05-06 上午10.44.47](/Users/xiezhengyuan/Library/Application Support/typora-user-images/截屏2021-05-06 上午10.44.47.png)
但在卷积网络中会有问题。下采样前大的特征图分类效果比较差,与卷积神经网络的特性有关,因为没做下采样前感受野增长比较慢,同时会有高频噪声,因此在前面接分类器效果比较差。
问题解决
做成二维的。![截屏2021-05-06 上午10.49.41](/Users/xiezhengyuan/Library/Application Support/typora-user-images/截屏2021-05-06 上午10.49.41.png)
从左往右水平方向为深度,垂直方向为scale。分类器都是接在做完下采样的特征图上,保证所有分类器能得到比较不错的准确率。
模型训练好后参数固定,但是阈值可以随时调整。如果调高整个网络会比较保守,会用更多的计算得到更准确的结果。如果调低则更激进。这个调整可以在推理的过程中去做。手机电量如果不够,则可以调低,更节省电量。同时不同手机性能不一样,训练一个模型可以部署到不同手机,调整阈值适配计算能力。
Hierarchy of dynamic networks
深度动态、参数动态、动态路由...
![截屏2021-05-06 上午11.13.45](/Users/xiezhengyuan/Library/Application Support/typora-user-images/截屏2021-05-06 上午11.13.45.png)
空间自适应
人在看不同位置花费的注意力不一样(人有注意力机制)。
而soft attention只是在重要的部分乘一个较大的数,不重要的位置乘以近似于0的数,还是在做计算(计算并没有少)。所以动态网络:hard attention。
常用的卷积网络:每个像素上花费的计算是一样的,并不高效。
解决:Sampling-Inerpolation scheme
Sampling module生成掩码,Sparse convolution在采样点上进行计算,通过差值重建全部的特征图。
空间上进行采样(重要的地方采样出来做计算,不重要的地方通过差值去近似)。
![截屏2021-05-06 上午11.28.14](/Users/xiezhengyuan/Library/Application Support/typora-user-images/截屏2021-05-06 上午11.28.14.png)
但是稀疏计算在GPU上效率不高(手机arm芯片上还是有提速的)。考虑进一步改进,人对于图片是一个反复强化的过程,因此考虑空间上的自适应计算变成迭代的过程以避免稀疏计算。
Glance and Focus Network
把图像resize,做一次识别获得置信度,如果不高则focus到local的region(比如猫猫头)再去做识别,如果置信度不够再去选择局部...注意有特征共享避免计算的浪费。
![截屏2021-05-06 上午11.38.13](/Users/xiezhengyuan/Library/Application Support/typora-user-images/截屏2021-05-06 上午11.38.13.png)
![截屏2021-05-06 上午11.39.31](/Users/xiezhengyuan/Library/Application Support/typora-user-images/截屏2021-05-06 上午11.39.31.png)考虑每一行都是一个卷积网络,从上往下会有特征的重用。
最关键的问题:选的attention怎么得到?patch proposal network。
![截屏2021-05-06 上午11.41.04](/Users/xiezhengyuan/Library/Application Support/typora-user-images/截屏2021-05-06 上午11.41.04.png)
这个网络如何训练?三阶段:
-
空间上随机选择,全局网络+局部网络(mobile net..)
-
patch proposal拿进来训练。强化学习,action为选择的位置
-
...