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

本文详细介绍了卷积神经网络(CNN)的基本原理和应用,包括卷积、边缘检测、填充、步长、RGB图像卷积、池化层、经典网络结构如LeNet-5和ResNet,以及目标检测技术,如YOLO和IoU计算。同时讨论了迁移学习和如何利用预训练模型进行微调。
摘要由CSDN通过智能技术生成

一.卷积神经网络

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    

 

 

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)

(2)与多个过滤器卷积

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

 

6.单层卷积网络

 

7.简单卷积网络示例

 

8.池化层(pooling):

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

 

9.卷积神经网络示例:

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

 










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

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

 

二. 深度神经网络实例

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

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

Inception

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

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

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

 

三.目标检测

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

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

 

2. 特征点检测

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

 

3. 目标检测

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

将原图片切割成只含目标的小图片输入网络进行训练,然后在测试图片上以大小不同的窗口进行滑动检测每次窗口中是否有目标。

检测精度&开销

 

4.卷积的滑动窗口实现

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

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

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

 

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

YOLO

 

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

IoU>=0.5 认为预测正确。

 

3.非最大值抑制

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

4.Anchor boxes

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

5.YOLO

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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值