卷积神经网络–CNN

1. 卷积神经网络介绍

卷积神经网络(Convolutional Neural Networks,CNN)是一种包
含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。
常见的CNN网络有LeNet-5、VGGNet、GoogleNet、ResNet、
DenseNet、MobileNet等。
CNN主要应用场景: 图像分类、图像分割 、 目标检测 、 自然语言处
理等领域。

2. 卷积神经网络基本结构及原理

卷积神经网络基本结构

CNN基本结构:INPUT -> 卷积->激活 -> 池化 -> 全连接 ->OUTPUT

卷积层

对输入的图像数据与卷积核做卷积运算提取图像的高阶特征
卷积过程的几个参数
1、深度(depth):卷积核个数,也称神经元个数,决定输出的特征图的数量。

2、步长(stride):卷积核滑动一次的大小,决定滑动多少步可以到达边缘。

3、填充值(padding):在外围边缘补充0的层数。

卷积过程

卷积网络最主要的两个特征
1、局部感知
2、权值共享
激活层、Relu函数

池化层

下采样(downsamples),对输入的特征图进行压缩;
一方面使特征图变小,简化网络计算复杂度,有效控制过拟合;
另一方面进行特征压缩,提取主要特征。
池化,规模一般为 2*2,操作一般有2种:

  • 最大池化(Max Pooling)。取4个点的最大值。这是最常用的池化方法。
  • 均值池化(Mean Pooling)。取4个点的均值。

全连接层

连接所有的特征,将输出值送给分类器,实现分类。

3. pytorch中卷积的实现

卷积层

torch.nn.Conv2d()
参数说明
in_channels:输入通道数(深度)
out_channels:输出通道数(深度)
kernel_size:滤波器(卷积核)大小
stride:表示滤波器滑动的步长
padding:是否进行零填充
bias:默认为 True,表示使用偏置
groups:控制分组卷积,默认不分组,为1组。
dilation:卷积对输入的空间间隔,默认为 True

激活层

torch.nn.ReLU()
参数说明
inplace:是否在原数据进行操作,默认是False

池化层

torch.nn.MaxPool2d()
torch.nn.AvgPool2d()
参数说明
kernel_size :表示做最大池化的窗口大小
stride:步长
padding:是否进行零填充
dilation:卷积对输入的空间间隔,默认为 True

全连接层

torch.nn.Linear()
参数说明
in_features :输入特征数;
out_features:输出特征数;
bias:默认为 True,表示使用偏置

4. 经典卷积神经网络介绍

Lenet-5

LeNet5卷积神经网络源于Yann LeCun在1998年发表的论文:Gradient-
based Learning Applied to Document Recognition,是一种用于手写数字识别的
卷积神经网络。
LeNet-5是CNN网络架构中最知名的网络模型,是卷积神经网络的开山之
作。

AlexNet

2012 年, AlexNet 横空出世。AlexNet 使⽤卷积神经⽹络,并以很⼤的优
势赢得了ImageNet 2012 图像识别挑战赛冠军。
Alexnet模型由5个卷积层和3个池化Pooling 层 ,其中还有3个全连接层构
成。AlexNet 跟 LeNet 结构类似,但使⽤了更多的卷积层和更⼤的参数空间来拟
合⼤规模数据集 ImageNet。它是浅层神经⽹络和深度神经⽹络的分界线。

cifar10数据介绍

CIFAR-10 是由 Hinton 的学生 Alex Krizhevsky 和 Ilya Sutskever 整理的一
个用于识别普适物体的小型数据集。一共包含 10 个类别的 RGB 彩色图 片:飞
机( a叩lane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿
( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车
( truck )。图片的尺寸为 32×32 ,数据集中一共有 50000 张训练圄片和
10000 张测试图片

VGGNet

VGGNet 是由牛津大学视觉几何小组(Visual Geometry Group, VGG)提
出的一种深层卷积网络结构,他们以 7.32% 的错误率赢得了 2014 年 ILSVRC 分
类任务的亚军。
VGGNet探索了卷积神经网络的深度与其性能之间的关系,成功地构筑了
16~19层深的卷积神经网络,证明了增加网络的深度能够在一定程度上影响网络
最终的性能,使错误率大幅下降,同时拓展性又很强,迁移到其它图片数据上的
泛化性也非常好。到目前为止,VGG仍然被用来提取图像特征。
VGG可以看成是加深版本的AlexNet。都是conv layer + FC layer

GoogleNet

GoogleNet是2014年Google团队提出的一种全新的深度学习结构,赢得了
2014 年 ILSVRC 分类任务的冠军。
GoogLeNet是第一个使用并行网络结构的经典模型,这在深度学习的发展
历程中是具有开创性意义的。
GoogLeNet最基本的网络块是Inception,它是一个并联网络块,经过不断
的迭代优化,发展出了Inception-v1、Inception-v2、Inception-v3、Inception-v4、
Inception-ResNet共5个版本。
Inception家族的迭代逻辑是通过结构优化来提升模型泛化能力、降低模型
参数。

ResNet

ResNet(残差网络) 网络是在 2015年 由微软实验室中的何凯明等几位大神
提出,斩获当年ImageNet竞赛中分类任务第一名,目标检测第一名。获得COCO
数据集中目标检测第一名,图像分割第一名。
它使用了一种连接方式叫做“shortcut connection”,顾名思义,shortcut就
是“抄近道”的意思。
ResNet block有两种,一种两层结构,一种三层结构

MobileNet

MobileNet是谷歌在2017年提出,专注于移动端或者嵌入式设备中的轻量
级CNN网络。
MobileNet的基本单元是深度可分离卷积,其可以分解为两个更小的操作:
depthwise convolution和pointwise convolution。

机器学习之卷积神经网络--CNN介绍相关推荐

  1. 卷积神经网络(CNN)介绍与实践

    七月 上海 | 高性能计算之GPU CUDA培训 7月27-29日三天密集式学习  快速带你入门阅读全文> 正文共4499个字,26张图,预计阅读时间18分钟. CNN的前世今世 1.1.大脑 ...

  2. 卷积神经网络(CNN)介绍

    简单介绍和总结卷积神经网络(Convolutional Neural Networks)的基本组成网络层和常用的网络结构. 参考文章/书籍: An Intuitive Explanation of C ...

  3. 卷积神经网络CNN介绍:结构框架,源码理解【转】

    1. 卷积神经网络结构 卷积神经网络是一个多层的神经网络,每层都是一个变换(映射),常用卷积convention变换和pooling池化变换,每种变换都是对输入数据的一种处理,是输入特征的另一种特征表 ...

  4. 白话机器学习-卷积神经网络CNN

    一 背景 在卷积神经网络CNN 出现之前,图像对于人工智能来说就是一个灾难,主要是有两个原因: 图像需要处理的数据量太大,导致成本很高,效率很低: 图像在数值化的过程中很难保留原有的特征,导致图像处理 ...

  5. 机器学习|卷积神经网络(CNN) 手写体识别 (MNIST)入门

    人工智能,机器学习,监督学习,神经网络,无论哪一个都是非常大的话题,都覆盖到可能就成一本书了,所以这篇文档只会包含在 RT-Thread 物联网操作系统,上面加载 MNIST 手写体识别模型相关的部分 ...

  6. 深度学习(四):卷积神经网络(CNN)模型结构,前向传播算法和反向传播算法介绍。

    在前面我们讲述了DNN的模型与前向反向传播算法.而在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一.CNN广泛的应用 ...

  7. 了解CNN这一篇就够了——关于卷积神经网络的介绍

    https://www.toutiao.com/a6695023125253325320/ 关于CNN, 第1部分:卷积神经网络的介绍 CNN是什么?:它们如何工作,以及如何在Python中从头开始构 ...

  8. 卷积神经网络CNN权威介绍

    **本文更完整的内容请参考极客教程的深度学习专栏:https://geek-docs.com/deep-learning/cnn/cnn-introduce.html,欢迎提出您的宝贵意见.感谢. 在 ...

  9. 李宏毅老师2022机器学习课程笔记 02 卷积神经网络(CNN)

    02 卷积神经网络(CNN) CNN介绍 上图是CNN的完整结构图,先放在这里,下面会以图像分类任务为例,逐步对其进行介绍. CNN的设计动机 CNN是专门为图像设计的网络结构,结合了许多图像才会有的 ...

最新文章

  1. java script 6 折线_Java入门第六篇:Java script(js)的事件
  2. HDU 4391 Paint The Wall 段树(水
  3. html5下拉列表默认值,element-ui中的select下拉列表设置默认值方法_简单_前端开发者...
  4. QT配置opencv开发环境
  5. [JSOI2007]文本生成器
  6. 科大星云诗社动态20210323
  7. 有哪些ABAP关键字和语法,到了ABAP云环境上就没办法用了?
  8. win10安装net3.5不成功出现 0x8024402c_在移动硬盘中安装win10和macos双系统
  9. spring boot +mybatis(通过properties配置) 集成
  10. 西交利物浦大学企业协同平台案例分享
  11. python实现 温度转换(嵩天老师)
  12. Android物联网(一)—— 蓝牙通讯
  13. 【论文精读】SalBiNet360: Saliency Prediction on 360° Images with Local-Global Bifurcated Deep Network
  14. CTF--web学习
  15. 关于经纬度试算距离和范围
  16. IIR滤波器设计之冲激响应不变法与双线性变换法
  17. mysql五日均线_mysql – 如何在SQL中的某个日期范围内执行移动平均线?
  18. 图灵 数理逻辑 人工智能 图灵机与计算问题 论文
  19. echarts扇形图(饼图)常用的配置
  20. android支持gif图片格式,Android 支持Gif动态图 的imagview

热门文章

  1. MT6357 PMIC datasheet,MT6357数据手册,MT6357原厂资料介绍
  2. VBA实战技巧精粹017:如何快速删除空白单元格所在的行
  3. 看完阿里最新产500页微服务架构笔记,感觉我格局太小
  4. 网易云课堂web安全学习第七天——了解点击劫持
  5. 四行代码定乾坤:硬件二层交换机设计与实现
  6. VMware VCSA 6.7高可用性HA
  7. numpy之线性代数与随机漫步
  8. 【经典算法】N002:排序三剑客
  9. oracle可以创建多个数据库实例吗_oracle 一个实例下可以建多个数据库么?
  10. vsco使用教程_修图教程 | VSCO film预设使用教程