【深度学习】卷积神经网络(CNN)简介

ops/2024/9/18 0:20:11/ 标签: 深度学习, cnn, 人工智能, 卷积神经网络

文章目录


在这里插入图片描述

1. 前言

自 20 世纪 50 年代以来,人工智能研究人员一直在寻求开发能够理解视觉数据的系统。这一努力催生了计算机视觉领域。2012 年,多伦多大学的研究人员开发出 AlexNet,这是一个人工智能模型,其性能远远优于以前的图像识别算法,这是一个重大突破。AlexNet 由 Alex Krizhevsky 创建,以 85% 的准确率赢得了 2012 年 ImageNet 竞赛,远远超过亚军的 74%。这一成功是由 CNN 推动的,这是一种模仿人类视觉的神经网络
在这里插入图片描述
多年来,CNN 已成为图像分类、对象检测和分割等计算机视觉任务的基础。现代 CNN 使用 Python 等编程语言实现,并利用高级技术从图像中提取和学习特征。超参数、优化技术和正则化方法对于有效训练这些模型至关重要。

自 AlexNet 以来,人们开发了许多改进和新架构,例如 VGG、ResNet 和 EfficientNet,突破了 CNN 所能实现的极限。如今,CNN 在许多应用中都必不可少,从自动驾驶到医学图像分析。

此外,在本文中,您将了解 CNN 机器学习、CNN 算法和 CNN 深度学习,我们已涵盖这些主题,并且在文章结束时,您将清楚地了解卷积神经网络

本章节我们学习的目标:

  • 了解什么是卷积神经网络 (CNN) 以及它们如何模仿人类视觉来处理视觉数据。
  • 探索 CNN 的关键组件,包括卷积层、池化层和全连接层。
  • 了解 CNN 如何应用于各种计算机视觉任务,例如图像分类、对象检测和分割。
  • 了解超参数、优化技术和正则化方法在有效训练 CNN 模型中的重要性。

2. 什么是卷积神经网络(CNN)?

深度学习中,卷积神经网络 (CNN/ConvNet) 是一类深度神经网络,最常用于分析视觉图像。CNN 架构使用一种称为卷积的特殊技术,而不是像传统神经网络那样仅仅依赖于矩阵乘法。卷积网络使用一种称为卷积的过程,该过程结合了两个函数来显示一个函数如何改变另一个函数的形状。

在这里插入图片描述但我们无需深入数学就能理解 CNN 是什么或它是如何工作的。归根结底,卷积网络的作用是将图像简化为更易于处理的形式,同时又不丢失对获得良好预测至关重要的特征。

最重要的是,ConvNet 的作用是将 图像减少为更易于处理的形式,同时又不会丢失对于获得良好预测至关重要的特征。

2.1 卷积神经网络(CNN)的背景

CNN 最早是在 20 世纪 80 年代开发和使用的。当时,卷积神经网络 (CNN) 最多只能识别手写数字。它主要用于邮政部门读取邮政编码、邮政编码等。关于任何深度学习模型,需要记住的重要一点是,它需要大量数据进行训练,也需要大量计算资源。这是 CNN 在当时的一个主要缺点,因此 CNN 仅限于邮政部门,未能进入机器学习领域。用于训练神经网络的算法反向传播在当时的计算成本也很高。

2012 年,Alex Krizhevsky 意识到是时候恢复使用多层神经网络的深度学习分支了。大量数据的可用性、包含数百万张标记图像的更具体的 ImageNet 数据集以及丰富的计算资源使研究人员能够重振 CNN。

2.2 CNN 如何运作?

在介绍卷积神经网络(CNN)的工作原理之前,让我们先了解一下基础知识,例如图像是什么以及如何表示图像。RGB 图像只不过是一个具有三个平面的像素值矩阵,而灰度图像也是如此,但它只有一个平面。查看此图像以了解更多信息。
在这里插入图片描述
为了简单起见,我们先使用灰度图像来尝试了解 CNN 的工作原理。
在这里插入图片描述上图展示了什么是卷积。我们采用一个过滤器/内核(3×3 矩阵)并将其应用于输入图像以获得卷积特征。此卷积特征将传递到下一层。

在这里插入图片描述
对于 RGB 颜色通道,请观看此动画以了解其工作原理
在这里插入图片描述
CNN 层中的参数数量取决于接受域(过滤器内核)的大小和过滤器的数量。CNN 层中的每个神经元都从前一层的局部区域接收输入,该局部区域称为其接受域。接受域在输入上移动,计算点积并创建卷积特征图作为输出。通常,此图随后会经过整流线性单元 (ReLU) 激活函数。经典的 CNN 架构(如 LeNet)和更现代的架构(如 ResNet)都采用了这一基本原理。

卷积神经网络由多层人工神经元组成。

3. 人工神经元在 CNN 中的作用

人工神经元是对生物神经元的粗略模仿,是一种数学函数,可计算多个输入的加权和并输出激活值。当您在 ConvNet 中输入图像时,每一层都会生成多个激活函数,这些激活函数会传递到下一层进行特征提取。

4. CNN 中的特征提取

第一层通常提取水平或对角线边缘等基本特征。此输出将传递到下一层,该层检测更复杂的特征,例如角或组合边缘。随着我们深入网络,它可以识别更复杂的特征,例如物体、面部等。与循环神经网络不同,ConvNets 是前馈网络,可在一次传递中处理输入数据。
在这里插入图片描述
根据最终卷积层的激活图,分类层输出一组置信度分数(介于 0 和 1 之间的值),这些分数指定图像属于某个“类别”的可能性。例如,如果您有一个检测猫、狗和马的 ConvNet,则最后一层的输出是输入数据包含任何这些动物的可能性。梯度下降通常用作训练期间的优化算法,以调整输入层和后续层的权重。
在这里插入图片描述

5. 什么是池化层?

与卷积层类似,池化层负责减小卷积特征的空间大小。这是通过减小维度来降低处理数据所需的计算能力。池化有两种类型:平均池化和最大池化。到目前为止,我只使用过最大池化,没有遇到任何困难。
在这里插入图片描述
因此,我们在最大池化中所做的就是从内核覆盖的图像部分中找到像素的最大值。最大池化还可用作噪声抑制器。它会完全丢弃嘈杂的激活,并执行去噪和降维。

另一方面,平均池化返回内核覆盖的图像部分的所有值的平均值平均池化只是将降维作为一种噪声抑制机制。因此,我们可以说最大池化的表现比平均池化好得多。
在这里插入图片描述

6. 卷积神经网络(CNN)的局限性

尽管CNN功能强大且资源复杂,但它们提供了深入的结果。从根本上讲,它只是识别那些非常微小且不显眼以至于人眼无法注意到的模式和细节。但在理解图像内容方面,它失败了。

让我们看看这个例子。当我们将下面的图片传递给CNN时,它会检测到一个 30 多岁的人和一个大概 10 岁左右的孩子。但当我们看同一张图片时,我们开始考虑多种不同的场景。也许是父子外出、野餐或露营。也许是在校园里,孩子进了一球,他爸爸很高兴,就把他抱了起来。
在这里插入图片描述
在实际应用中,这些局限性更加明显。例如,CNN 被广泛用于审核社交媒体上的内容。但尽管它们训练的图像和视频资源非常丰富,但它仍然无法完全阻止和删除不适当的内容。事实证明,它在 Facebook 上标记了一座有 30,000 年历史的裸体雕像

多项研究表明,在 ImageNet 和其他流行数据集上训练的 CNN 在不同的光照条件和从新角度观察物体时无法检测到物体。

这是否意味着 CNN 毫无用处?尽管卷积神经网络存在局限性,但不可否认的是,它们已经引发了人工智能的一场革命。如今,CNN 已用于许多计算机视觉应用,例如面部识别图像搜索和编辑增强现实等。正如 ConvNets 的进步所表明的那样,我们的成就是卓越的和有用的,但我们距离复制人类智能的关键组成部分还很远。

7. 总结

在本文中,我们探索了卷积神经网络(CNN),深入研究了它们的功能背景池化层的作用。尽管 CNN 在图像识别方面非常有效,但它也存在局限性,包括易受对抗性攻击计算要求高。CNN 使用损失函数进行训练,该函数测量预测输出与真实值之间的差异。在特定图像数据上微调预训练模型是一种常见的做法,可实现更好的性能。

此外,CNN 还可用于分割任务,即标记图像中的每个像素。与传统的多层感知器不同,CNN 的网络架构旨在利用图像数据中的空间和时间依赖性。总体而言,CNN 彻底改变了计算机视觉领域,并继续成为一个活跃的研究领域。尽管 CNN 在图像识别方面非常有效,但它也有局限性,包括易受对抗性攻击和高计算要求。

希望您喜欢这篇文章,通过本文您应该也清楚机器学习中的 CNN、CNN 算法和深度学习中的 CNN了!


http://www.ppmy.cn/ops/93284.html

相关文章

2024年8月12日(LVS)

1、描述以及工作原理 (1)什么是LVS linux virtural server的简称,也就是linxu虚拟机服务器,这是一个由章文嵩博士发起的开 源项目,官网是http://www.linuxvirtualserver.org,现在lvs已经是linux内核标准的一 部分,使用lvs可以达到的技术目标是:通过Linux达到负载均…

Apple 智能基础语言模型

Introducing Apple’s On-Device and Server Foundation Models technical details June 10, 2024 在2024年的全球开发者大会上,苹果推出了Apple Intelligence,这是一个深度集成到iOS 18、iPadOS 18和macOS Sequoia中的个人智能系统。Apple Intelligen…

kotlin简介

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。 Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。 在Google I/O 2017…

在IIS上部署ASP.NET Core Web API和Blazor Wasm应用程序的完整指南

摘要 本文将引导你通过在IIS上部署ASP.NET Core Web API和Blazor WebAssembly应用程序的步骤。从环境准备到部署完成,我们将覆盖所有关键点。 1. 环境准备 安装IIS安装.NET Core Hosting Bundle创建ASP.NET Core Web API项目创建Blazor WebAssembly项目 2. 开发…

宠物健康新守护:智能听诊器的家庭应用

宠物已成为我们情感的寄托和生活的一部分,为宠物的健康守护带来了科技的温度。 科技与关怀结合 这款智能听诊器,以其科技感和关怀精神,为宠物的健康监测提供了全新的视角。 家庭友好设计:考虑到家庭使用环境,智能听…

Apache Derby: 开源关系型数据库管理系统

文章目录 引言官网链接原理基础使用安装与配置数据库操作创建数据库和表插入、查询、更新和删除数据 在 Java 程序中使用 Derby 高级使用客户端/服务器模式事务处理数据加密与安全性 优点总结 引言 Apache Derby 是一个完全用 Java 编写的开源关系型数据库管理系统&#xff08…

C# 图书管理系统(完整项目 )

目录 一.开发背景和开发目的 二 .系统功能分析 三.数据库设计 四.效果展示 4.1创建图书管理系统的主窗体 4.2创建图书管理系统的主界面 4.3创建图书管理系统的图书管理界面 五.留言 一.开发背景和开发目的 当今社会,随着图书馆的规模不断扩大,图书数量急剧增…

什么是实时数据仓库?它有哪些不可替代之处?

【实时数据仓库】可以分开来理解: ✅【实时数据】:即能够快速处理数据,且几乎无延迟的提供最新的数据的能力。 ✅【仓库管理】:可以理解为对仓库的库存控制、对仓库的存储优化以及协调物流。 那么实时数据仓库就是:…

恒创科技:IPv4 和 IPv6 之间的主要区别

IPv4 和 IPv6 是互联网协议 (IP) 系统中使用的两种版本的 IP 地址格式。虽然它们的主要目的是准确识别、发送和接收互联网上的数据,但 IPv4 和 IPv6 之间存在许多关键差异。 地址格式 IPv4 采用 32 位格式,由 4 个数值(称为八位字节)表示,以点…

Qt入门(二):第一个Qt项目

新建项目 打开Qt Creator,新建项目,然后一路next 到这一步baseclass有三种选择: QMainWindow:主窗口基类,相较于QWidget,多了菜单栏等杂七杂八的东西。QWidget:最基础的窗口基类&#xff0…

用Python制作开心消消乐游戏|附源码

制作一个完整的“开心消消乐”风格的游戏在Python中是一个相对复杂的项目,因为它涉及到图形界面、游戏逻辑、动画效果以及用户交互等多个方面。不过,我可以为你提供一个简化的版本和概念框架,帮助你理解如何开始这个项目,并提供一…

SAP MIGO新增字段 自定义字段(续)

继 SAP MIGO新增字段 自定义字段_migo 新增字段-CSDN博客后,实际业务实用提出了新的需求 再0200屏幕的上输入,但是发现回车后就清空了,直接过账也不行。 于是 找了好几个顾问,ABAP 之外还找了MM顾问 都说没有实现过。 就在准备放…

C++解析和构建json(cjson使用手册)

C解析和构建json【cjson使用手册】 一、cjson下载二、cjson工程使用2.1 静态库使用2.1 源码使用(推荐) 三、cjson详解3.1 解析json字符串3.1.1 解析对象3.1.2 解析数组:方法一(获取列表数量然后按照位置获取)3.1.2 解析…

《Kotlin核心编程》2021版复习记录

目录 0 前言1 基础语法1.1 数据类型1.2 数组1.3 集合1.4 遍历数据和集合1.5 函数声明返回值类型1.6 var 和 val 2 高阶函数和lambda表达式2.1 高阶函数2.2 方法和成员引用2.3 链式调用2.4 扩展函数2.5 面向表达式编程2.5.1 when表达式2.5.2 for循环2.5.3 in 2.6 字符串相等 3 面…

PixelLib图像分割

文章目录 前言一、PixelLib依赖安装二、实例模型训练 前言 图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。 传统的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割…

【MySQL】事务——事务隔离等级、隔离级别、查看与设置隔离性、读未提交、读提交、可重复读、串行化、一致性、读-写、MVCC、当前读和快照、RR和RC本质区别

文章目录 MySQL3. 事务隔离等级3.1 什么是事务隔离等级3.2 隔离级别3.3 查看与设置隔离性3.4 读未提交【Read Uncommitted】3.5 读提交【Read Committed】3.6 可重复读【Repeatable Read】3.7 串行化【serializable】3.8 一致性【Consistency】 4. 读-写4.1 三个记录隐藏列字段…

python spyne报No module named ‘http.cookies‘的解决

python spyne报No module named ‘http.cookies’ python实现webservice服务端时,会使用spyne这个库,安装后,运行会提示No module named ‘http.cookies’。 尝试过不行的方法 pip install http.cookiespip install http.cookiejar 可行的…

MATLAB中cdf2rdf函数用法

目录 语法 说明 示例 将复数对角矩阵变换为实数块对角矩阵 cdf2rdf函数的功能是将复数对角型转换为实数块对角型。 语法 [Vnew,Dnew] cdf2rdf(V,D) 说明 ​[Vnew,Dnew] cdf2rdf(V,D) 将实矩阵 X 的 [V,D] eig(X) 或 [V,D] eigs(X,___) 的输出从复数对角型转换为实数…

蚁狮优化算法(ALO)与支持向量机(SVM)结合的预测模型及其Python和MATLAB实现

### 一、背景 随着大数据时代的到来,各种复杂数据的处理和分析变得至关重要。在众多数据分析方法中,支持向量机(Support Vector Regression, SVR)因其优良的回归性能而受到广泛关注。SVR通过构建一个超平面来拟合数据&#xff0c…

【学习笔记】Matlab和python双语言的学习(动态规划)

文章目录 前言一、动态规划动态规划的基本步骤示例1示例2 三、代码实现----Matlab1.示例12.示例2 四、代码实现----python1.示例12.示例2 总结 前言 通过模型算法,熟练对Matlab和python的应用。 学习视频链接: https://www.bilibili.com/video/BV1EK411…