Kardel的希尔伯特空间


浅度辍学集大成者 the man who masters shallow dropout


神经网络实践经验(2)

前言

本人萌新,请多指教

2. 1x1卷积层的作用

我们都知道,CNN强于MLP的地方在于其局部连接性减少了过拟合的可能,从而在有限的数据量下可以获取更好的模型。

而CNN是一个基于上下文的网络。对于上下文相关的数据(图像、自然语言等),有着非常理所应当、有理有据的好效果。但是如果filter的大小是1x1呢(本文只探讨2d的CNN,如果要强行说Conv1D我也没办法)?

1x1的filter貌似是上下文无关的。所以1x1的filter与3x3的filter和5x5的filter有着完全不一样的功能。

本萌新读的论文不多,但我记得1x1filter在VGG论文VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION中出现过。VGG指出有1x1的卷积层(VGG的C号架构)物体识别效果比没有(VGG的B号架构)效果好,但是没有3x3的卷积层(VGG的D号架构)效果好。但是并没有给出解释。(顺便一提我认为VGG是ImageNet几篇中最水的一篇,全篇就是在说他用了谁的方法没用谁的方法然后做做做做做实验)

然后1x1的使用比较引起轰动就是在Network in Network中。《Network in Network》整篇论文写的玄乎得要死,什么mlpconv啊什么得,但是实际上观察它得代码就会发现所谓得mlpconv就是1x1得卷积层。仔细想想也是那么回事,实际上1x1的filter由于卷积神经网络的操作已经可以退化为卷积层每个通道的加权求和,然后通过一层激活函数就和单层mlp无异。虽然3x3的卷积核也会有加权求和的操作,但是1x1的卷积核是脱离了上下文的加权求和操作,而3x3是带上下文的加权求和操作

Network in network

再然后就是Inception中的降维1x1了,我可以将一个28x28x64的卷积层强行压到28x28x20的卷积层,既不增加很多参数数量又能减少卷积层的参数数量,还能加权求和一波,简直非常好用。

inception

包括resNet中的先降维后升维的操作同理,既可以降低参数数量又可以保持x与F(x)形状不变,可以说是很棒了resNet

resnet

所以总结一下,1x1的filter的作用是

  1. 增加通道之间的交流
  2. 降维或升维
Newer Post

神经网络实践经验(3)

3. 慎用keras的binary_crossentropy有的时候我们在用神经网络训练二分类模型的时候,我们常会用keras。keras关于二分类的loss function有两个,一个是binary_crossentropy,一个是categorical_crossentropy(其实是多分类) …

深度学习, 神经网络实践经验 继续阅读
Older Post

神经网络实践经验(1)

前言本系列是本人记录在自己实践中遇到的很多读死书无法学习到的经验,不完全脱离理论,甚至说是超过理论之外的东西。 本人水平很差(深度学习之耻),有些说的简陋的东西也当是献丑了。 1. 神经网络的输入最好有一定相关性,否则很容易产生过拟合的效果所谓的过拟合,就是模型学习到本应该学习到的特征之外的特征。 …

深度学习, 神经网络实践经验 继续阅读