目标检测——卷积神经网路基础知识

  • 卷积神经网络
    • LeCun的LeNet(1998)网络结构
    • 卷积神经网络发展历史
    • 卷积神经网络可以做什么
  • 全连接层
    • 介绍
    • BP神经网络
    • 通过BP神经网络做车牌数字识别
      • 输入层的处理与介绍
      • 输出层的处理与介绍
      • 训练
  • 卷积层
    • 卷积层的基础内容
    • 总结
    • 思考
    • 池化层
      • 池化层的特点
  • 误差的计算
    • Cross Entropy Loss交叉熵损失
  • 误差的反向传播
  • 权重的更新
    • 更新权重的计算
    • batch分批次训练
    • 优化器optimazer
      • 1、SGD优化器
      • 2、SGD+Momentum
      • 3、Adagrad(自适应学习率)
      • 4、RMSProp(自适应学习率)
      • 5、Adam(自适应学习率)
  • 总结

卷积神经网络

LeCun的LeNet(1998)网络结构

卷积神经网络发展历史

卷积神经网络可以做什么

① 图像分类
② 图像分割
③ 图像描述
④ 图像风格迁移(把其他风格应用到本图像中)

全连接层

介绍


全连接层有很多神经元共同链接
三个激励x1 x2 x3 然后把激励乘以对应权重w1 w2 w3 然后求和,加上偏置,最后加上激励函数得到最终输出
公式:y=f(x1w1+x2w2+x3w3-1)

BP神经网络


BP神经网络包括两部分:信号的向前传播和误差的反向传播

  • 反向传播过程:经过前向传播后会得到输出结果,把这个结果和真实值进行对比,会有一个误差,我们通过计算上一层每个节点的偏导数就可以计算每个节点的误差梯度,我们把误差应用到误差梯度上,就得到了反向传播的过程

通过BP神经网络做车牌数字识别

输入层的处理与介绍

1、拿到照片,首先把他灰度化,每个像素就只剩下一个分量,然后进行二值化处理,会的到一个黑白图像

2、用5行3列的滑动窗口在黑白图像进行滑动,滑动的同时统计这个滑动窗口对应白色像素占整个窗口的比例
在滑动带最右端发现只剩下两列的时候(不是3列)可以进行padding(补0,补上一列0)处理,把52变成53,也可以进行提前预知,在最后一次滑动时,改为52的滑动窗口
通过这个方法遍历整个图像,会得到一个5
5的矩阵

3、把55的矩阵,按行展开拼接成一个行向量(125),这个行向量就是输入神经网络的输入层

输出层的处理与介绍

1、有了输入层后看输出层
one-hot编码(独热编码)对标签进行编码的常用方式
的热编码的作用:每行代码都有唯一的编码方式,不会重复

训练

有了输入和输出之后,就可以对神经网络进行训练了。
在实际训练过程中,可以将输入层的输入节点数设为25,将输出层的输出节点数设为10,中间的隐藏层按实际情况进行设置

卷积层

卷积层的基础内容

卷积层是卷积神经网路中独特的网络结构

  • 卷积:一个滑动窗口在特征图上进行滑动,并计算(将卷积核上的值特征图上的值对应相乘,再进行相加,就得到最后矩阵中的一个值,每滑动一步计算一个值,最终得到卷积结果)

  • 卷积的目的:为了进行图像的特征提取

  • 卷积的特性
    拥有局部感知机制:以滑动窗口的形式在特征图上进行滑动计算,所以具有局部感知能力
    ②**权值共享:**滑动过程中,卷积核的值不会发生变化,所以又具有权值共享的特性

  • 权值共享的优势(对比BP神经网络)

    这里的参数指的是神经元的权重
    权值的共享使得卷积神经网络的参数个数大幅度减少

    比如对于1280720的图片,假设第一个隐层hidden layer 1 的神经元个数为1000,1000个神经元和图片进行全连接的话就是12807201000=921600000
    对于卷积神经网络,假设layer1 用1000个5
    5的卷积核,因此所需要的参数个数就是551000=25000

  • 卷积的过程

    实际应用过程中往往是对多维的特征矩阵(彩色图像由RGB三个通道组成的)进行卷积操作

卷积核的深度要和输入特征矩阵一致(这里的深度指的是channel,即通道数),都是三维(RGB三维)的,三维的卷积核对三维的输入特征进行对应(维度相对应)卷积,对应相加得到卷积矩阵,再用卷积核2进行对应卷积,得到输出的特征矩阵

总结

  • 1、卷积核的cahnnel(深度、维度)与输入特征层的channel(深度,维度)相同(都是三通道)
  • 2、输出的特征矩阵channel(深度、维度)与卷积核的个数相同(通过卷积核1和卷积核2最终得到一个两通道的输出特征矩阵)

思考

  • 1、如果加上偏移量bias该如何计算?
    只需要将最终卷积得到的输出特征矩阵每个元素偏移量进行相加即可
    比如
    加上偏移量1,就得到23,22

    加上偏移量1后得到22,32
    - 2、加上激活函数该如何计算?
    常用的激活函数

    为什么要使用激活函数?
    ①在线性的计算过程中引入非线性因素,使其具备解决非线性问题的能力,就要通过非线性函数达到相应的目的
    ②Relu激活函数实际上是将负值全部过滤掉,只保留了正值不变,在实际应用中使用较多
    ③在反向传播误差的过程中,如果使用sigmoid激活函数,导数的求解非常麻烦
    ④如果使用Relu激活函数,权重如果进入失活状态后无法被再次激活,所以在训练的过程中,建议不要一开始就使用特别大的学习率进行学习,否则很容易导致大量神经元失活
    3、如果在卷积的过程中出现越界的情况该如何处理?

  • 处理方法:可以使用padding的方式在图像的周围直接补零进行处理,补零后就能够正常地进行卷积,而不会出现越界的情况了

padding的像素p:一般实际应用过程中是两边同时补零,即左右上下进行对称的:补零操作
上图中只补了一边,所以只用加上一个p就够了
N = ( 4 - 3 + 1 )/ 2 + 1 = 2 ,所以最后得到一个2*2的特征矩阵

池化层

池化层的目的:对特征图进行稀疏处理,减少数据运算量

  • maxpooling下采样:寻找池化核对应范围内的最大值来进行最大下采样操作(找最大值)

  • averagepooling下采样层:寻找池化核对应范围内的平均值来进行平均下采样操作(取平均值)

池化层的特点

  • 1、没有训练参数,只是在原始的特征图上进行求最大值或者平均值的操作
  • 2、它只会改变特征矩阵的宽度(w)和高度(h),并不会改变深度(channel)
  • 3、一般池化核的大小(poolsize)和步长(stride)相同,可以将特征图进行一定比例的缩小,计算更加方便(这只是一般情况下,但并不绝对)

误差的计算

Cross Entropy Loss交叉熵损失


sigmoid 和 softmax的区别:
如果是猫狗分类(二分类问题)满足概率分布,两个概率加起来的和为1
如果是多分类问题(不止一个类:人类和男人)不满足概率分布,所以用sigmoid

误差的反向传播

右边是已经求出的值:loss O1 y1
通过链式求导法则面对W11(2)求偏导

求解过程:

右边:每一个的偏导数
左边:对W11(2)求的偏导

权重的更新

更新权重的计算


通过下边公式进行权重更新

batch分批次训练

通过权重更新,不断找到全局最优点,但是因为数据量太大,所以我们引入了batch分批次训练,找最优点
-通过分批次训练(batch)进入全局最优点(损失梯度指向当前最优的方向)

优化器optimazer

因为batch训练找到的是局部最优点,训练最后可能不是全局最优点,所以引入了优化器optimazer
优化器optimazer的目的:使网络更快的收敛

optimazer的种类:

  1. SGD优化器
  2. SGD+Momentum
  3. Adagrad
  4. RMSProp
  5. Adam

1、SGD优化器

Wt+1:更新后的参数
Wt:更新前的参数
α:学习率
g(Wt):所求的损失梯度
缺点:

  • 受样本噪声的影响:有些样本的标注是错的,所以求出来的梯度有问题
  • 可能会陷入局部最优解

2、SGD+Momentum

多了一个动量部分 η * Vt-1
动量系数η:一般取0.9
可以参考左下方的方向向量图

3、Adagrad(自适应学习率)

主要是在学习率上边进行的改进
St就相当于对损失梯度平方求和,所以就会导致Wt公式中分母越来越大,从而导致学习率越来越小

缺点:学习率下降的太快,可能还没收敛,训练就停止了

4、RMSProp(自适应学习率)

多添加了俩系数,用来控制学习率的衰减速度

5、Adam(自适应学习率)

mt:一阶动量
vt:二阶动量
然后对一阶动量、二阶动量进行调整,从而得到最终表达式
β1、β2:都是超参数

注:可以在网上搜优化器的更新动图,了解一下

总结

卷积神经网络的流程:
1、输入参数
处理图片:转为黑白图,根据白色占比,确定对应矩阵
因为需要和隐藏层进行全连接,而输入参数的图片太大,所以要对输入的矩阵与卷积核进行卷积处理,以及池化操作,减少样本量
2、BP反向传播
通过向前传播,训练输出的值和真实值得到的误差,再一层层反向传播,修正训练的权重,提高模型准确率
3、batch
数据量太大,所以分批次操作,就是batch,但是batch会引发一个问题:达到局部最优解而不是全局最优解
因此引入了优化器
4、优化器
通过优化器不断修正学习率,让模型更快拟合,达到全局最优解

目标检测——卷积神经网路基础知识相关推荐

  1. 卷积神经网路之感受野(receptive field)的理解

    卷积神经网路之感受野(receptive field)的理解与计算 感受野,源于生物学中,是一个有界限的媒介,一些生理刺激可以在特定生物体中引起感觉神经元反应.定义,单个感受器与许多感觉神经纤维相联系 ...

  2. 卷积神经网络(CNN)基础知识

    文章目录 卷积神经网络基础知识 卷积与互相关 卷积 一维卷积 二维卷积 互相关 填充与步幅 填充 步幅 卷积神经网络结构和原理详解(见下节) 卷积神经网络基础知识 卷积神经网络(Convolution ...

  3. 全卷积神经网路【U-net项目实战】语义分割之U-Net详解

    文章目录 1.简介 2.U-net典型应用 3. U-net详解 4.参考文献 1.简介 语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支.与分类任务不同,语义分 ...

  4. 【目标检测】1、基础内容

    文章目录 1. 目标检测是什么 2. 目标检测基础 2.1 候选框提取 2.2 特征提取 2.3 分类器 3. 目标检测性能评估参数 4. NMS(非极大值抑制) 4. 数据集 新方法:RFCN, M ...

  5. 目标检测新技能!引入知识图谱:Reasoning-RCNN

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前言 目前大规模的检测问题,挑战主要在数据的分布,比如有的类别的数 ...

  6. 《南溪的目标检测学习笔记》——基础算子的学习笔记

    基础知识 最优化理论 在最优化理论中,我们可以将算子看作是向量值函数映射, 举例来说,这里: 输入张量X\mathcal{X}X看作是向量x∈Rn\mathbf{x} \in \mathbb{R}^n ...

  7. Single-stage目标检测网络YOLO相关背景知识

    YOLO相关背景知识[1] 论文链接:http://arxiv.org/pdf/1506.02640 两大流派 目前,基于深度学习算法的一系列目标检测算法大致分为两大流派: 1.两步走(two-sta ...

  8. 卷积神经网络入门基础知识

    一.卷积神经网络(CNN)定义 卷积神经网络(convolutional neural network, CNN),是一种专门用来处理具有类似网格结构的数据的神经网络.卷积网络是指那些至少在网络的一层 ...

  9. 全卷积神经网路【U-net项目实战】U-Net源码上实现自己数据集的分割任务

    文章目录 环境: 数据集准备: 主要代码: 接下来是训练,此处将训练和测试分开在两个.py文件中,好调用! 接下来就是愉快的测试了:main_test.py 测试结果部分展示:(裂缝检测) 问题 : ...

最新文章

  1. 猫哥教你写爬虫 046--协程-实践-吃什么不会胖
  2. Spring 注解之@RestController与@Controller的区别
  3. 转载:QTableView中嵌入可视化组件
  4. 有进度条圆周率Π计算
  5. 推荐几款jquery图片切换插件
  6. java redis 面试题_Java开发人员怎么面试 常见Redis面试题有哪些
  7. 主打轻薄长续航搭载骁龙730 联想Z6发布 1899元起!
  8. [转载] Python中NumPy简介及使用举例
  9. HIDL第一个Hello World
  10. nginx 启动报错 “/var/run/nginx/nginx.pid failed” 解决方法
  11. ArcGIS 判断坐标系是否正确
  12. 最大连续子序列和(4种算法)
  13. ipcfg报错_CentOS服务器安装Anaconda
  14. 【1】Matlab深度学习环境配置-入门
  15. s7200cpu224xp手册_西门子S7-200的PLCCPU224XP的模拟量接线怎样接.pdf
  16. TODS:从时间序列数据中检测不同类型的异常值
  17. windows下Git与TortoiseGit的官网下载与安装
  18. oracle获取中位数
  19. Fashion MNIST进行分类
  20. D - Plane 航空管制2 HYSBZ - 2535

热门文章

  1. 计算机科学与技术实验题代做,计算机科学与技术专业代写(本科)毕业设计(论文)要求...
  2. 一个笼子里面关了鸡和兔子(鸡有两只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物?
  3. 哈工大计算机学硕专硕分开排名,哈工大计算机考研经验谈
  4. ant design的Switch组件的坑,怎么更改Switch的状态?
  5. 手机上发表csdn博客
  6. https下不加www的强制跳转
  7. 畅想未来智能交通:因为有你,所以不同
  8. 内网安全建设思路(转)
  9. 如何关闭掉magento后台没用的功能
  10. 员工激励四大原则和十个措施