Selective Kernel Network
senet: https://arxiv.org/abs/1709.01507
sknet: http://arxiv.org/abs/1903.06586
TL, DR
Selective Kernel Networks 启发自皮质神经元根据不同的刺激可动态调节其自身的receptive field, 从而在CNN每一个 stage, 增加不同尺寸 filter 分支。 总体网络结构和 SENet 相似(几乎一致), 相对于大网络, 对小网络的性能提升比较明显.
SENet
abstract
卷积神经网络建立在一系列卷积操作之上, 通过层叠卷积操作, 可以逐渐增大感受野.
卷积操作可以复用空间和通道信息, 但却限制在一个局部感受野上.
为了促进网络的特征表示能力, 一些工作通过加强空间编码从而提升了网络性能, 如 Inception. SENet 关注点在通道关系上, 提出的 SE-Block, 通过整合通道全局感受野信息, embedding 通道之间的重要性关系, 关注有用特征, 抑制无用特征.
SE-Block 使用 Global Average Pooling 处理该层 feature map得到一个 channel descriptor, 该 descriptor 包含每个通道特征强度(feature response)信息, 从而使得 CNN 的 底部的 layer可以利用到全局感受野的信息.
## network arch


sigmoid 函数
\[
\begin{align*}
\sigma(x) &= \frac{1}{1+e^{-x}} \\
\end{align*}
\]
逻辑斯谛回归函数
\[
\begin{align*}
P(Y=1|x) &= \frac{e^{w \cdot x}}{1+e^{w \cdot x}}\\
&= \frac{1}{1+e^{-w \cdot x}}\\
&=\sigma (w \cdot x)\\
P(Y=0|x) &= \frac{1}{1+e^{w \cdot x}} \\
&=1 - \sigma (w \cdot x)\\
\end{align*}
\]
Excitation操作为了利用 Squeeze 操作中的聚合的信息, 从而获取不同 channel 之间的依赖性. gating 函数必须满足两个条件
- 首先,它必须是灵活的(特别是,它必须能够学习通道之间的非线性关系),
- 其次,它必须学习非互斥关系.
为了满足这些标准,Excitation 选择使用 sigmoid 函数执行 gating mechanism.
SE-Inception Block

添加 SE Block 的网络的计算量大约提高1%, 参数量提高2%
experiment result

SKNet

与 SENet 相比, 就是每个 stage 增加了不同的尺寸大小的 filter的分支, 在做 gating 的时候, sigmoid 函数使用下面函数代替, 用于对不同尺寸的 filter 给予权重, 从而达到可适应调节感受野的作用.

experiment result
在大网络结果

在小网络上结果

总体而言, 在小网络上提点比较明显
Selective Kernel Network的更多相关文章
- 论文阅读笔记六十一:Selective Kernel Networks(SKNet CVPR2019)
论文原址:https://arxiv.org/pdf/1903.06586.pdf github: https://github.com/implus/SKNet 摘要 在标准的卷积网络中,每层网络中 ...
- Selective Kernel Networks
摘要:在标准的卷积神经网络(CNNs)中,每一层的人工神经元的感受野被设计成具有相同的大小.众所周知,视觉皮层神经元的感受野大小受刺激的调节,但在构建cnn时却很少考虑到这一点.我们在神经网络中提出了 ...
- [dpdk][kni] dpdk kernel network interface
文档:https://doc.dpdk.org/guides/prog_guide/kernel_nic_interface.html 摘要: The KNI kernel loadable modu ...
- STGAN: A Unified Selective Transfer Network for Arbitrary Image Attribute Editing 阅读笔记和pytorch代码解读
一.论文采用的新方法 1.AttGan中skip connect的局限性 由于encoder中对特征的下采样实际上可能损失部分特征,我们在decoder中进行上采样和转置卷积也无法恢复所有特征,因此A ...
- Windows Kernel Security Training Courses
http://www.codemachine.com/courses.html#kerdbg Windows Kernel Internals for Security Researchers Thi ...
- Kernel boot options
There are three ways to pass options to the kernel and thus control its behavior: When building the ...
- TensorFlow Lite demo——就是为嵌入式设备而存在的,底层调用NDK神经网络API,注意其使用的tf model需要转换下,同时提供java和C++ API,无法使用tflite的见后
Introduction to TensorFlow Lite TensorFlow Lite is TensorFlow’s lightweight solution for mobile and ...
- 深度学习笔记(十一)网络 Inception, Xception, MobileNet, ShuffeNet, ResNeXt, SqueezeNet, EfficientNet, MixConv
1. Abstract 本文旨在简单介绍下各种轻量级网络,纳尼?!好吧,不限于轻量级 2. Introduction 2.1 Inception 在最初的版本 Inception/GoogleNet, ...
- Android官方文档
下面的内容来自Android官方网站,由于访问这个网站需要FQ,不方便,所以我把部分内容copy下来了,不保证内容是最新的. Source Overview Codelines, Branche ...
随机推荐
- vmware workstation安装教程以及其中出现的错误解决方法
VMware Workstation 安装教程 1 下载好虚拟机,然后运行,点击下一步 2 选择我接受,下一步 3 选择安装的位置,可以自己选择,也可以默认不更改,这个无影响(图中I:\下面的VM ...
- protobuf使用详解
https://blog.csdn.net/skh2015java/article/details/78404235 原文地址:http://blog.csdn.net/lyjshen/article ...
- Delphi 获取DataSet传入参数后的SQL命令
ClientDataSet1.CommandText := sSQL; ClientDataSet1.Params.Clear; ClientDataSet1.CommandText :='SEL ...
- Python——内置函数
一.min函数 取当前字符串的最小字符串 s1 = min(strs) 二.max函数 取当前字符串的最大字符串 s1 = max(strs) 三.enumerate函数 函数用于将一个可遍历的数据对 ...
- Linux下一些简单常用命令的总结
Cent os常用命令 查看当前目录信息: l s a:显示所有包括隐藏文件 l :列表显示数据 h:显示数据大小 查看命令帮助: XXX --help[比如:l shel p] 清除控制台信息: c ...
- python学习day19 面向对象(一)封装/多态/继承
面向对象 封装思想:将同一类的函数函数封装到同一个py文件中,方便调用 面向对象也有封装的作用,将同一类的函数封装到一个类中 多态(鸭子模型):多种类型/多种形态 #,什么事鸭子模型 对于一个函数,p ...
- JavaScript中数据类型判断
做判断前先来了解下 JavaScript 中的基本数据类型 一.七大数据类型 基本类型:存储在栈( stack )中 Number(包括整型和浮点型) String. Boolean. Symbol ...
- 20175206迭代与JDB测试
迭代与JDB测试 C(n,m)组合数的判定 实验要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 实验案例 ...
- spring Boot 入门--为什么用spring boot
为什么用spring boot 回答这个问题不得不说下spring 假设你受命用Spring开发一个简单的Hello World Web应用程序.你该做什么? 我能想到一些 基本的需要. 一个项目 ...
- python11 函数的定义,调用,分类
## 复习 #一.什么是函数:具体特定功能的代码块 - 特定功能代码块作为一个整体,并给该整体命名,就是函数 # 二.函数的优点:# 1.减少代码的冗余# 2.结构清晰,可读性强# 3.具有复用性,开 ...