【深度学习:Convolutional Neural Networks】卷积神经网络入门指南

news2024/12/1 0:36:16

【深度学习:Convolutional Neural Networks】卷积神经网络入门指南

    • 介绍
    • 为什么选择ConvNets而不是前馈神经网络?
    • Input Image 输入图像
    • 基本架构
      • Convolution Layer 卷积层 — 内核
      • Pooling Layer 池化层
      • Classification — Fully Connected Layer (FC Layer) 分类全连接层
    • 工作原理
    • 应用案例
    • 特征提取示例

卷积神经网络(CNN)是深度学习领域最引人注目的成就之一。自从LeCun等人在20世纪90年代初引入以来,CNN在图像处理、视频分析和自然语言处理等领域取得了显著的成就。在这篇博客中,我们将探讨CNN的基本原理、结构和一些实际应用案例。

人工智能在缩小人类与机器能力差距方面取得了巨大发展。无论是研究人员还是爱好者,都在该领域的许多方面开展工作,以实现令人惊叹的成就。计算机视觉领域就是其中之一。

在这里插入图片描述

人工智能在缩小人类与机器能力差距方面取得了巨大发展。无论是研究人员还是爱好者,都在该领域的许多方面开展工作,以实现令人惊叹的成就。计算机视觉领域就是其中之一。

这一领域的目标是让机器能够像人类一样观察世界,以类似的方式感知世界,甚至将知识用于图像和视频识别、图像分析和分类、媒体再创造、推荐系统、自然语言处理等多种任务。随着时间的推移,深度学习技术在计算机视觉领域的发展也日臻完善,这主要得益于一种特殊的算法–卷积神经网络。

介绍

在这里插入图片描述

图:用于对手写数字进行分类的 CNN 序列

卷积神经网络 (ConvNet/CNN) 是一种深度学习算法,可以接收输入图像,为图像中的各个方面/对象分配重要性(可学习的权重和偏差),并能够区分彼此。与其他分类算法相比,ConvNet 中所需的预处理要低得多。虽然在原始方法中,过滤器是手工设计的,但经过足够的训练,ConvNets有能力学习这些过滤器/特征。

ConvNet的架构类似于人脑中神经元的连接模式,并受到视觉皮层组织的启发。单个神经元仅在视野的有限区域(称为感受野)中对刺激做出反应。此类字段的集合重叠以覆盖整个可视区域。

为什么选择ConvNets而不是前馈神经网络?

在这里插入图片描述

图:将 3x3 图像矩阵展平为 9x1 向量

图像只不过是像素值的矩阵,对吧?那么,为什么不直接将图像展平(例如,将 3x3 图像矩阵转换为 9x1 向量)并将其馈送到多级感知器进行分类呢?呃。。没有。

在极其基本的二进制图像的情况下,该方法在执行类预测时可能会显示平均精度分数,但当涉及到具有整个像素依赖性的复杂图像时,准确性几乎没有。

ConvNet 能够通过应用相关过滤器成功捕获图像中的空间和时间依赖关系。由于涉及的参数数量的减少和权重的可重用性,该架构可以更好地拟合图像数据集。换句话说,可以训练网络以更好地理解图像的复杂程度。

Input Image 输入图像

在这里插入图片描述

图:4x4x3 RGB图像

在图中,我们有一个 RGB 图像,它被三个颜色平面(红色、绿色和蓝色)分隔开。图像存在许多这样的色彩空间——灰度、RGB、HSV、CMYK 等。

你可以想象,一旦图像达到尺寸,比如8K(7680×4320),计算量会有多大。ConvNet 的作用是将图像简化为更易于处理的形式,而不会丢失对获得良好预测至关重要的特征。当我们要设计一个不仅擅长学习特征,而且可以扩展到海量数据集的架构时,这一点很重要。

基本架构

CNN主要由三种类型的层组成:卷积层、池化层和全连接层。

  • 卷积层: 通过滤波器(或称为卷积核)提取输入数据(如图像)的特征。
  • 池化层: 减少数据的空间大小,降低计算复杂度,同时保留重要信息。
  • 全连接层: 将学习到的特征用于分类或其他任务。

Convolution Layer 卷积层 — 内核

使用 3x3x1 内核卷积 5x5x1 图像以获得 3x3x1 卷积特征

图:使用 3x3x1 内核卷积 5x5x1 图像以获得 3x3x1 卷积特征

图像尺寸 = 5(高度)x 5(宽度)x 1(通道数,例如。RGB格式)

在上面的演示中,绿色部分类似于我们的 5x5x1 输入图像 I。卷积层第一部分中卷积运算中涉及的元素称为内核/滤波器 K,以黄色表示。我们选择 K 作为 3x3x1 矩阵。

Kernel/Filter, K =
1 0 1
0 1 0
1 0 1

由于步幅长度 = 1(非步幅),内核移动 9 次,每次在 K 和内核悬停的图像部分 P 之间执行元素乘法运算(Hadamard 乘积)。

在这里插入图片描述

图:内核的运动

过滤器以一定的步长值向右移动,直到解析完整的宽度。继续,它以相同的步幅值跳到图像的开头(左侧),并重复该过程,直到遍历整个图像。

在这里插入图片描述

图:使用 3x3x3 内核对 MxNx3 图像矩阵进行卷积运算

对于具有多个通道的图像(例如 RGB),内核具有与输入图像相同的深度。在 Kn 和 In stack ([K1, I1]; [K2, I2]; [K3, I3]) 之间执行矩阵乘法,并将所有结果与偏差相加,得到压缩的单深度通道卷积特征输出。

在这里插入图片描述

图:步长 = 2 的卷积运算

卷积运算的目的是从输入图像中提取高级特征,例如边缘。卷积网络不必仅限于一层卷积层。传统上,第一个 ConvLayer 负责捕获低级特征,例如边缘、颜色、梯度方向等。通过添加层,该架构也适应高级特征,为我们提供了一个具有全面理解的网络数据集中的图像,类似于我们的方式。

该操作有两种类型的结果 - 一种是与输入相比,卷积特征的维数减少,另一种是维数增加或保持不变。这是通过在前者的情况下应用有效填充或在后者的情况下应用相同填充来完成的。

在这里插入图片描述
当我们将 5x5x1 图像增强为 6x6x1 图像,然后在其上应用 3x3x1 内核时,我们发现卷积矩阵的尺寸为 5x5x1。因此得名——Same Padding。

另一方面,如果我们在没有填充的情况下执行相同的操作,我们会看到一个具有内核 (3x3x1) 本身尺寸的矩阵 - 有效填充。

下面这个链接里还有其他不同卷积的gif动画:https://github.com/vdumoulin/conv_arithmetic

Pooling Layer 池化层

在这里插入图片描述
与卷积层类似,池化层负责减小卷积特征的空间尺寸。这是为了通过降维来降低处理数据所需的计算能力。此外,它对于提取旋转和位置不变的主导特征很有用,从而保持有效训练模型的过程。

池化有两种类型:最大池化和平均池化。最大池化返回内核覆盖的图像部分的最大值。另一方面,平均池化返回内核覆盖的图像部分的所有值的平均值。

最大池化还可以充当噪声抑制器。它完全丢弃噪声激活,并执行去噪和降维。另一方面,平均池化只是简单地执行降维作为噪声抑制机制。因此,我们可以说最大池化的性能比平均池化要好得多。

在这里插入图片描述

图:池的类型

卷积层和池化层共同构成卷积神经网络的第 i 层。根据图像的复杂性,可以增加此类层的数量以进一步捕获低级细节,但代价是更多的计算能力。

经过上述过程,我们已经成功让模型能够理解特征。接下来,我们将展平最终输出并将其输入常规神经网络以进行分类。

Classification — Fully Connected Layer (FC Layer) 分类全连接层

在这里插入图片描述

添加全连接层是学习卷积层输出所表示的高级特征的非线性组合的(通常)廉价方法。全连接层正在学习该空间中可能的非线性函数。

现在我们已经将输入图像转换为适合多级感知器的形式,我们将把图像展平为列向量。平坦化的输出被馈送到前馈神经网络,并将反向传播应用于训练的每次迭代。经过一系列的 epoch,该模型能够区分图像中的主要特征和某些低级特征,并使用 Softmax 分类技术对它们进行分类。

有多种可用的 CNN 架构,这些架构对于构建算法至关重要,这些算法在可预见的未来为整个人工智能提供动力。下面列出了其中一些:

  1. LeNet
  2. AlexNet
  3. VGGNet
  4. GoogLeNet
  5. ResNet

工作原理

CNN通过卷积层中的滤波器在输入数据上滑动,提取局部特征。这些特征随后通过网络的深层传递并逐渐集成为更高级的特征,最终用于执行诸如分类或检测的任务。

应用案例

CNN在多个领域都有广泛应用,例如:

  • 图像识别: 识别图像中的物体。
  • 视频分析: 追踪视频中的物体或行为。
  • 自然语言处理: 虽然CNN主要用于图像,但也可以用于处理文本数据。

特征提取示例

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1348085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一起学量化之KDJ指标

KDJ指标,也称为随机指数,是一个常用的技术分析工具。它由三条线组成:K线、D线和J线,分别代表不同的市场动态。KDJ指标通过分析最高价、最低价和收盘价计算得出。 1. KDJ指标理解 J线是移动速度最快的线,可以提供更加敏锐的市场信号。K线是指标的核心,显示市场的即时动态。…

QtitanRibbon 开始使用实例

新建一个界面程序: 修改项目里面的源码: 至此,一个简单界面就出来了,效果如下所示:

域名转移:将腾讯云转移至阿里云

当时注册域名时,腾讯域云相对便宜,但目前阿里云在业界更加成熟,因此将自己申请的域名由阿里云转移至阿里云,并记录转移过程。 一、域名转出 进入腾讯云,登陆后选择控制台,选择我的资源–域名注册–全部域名…

EOS链Ubuntu环境Install Prebuilt Binaries(安装预构建的二进制文件)的安装

[TOC](EOS链Ubuntu环境Install Prebuilt Binaries(安装预构建的二进制文件)的安装) EOS官网:https://eos.io/ 第一步 Ubuntu安装命令: 以下有两种安装方式,可以任选其一: 本文章已经上传绑定资源,也可以用命令安装。…

2023-12-12LeetCode每日一题(下一个更大元素 IV)

2023-12-12每日一题 一、题目编号 2454. 下一个更大元素 IV二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始的非负整数数组 nums 。对于 nums 中每一个整数,你必须找到对应元素的 第二大 整数。 如果 nums[j] 满足以下条件,那…

HLS 2017.4 导出 RTL 报错:ERROR: [IMPL 213-28] Failed to generate IP.

软件版本:HLS 2017.4 在使用 HLS 导出 RTL 的过程中产生如下错误: 参考 Xilinx 解决方案:https://support.xilinx.com/s/article/76960?languageen_US 问题描述 DESCRIPTION As of January 1st 2022, the export_ip command used by Vivad…

requestAnimationFrame 解析

文章目录 什么是 requestAnimationFrame为什么 setInterval 实现动画会有一些抖动感使用 requestAnimationFramerequestAnimationFrame 对比 setInterval 本文将给大家介绍一个使用 js 实现动画的利器,requestAnimationFrame,我们一般情况下,…

java零拷贝zero copy MappedByteBuffer

目录 调用操作系统的 mmap 未使用 mmap 的文件通过网络传输的过程 使用 mmap 的文件通过网络传输的过程 使用例子 调用操作系统的 sendfile() 在 java 中的具体实现 mmap的优劣 mmap 的不足 mmap 的优点 mmap 的使用场景 对于零拷贝(zero copy&#xff09…

数据资产入表之——数据确权

关注WX公众号: commindtech77, 获得数据资产相关白皮书下载地址 1. 回复关键字:数据资源入表白皮书 下载 《2023数据资源入表白皮书》 2. 回复关键字:光大银行 下载 光大银行-《商业银行数据资产会计核算研究报告》 3. 回复关键字…

计算机网络 (期末救命版)

文章目录 Ⅰ 网络概述1. 互联网概述与组成2. 计算机网络的类别3. 计算机网络的性能指标4. 计算机网络体系结构 Ⅱ 物理层1. 物理层的任务2. 信道复用技术 Ⅲ 数据链路层1. 点对点信道2. 基本问题3. 点对点协议 PPP4. 使用广播信道的数据链路层 Ⅳ 网络层1. 网络层的服务2. 网际…

怎么挑选猫粮?挑选主食冻干猫粮的步骤

各位铲屎官都知道猫天性是食肉动物,无肉不欢的。而冻干猫粮对于猫咪来说是最好还原猫咪食肉天性的食物,不仅可以当成猫咪的主食,也可以用来给猫咪当成零食,帮助猫咪补充营养。冻干猫粮是经过真空冷冻干燥处理的鲜肉,能…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机本身的数据保存(CustomData)功能(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机本身的数据保存(CustomData)功能(C#) Baumer工业相机Baumer工业相机的数据保存(CustomData)功能的技术背景CameraExplorer如何使用图像剪切&#xff…

移动端开发框架mui代码在安卓模拟器上运行2(HbuilderX连接到模拟器)模拟器窗口及多开设置

开发工具 HBuilder X 3.8.12.20230817 注意:开发工具尽量用最新的或较新的。太旧的版本在开发调试过程中可能会出现莫名其妙的问题。 接上篇,移动端开发框架mui代码在安卓模拟器上运行(HbuilderX连接到模拟器),这篇主要…

Python开发环境[PycharmEclipseAnaconda]

Pycharm配置Python开发环境 每种语言的开发工具都有很多,如果写一些小的脚本或者小的工具,建议直接使用命令行或者Python自带的IDLE,如果进行大型的开发工作建议使用Pycharm,当然这属于个人喜好。 虽然Pycharm给了我们一个美观的…

【Python特征工程系列】教你利用AdaBoost模型分析特征重要性(源码)

这是Python特征工程系列原创文章,我的第187篇原创文章。 一、问题 应用背景介绍: 如果有一个包含数十个甚至数百个特征的数据集,每个特征都可能对你的机器学习模型的性能有所贡献。但是并不是所有的特征都是一样的。有些可能是冗余的…

树与图的搜索

目录 树与图的深度优先遍历 树与图的宽度优先遍历 树与图的深度优先遍历 题目如下: 树是一种特殊的图,是一种无环连通图,图分两种,无向图(边无方向)和有向图(边有方向)&#xff0…

蓝牙物联网健康管理系统设计方案

随着我国医疗体制改革的快速发展,以及信息科技的更新换代,远程健康管理逐步成为医疗卫生健康服务的发展趋势。物联网技术推动着医疗健康服务体系发生重大改变,传统的定期至社区医院问诊的保健模式,被远程健康服务模式所取代。开发…

数据转换的三剑客:Pandas 中 apply、map 和 applymap 方法的应用指南

数据转换的三剑客:Pandas 中 apply、map 和 applymap 方法的应用指南 ​ 在 Pandas 中,apply、map 和 applymap 是常用的数据转换和处理方法,它们为数据分析和数据处理提供了灵活的功能。这些方法可以根据具体的需求选择合适的方法进行操作。…

扩散模型基础

扩散模型发展至今日,早已成为各大机器学习顶会的香饽饽。本文简记扩散模型入门相关代码,主要参阅李忻玮、苏步升等人所编著的《扩散模型从原理到实战》 文章目录 1. 简单去噪模型1.1 简单噪声可视化1.2 去噪模型1.3 小结 2 扩散模型2.1 采样过程2.2 上科…

线性代数基础知识

计算机视觉一些算法中常会用到线性代数的一些知识,为了便于理解和快速回忆,博主这边对常用的一些知识点做下整理,主要来源于如下这本书籍。 1. 矩阵不仅仅是数字排列而已,不然也不会有那么大精力研究它。其可以表示一种映射 关于…