起因
想明白1*1卷积核的作用,bottleneck(1∗1卷积核)是在2014年的GoogLeNet中首先应用的。
1*1卷积核的作用
B站学习链接。
卷积神经网络中用11 卷积有什么作用或者好处呢?
其他博主写的内容大都是从吴恩达的视频课中的笔记得来。所以可以直接看吴恩达的CNN课,吴恩达在CNN时,B站分了43节小课,算是很详细了很全面了。这是吴恩达11卷积的链接。之前看李宏毅的课,两个老师的课侧重点不同,都是超级棒。
看了原版吴恩达的课直接就理解了,之前看了好几版其他人解说的都没有看明白,写博客的博主大部分是将博客作为自己的笔记来记录,懂了的部分就不会花时间详细整理说明了。写博客还是要写清楚内容来源的,转载或者学习的谁的课程,写清楚,全都标记为原创实在是让人纳闷。
用1*1 卷积的目的
之前加入池化层,目的是对特征的宽和高降维,比如图片(28,28,3),用(2,2)池化,降维到(14,14,3),但如果是(28,28,128),通道数128,使得CNN的(m, n)维的filter,每个filter的参数数量为m*n*128,参数太多,通道数降维也很重要了,1*1卷积层的目的就是降低通道维数。
1*1卷积是在channel的方向上做一次全连接层的神经网络,再经过relu激活层,输出一个值,这样,长*宽*channel ==> 长*宽*1,这是1个1*1卷积核的时候,如果是n_filter个,就是长*宽*channel ==> 长*宽*n_filter.
如果让1*1卷积核的filter个数仍然保持128,那么相当于没有降维,但是network in network仍然存在,作用只是添加了非线性函数,使得网络可以学习更加复杂的函数。
同样的道理,也可以用1*1卷积核增加信道数量。
存在的疑问:高维信道在理论上可以理解,那实际物理意义上,在什么场景下会有高维信道数?常有吗?为什么会有这样的疑问,是因为将channel理解地狭义了,对应网络的input层,确实是信号(图像)的信道数,但是对于第二层网络就是前一层CNN的filter个数了,前一层filter的个数是不定的,64、128、256都是常见的。