当前位置: 首页 > article >正文

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

​ 卷积神经网络是一种用来处理局部和整体相关性的计算网络结构,被应用在图像识别、自然语言处理甚至是语音识别领域,因为图像数据具有显著的局部与整体关系,其在图像识别领域的应用获得了巨大的成功。

1 卷积神经网络的组成层

​ 以图像分类任务为例,在表5.1所示卷积神经网络中,一般包含5种类型的网络层次结构:

​ 表1 卷积神经网络的组成

CNN层次结构输出尺寸作用
输入层 W 1 × H 1 × 3 W_1\times H_1\times 3 W1×H1×3卷积网络的原始输入,可以是原始或预处理后的像素矩阵
卷积层 W 1 × H 1 × K W_1\times H_1\times K W1×H1×K参数共享、局部连接,利用平移不变性从全局特征图提取局部特征
激活层 W 1 × H 1 × K W_1\times H_1\times K W1×H1×K将卷积层的输出结果进行非线性映射
池化层 W 2 × H 2 × K W_2\times H_2\times K W2×H2×K进一步筛选特征,可以有效减少后续网络层次所需的参数量
全连接层 ( W 2 ⋅ H 2 ⋅ K ) × C (W_2 \cdot H_2 \cdot K)\times C (W2H2K)×C将多维特征展平为2维特征,通常低维度特征对应任务的学习目标(类别或回归值)

W 1 × H 1 × 3 W_1\times H_1\times 3 W1×H1×3对应原始图像或经过预处理的像素值矩阵,3对应RGB图像的通道; K K K表示卷积层中卷积核(滤波器)的个数; W 2 × H 2 W_2\times H_2 W2×H2 为池化后特征图的尺度,在全局池化中尺度对应 1 × 1 1\times 1 1×1; ( W 2 ⋅ H 2 ⋅ K ) (W_2 \cdot H_2 \cdot K) (W2H2K)是将多维特征压缩到1维之后的大小, C C C对应的则是图像类别个数。

1.1 输入层

​ 输入层(Input Layer)通常是输入卷积神经网络的原始数据或经过预处理的数据,可以是图像识别领域中原始三维的多彩图像,也可以是音频识别领域中经过傅利叶变换的二维波形数据,甚至是自然语言处理中一维表示的句子向量。以图像分类任务为例,输入层输入的图像一般包含RGB三个通道,是一个由长宽分别为 H H H W W W组成的3维像素值矩阵 H × W × 3 H\times W \times 3 H×W×3,卷积网络会将输入层的数据传递到一系列卷积、池化等操作进行特征提取和转化,最终由全连接层对特征进行汇总和结果输出。根据计算能力、存储大小和模型结构的不同,卷积神经网络每次可以批量处理的图像个数不尽相同,若指定输入层接收到的图像个数为 N N N,则输入层的输出数据为 N × H × W × 3 N\times H\times W\times 3 N×H×W×3

1.2 卷积层

​ 卷积层(Convolution Layer)通常用作对输入层输入数据进行特征提取,通过卷积核矩阵对原始数据中隐含关联性的一种抽象。卷积操作原理上其实是对两张像素矩阵进行点乘求和的数学操作,其中一个矩阵为输入的数据矩阵,另一个矩阵则为卷积核(滤波器或特征矩阵),求得的结果表示为原始图像中提取的特定局部特征。图5.1表示卷积操作过程中的不同填充策略,上半部分采用零填充,下半部分采用有效卷积(舍弃不能完整运算的边缘部分)。
在这里插入图片描述

​ 图5.1 卷积操作示意图

1.3 激活层

​ 激活层(Activation Layer)负责对卷积层抽取的特征进行激活,由于卷积操作是由输入矩阵与卷积核矩阵进行相差的线性变化关系,需要激活层对其进行非线性的映射。激活层主要由激活函数组成,即在卷积层输出结果的基础上嵌套一个非线性函数,让输出的特征图具有非线性关系。卷积网络中通常采用ReLU来充当激活函数(还包括tanh和sigmoid等)ReLU的函数形式如公式(5-1)所示,能够限制小于0的值为0,同时大于等于0的值保持不变。
f ( x ) = { 0 if  x < 0 x if  x ≥ 0 (5-1) f(x)=\begin{cases} 0 &\text{if } x<0 \\ x &\text{if } x\ge 0 \end{cases} \tag{5-1} f(x)={0xif x<0if x0(5-1)

1.4 池化层

​ 池化层又称为降采样层(Downsampling Layer),作用是对感受域内的特征进行筛选,提取区域内最具代表性的特征,能够有效地降低输出特征尺度,进而减少模型所需要的参数量。按操作类型通常分为最大池化(Max Pooling)、平均池化(Average Pooling)和求和池化(Sum Pooling),它们分别提取感受域内最大、平均与总和的特征值作为输出,最常用的是最大池化。

1.5 全连接层

​ 全连接层(Full Connected Layer)负责对卷积神经网络学习提取到的特征进行汇总,将多维的特征输入映射为二维的特征输出,高维表示样本批次,低位常常对应任务目标。


http://www.kler.cn/a/387596.html

相关文章:

  • HTML之列表
  • [极客大挑战 2019]PHP 1
  • 天地图入门|标注|移动飞行|缩放,商用地图替换
  • 软件测试学习记录 Day1
  • 超详细:三大范式和反范式设计详解
  • Spring学习笔记(四)
  • AndroidStudio-文本显示
  • dell服务器安装ESXI8
  • 架构零散知识点
  • git 多账号配置
  • svgicon大小问题(简单记录
  • 数据分析驱动的市场预测:民锋量化技术的创新探索
  • Visio使用教程
  • Kafka 可观测性最佳实践
  • wps怎么算出一行1和0两种数值中连续数值1的个数,出现0后不再计算?
  • 企业IT架构转型之道:阿里巴巴中台战略思想与架构实战感想
  • 【提效工具开发】Python功能模块执行和 SQL 执行 需求整理
  • python可视化将多张图整合到一起(画布)
  • 三次权重函数
  • web——sqliabs靶场——第二关
  • 基于SpringCloud+Vue的社区服务系统 (含源码数据库)
  • 【AI】【提高认知】卷积神经网络:深度学习与计算机视觉的核心驱动力
  • HTTP 和 HTTPS 的区别 - 2024最新版前端秋招面试短期突击面试题【100道】
  • Linux内核.之 init文件,/init/main.c
  • Kylin Server V10 下自动安装并配置Kafka
  • 在docker里创建 bridge 网络联通不同容器