SEnet (squeeze and excitatiuon)-一种对通道进行加权叠加的操作。
来源:互联网 发布:阿里云系统root 编辑:程序博客网 时间:2024/05/24 04:45
ImageNet 2017夺冠架构SENet https://arxiv.org/pdf/1709.01507.pdf
首先放参考链接,讲的真的已经很好了!!!https://www.sohu.com/a/161633191_465975
核心思想我认为是:不再使用传统的对输入通道经卷积后的结果通道们,进行简单的叠加,而是去寻找各通道间的相关性,给予各通道不同的权值,然后再进行加权求和。
这个通道间的权值,通过学习得到。
上图:
S:
首先是压缩,squeeze()把一个通道的map(尺寸为 mxn )压缩成一个数值(1x1),这方便后续的寻找通道间的相关性。
E:
左边嵌入inception,右边嵌入resnet。。。
由最后一张图可知,卷积后得到的通道间的相关性,及去确定该通道给多少权值(weights值)?是通过两个fc层,和一个sigmoid层(所谓的门机制)来解决的。(这个sigmoid门机制看一下机器学习里的logistic就会更好理解了~)
第一层fc降低了特征的维度(c/16),减少了参数;然后加上了一个relu激活层,增加非线性;再接着又接一个fc层将维度恢复(c);最后通过sigmoid得到要给在各个通道上的权值(weights)们。
再给点我自己的手稿吧。。。。
嗯,感觉已经很清楚了吧,这个SEnet.
这里不得不说,网络有前后向反馈就是好!我需要的权值(weights)或者说参数,我只要搭好网络层(网络结构)(fc1 fc2 和那个sigmoid)就好,其他的就可以啥都不管了。让你网路自己去学习,去前后向计算,梯度啊,loss啊,然后去更新得到最合适的weights。weights到手了,直接乘上来用就是。。。我认为这真的是负反馈的精髓啊,给个监督然后让网络自主学习更新weights值。很强!!!
一般,senet结构是用在resnet或者inception里,而没有说是每一次的卷积层都这样操作(就是每次的卷积都对不同通道的特征图加权叠加,这样会引入很多参数)。如上图:
看resnet的block模块,每个block尾部都加入了两层fc层。第三列的那个c=32是什么意思我还不太懂,等知道了再来补充。。。
- SEnet (squeeze and excitatiuon)-一种对通道进行加权叠加的操作。
- SENet(Squeeze-and-Excitation Networks)算法笔记
- Solr对分词字段进行完全匹配加权的操作
- ArcGIS教程:加权叠加的工作原理
- cvThreshold对单通道数组元素进行固定阈值操作
- ArcGIS教程:加权叠加
- senet
- OpenCv 如何对图像的像素进行操作(注意多通道图像在内存中的存储方式!!)
- 对彩色图像进行色彩通道信息的分割
- 对纹理进行Alpha通道分离的好处
- 对视频图像进行OSD叠加
- 对加权(无负值边)的图进行最短路径搜索
- Threshold 对单通道数组应用的固定阈值操作
- Squeeze-and-Excitation Networks
- lucene索引_加权操作、对日期和数字进行索引、IndexReader的设计
- 对字符串进行的操作
- Redis的通道操作
- 对枚举值(Enum)进行位操作(AND & OR)
- ConnectivityService框架初识
- NOIP2017 GG 记
- 关于MSTest一些特殊的处理一:抽象类的Mock
- note 3
- Andriod 死机时kernel panic分析!
- SEnet (squeeze and excitatiuon)-一种对通道进行加权叠加的操作。
- 变长数组vla(realloc的扩容)
- SpringMVC将参数配置在URL中
- vue+element爬坑
- JAVA String的一些特殊方法
- vue中的http请
- CPUIDFIELD:CPUID字段的统一编号、读取方案。范例:检查SSE4A、AES、PCLMULQDQ指令
- MyBatis 实践中遇到的问题
- 51nod 1007 背包变形