吴恩达《神经网络和深度学习》课程笔记
1. 计算机视觉应用的问题
-
图像分类
例如,给定一张图片,判断图片上是不是猫。 -
目标识别
例如,自动驾驶时要分辨出图像中的车辆、行人、道路等等。 -
图像分割迁移
2. Padding
如果不 padding 会存在的问题?
- 输出的图像比原图像小。
- 边缘信息丢失。因为在边缘的刑诉只能参与很少次数的卷积运算,而中间的像素可以参与叫多次数的卷积运算。
3. 卷积
卷积:先把 kernel 做水平和垂直的翻转。
互相关:不翻转。
我们平时做的操作更准确应该称为互相关,但是机器学习中通常也把它直接成为卷积。
二维卷积:
image:n × n
filter:f × f
padding:p
stride(步长):s
得到的输出图像:(n+2p-f)/s+1 × (n+2p-f)/s+1
(向下取整)
三维卷积:图像有多通道的情况
image:n × n × nc
filter:f × f × nc
得到的输出图像:(n-f+1) × (n-f+1) × nc'
其中,nc' 为滤波器的个数,例如一个检测水平边缘的滤波器,一个检测垂直边缘的滤波器。而且,在做三维卷积时(例如滤波器为 3 × 3 × 3 的),是把27个乘积相加,而不是一个通道一个通道的做。
4. 一层CNN的操作过程
输入图像就相当于一般神经网络中的 X,卷积核相当于 W,卷积操作相当于W[l]A[l-1]。在做完卷积后同样要加上偏移 b 以及激活函数。最后将得到的图像作为不同的通道,拼在一起。
5. 池化层和全连接层
池化层有最大支池化和均值池化,有点像图像的最大值滤波和均值滤波,但是步长可以设定为大于1的值。
最大值池化用到的时候较多。池化层没有参数。
全连接层就相当于一般神经网络中的一层。
一般来说,构建一个神经网络的套路是这样的:
Conv——Pool——Conv——Pool——Fc——Fc——Fc——softmax
其中,卷积层参数较少,池化层没有参数,全连接层参数很多。
(老师计算卷积层参数的时候是用卷积核大小(f*f)加偏移参数的个数(+1)再乘以滤波器个数,而没有乘以输入图像的通道数。不知道是不是写错了,等看看后面的应用再说吧)
6. 为什么使用卷积
参数共享
滤波器的提取到的图片特征,对图片的一部分试用的同时,也有对图片的其他部分适用。
连接的稀疏性
每个输出值只与其邻域内的输入值有关。
Coursera的助学金还没有申请下来,好想做作业啊~~~
网友评论