吴恩达系列课程——卷积神经网络(From:网易云课堂)

一.卷积神经网络

1.计算机视觉

图片分类、图片识别:给出64*64图片计算机判断是否是一只猫

目标检测:检测出图片中有哪些物体以及他们的位置

风格迁移:图片融合图片1的轮廓和图片2的风格

eg:1000*1000大小的图片的特征向量将达到1000*1000*3(RGB 3channels),若使用标准的全连接网络将需要产生数量巨大的权值。。。所以引入卷积神经网络

 

2.边缘检测示例

卷积运算是CNN的基础,边缘检测作为入门学习示例。

垂直边缘检测:卷积核(过滤器)[1 1 1;0 0 0;-1 -1 -1] 翻转即为水平边缘检测

 

Python:cov_forward,tensorflow:tf.nn.cov2d,keras:Conv2D    

 

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第1张图片

 

Sobel算子:[1 2 1;0 0 0;-1 -2 -1] 加大中间行权值,增加鲁棒性

 

3.Padding

原图片n*n,卷积核f*f,卷积后图片(n-f+1)* (n-f+1)

=>(1)卷积后图像缩小 (2)边角的像素只参与一次卷积,而中间的像素参与多次(丢失信息)

=>用0填充原图片像素

 

Valid/same convolutions

Valid:不填充

Same:不改变输出图片大小。假设填充p个像素,则输出为(n+2p-f+1)* (n+2p-f+1)= n*n

P=(f-1)/2

 

f通常为奇数

 

4.卷积步长stride

此时输出图片为[(n+2p-f)/s+1]* [(n+2p-f)/s+1]

 

 

5.RGB图像上的卷积

(1)

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第2张图片

(2)与多个过滤器卷积

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第3张图片

n_c为通道数,n_c' 为过滤器数

 

6.单层卷积网络

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第4张图片

 

7.简单卷积网络示例

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第5张图片

 

8.池化层(pooling):

最大池化(常用超参:f=2,s=2),池化一般不用padding,池化不用学习参数。

 

9.卷积神经网络示例:

卷积层和池化层看作一层。随着神经网络深度的增加,高度和宽度减小(通过卷积和池化),通道数增加(=滤波器数量)。

 

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第6张图片










全连接层(FC):即标准神经网络,输入与输出的每个单元连接。

另一种常见的网络形式:多个卷积层后加一个池化层然后再多个卷积层加一个池化层。

 

二. 深度神经网络实例

1. 经典案例:LeNet-5、AlexNet、VGG。

2. ResNet(残差网络):跳远连接,可以构建更深层的网络,解决梯度消失/梯度爆炸的问题。

Inception

3. 迁移学习:使用别人已经训练过的数据集

(1)当自己只有很小训练集时,可以下载别人的code+weights(别人预训练的权重)用作自己初始化,输出层替换为自己的softmax层(训练softmax层的权重)

(2)当有很多数据集时,冻结更少的层,后面替换为自己的隐藏层+输出层

 

三.目标检测

1. 目标定位(神经网络输出的标签除了类别外还要添加四个标签,bx,by,bh,bw)

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第7张图片

损失函数,分为Y1=1(Pc=1)和Y1=0(Pc=0)两种情况,Y1=0时只需考虑Y1的平方误差即可。

 

2. 特征点检测

定义目标对象上的若干特征点,首先人为标注这些特征点的坐标位置,然后将标注后的图片放入神经网络中训练,输出的标签为测试图片的是否存在检测对象以及特征点们的坐标。进而可以利用这些特征点坐标进行人脸表情分析,姿态分析等。

 

3. 目标检测

基于滑动窗口的目标检测算法。

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第8张图片吴恩达系列课程——卷积神经网络(From:网易云课堂)_第9张图片将原图片切割成只含目标的小图片输入网络进行训练,然后在测试图片上以大小不同的窗口进行滑动检测每次窗口中是否有目标。

检测精度&开销

 

4.卷积的滑动窗口实现

(1)将全连接层变为卷积层

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第10张图片

(2)卷积的滑动窗口实现

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第11张图片

对整张图片进行卷积,一次得到所有预测值。

 

1.Bounding box 预测(得到更精确的边界框)

YOLO

 

2.交并比(IoU):预测边界框and实际边界框/预测边界框or实际边界框

IoU>=0.5 认为预测正确。

 

3.非最大值抑制

网格划分较细时,目标覆盖的多个网格会对目标进行多次预测和定位。(每个格子都觉得自己里面有目标),这时p_c表示概率。

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第12张图片

4.Anchor boxes

用来处理两个目标中点落到同一个网格中的情况。根据两个目标形状不同设置形状不同的anchor box。

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第13张图片

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第14张图片

5.YOLO

设定两个anchor boxes,将每个网格进行训练,输出为3*3*16

吴恩达系列课程——卷积神经网络(From:网易云课堂)_第15张图片

你可能感兴趣的:(计算机视觉,机器学习/深度学习)