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

人工智能中的卷积神经网络(CNN)综述

文章目录

前言

1. CNN的基本原理

1.1 卷积层

1.2 池化层

1.3 全连接层

2. CNN的发展历程

2.1 LeNet-5

2.2 AlexNet

2.3 VGGNet

2.4 ResNet

3. CNN的主要应用

3.1 图像分类

3.2 目标检测

3.3 语义分割

3.4 自然语言处理

4. 未来研究方向

4.1 模型压缩与加速

4.2 自监督学习

4.3 跨模态学习

结论


前言

卷积神经网络(Convolutional Neural Networks,CNN)是深度学习领域中最重要和广泛应用的模型之一。自20世纪80年代提出以来,CNN在图像处理、计算机视觉、自然语言处理等领域取得了显著的成功。本文旨在综述CNN的基本原理、发展历程、主要应用以及未来研究方向,并引用相关文献以支持论述。

1. CNN的基本原理

CNN是一种专门用于处理具有网格结构数据(如图像)的神经网络。其核心思想是通过卷积操作提取局部特征,并通过池化操作降低数据维度,从而实现对复杂模式的高效学习。

1.1 卷积层

卷积层是CNN的核心组成部分。它通过卷积核(filter)在输入数据上滑动,提取局部特征。每个卷积核可以学习到不同的特征,例如边缘、纹理等。数学上,卷积操作可以表示为:

1.2 池化层

池化层用于降低数据的空间维度,减少计算量并防止过拟合。常见的池化操作包括最大池化(Max Pooling)和平均池化(Averaged Pooling)。最大池化选择局部区域中的最大值,而平均池化则计算局部区域的平均值。

1.3 全连接层

全连接层通常位于CNN的末端,用于将提取的特征映射到最终的输出类别。每个神经元与前一层的所有神经元相连,通过学习权重和偏置来实现分类或回归任务。

2. CNN的发展历程

CNN的发展经历了多个重要阶段。以下是一些关键里程碑:

2.1 LeNet-5

LeNet-5是由Yann LeCun等人在1988年提出的,用于手写数字识别的CNN模型。它是第一个成功应用于实际问题的CNN,奠定了现代CNN的基础(LeCun et al., 1998)。

2.2 AlexNet

AlexNet 是由Alex Krizhevsky等人在2012年提出的,在ImageNet图像分类竞赛中取得了突破性成绩。AlexNet引入了ReLU激活函数、Dropout和数据增强等技术,显著提高了CNN的性能(Krizhevsky et al.,2012)。

2.3 VGGNet

VGGNet由牛津大学的Visual Geometry Group提出,通过使用更深的网络结构和较小的卷积核(3x3),进一步提升了图像分类的准确性(Simonyan & Zisserman,2014)。

2.4 ResNet

ResNet(残差网络)由何恺明等人在2015年提出,通过引入残差连接(residual connections)解决了深层网络中的梯度消失问题,使得网络可以训练得更深(He et al.,2016)。

3. CNN的主要应用

CNN在多个领域取得了广泛应用,以下是一些典型应用:

3.1 图像分类

图像分类是CNN最经典的应用之一。通过训练CNN模型,可以实现对图像中物体的自动分类。例如,ImageNet竞赛中的许多优胜模型都是基于CNN的(Russakovsky et al.,2015)。

3.2 目标检测

目标检测不仅需要识别图像中的物体,还需要定位物体的位置。Faster R-CNN、YOLO 和SSD 等模型都是基于CNN的目标检测算法(Ren et.al.,2015;Redmon et al.,2016;Liu et al.,2016)。

3.3 语义分割

语义分割是将图像中的每个像素分类到特定的类别中。U-Net和FCN(全卷积网络)是常用的语义分割模型(Ronneberger et al.,2015;Long et al.,2015)。

3.4 自然语言处理

尽管CNN最初是为图像处理设计的,但它们在自然语言处理(NLP)中也取得了成功。例如,CNN可以同于文本分类、情感分析和机器翻译(Kim,2014)。

4. 未来研究方向

尽管CNN在许多任务中表现出色,但仍有许多挑战和未来研究方向:

4.1 模型压缩与加速

随着CNN模型的深度和复杂度增加,计算资源和存储需求也随之增加。模型压缩和加速技术(如剪枝、量化和知识蒸馏)是当前研究的热点(Han et al.,2015)。

4.2 自监督学习

自监督学习通过利用未标注数据进行预训练,减少对大量标注数据的依赖。未来,自监督学习有望在CNN中发挥更大作用(Jing & Tian,2020)。

4.3 跨模态学习

跨模态学习旨在将不同模态(如图像和文本)的信息结合起来,实现更复杂的任务。例如,图像描述生成和视觉问答系统(VQA)都是跨模态学习的应用(Antol et al.,2015)。

结论

卷积神经网络(CNN)作为深度学习的重要组成部分,已经在多个领域取得了显著的成功。从LeNet-5到ResNet,CNN的发展历程展示了其在图像处理、计算机视觉和自然语言处理中的强大能力。未来,随着模型压缩、自监督学习和跨模态学习等技术的发展,CNN将继续在人工智能领域发挥重要作用。

参考文献

LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 2278-2324.

Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet classification with deep convolutional neural networks. Advances in neural information processing systems, 25, 1097-1105.

Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556.

He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. Proceedings of the IEEE conference on computer vision and pattern recognition, 770-778.

Russakovsky, O., Deng, J., Su, H., Krause, J., Satheesh, S., Ma, S., ... & Fei-Fei, L. (2015). ImageNet large scale visual recognition challenge. International journal of computer vision, 115(3), 211-252.

Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster R-CNN: Towards real-time object detection with region proposal networks. Advances in neural information processing systems, 28, 91-99.

Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You only look once: Unified, real-time object detection. Proceedings of the IEEE conference on computer vision and pattern recognition, 779-788.

Liu, W., Anguelov, D., Erhan, D., Szegedy, C., Reed, S., Fu, C. Y., & Berg, A. C. (2016). SSD: Single shot multibox detector. European conference on computer vision, 21-37.

Ronneberger, O., Fischer, P., & Brox, T. (2015). U-Net: Convolutional networks for biomedical image segmentation. International Conference on Medical image computing and computer-assisted intervention, 234-241.

Long, J., Shelhamer, E., & Darrell, T. (2015). Fully convolutional networks for semantic segmentation. Proceedings of the IEEE conference on computer vision and pattern recognition, 3431-3440.

Kim, Y. (2014). Convolutional neural networks for sentence classification. arXiv preprint arXiv:1408.5882.

Han, S., Pool, J., Tran, J., & Dally, W. (2015). Learning both weights and connections for efficient neural network. Advances in neural information processing systems, 28, 1135-1143.

Jing, L., & Tian, Y. (2020). Self-supervised visual feature learning with deep neural networks: A survey. IEEE Transactions on Pattern Analysis and Machine Intelligence, 43(11), 4037-4058.

Antol, S., Agrawal, A., Lu, J., Mitchell, M., Batra, D., Lawrence Zitnick, C., & Parikh, D. (2015). VQA: Visual question answering. Proceedings of the IEEE international conference on computer vision, 2425-2433.

参考资料:临菲AI创研院

相关文章:

人工智能中的卷积神经网络(CNN)综述

文章目录 前言 1. CNN的基本原理 1.1 卷积层 1.2 池化层 1.3 全连接层 2. CNN的发展历程 2.1 LeNet-5 2.2 AlexNet 2.3 VGGNet 2.4 ResNet 3. CNN的主要应用 3.1 图像分类 3.2 目标检测 3.3 语义分割 3.4 自然语言处理 4. 未来研究方向 4.1 模型压缩与加速 4.2 自监督学习 4.3 …...

WordPress - 此站点出现严重错误

本篇讲 当WordPress出现 此站点出现严重错误 时,该如何解决。 目录 1,现象 2, FAQ 3,管理Menu无法打开 下面是详细内容。 1,现象 此站点出现严重错误(このサイトで重大なエラーが発生しました&#x…...

力扣每日打卡 1534. 统计好三元组 (简单)

力扣 1534. 统计好三元组 简单 前言一、题目内容二、解题方法1. 暴力解法2.官方题解2.1 方法一:枚举2.2 方法二:枚举优化 前言 这是刷算法题的第十二天,用到的语言是JS 题目:力扣 1534. 统计好三元组 (简单) 一、题目内容 给你一…...

《Vue3学习手记2》

今天主要学习Vue3中的数据监视: ps: 代码中的注释写的很详细,这样更有利于理解 watch 作用: 监视数据的变化(和Vue2中watch作用一致) 特点: Vue3中的watch只能监视以下四种数据: ref创建定义的数据(基本类型、对象类型)reactiv…...

在pycharm中搭建yolo11分类检测系统1--PyQt5学习(一)

实验条件:pycharm24.3autodlyolov11环境PyQt5 如果pycharm还没有配PyQt5的话就先去看我原先写的这篇博文: PyQT5安装搭配QT DesignerPycharm)-CSDN博客 跟练参考文章: 目标检测系列(四)利用pyqt5实现yo…...

【经验记录贴】使用配置文件提高项目的可维护性

mark一下。 整体修改前后如下: 课题: 在项目中有一个支持的文件类型的FILE_TYPE的定义, 这个是写死在主程序中,每次增加可以支持的文件类型的时候,都需要去修改主程序中这个FILGE_TYPE的定义。 主程序修改其实不太花时…...

从JSON到SQL:基于业务场景的SQL生成器实战

引言 在数据驱动的业务场景中,将业务需求快速转化为SQL查询是常见需求。本文将通过一个轻量级的sql_json_to_sql函数,展示如何将JSON格式的查询描述转换为标准SQL语句,并结合实际业务场景验证其功能。 核心代码解析 1. 代码实现 def sql_j…...

空格键会提交表单吗?HTML与JavaScript中的行为解析

在网页开发中,理解用户交互细节对于提供流畅的用户体验至关重要。一个常见的问题是:空格键是否会触发表单提交?本文将通过一个简单的示例解释这一行为,并探讨如何使用HTML和JavaScript来定制这种交互。 示例概览 考虑以下HTML代…...

06 - 多线程-JUC并发编程-原子类(二)

上一章,讲解java (java.util.concurrent.atomic) 包中的 支持基本数据类型的原子类,以及支持数组类型的原子类,这一章继续讲解支持对实体类的原子类,以及原子类型的修改器。 还有最后java (java…...

vue3 实现谷歌登录

很多人都是直接在 index.html 文件中引入的,刚开始我也那样写但是谷歌的api只能调起一次后续就不会生效了 我的登录是个弹窗,写在app.vue 文件中 const isGoogleLoaded ref(true);onMounted(async () > {initialize(); }); // 初始化 const initi…...

SOME/IP中”客户端消费“及”服务端提供”的解析

先上结论 AREthAddConsumedEventGroup-->客户端的函数-->谁调用 Consumed函数,谁就是消费者 AREthAddProvidedEventGroup-->服务端的函数-->谁调用 Provided函数,谁就是服务端 Server 端:AREthAddProvidedEventGroup → 声明 &…...

GO语言入门:字符串处理1(打印与格式化输出)

13.1 打印文本 在 fmt 包中,Print 函数用于打印(输出)文本信息。依据输出目标的不同,Print 函数可以划分为三组,详见下表。 按应用目标分组函数说明将文本信息输出到标准输出流,一般是输出到屏幕上Print将…...

Linux 深入浅出信号量:从线程到进程的同步与互斥实战指南

知识点1【信号量概述】 信号量是广泛用于进程和线程间的同步和互斥。信号量的本质 是一个非负的整数计数器,它被用来控制对公共资源的访问 当信号量值大于0的时候,可以访问,否则将阻塞。 PV原语对信号量的操作,一次P操作使信号…...

Oracle数据库数据编程SQL<9.1 数据库逻辑备份和迁移exp和imp之导出、导入>

EXP (Export) 和 IMP (Import) 是 Oracle 提供的传统数据导出导入工具,用于数据库逻辑备份和迁移。尽管在较新版本中已被 Data Pump (EXPDP/IMPDP) 取代,但在某些场景下仍然有用。 目录 一、EXP 导出工具 1. 基本语法 2. 常用参数说明 3. 导出模式 3.1 表模式导出 3.2 用…...

DotnetCore开源库SampleAdmin源码编译

1.报错: System.Net.Sockets.SocketException HResult0x80004005 Message由于目标计算机积极拒绝,无法连接。 SourceSystem.Net.Sockets StackTrace: 在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, C…...

Kaggle-Disaster Tweets-(二分类+NLP+模型融合)

Disaster Tweets 题意: 就是给出一个dataframe包含text这一列代表着文本,文本会有一些词,问对于每条记录中的text是真关于灾难的还是假关于灾难的。 比如我们说今天作业真多,这真是一场灾难。实际上这个灾难只是我们调侃而言的。…...

搭建一个网站需要选择什么配置的服务器?

一般要考虑网站规模、技术需求等因素来进行选择。 小型网站:个人博客、小型企业官网等日均量在 1000 以内的网站,一般推荐2 核 CPU、4GB 内存、50GB 硬盘,带宽 1 - 5M。如果是纯文字内容且图片较少的小型网站,初始阶段 1 核 CPU、…...

idea如何使用git

在 IntelliJ IDEA 中使用 Git 的详细步骤如下,分为配置、基础操作和高级功能,适合新手快速上手: ​一、配置 Git​ ​安装 Git​ 下载并安装 Git,安装时勾选“Add to PATH”。验证安装:终端输入 git --version 显示版本…...

webpack vite

​ 1、webpack webpack打包工具(重点在于配置和使用,原理并不高优。只在开发环境应用,不在线上环境运行),压缩整合代码,让网页加载更快。 前端代码为什么要进行构建和打包? 体积更好&#x…...

.Net 9 webapi使用Docker部署到Linux

参考文章连接: https://www.cnblogs.com/kong-ming/p/16278109.html .Net 6.0 WebApi 使用Docker部署到Linux系统CentOS 7 - 长白山 - 博客园 项目需要跨平台部署,所以就研究了一下菜鸟如何入门Net跨平台部署,演示使用的是Net 9 webAPi Li…...

PyTorch 根据官网命令行无法安装 GPU 版本 解决办法

最近遇到一个问题,PyTorch 官网给出了 GPU 版本的安装命令,但安装成功后查看版本,仍然是 torch 2.6.0cpu 1. 清理现有 PyTorch 安装 经过探索发现,需要同时卸载 conda 和 pip 安装的 torch。 conda remove pytorch torchvision …...

PHP防火墙代码,防火墙,网站防火墙,WAF防火墙,PHP防火墙大全

PHP防火墙代码,防火墙,网站防火墙,WAF防火墙,PHP防火墙大全 资源宝整理分享&#xff1a;https://www.htple.net PHP防火墙&#xff08;作者&#xff1a;悠悠楠杉&#xff09; 验证测试&#xff0c;链接后面加上?verify_cs1后可以自行测试 <?php //复制保存zzwaf.php$we…...

使用 Vitis Model Composer 生成 FPGA IP 核

本文将逐步介绍如何使用 Vitis Model Composer 生成 FPGA IP 核&#xff0c;从建模到部署。 在当今快节奏的世界里&#xff0c;技术正以前所未有的速度发展&#xff0c;FPGA 设计也不例外。高级工具层出不穷&#xff0c;加速着开发进程。传统上&#xff0c;FPGA 设计需要使用硬…...

Day08 【基于jieba分词实现词嵌入的文本多分类】

基于jieba分词的文本多分类 目标数据准备参数配置数据处理模型构建主程序测试与评估测试结果 目标 本文基于给定的词表&#xff0c;将输入的文本基于jieba分词分割为若干个词&#xff0c;然后将词基于词表进行初步编码&#xff0c;之后经过网络层&#xff0c;输出在已知类别标…...

BERT、T5、ViT 和 GPT-3 架构概述及代表性应用

BERT、T5、ViT 和 GPT-3 架构概述 1. BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09; 架构特点 基于 Transformer 编码器&#xff1a;BERT 使用多层双向 Transformer 编码器&#xff0c;能够同时捕捉输入序列中每个词的左右上下文信息…...

倚光科技:以创新之光,雕琢全球领先光学设计公司

在光学技术飞速发展的当下&#xff0c;每一次突破都可能为众多领域带来变革性的影响。而倚光&#xff08;深圳&#xff09;科技有限公司&#xff0c;作为光学设计公司的一颗璀璨之星&#xff0c;正以其卓越的创新能力和深厚的技术底蕴&#xff0c;引领着光学设计行业的发展潮流…...

数据结构(六)——红黑树及模拟实现

目录 前言 红黑树的概念及性质 红黑树的效率 红黑树的结构 红黑树的插入 变色不旋转 单旋变色 双旋变色 插入代码如下所示&#xff1a; 红黑树的查找 红黑树的验证 红黑树代码如下所示&#xff1a; 小结 前言 在前面的文章我们介绍了AVL这一棵完全二叉搜索树&…...

【家政平台开发(48)】家政平台安全“攻防战”:渗透测试全解析

本【家政平台开发】专栏聚焦家政平台从 0 到 1 的全流程打造。从前期需求分析,剖析家政行业现状、挖掘用户需求与梳理功能要点,到系统设计阶段的架构选型、数据库构建,再到开发阶段各模块逐一实现。涵盖移动与 PC 端设计、接口开发及性能优化,测试阶段多维度保障平台质量,…...

Python爬虫-爬取全球股市涨跌幅和涨跌额数据

前言 本文是该专栏的第52篇,后面会持续分享python爬虫干货知识,记得关注。 本文中,笔者将基于Python爬虫,实现批量采集全球股市行情(亚洲,美洲,欧非,其他等)的各股市“涨跌幅”以及“涨跌额”数据。 具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。…...

解决 Vue 中 input 输入框被赋值后,无法再修改和编辑的问题

目录 需求&#xff1a; 出现 BUG&#xff1a; Bug 代码复现 解决问题&#xff1a; 解决方法1&#xff1a; 解决方法2 关于 $set() 的补充&#xff1a; 需求&#xff1a; 前段时间&#xff0c;接到了一个需求&#xff1a;在选择框中选中某个下拉菜单时&#xff0c;对应的…...