首页 > 其他分享 >umich cv-4-1 卷积网络基本组成部分介绍

umich cv-4-1 卷积网络基本组成部分介绍

时间:2023-10-21 13:34:05浏览次数:33  
标签:池化层 卷积 umich cv 神经网络 图像 我们 normalization

这节课中介绍了卷积网络的基本组成部分(全连接层,激活函数,卷积层,池化层,标准化等),下节课讨论了卷积神经网络的发展历史以及几种经典结构是如何构建的

前言

在之前提到的全连接神经网络中,我们直接把一个比如说32 * 32 * 3的图像展开成一个3072*1的向量,然后使用向量与权重矩阵点积得到结果,这实际上是不太合理的,从某种意义上说,我们破坏了原本图像的空间信息,把它简单的看成一个一维向量,而在卷积神经网络中,我们引入了卷积层,能够帮助我们在保存原本图像的空间信息的情况下,对图像特征进行提取

卷积层

img
如上图所示我们引入了一个卷积核或者说filter,与原始图像进行卷积运算,就是我们把卷积核在原始图像上从起始位置开始滑动,依次对每个5 * 5的区域与filter点积,再加上偏置项,其实就是进行$W^{T}x + b$的运算,这样一个区域得到一个输出,最终一行我们可以得到$32 - 5 + 1 = 28$个输出结果,也就意味着最终我们可以得到一张$1 \times 28 \times 28$的激活图

更进一步地,我们可以使用不同的filter,来获得不同的激活图,组成我们的卷积层:
img
更一般地形式:
img
我们可以看到$C_{out}$代表着一个卷积层中filter的数目,同样也与输出层的维度保持一致,而$C_{in}$一般都是与上一层的输入保持一致

我们可以将不同的卷积层进行叠加,记得注意要在卷积层之后还要加入一个relu层,否则两个卷积层的连接和一个卷积层毫无区别:
img

我们可以采用和之前一样的可视化方法,看看卷积层实际上做了什么:
img
我们可以看出卷积层提供的图像模板,和我们之前用线性分类器或者全连接网络得到的很不一样,这里的模板大多是一些边缘或者颜色信息,从另一个角度说,卷积层其实起到了提取图像特征的作用,我们可以把这些模板都看作图像的某种特征

在之前我们也提到过,输入层图像在经过卷积层之后,它的大小会缩减,实际上也损失了某种图像信息,我们不想这样,于是引入了padding,在原本的图像周围加上0,保证图像的维度不变:
img

现在我们来看另一个问题:
img
在经过不同卷积层之后,对于输出层来说,想要去学习全局的图像,看到全局的图像非常困难,所以我们需要下采样来缩小图像,便于特征的提取,这样我们引入了步长stride的概念,就是我们的卷积核在图像上滑动时,是一次滑动stride步长:
img

然后我们来看看关于卷积层的其它信息,比如说可学习的参数:
img
显然每个filter矩阵的每个参数都是可学习的,同时也不要忘了偏置项
比如说运算次数:
img
总共有10240个输出,每个输出都是通过点积(75次运算)得到

最后总结一些常见参数设置:
img

池化层

池化层也是一种下采样的方法,可以实现图像缩小与特征降维,常用的有平均池化与最大池化:
img
max pooling就是取对应kernel size区域里面的最大值,同样这里也可以设置步长值
常用的设置如下,我们可以发现池化层是只有超参数设置的,没有任何可学习的参数
img
下图是一个卷积神经网络的架构,我们可以看到使用卷积层与池化层,可以实现空间的降维但是通道数提升,我认为这意味着我们得到了更多更简单但是更有用的图像特征:
img

normalization

batch normalization是在2015年发现的一种可以极大地提升训练神经网络速度的方法,可以使其快速收敛,但是小哥哥老师在课上指出,他觉得原论文的数学原理的阐述并不是很有道理

标签:池化层,卷积,umich,cv,神经网络,图像,我们,normalization
From: https://www.cnblogs.com/dyccyber/p/17778852.html

相关文章

  • umicv cv-summary1-全连接神经网络模块化实现
    全连接神经网络模块化实现Linear与Relu单层实现LossLayer实现多层神经网络不同梯度下降方法Dropout层今天这篇博文针对Assignment3的全连接网络作业,对前面学习的内容进行一些总结在前面的作业中我们建立神经网络的操作比较简单,也不具有模块化的特征,在A3作业中,引导我们......
  • 使用卷积神经网络训练手写数字识别模型(CNN)
    https://www.cnblogs.com/zylyehuo/效果展示目录结构README.md#BasicMNISTExamplepipinstall-rrequirements.txtpythonmain.py#CUDA_VISIBLE_DEVICES=2pythonmain.py#tospecifyGPUidtoex.2requirements.txttorchtorchvisionmain.pyfrom......
  • OpenCV4.1.0编译时提示“CV_BGR2GRAY”: 未声明的标识符
    OpenCV版本为4.1.0使用CV_BGR2GRAY时报错:“CV_BGR2GRAY”:未声明的标识符解决方法一:添加头文件:#include<opencv2/imgproc/types_c.h>解决方法二:在新版本中,CV_BGR2GRAY被COLOR_BGR2GRAY替换,只需将CV改成COLOR即可。翻译搜索复制......
  • 安防监控国标GB28181平台LiteCVR修改录像计划的等待时间较长,该如何解决?
    我国在智能视频安防监控领域相较国外起步较晚,但随着近些年互联网等技术的发展,我国在该领域迅猛发展,取得了不错的成果。有用户反馈,GB28181视频监控平台LiteCVR修改录像计划的等待时间较长。今天我们来针对这个案例做一个分析和讲解。根据反馈我们立即进行排查,发现其实修改单个通......
  • 视频监控/安防监控平台EasyCVR安防视频监控平台应用场景
    EasyCVR是一款专门用于安防视频管理的综合性软件产品。它是一款完全自主可控的软件,旨在为用户提供全方位的视频监控管理解决方案。EasyCVR具备多种功能和特点。首先,它与EasyNVR服务器无缝集成,实现了对摄像机和监控设备的统一管理。通过EasyCVR,用户可以方便地查看和管理所有连......
  • vscode远程ubuntu,python不识别opencv的函数
    将opencv-python更新到4.8版本以上https://github.com/microsoft/pylance-release/issues/4838......
  • 卷积认知
    前言博主研究生时期研究的课题有关于点云的深度学习。对于点云这一三维数据形式的深度学习研究,相关工作启发于二维图像深度学习处理,由此对于点云的特征提取也采用卷积这一形式。但在实践过程中,点云的卷积衍生出了多种方法。因此该随笔主要内容为对卷积这一概念的个人理解与梳理......
  • 什么是卷积
    参考文献:https://blog.csdn.net/zhibing_ding/article/details/125254670 不断的学习,就会有不同的认识和理解. 卷积操作的基本思想是提取输入数据的局部特征,这有助于网络捕捉图像中的空间结构和模式。卷积核是一个小的矩阵,通常是正方形的,它在输入数据上进行滑动。在每个位......
  • QT连接OpenCV库实现人脸识别
    QT连接OpenCV库实现人脸识别_opencvqt人脸识别-CSDN博客 #include"mainwindow.h"#include<QApplication>#include<opencv2/opencv.hpp>#include<QMessageBox>usingnamespacestd;usingnamespacecv;intmain(intargc,char*argv[]){QAp......
  • javacv入门
    第一章:javacv介绍了解javacv的历史和发展背景JavaCV是一个开源的Java框架,它提供了基于Java的接口,用于访问各种计算机视觉库和工具包,如OpenCV、FFmpeg等。JavaCV旨在为Java开发人员提供快速、简单和可靠的图像和视频处理能力。JavaCV的历史可以追溯到2007年,当时一个名为“JavaCP......