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

【深度学习: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.mzph.cn/news/589231.shtml

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

相关文章

如何加入到接单的大家庭,这个方法很简单~!方法A

第一步: 进某宝 搜 C语言代写 然后点销量 你把前4名的客服找到 问他们是某招技术 如果他们乐意,你就进他们的圈子。

Mybatis底层原理分析以及源码阅读

费话不多少先上图,我只喜欢画图分析,看图片: 有两个问题: 问题1: 我们一直在写Mapper/DAO只写了接口,没有写具体的实现吧? 【是的】 问题2: 没有写实现类就没办法实例化执行后续的操…

基于Matlab的各种图像滤波Filter算法(代码开源)

前言:本文为手把手教学 Matlab 平台下的各种图像滤波算法的教程,将编程代码与图像滤波知识相联系,以实战为例!博客中图像滤波算法包含:均值滤波、中值滤波、高斯滤波、双边滤波、引导滤波。图像滤波算法是计算机视觉领…

【Spring】AOP原来如此

AOP概述 什么是AOP的技术? 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构AOP最早由AOP联盟的组织提出的,制定了一套…

摩尔线程S80对于软件的支持

摩尔线程对软件的支持 时间:2024年1月1日 显卡型号:MTT S80 主板型号:七彩虹 igame z590 火神 V20 CPU: intel core i5 10400f 内存: 海盗船3600 16*2 存储: 致态1Tb nvme 显卡的驱动是最新的。 游戏 S…

C/C++ 函数重载

函数多态是C在C语言的基础新增的功能。默认参数能够使用不同数目的参数调用同一个函数,而函数多态(函数重载)让您能够使用多个同名的函数。术语“多态”指的是有多种形式,因此函数多态允许函数可以有多种形式。类似地,术语“函数重载”指的是…

华为云创新中心,引领浙南的数字化腾飞

编辑:阿冒 设计:沐由 县域经济是我国国民经济的重要组成部分,是推动经济社会全面发展的核心力量之一。在推进中国式现代化的征程中,县域经济扮演的角色也越来越重要。 毫无疑问,县域经济的良性发展,需要多方…

数据的确权、流通、入表与监管研究(一):数据与确权(下)

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

【NLP论文】02 TF-IDF 关键词权值计算

之前写了一篇关于关键词词库构建的文章,没想到反响还不错,最近有空把接下来的两篇补完,也继续使用物流关键词词库举例,本篇文章承接关键词词库构建并以其为基础,将计算各关键词的 TF-IDF 权值,TF-IDF 权值主…

软件工程PPT 笔记摘录(2)

分析软件需求 UML 提供了用例图来分析和描述用例视角的软件需求模型 UML 提供了交互图和状态图来描述行为视角的软件需求模型 UML 提供了类图来描述和分析业务领域的概念模型 顺序图:强调消息传递的时间序 通信图:突出对象间的合作 类图&#xff0…

掌握C++11标准库(STL):理解STL的核心概念

深入探索C11标准库STL:新特性和优化技巧 一、前言二、容器简介三、迭代器简介四、map与unordered_map(红黑树VS哈希表)4.1、map和unordered_map的差别4.2、优缺点以及适用处4.3、小结 五、总结 一、前言 STL定义了强大的、基于模板的、可复用…

python设计模式:模板方法模式

更多Python学习内容:ipengtao.com 软件设计和编程中,设计模式是一种有助于解决常见问题的强大工具。其中之一是"模板方法模式",它是一种行为型设计模式,允许你定义一个算法的骨架,但将一些步骤的具体实现延迟…

win11 电脑睡眠功能失效了如何修复 win11 禁止鼠标唤醒

1、win11睡眠不管用怎么办,win11电脑睡眠功能失效了如何修复 在win11系统中拥有许多令人激动的新功能和改进,有些用户在使用win11电脑时可能会遇到一个问题:睡眠模式不起作用。当他们尝试将计算机置于睡眠状态时,却发现系统无法进…

HarmonyOS应用程序包快速修复

快速修复概述 快速修复是HarmonyOS系统提供给开发者的一种技术手段,支持开发者以远快于应用升级的方式对应用程序包进行缺陷修复。和全量应用升级软件版本相比,快速修复的主要优势在小、快和用户体验好。在较短的时间内不中断正在运行的应用的情况下&am…

SpringBoot + Vue 抖音全平台项目

简介 本项目是一个短视频平台,拥有热度排行榜,热门视频,兴趣推送,关注推送,内容审核等功能。 源码下载 网盘 (访问密码: 8418) 登录/注册 首页 创作中心 架构设计 上传视频业务流程 视频推送流程 1.用户订阅分类后…

聚类:聚类的介绍及k-means算法

聚类:聚类的介绍及k-means算法 什么是聚类 聚类就是在输入为多个数据时,将“相似”的数据分为一组的操作。1 个组就叫作 1 个 “簇”。下面的示例中每个点都代表1 个数据,在平面上位置较为相近、被圈起来的点就代表一 类相似的数据。也就是…

如何为开源项目和社区做贡献 -- 你应该知道的十件事(一)

1. 前言 大家好,我叫颜国进,现为英特尔边缘计算创新大使、百度飞桨开发者专家。回溯至2021年12月,那时的我,身为机械专业研一新生,仅在C和Python编程语言上有些许基础,对于深度学习的殿堂还只敢在门口窥探&…

【动态规划】【字符串】C++算法:正则表达式匹配

作者推荐 视频算法专题 涉及知识点 动态规划 字符串 LeetCode10:正则表达式匹配 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符 ’ 匹配零个或多个前面的那一个元素 所谓匹配,是…

web网站的工作流程和开发模式

web网站的工作流程和开发模式 基于Java Script封装的高级技术:Vue、Element、Nginx(前端程序部署的服务器) 初识Web前端 Web标准

Conv2Former:一种transformer风格的卷积特征提取方式

一、前言 昨天读到了一篇有意思的文章,文章提出通过利用卷积调制操作来简化self-attention。还证明了这种简单的方法可以更好地利用卷积层中嵌套的大核(≥7 7)。我们都知道ViTs推动了设计识别模型的发展,近几年使用的也相当的多,通常就是CN…