毕设-卷积神经网络/深度学习/yolo

卷积神经网络CN1

初学者碰到疑惑时可结合下面参考自行解决疑惑,确保项目能够顺利推进。

参考:

  1. 图像识别/卷积神经网络基础
    https://www.bilibili.com/video/BV1NJ41167vp?spm_id_from=333.999.0.0
    https://www.bilibili.com/video/BV1b7411T7DA?spm_id_from=333.999.0.0
  2. 使用pytorch/tensorflow搭建Lenet
    https://www.bilibili.com/video/BV187411T7Ye?spm_id_from=333.999.0.0
  3. 深度学习-目标检测篇
    https://www.bilibili.com/video/BV1vz4y1R72D?spm_id_from=333.999.0.0
  4. 目标检测网络评价指标mAP和FPS
    https://www.bilibili.com/video/BV1ez4y1X7g2?spm_id_from=333.999.0.0
  5. 训练集PASCAL-VOC/COCO讲解以及制作自己的训练集/测试集
    https://www.bilibili.com/video/BV1kV411k7D8?spm_id_from=333.999.0.0
  6. yolo 理论讲解
    https://www.bilibili.com/video/BV1yi4y1g7ro?spm_id_from=333.999.0.0
  7. yolo1论文解读 https://zhuanlan.zhihu.com/p/70387154
    yolo2论文解读 https://zhuanlan.zhihu.com/p/74540100
    yolo3论文解读 https://zhuanlan.zhihu.com/p/76802514
  8. yolo 代码实操
    https://www.bilibili.com/video/BV1t54y1C7ra?spm_id_from=333.999.0.0
  9. yolo github源码
    https://github.com/WZMIAOMIAO/deep-learning-for-image-processing
  10. “TED李飞飞 我们教计算机理解图像” https://www.bilibili.com/video/BV1RW411D78Z?spm_id_from=333.337.search-card.all.click
  11. “吴恩达 机器学习1-9” https://www.bilibili.com/video/BV164411b7dx?spm_id_from=333.999.0.0
  12. “神经元介绍” https://blog.51cto.com/u_15067247/4236471
  13. “卷积核如何工作” https://blog.csdn.net/weixin_41297324/article/details/88991222
  14. “池化层如何工作” https://blog.csdn.net/weixin_38145317/article/details/89310404

本文将根据自己的毕设期间的学习经历进行总结。本文内容大纲如下

  • 卷积神经网络基础知识
  • 卷积神经网络损失函数计算
  • pytorch官方小教程Lenet搭建
  • 目标检测网络
  • mAP值评估网络
  • 如何制作自己的数据集
  • yolo网络理论
  • yolo网络实践。

1 卷积神经网络基础知识

1.1 卷积神经网络发展

1985/1986年,Hinton提出back propagation反向传播算法。
1998年,LeCun用BP算法训练LeNet5网络。
2006年,Hinton提出Deep Learning概念。
2012年,Hinton和Krizhevsky提出AlexNet网络,成功实践了Deep Learning。

1.2 卷积神经网络层次

1.2.1 卷积神经网络层次分类

卷积神经网络按照其结构特点可以分为3个层:全连接层,卷积层,池化层。其中全连接层类似于神经网络,用于根据输入特征计算最终输出;卷积层用于提取特征;池化层用于对特征图进行稀疏处理,减少数据运算量。

1.2.2 全连接层

1.2.2.1 神经元

全连接层类似于神经网络。而前向传播在模仿神经元的机制,如下图,即是根据输入的3个feature和1个bias,经过parameters/weights和activation处理得到1个输出y。

在这里插入图片描述

1.2.2.2 BP算法

将每个神经元全连接后形成全连接层,BP(back propagation)算法包括信号前向传播误差反向传播两个过程,即:

  • 计算误差输入时候按从输入到输出方向进行。
  • 调整权值时从输出到输入方向进行。

1.2.3 卷积层(卷积神经网路CNN独特网络结构)

1.2.3.1 目的、组成与流程

卷积神经网络的目的是实现特征的提取。卷积层的主要组成有input volume(输入特征矩阵),filter(卷积核/滤波器),out volume(输出特征矩阵)。
他的流程即:使用与输入特征矩阵channel(深度)相同的卷积核,在输入特征上的每一层进行扫描,做相乘再相加操作。最终输出深度等于卷积核个数的输出特征矩阵。
如下图,即使用1个 7 ∗ 7 ∗ 3 7*7*3 773的输入特征矩阵,2个 3 ∗ 3 ∗ 3 3*3*3 333的卷积核,得到1个 3 ∗ 3 ∗ 2 3*3*2 332的输出特征矩阵。

在这里插入图片描述

1.2.3.2 卷积层特性与优势

卷积的特性具有:局部感知机制和权值共享。
卷积的优势主要在于他和神经网络的对比,比如输入 1280 ∗ 720 1280*720 1280720的灰度图片,在hidder layer中有1000个神经元。对于普通的神经网络需要的参数有 1280 ∗ 720 ∗ 1000 = 921 , 600 , 000 1280*720*1000 = 921,600,000 12807201000=921,600,000 parameters。但是对于卷积神经网络,假设layer采用1000个 5 ∗ 5 5*5 55卷积核,则所需要的参数是 5 ∗ 5 ∗ 1000 = 25 , 000 5*5*1000 = 25,000 551000=25,000 parameters。参数量大大减少。

1.2.3.3 卷积核的特点与计算
  • 卷积核的深度与输入特征矩阵的深度相同
  • 激活函数,如sigmoid函数,relu函数是为了引入非线性因素,使具备解决非线性问题的能力。
    s i g m o i d f u n c t i o n : f ( x ) = 1 1 + e − x sigmoid function:f(x) = \frac {1}{1+e^{-x}} sigmoidfunction:f(x)=1+ex1
    (图片)
    R E L U f u n c t i o n : f ( x ) = M a x ( 0 , x ) RELUfunction:f(x) = Max(0, x) RELUfunction:f(x)=Max(0,x)
    (图片)
  • 输出特征矩阵计算
  1. 输出特征矩阵的深度与卷积核个数相同
  2. 输出特征矩阵的计算 N = ( W − F + 2 ∗ P ) / S + 1 N = (W-F+2*P)/S + 1 N=(WF+2P)/S+1
    输入特征矩阵大小 W ∗ W W*W WW
    卷积核大小 F ∗ F F*F FF
    步长S
    补充的padding像素P
    (e.g图片)

1.2.4 池化层

1.2.4.1 目的与流程

池化层的目的是对特征图进行稀疏处理,减少运算量。常见的有MaxPooling下采样层,AveragePooling下采样层。池化层会将输入特征值减少,常见的池化层的流程如下:
在这里插入图片描述

1.2.4.2 特点
  1. 没有训练参数(parameters/weights)
  2. 只改变特征矩阵的w和h,不改变深度channel
  3. 一般poolsize,即filter大小和步长(stride)相同
  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值