深度学习之卷积网络(CNN)

本文详细介绍了卷积神经网络(CNN)的结构与工作原理,包括输入层、卷积计算层、激励层、池化层、全连接层等。此外,还探讨了CNN在图像识别、定位、物体检测和语义分割等领域的典型应用,如R-CNN、Fast R-CNN、Faster R-CNN、YOLO和SSD等算法。通过对CNN的历史发展和关键概念的解析,为读者提供了深入理解这一深度学习重要模型的途径。
摘要由CSDN通过智能技术生成

1. 什么是CNN

卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。

我们先来看卷积神经网络各个层级结构图:

上图中CNN要做的事情是:给定一张图片,是车还是马未知,是什么车也未知,现在需要模型判断这张图片里具体是一个什么东西,总之输出一个结果:如果是车 那是什么车。

  • 最左边是数据输入层(input layer),对数据做一些处理,比如去均值(把输入数据各个维度都中心化为0,避免数据过多偏差,影响训练效果)、归一化(把所有的数据都归一到同样的范围)、PCA/白化等等。CNN只对训练集做“去均值”这一步。
  • CONV:卷积计算层(conv layer),线性乘积求和。
  • RELU:激励层(activation layer),下文有提到:ReLU是激活函数的一种。
  • POOL:池化层(pooling layer),简言之,即取区域平均或最大。
  • FC:全连接层(FC layer)。

这几个部分中,卷积计算层是CNN的核心。

1.1 输入层

在做输入的时候,需要把图片处理成同样大小的图片才能够进行处理。

常见的处理数据的方式有:

  1. 去均值(常用)

    • AlexNet:训练集中100万张图片,对每个像素点求均值,得到均值图像,当训练时用原图减去均值图像。
    • VGG:对所有输入在三个颜色通道R/G/B上取均值,只会得到3个值,当训练时减去对应的颜色通道均值。(此种方法效率高)

    TIPS:在训练集和测试集上减去训练集的均值。

  2. 归一化

    幅度归一化到同样的范围。

  3. PCA/白化(很少用)

    • 用PCA降维
    • 白化是对数据每个特征轴上的幅度归一化。

1.2 卷积计算层(conv)

对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。

滤波器filter是什么呢!请看下图。图中左边部分是原始输入数据,图中中间部分是滤波器filter,图中右边是输出的新的二维数据。

不同的滤波器filter会得到不同的输出数据,比如颜色深浅、轮廓。相当于提取图像的不同特征,模型就能够学习到多种特征。用不同的滤波器filter,提取想要的关于图像的特定信息:颜色深浅或轮廓。如下图所示。

在CNN中,滤波器filter(带着一组固定权重的神经元)对局部输入数据进行卷积计算。每计算完一个数据窗口内的局部数据后,数据窗口不断平移滑动,直到计算完所有数据。这个过程中,有这么几个参数:

  • 深度depth:神经元个数,决定输出的depth厚度。同时代表滤波器个数。
  • 步长stride:决定滑动多少步可以到边缘。
  • 填充值zero-padding:在外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。

  • 参数共享机制

    假设每个神经元连接数据窗的权重是固定对的。固定每个神经元连接权重,可以看做模板,每个神经元只关注一个特性(模板)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值