卷积神经网络课程内容
1. 计算机视觉解决的常见问题:
图片分类(image classification)、物体识别(Object detection)、图片风格迁移(Neural style transfer)
面临的挑战:输入可能很大(1000*1000*3有3百万个输入),也是卷积要解决的问题。
2. 边缘检测
过滤器(filter、kernel)
垂直边缘检测器:
3. 更多边缘检测
正数较亮,负数较暗
除了手写的过滤器,还可以用反向传播去学习,形成一个过滤器
4. padding
之前的做法优缺点“
1. 会使得图片矩阵变小
2. 在矩阵中间的点比边缘的点使用更多,边缘的信息丢失
所以在使用过滤器之前,可以加边缘(padding),每个边都加一个像素,就能削弱上面两个缺点
填充的选择:
Valid :no padding
Same: 输入输出(过滤后)的大小相同,使得n+2p-f+1=n,p=(f-1)/2
其中,n是输入的维度(n * n),p是padding,f是过滤器的维度
f一般是奇数,方便填充,会有中心点。
5. 卷积步长(Strided convolution)
图示解析:
如果蓝框超出图像,不进行运算(向下取整)
CNN中一般都将上面的步骤(cross-correlation互相关)叫卷积
而数学上还要将filter做镜像处理再相乘:
6. 卷积运用在三维模型时
chanel必须相等
下图是只对红色channel有效的和对所有颜色有效的过滤器十三层参数选择(右下)
左下角说明选择的filter的height和weight可以不与输入相同,比如输入6*6*3,filter为3*3*3,输出会是4*4
同时检测多个边缘(水平、垂直、45度)怎么办:使用两个过滤器,将结果叠起来。
channel也可以叫depth(但是容易和深度学习的深度混淆)
7. 单层卷积网络
8. 简单卷积网络示例
下图演示了一个图片经过层层处理后,weight和height逐渐减小以及filter逐渐增加的过程(常见过程)
除了卷积层,CNN常见的其他层还有池化层(pooling layer)和全连接层(Fully connected layer):
虽然只用卷积也能构成一个深度神经网络,但是一般都会用到其他两种层,辛运的是他们比卷积层更好设计。后两节课会简单介绍一下另外两种层。
9. 池化层(静态属性,无需学习)
Max pooling(最大池化很少用padding)
上面讲的公式计算输出矩阵的大小同样适用于池化层输出的计算
平均池化(不常用,除了很深的网络中会用到)
池化层总结:
10. 卷积神经网络示例
在本课程中一般说“一层”指的是具有参数的层(比如池化层没有参数,只有超参数,和conv合称一层)
池化层没有参数,卷积层参数较少,随着深度的增加激活值(Activation Size)越来越小
下节讨论为什么大家喜欢使用卷积
11. 为什么使用卷积
相比只是用全连接层,使用卷积层的好处主要有两个:
1)参数共享(parameter sharing)
2)稀疏连接(sparsity of connections)
举例说明:
可见参数数量减少了
整合起来: