关于 Network-in-network理解和实现
来源:互联网 发布:rpcs3 安装游戏数据卡 编辑:程序博客网 时间:2024/06/10 17:54
NIN论文地址
1.出发点:增强模型在其感知野内的辨别能力,通常是由卷积滤波器(一个通用线性模型(GLM))提取各个抽象特征,当这些被提取的特征是线性的,卷积滤波器是够用的,但这显然不符合事实,比如我们要提取 某个特征,于是我就用了一大堆的滤波器,把所有可能的提取出来,这样就可以把我想要提取的特征也覆盖到,然而这样存在一个缺点,那就是网络太恐怖了,参数 太多了。因此作者用一个通用的函数逼近器(mlp)来进行特征提取,通过在每个感知野中加入更加复杂的结构来进行数据的抽象。(加入非线性部分)
论文中图如下:
由图可知,mlpconv=convolution+mlp(图中为2层的mlp)。
在实现上,mlpconv=convolution+1×1convolution+1×1convolution(2层的mlp)
个人认为实现NIN就是在原来的卷积后再加上1*1的卷积即可,如下图,有三个NIN层,那么第一个NIN的实现应该是conv1[3*3],(kernal)
conv2[1*1],conv3[1*1]这种。
2.Global Average Pooling
提出了全局平均池化来代替全连接层,且在Global Average Pooling(gap)前通道数(feature maps)已经减少到分类的个数,gap直接对每个feature map求均值,假设输入是[N,10,10,100]经过gap后为[N,100].
实现
def GlobalAvgPooling(x, data_format='NHWC'): """ Global average pooling as in the paper `Network In Network <http://arxiv.org/abs/1312.4400>`_. Args: x (tf.Tensor): a NHWC tensor. Returns: tf.Tensor: a NC tensor named ``output``. """ assert x.shape.ndims == 4 assert data_format in ['NHWC', 'NCHW'] axis = [1, 2] if data_format == 'NHWC' else [2, 3] return tf.reduce_mean(x, axis, name='output')
3.4. 1×1卷积的作用
以下内容摘抄自:http://www.caffecn.cn/?/question/136
这位博客作者写的分析很好,我直接拿来用了
问:发现很多网络使用了1X1卷积核,这能起到什么作用呢?另外我一直觉得,1X1卷积核就是对输入的一个比例缩放,因为1X1卷积核只有一个参数,这个核在输入上滑动,就相当于给输入数据乘以一个系数。不知道我理解的是否正确
答1:
对于单通道的feature map和单个卷积核之间的卷积来说,题主的理解是对的,CNN里的卷积大都是多通道的feature map和多通道的卷积核之间的操作(输入的多通道的feature map和一组卷积核做卷积求和得到一个输出的feature map),如果使用1x1的卷积核,这个操作实现的就是多个feature map的线性组合,可以实现feature map在通道个数上的变化。接在普通的卷积层的后面,配合激活函数,就可以实现network in network的结构了(本内容作者仅授权给CaffeCN社区(caffecn.cn)使用,如需转载请附上内容来源说明。)
答2:
我来说说我的理解,我认为1×1的卷积大概有两个方面的作用吧:
1. 实现跨通道的交互和信息整合
2. 进行卷积核通道数的降维和升维
- 关于 Network-in-network理解和实现
- Network In Network理解
- 【机器学习】关于CNN中1×1卷积核和Network in Network的理解
- Network-in-Network简单实现,基于tensorflow
- Network In Network(精读)
- Network In Network(精读)
- Network In Network
- DeepLearningNotes: Network In Network
- network in network
- NIN(Network in Network)
- Network In Network
- network in network
- Network in Network
- 神经网络:Network In Network
- Network In Network
- Network in Network 网络分析
- 2014-Network In Network
- Network in Network
- node.js在服务端实现简单的验证码--captchapng
- request与response的指定相应
- 【tensorflow】选择性读取加载权重,fine-tuning
- Android 集成环信More than one file was found with OS independent path 'assets/Icon_start.png'
- vuex的辅助函数mapState前面的那三个点--对象展开运算符
- 关于 Network-in-network理解和实现
- Python自学方法
- Maven项目之Spring.profile.开发.测试.生产环境的配置和切换之一键部署
- 浅谈算法和数据结构: 八 平衡查找树之2-3树
- tensorflow tf.argmax() 用法 例子
- IntelliJ IDEA 破解
- lrcn
- 关于极光推送的问题
- 数据结构之查找(六)——平衡二叉树(AVL树)