神经网络与深度学习课程总结三

目录

1 深度学习视觉应用

1.1 数据集与评价指标

1.1.1 算法评估相关概念

1.2 目标检测与YOLO

1.2.1 目标检测问题

1.2.2 一步法(two-stage)

1.2.3 YOLO网络结构

1.2.4 包围框与置信度

1.2.5 损失函数

1.2.6 训练和NMS

1.3 语义分割

1.3.1 目标

1.3.2 基本思想

滑动窗口:滑动次数太多,计算太慢,重复计算太多

1.3.3 FCN具体实现


深度学习视觉应用

1.1 数据集与评价指标

1.1.1 算法评估相关概念

  • TP: 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数
  • FP: 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数
  • FN:被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数
  • TN: 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数
(1)混淆矩阵
  • P(精确率): 𝑇𝑃/(𝑇𝑃 + 𝐹𝑃),标识“挑剔”的程度
  • R(召回率): 𝑇𝑃/(𝑇𝑃 + 𝐹𝑁)。召回率越高,准确度越低
  • 标识“通过”的程度
  • 精度(Accuracy): (𝑇𝑃 + 𝑇𝑁)/(𝑇𝑃 + 𝐹𝑃 + 𝑇𝑁 + 𝐹𝑁)
  • P-R曲线,表示了召回率和准确率之间的关系。精度(准确率)越高,召回率越低
  • 假设一个测试集,其中图片只由大雁和飞机两种图片组成,
    True positives : 飞机的图片被正确的识别成了飞机。
    False positives: 大雁的图片被错误地识别成了飞机。
    False negatives: 飞机的图片没有被识别出来,系统错误地认为它们是大雁。
    True negatives: 大雁的图片没有被识别出来,系统正确地认为它们是大雁。
(2)置信度与准确率
调整阈值可改变准确率或召回值。可以通过改变阈值(也可以看作上下移动蓝色的虚线),来选择 让系统识别能出多少个图片,当然阈值的变化会导致Precision与 Recall值发生变化。比如,把蓝色虚线放到第一张图片下面,也就 是说让系统只识别出最上面的那张飞机图片,那么Precision的值就 是100%,而Recall的值则是20%。如果把蓝色虚线放到第二张图片 下面,也就是说让系统只识别出最上面的前两张图片,那么 Precision的值还是100%,而Recall的值则增长到是40%。
(3)AP
mAP:均值平均准确率,每一个类别均可确定对应的AP 多类的检测中,取每个类AP的平均值,即为mAP。
 
适用方面:实际图像分类任务(多类)

1.2 目标检测与YOLO

1.2.1 目标检测问题

目标检测是在给定的图片中精确找到物体所在位置,并标注出物体的类别。
物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图
片的任何地方,并且物体还可以是多个类别。
目标检测问题发展
  • R-CNN
  • SPP NET
  • Fast R-CNN
  • Faster R-CNN
  • 最终实现YOLO
YOLO是一个集大成的方法,不了解之前的方法,很难掌握YOLO的思路。
YOLO家族发展

1.2.2 一步法(two-stage)

无需候选框,直接出最终结果。突出优点:快!

分类问题扩展为回归 + 分类问题
问题 1 :有一个框里有多个,有个多个框里有一个,怎么办?
多个框里有一个目标,取目标中心点所在框
一个框里有多个,暂不能解决
问题 2 :多类目标怎么办?
使用独热编码扩展类别数

1.2.3 YOLO网络结构

YOLO官方的模型结构:
网络结构包含24个卷积层和2个全连接层;其中前20个卷积层用来做预训练,后面4个是随机初始化的卷积层,和2个全连接层。
YOLO 网络输入: YOLO v1在PASCAL VOC数据集上进行的训练,因此输入图片为448 × 448 × 3。实际中如为其它尺寸,需要resize或切割成要求尺寸
YOLO 模型处理: 𝟕 × 𝟕 网格 划分
将图片分割为 𝑆 2 个grid( 𝑆 = 7 ),每个grid cell的大小都是相等的
每个格子都可以检测是否包含目标
YOLO v1中,每个格子只能检测一种物体(但可以不同大小)。
YOLO网络输出:
输出是一个 7 × 7 × 30 的张量。对应 7 × 7个cell 。每个cell对应2个包围框(bounding box, bb),预测不同大小和宽高比, 对应检测不同目标。每个bb有5个分量, 分别是物体的中心位置(𝑥, 𝑦)和它的高 (ℎ) 和宽 (𝑤) ,以及这次预测的置信度。 在右图中,每个框代表1个预测的bb,粗细代表不同的置信度,越粗得越高。

1.2.4 包围框与置信度

YOLO 的包围框
我们有 𝑠 2 个框,每个框的bb个数为 𝐵 ,分类器可以识别出 𝐶 种不同的物体,
那么所有整个ground truth的长度为 𝑆 × 𝑆 × (𝐵 × 5 + 𝐶)
YOLO v1 中,这个数量是 30
YOLO v2 和以后版本使用了自聚类的 anchor box bb, v2 版本为 𝐵 = 5 , v3 中 𝐵 =9
处理细节 —— 归一化
四个关于位置的值,分别是 𝑥, 𝑦, ℎ 𝑤 ,均为整数,实际预测中收敛慢
因此,需要对数据进行归一化,在0-1之间。
处理细节 —— 置信度
置信度计算公式: 𝐶 = Pr 𝑜𝑏𝑗 ∗ 𝐼𝑂𝑈 𝑡𝑟𝑢𝑡ℎ 𝑝𝑟𝑒𝑑
   Pr( 𝑜𝑏𝑗 )是一个grid有物体的概率
    IOU是预测的bb和真实的物体位置的交并比。
处理细节 —— 训练值( ground truth
Pr 𝑜𝑏𝑗 ground truth :三个目标中点对应格子为 1 ,其它为 0
训练数据与网络输出

1.2.5 损失函数

YOLO 损失函数 —— 边界框对应损失项
YOLO 损失函数 —— 𝝀 取值

1.2.6 训练和NMS

预训练与训练: 保留了这么多边界框,预测中 一个物体可能被多个边界框包 围;实际物体只对应一个边界 框,如何解决个问题呢?
NMS核心思想是:选择得分最高 的作为输出,与该输出重叠的 去掉,不断重复这一过程直到 所有备选处理完。
NMS 算法要点
1. 首先丢弃概率小于预定IOU阈值(例如0.5)的所有边界框;对于剩余的边界框:
2. 选择具有最高概率的边界框并将其作为输出预测;
3. 计算 “作为输出预测的边界框”,与其他边界框的相关联IoU值;舍去IoU大于阈值的边界框;其实就是舍弃与“作为输出预测的边界框” 很相近的框框。
4. 重复步骤2,直到所有边界框都被视为输出预测或被舍弃
NMS 算法
1. 它首先查看与每次检测相关的概率并 取最大的概率。图中选概率为 0.9 的方框;
2. 进一步查看图像中的所有其他框。与当前边界框较高的IoU 的边界框将被抑制。因此图中0.6 0.7 概率的边界框将被抑制。 
3. 从概率最高的所有边界框中选择下一个,在例子中为0.8 的边界框;
4. 再次计算与该边界框相连边界框的IoU,去掉较高 IoU 值的边界框。
5. 重复这些步骤,得到最后的边界框
预训练与训练
YOLO先使用ImageNet数据集对前20层卷积网络进行预训练,然后使用完整的网络,在PASCAL VOC数据集上进行对象识别和定位的训练和预测 训练中采用了drop out和数据增强来防止过拟合。
YOLO的最后一层采用线性激活函数(因为要回归bb位置),其它层都是采用Leaky ReLU激活函数

1.3 语义分割

语义分割:找到同一画面中的不同类型目标区域
语义分割问题:和其他问题的区别
实例分割:同一类型目标要分出来具体实例(谁是谁)
目标检测:标出来外包围矩形

1.3.1 目标

对图中每一个像素进行分类,得到对应标签

1.3.2 基本思想

滑动窗口:滑动次数太多,计算太慢,重复计算太多

FCN网络结构: 网络结构分为两个部分:全卷积部分和反卷积部分。全卷积部分借用了一些
经典的CNN网络,并把最后的全连接层换成卷积,用于提取特征,形成热点图;反卷积部分则是将小尺寸的热点图上采样得到原尺寸的语义分割图像。

1.3.3 FCN具体实现

FCN 网络结构:卷积部分
传统卷积神经网络。注意最后的全连接层
FCN中第6、7、8层都是通过 1 × 1 卷积得到的,第6层的输出通道是 4096 ,第7层的输出通道是4096 ,第8层的输出是 1000 (类),即1000个特征图(称为 heatmap)。输出的特征图(称为heatmap),颜色越贴近红色表示对应数值越大。
反卷积部分:跳级结构
蓝色:卷积层;绿色:Max Pooling层;黄色: 求和运算;灰色: 裁剪
仅作交流学习,如有错误,敬请批评指正!
  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BJTU深度学习实验4是指北京交通大学开设的一门深度学习实验课程中的第四个实验内容。 在这个实验中,学生将学习和应用深度学习算法,探索不同网络结构和优化方法对模型性能的影响。 首先,学生将使用Python编程语言和深度学习库(如TensorFlow或PyTorch)来构建卷积神经网络(CNN)模型。通过调整网络层数、卷积核大小、池化层配置等参数,学生可以探索不同网络结构对于图像分类等任务的影响。 其次,学生还将尝试不同的优化方法来提高模型的性能。常见的优化方法包括梯度下降、随机梯度下降、Adam等。通过使用不同的优化方法,学生可以比较它们在模型训练过程中的表现,选择最佳的优化方法。 在实验过程中,学生将使用已经标注好的数据集进行训练和测试。他们需要了解数据集的特点,以及数据预处理的方法,如图像尺寸调整、数据增强等。这些步骤对于模型的性能和泛化能力至关重要。 最后,学生需要进行实验结果的分析和总结。他们将评估不同网络结构和优化方法的性能,比较它们的准确率、损失值等指标。通过对实验结果的分析,他们可以得出结论,为后续实验和研究提供指导。 总之,BJTU深度学习实验4是一门帮助学生熟悉深度学习算法,并进行实践和探索的课程实验。通过这个实验,学生可以了解到深度学习模型的构建和优化方法,以及数据处理和实验结果分析的重要性。这对于他们深入学习和应用深度学习有着重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值