P1.2/1.3 边缘检测
说到了卷积核之前是手工设计的,能提取出一些特定的浅层边缘信息,但是存在卷积核粒度太过粗糙、适应性不好等问题,因此引出了我们把卷积核设为一个参数,然后利用反向传播算法来学习其中的参数。
P1.4 Padding
讲到是为了解决:
- 卷积后图像变少(变为原图的维度 - 卷积核的维度 + 1,比如原图是66,卷积核是33,那么卷积之后的图像是6-3+1=4,是4*4的图像了,被缩小了。)
那为什么怕图像变小呢?你想想看,网络深度是大趋势,假如我们的网络有100层,那么原图到后面就很小了啊!这还怎么表现高维特征啊!
- 边缘位置的像素比图像中心像素卷积次数要少。
如下图所示,边缘位置处的像素被卷积的次数减少,也就是说会有信息丢失,因此为了补充这部分信息,我们人为地加入填充来使得边缘像素被充分卷积,从而不丢失信息。
- 为什么卷积核大小一般都是奇数呢?
如下图所示,为了保证卷积后的大小保持不变,我们的需要填充的层数p=(f-1)/2,因此卷积的维数f一般得取奇数才能保证填充对称啊!
第二个原因是:奇数维度的卷积核才会有一个中心点啊!偶数卷积核就没有,因此在后面有可能需要选择一个中心点的时候奇数核才方便。
注:这不是充分条件。
P1.5 Strided convolution
假设:
图像:n*n
卷积核(filter):f*f
padding:p
stride: s
那么卷积后的图像大小是:(n+2p-f)/s + 1
那么问题来了:假如除完后不是整数咋办?
我们一般对之进行floor操作(见下图中floor处),也就是当图中蓝色框移出图像的边界的时候我们按照惯例就不做卷积操作了!
P1.6 立体卷积(彩色图像卷积)
这里需要注意的是,卷积之后深度(channel)变为1了,而不是3;
不同的卷积核得到不同的feature maps
P1.7/1.8 构建单层卷积网络
这里是进行非线性(ReLU)激活(函数)操作,由于只有两个卷积核,因此输出是4*4*2
P1.9 Max Pooling
最大的那个是最有可能代表特征。
filter大小strde大小这个是固定的,不是通过反向传播来学习的。
- 绝大部分用的都是最大池化,在某些个深度网络中是个例用平均池化。
- 通常情况下绝对不用padding,除了某种情况(后面会讲)。
P1.10 实例操作(参考LeNet-5模型的参数)
- 卷积层的一层定义为:卷积操作+pooling层;因为pooling层是没有权值参数的,因此不算layer;
- 可以从下图看到pool层是没有参数的,Activation是缓慢变小的(视频里说到按照经验假如下降很快的话效果反而不好),参数在全连接层是最多的。
P1.11为什么使用卷积
因为跟全连接比起来有参数共享跟稀疏连接两个大优势啊!
参数共享:就是说跟全连接比起来n的n次方个权值比起来要少的多的多啊!
稀疏连接:如下图所示卷积后的值,比如绿色圈内标识的那个0,只受原图左上角的九个值的影响,除此之外的其他像素完全不影响它,因此这就是稀疏的连接,也就是降维嘛!减少了参数就是降低了过拟合的风险嘛!
含冲量/RMSProp/....的梯度下降?