1.单个卷积核 -> 单张图
一个5x5x3的卷积核卷积一次,形成一个平面,就是相当于学到“1”个特征
多来几个不同的卷积核,就能学习不同的特征
所以要有好多个卷积核
we are going to have a set of multiple filters
we stack these up to get a “new image” of 28x28x6
2.不同层学习的特征不同
不同的卷积层,学习到的是不同层级的特征,
low_level 可能是边缘啊,之类的
mid 可能是斑点。。
3.filter参数的计算公式
4.输出的计算公式
5.卷积核的个数通常是np.power(2,n)
如果需要保持图片H、W不变,只需要pad = f/2 即可 stride=1
6.1x1的卷积
7.步长的设置
取决于你图片的分辨率,和池化类似,但是效果比池化好
8.局部感受野和共享权重
9.同一空间下的多个neuron
5 个卷积核,都是在同一个空间下作用的
但是学习的特征却是不同的
10.全连接层
不要忘了
3027x1 如何转换成10x1
这个是矩阵乘法,点积实现的
W*X (10,3027)*(3027,1)
11. Pooling layer
降低采样 downsample
只是在平面区域处理, 不会在深度上
对于2x2的filter 步长也为2
通常,这里是不会出现overlap的,这么做,是有它的道理的
对于池化层,我们希望downsample,用一个值代替一个区域,然后你再继续滑动,到下一个区域
最大值池化,的结果,就是
一个神经元在这个区域的激发程度或者说一组卷积核的激发程度
整体的话,就是在整个图片上的激发程度,这对于检测问题,是非常有帮助的
对于pooling层 ,通常设置为s=2 , f = 2 or 3
f = 3 ,s =3
因为我们只希望去做downsample,就不用填充 0
一开始就是一个低级的特征,每一层级,max_pool后,都代表上一层级的一些特征,
整个图越来越小,深度越来越大,它最终就能完成分类
一开始输入是一张图,卷积一次以后,得到的比如说是边缘图,我们在这个边缘图上检测,得到更高级的特征
当到达最后一个max_podling后,每一个值都代表了在一组复合模板上的激活情况
池化也不能太多,要是特征都没有了,可能也不利于分类,所以多尝试超参数的组合
12. 演示demo网址
有一个趋势就是,抛弃池化和FC,多用CONV,这样能做到很deep的网络
图片来源
CS231n