AI人工智能 卷积神经网络(CNN)

AI人工智能 卷积神经网络(CNN)

卷积神经网络与普通神经网络相同,因为它们也由具有可学习的权重和偏差的神经元组成。 普通的神经网络忽略了输入数据的结构,所有的数据在送入网络之前都被转换为一维数组。 该过程适合常规数据,但是如果数据包含图像,则该过程可能很麻烦。
CNN 很容易解决这个问题。 它在处理图像时考虑了图像的二维结构,这使得它们可以提取特定于图像的属性。 这样,CNN 的主要目标就是从输入层中的原始图像数据到输出层中的正确类。 普通神经网络和 CNN 之间唯一的区别在于处理输入数据和图层类型。

CNN的体系结构概述

在架构上,普通的神经网络接收输入并通过一系列隐藏层转换它。 在神经元的帮助下,每层都连接到另一层。 普通神经网络的主要缺点是它们不能很好地扩展到完整的图像。

CNN 的体系结构具有三维排列的神经元,称为宽度,高度和深度。 当前图层中的每个神经元都连接到前一图层的一小部分输出。 它类似于在输入图像上叠加一个

20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络CNN(Convolutional Neural Networks)。

1980年,K.Fukushima提出的新识别机是卷积神经网络的第一个实现网络。随后,更多的科研工作者对该网络进行了改进。其中,具有代表性的研究成果是Alexander和Taylor提出的“改进认知机”,该方法综合了各种改进方法的优点并避免了耗时的误差反向传播。

现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。

在这里插入图片描述

CNN概念:

在机器学习中,卷积神经网络CNN(Convolutional Neural Network)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,可以应用于语音识别、图像处理和图像识别等领域。

CNN引入意义:

在全连接神经网络中(下面左图),每相邻两层之间的每个神经元之间都是有边相连的。当输入层的特征维度变得很高时,这时全连接网络需要训练的参数就会增大很多,计算速度就会变得很慢。

而在卷积神经网络CNN中(下面右图),卷积层的神经元只与前一层的部分神经元节点相连,即它的神经元间的连接是非全连接的,且同一层中某些神经元之间的连接的权重w和偏移b是共享的,这样大量地减少了需要训练参数的数量。

在这里插入图片描述

CNN核心思想:

CNN模型限制参数了个数并挖掘了局部结构。主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。局部感受视野,权值共享以及时间或空间亚采样这三种思想结合起来,获得了某种程度的位移、尺度、形变不变性。通过“卷积核”作为中介。同一个卷积核在所有图像内是共享的,图像通过卷积操作后仍然保留原先的位置关系。

在这里插入图片描述

CNN实质:

CNN在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力。卷积网络执行的是有导师训练,所以其样本集是由形如:(输入向量,理想输出向量)的向量对构成的。所有这些向量对,都应该是来源于网络即将模拟的系统的实际“运行”结果。它们可以是从实际运行系统中采集来的。在开始训练前,所有的权都应该用一些不同的小随机数进行初始化。“小随机数”用来保证网络不会因权值过大而进入饱和状态而导致训练失败;“不同”用来保证网络可以正常地学习。

CNN基本结构:

卷积神经网络CNN的结构一般包含下面几层:

在这里插入图片描述

1) 输入层:用于数据的输入。2) 卷积层:卷积层是卷积核在上一级输入层上通过逐一滑动窗口计算而得,卷积核中的每一个参数都相当于传统神经网络中的权值参数,与对应的局部像素相连接,将卷积核的各个参数与对应的局部像素值相乘之和,得到卷积层上的结果。一般地,使用卷积核进行特征提取和特征映射。

在这里插入图片描述

l 特征提取:每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;
l 特征映射:网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。

卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。
  1. 激励层:由于卷积也是一种线性运算,因此需要增加非线性映射。使用的激励函数一般为ReLu函数:f(x)=max(x,0)。

在这里插入图片描述

4) 池化层:进行下采样,对特征图稀疏处理,减少数据运算量。通过卷积层获得了图像的特征之后,理论上可以直接使用这些特征训练分类器(如softmax),但这样做将面临巨大的计算量挑战,且容易产生过拟合现象。为了进一步降低网络训练参数及模型的过拟合程度,需要对卷积层进行池化/采样(Pooling)处理。池化/采样的方式通常有以下两种:a)Max-Pooling: 选择Pooling窗口中的最大值作为采样值;b)Mean-Pooling: 将Pooling窗口中的所有值相加取平均,以平均值作为采样值。

在这里插入图片描述

  1. 全连接层:CNN尾部进行重新拟合,减少特征信息的损失。

在这里插入图片描述

6) 输出层:用于最后输出结果。

CNN训练过程:

1.向前传播阶段:

a)从样本集中取一个样本(X,Yp),将X输入网络;b)计算相应的实际输出Op。

信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。在此过程中,网络执行的是计算,实际上就是输入与每层的权值矩阵相点乘,得到最后的输出结果:

Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))

2.向后传播阶段:

a)计算实际输出Op与相应的理想输出Yp的差;b)按极小化误差的方法反向传播调整权矩阵。

CNN优点:

1) 输入图像和网络的拓扑结构能很好的吻合;2) 尽管使用较少参数,仍然有出色性能;3) 避免了显式的特征抽取,而隐式地从训练数据中进行学习;4) 特征提取和模式分类同时进行,并同时在训练中产生,网络可以并行学习;5) 权值共享减少网络的训练参数,降低了网络结构的复杂性,适用性更强;6) 无需手动选取特征,训练好权重,即得特征,分类效果好;7) 可以直接输入网络,避免了特征提取和分类过程中数据重建的复杂度。

在这里插入图片描述

CNN缺点:

1) 需要调整参数;2) 需要大样本量,训练最好要GPU;3) 物理含义不明确,神经网络本身就是一种难以解释的 “黑箱模型”。

CNN常用框架:

1. Caffe:源于Berkeley的主流CV工具包,支持C++,python,matlab; Model Zoo中有大量预训练好的模型供使用;2. Torch: Facebook用的卷积神经网络工具包,通过时域卷积的本地接口,使用非常直观; 定义新网络层简单;3. TensorFlow****Google的深度学习框架;TensorBoard可视化很方便;数据和模型并行化好,速度快。

CNN应用场景:

应用场景包括机器学习、语音识别、文档分析、语言检测和图像识别等领域

特别强调的是CNN在图像处理和图像识别领域取得了很大的成功,在国际标准的ImageNet数据集上,许多成功的模型都是基于CNN的。CNN相较于传统的图像处理算法的好处之一在于:避免了对图像复杂的前期预处理过程,可以直接输入原始图像。

在这里插入图片描述

卷积神经网络CNN是近年发展起来,并引起广泛重视的一种高效识别方法。卷积神经网络以其局部权值共享的特殊结构在模式识别方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。CNN算法在人工智能之机器学习、语音识别、文档分析、语言检测和图像识别等领域等领域有着广泛应用。

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

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

相关文章

【Java日志系列】Log4j日志框架

目录 前言 一、Log4j简介 二、Log4j组件介绍 1. Loggers 2. Appenders 3. Layouts 三、快速入门 1. 入门代码 2. 日志级别 四、配置文件的使用 五、自定义日志输出格式 六、配置不同的Appender 1. 输出到文件 2. 输出到数据库 七、自定义Logger配置 总结 前言…

超简单理解LSTM和GRU模型

目录 参考资料 RNN在反向传播时容易遭受梯度消失的问题,而梯度是用于更新神经网络权重的关键因子,梯度消失描述的是梯度在时间序列反向传播中逐渐减小的情况。 若梯度过小,它对于网络的学习贡献甚微。结果是,在RNN中,梯…

unity游戏开发003:深入理解Unity中的坐标系

Unity游戏开发 “好读书,不求甚解;每有会意,便欣然忘食。” 本文目录: Unity游戏开发 Unity游戏开发深入理解Unity中的坐标系前言1. 坐标轴2. 左手坐标系3. 世界坐标系 vs. 局部坐标系4. 坐标变换5. 注意事项 总结 深入理解Unity中…

基于STM32开发的智能家居温控系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 家庭智能温控办公室环境监测常见问题及解决方案 常见问题解决方案结论 1. 引言 智能家居温控系统通过整合温度传感器、湿度传感器、风扇和加热器等硬件&#xf…

【数据结构进阶】哈希的应用

🔥个人主页: Forcible Bug Maker 🔥专栏: C || 数据结构 目录 🌈前言🔥位图位图的概念位图的实现位图的变体 🔥布隆过滤器布隆过滤器的概念布隆过滤器的插入布隆过滤器的查找布隆过滤器的删除布…

Windows 10/11和Linux双系统用户请勿安装最新更新 否则将无法启动

据蓝点网报道,Windows 10/11 最新累积更新存在已知问题,如果你同时安装了 Linux 双系统则会在更新后导致系统无法正常启动。 启动时会出现如下报错: Verifiying shim SBAT data failed: Security Policy Violation.Something has gone serio…

Python 绘图入门

数据可视化的概念及意义 数据可视化有着久远的历史,最早可以追溯至10世纪,至今已经应用和发展了数百年。不知名的天文学家是已知的最早尝试以图形方式显示全年当中太阳,月亮和行星的位置变化的图。 图1 数据可视化的发展历程 什么是数据可视…

顶级期刊TMI论文解读┆PLHN: 用于DCE-MRI影像中乳腺肿瘤分割的原型学习引导混合网络

一、论文简介 本推文详细介绍了一篇上海理工大学健康科学与工程学院医学信息工程研究所(以下简称为医信所)周雷副教授课题组的最新论文《Prototype Learning Guided Hybrid Network for Breast Tumor Segmentation in DCE-MRI》,该论文发表在…

【Rust】使用开源项目搭建瓦片地图服务

本文通过获取在线和离线地图数据,使用开源Rust项目搭建瓦片地图服务,并使用DevExpress的MapControl控件使用自建地图服务 获取地图数据 获取地图数据有很多种方式,这里分别用在线和离线地图数据举例说明 在线下载瓦片地图 打开在线瓦片地…

搭建内网开发环境(一)|基于docker快速部署开发环境

引言 最近因需要搭建一套简易版的纯内网的开发环境,服务器采用 centos8.0,容器化技术采用 docker 使用 docker-compose 进行容器编排。 该系列教程分为两大类: 软件安装和使用,这类是开发环境常用的软件部署和使用,涉…

Oracle VM VirtualBox虚拟机内存不够用的解决方案

一、 前言 在使用Oracle VM VirtualBox虚拟机的过程中,随着时间的推移,我们会感觉我们的内存越来越不够用,今天就来给大家分享一下我们如何解决虚拟机内存不够用的问题。 二、解决方法 1.虚拟机碎片化整理 我们第一步要做的是碎片整理&…

VScode找python环境 (conda)

CtrlshiftP 会弹出如下框: 框里输入: Python:Select Interpreter 会得到:

24/8/15算法笔记 dp策略迭代 价值迭代

策略迭代: 策略迭代从某个策略开始,计算该策略下的状态价值函数。它交替进行两个步骤:策略评估(Policy Evaluation)和策略改进(Policy Improvement)。在策略评估阶段,计算给定策略下…

模电实验3 - 单电源集成运放交流耦合放大器

实验目标 学习集成运放的单电源使用。掌握交流耦合单电源集成运放放大器的测试方法。了解交流耦合单电源集成运放放大器的特点。 实验器材 ADALM2000 1kΩ 电阻 (1/4 W) x 1 10 kΩ 电阻 (1/4 W) x 1 100kΩ 电阻 (1/4 W) x 3 0.1μF电容 x 1 1μF电容 …

【深度学习】单层神经网络

单层神经网络 神经元感知机 1943年,心理学家McCulloch和数学家Pitts共同发表了神经网络的开山之作A Logical Calculus of the Ideas Immanent in Nervours Activity1,提出了神经网络的第一个数学模型——MP模型。该模型也成为了人工神经网络的基础。 神经…

7 数据存储单位,整型、浮点型、字符型、布尔型数据类型,sizeof 运算符

目录 1 数据类型的分类 2 数据存储单位 2.1 位 2.2 字节 2.3 其余单位 3 整数类型 3.1 基本介绍 3.2 整型的类型 3.2.1 整数类型多样性的原因 3.2.2 整型类型之间的相对大小关系 3.3 整型注意事项 3.4 字面量后缀 3.5 格式占位符 3.6 案例:声明并输出…

无参数读文件

目录 代码 代码解析 如何绕过获取flag 第一种方法(在apache中) ​编辑 第二种方法 首先获取目录下文件 代码 <?php highlight_file(__FILE__); if(; preg_replace(/[^\W]\((?R)?\)/, , $_GET[code])) { eval($_GET[code]); } ?> 代码解析 [^\W]\((?R)?…

接口优化笔记

索引 添加索引 where条件的关键自动或者order by后面的排序字段可以添加索引加速查询 索引只能通过删除新增进行修改&#xff0c;无法直接修改。 # 查看表的索引 show index from table_name; show create table table_name; # 添加索引 alter table table_name add index …

C/C++开发---全篇

1、统筹 学习目标&#xff1a; C/C、python精通。 就业匹配方向&#xff1a;专精一个领域&#xff0c;延长职业生涯。 &#xff08;1&#xff09;适配行业&#xff1b; &#xff08;2&#xff09;量化&#xff1b; &#xff08;3&#xff09;安全&#xff1b; &#xff08;4&…

华为od统一考试B卷【比赛】python实现

def split_params(param_str): return list(map(int, param_str.split(,))) def main(): # 获取输入 target_str input().strip() # 输入验证&#xff0c;拆分并转换为整数 try: m, n split_params(target_str) except ValueError: print(-1) return # 检查 M 和 …