Convolutional Neural Networks(deeplearning.ai)笔记
Week 1
Computer Vision Porblems
- Image Classifcation
- Object detection
- Neural Style Transfer
$Input\ too\ large -> fc参数太多 -> 卷积(参数共享,稀疏连接)$
Padding:
普通的卷积运算会出现两个问题:
$n * n的图像与ff的filter卷积会输出(n-f+1)(n-f+1)的图像,这意味着$ $图像每经过一次运算就会变小一点$ $在角落和边缘的像素被filter覆盖的次数没有处于中心的像素多,这说明图像边角的信息$ $可能被忽略$
$在输入图像的四周加上宽度为p的边框,这样输入图像的大小变为 (n+2p) *(n+2p),$ $ 输出(n+2p-f+1)(n+2*p-f+1)的图像 $
** 两种Padding方式**
- $Valid: no\ padding$
- $Same:Pad\ so\ that\ ouput\ size\ is\ the\ same\ as\ the\ input. -> p = (f-1)/2$
** filter 边长基本为奇数 **
- $p = (f-1)/2,如果f为偶数,意味着对应维度前后的padding不同$
- $p为奇数,有一个中心(p/2,p/2)$
** strided convolution**
$n * n的图像与ff的filter卷积,Padding为p会输出floor(((n-f+1+2p)/s +1))floor(((n-f+1+2p)/s +1))的图像 $
**Convolutions Over Volume **
输入图像的通道数必须和filter的通道数一样,每次将27个数全部加起来,得到输出图像中的一个像素
多个卷积:每一个卷积核有不同的含义,例如第一个卷积核水平边缘检测,第二个卷积核垂直边缘检测。
** One Layer of a Convolutional Network**
bias的shape应该为[1,channels],每一个filter对应一个bi
在CNN中,参数数目只由滤波器组决定。参数数目与输入图像的大小的无关的。
** Types of layer in a convolution network:**
- Convolution
- Pooling
- Fully connected
** Pooling ** 背后的机制: 只保留区域内的最大值(特征),忽略其它值,降低noise影响,提高模型健壮性。
如果是多个通道,那么就每个通道单独进行max pooling操作。
** CNN example**
** Why convolution**
- 参数共享:一个特征检测器(例如垂直边缘检测)对图片某块区域有用,同时也可能作用在图片其它区域。
- 连接的稀疏性:因为滤波器算子尺寸限制,每一层的每个输出只与输入部分区域内有关。
Week2
** ResNet(152) **