面向初学者的卷积神经网络

卷积神经网络在机器学习中非常重要。如果你想做计算机视觉或图像识别任务,你根本离不开它们。但是很难理解它们是如何工作的。

在这篇文章中,我们将讨论卷积神经网络背后的机制、它的优点和应用领域。

什么是神经网络?

首先,让我们复习一下神经网络(Neural Networks, NN)的一般工作原理。

任何神经网络,从简单的感知器到巨大的企业人工智能系统,都由模仿人脑神经元的节点组成。这些细胞紧密相连。节点也是如此。

在这里插入图片描述

神经元通常被组织成独立的层。神经网络的一个例子是前馈神经网络。数据从输入层通过一组隐藏层仅沿一个方向移动,就像水通过过滤器一样。

在这里插入图片描述
系统中的每个节点都连接到上一层和下一层中的某些节点。节点从其前面的层接收信息,对其执行某些操作,并将信息发送到下一层。

每个传入连接都分配有一个权重。这是一个数字,节点在从不同节点接收数据时将输入乘以该数字。

在这里插入图片描述
节点通常使用多个传入值。 然后,它将所有内容总结在一起。

在这里插入图片描述
有几种可能的方法可以决定是否应将输入传递到下一层。例如,如果使用单位阶跃函数,则如果节点的值低于阈值,则节点不会将数据传递到下一层。如果数字超过阈值,节点将向前发送数字。然而,在其他情况下,神经元可以简单地将输入投影到某个固定值段中。

当神经网络首次被训练时,它的所有权重和阈值都是随机分配的。一旦训练数据被馈送到输入层,它就会穿过所有层,最终到达输出。在训练期间,将调整权重和阈值,直到具有相同标签的训练数据始终提供相似的输出。这称为反向传播。你可以在 TensorFlow Playground 中看到它是如何工作的。

简单 NN 有什么问题?

常规的人工神经网络不能很好地扩展。例如,在通常用于训练计算机视觉模型的数据集 CIFAR 中,图像的大小仅为 32x32 像素,并且具有 3 个颜色通道。这意味着该神经网络第一隐藏层中的单个全连接神经元将具有 32x32x3 = 3072 个权重。它仍然是可管理的。但是现在想象一个更大的图像,例如,300x300x3。它将有 270000 个权重(训练需要如此多的计算能力)!

像这样的庞大神经网络需要大量资源,但即便如此,仍然容易过度拟合,因为大量的参数使其能够只记住数据集。

卷积神经网络(Convolutional Neural Networks, CNN)使用参数共享。特定特征图中的所有神经元共享权重,这使得整个系统的计算强度降低。

CNN 是如何工作的?

卷积神经网络只是使用卷积的神经网络。为了理解原理,我们将首先使用二维卷积。

什么是卷积?

卷积是一种数学运算,允许合并两组信息。在 CNN 的情况下,卷积应用于输入数据以过滤信息并生成特征图。

在这里插入图片描述
此滤波器也称为内核或特征检测器,其尺寸可以是 3x3。为了执行卷积,内核遍历输入图像,一个又一个元素地执行矩阵乘法。每个感受野(发生卷积的区域)的结果都写在特征图中。

在这里插入图片描述
我们继续滑动滤波器,直到特征图完成。

填充(Padding )和步幅(Striding )

在我们进一步讨论之前,讨论填充和步幅也很有用。这些技术通常用于 CNN:

  • 填充:填充通过将假像素添加到矩阵的边框来扩展输入矩阵。这样做是因为卷积减小了矩阵的大小。例如,当筛选器经过 5x5 矩阵时,它会变成 3x3 矩阵。

  • 步幅:经常发生的情况是,在使用卷积层时,您需要获得小于输入的输出。实现此目的的一种方法是使用池化层。实现此目的的另一种方法是使用步幅。Striding 背后的想法是在内核滑过时跳过某些区域:例如,每 2 或 3 个像素跳过一次。它降低了空间分辨率,使网络的计算效率更高。

填充和步幅可以帮助更准确地处理图像。

对于现实生活中的任务,卷积通常在 3D 中执行。大多数图像具有 3 个维度:高度、宽度和深度,其中深度对应于颜色通道 (RGB)。因此,卷积滤波器也需要是三维的。以下是相同操作在 3D 中的外观。

在这里插入图片描述
卷积层中有多个滤波器,每个滤波器都会生成一个滤波器映射。因此,图层的输出将是一组相互堆叠的滤波器映射。

例如,填充 30x30x3 矩阵并通过 10 个过滤器将生成一组 10 个 30x30x1 矩阵。 将这些贴图堆叠在一起后,我们将得到一个 30x30x10 的矩阵。

这是我们卷积层的输出。

这一过程可以重复:CNN 通常具有多个卷积层。

3 层 CNN

CNN 的目标是减少图像,以便更容易处理,而不会丢失对准确预测有价值的特征。

卷积层、池化层和全连接层有三种层。

  • 卷积层负责识别像素中的特征。

  • 池化层负责使这些功能更加抽象。

  • 全连接层负责使用获取的特征进行预测。

在这里插入图片描述

卷积层

我们已经在上面描述了卷积层的工作原理。它们位于 CNN 的中心,使它们能够自主识别图像中的特征。

但是通过卷积过程会产生大量数据,这使得训练神经网络变得困难。要压缩数据,我们需要进行池化。

池化层

池化层从卷积层接收结果并将其压缩。池化层的滤波器始终小于特征映射。通常,它采用 2x2 正方形(图像块)并将其压缩为一个值。

2x2 滤波器会将每个特征图中的像素数减少到大小的四分之一。如果特征映射的大小为 10×10,则输出映射将为 5×5。

可以使用多个不同的函数进行池化。这些是最常见的:

  • 最大池化。它计算特征图的每个图像块的最大值。

  • 平均池化。它计算特征图上每个图像块的平均值。

使用池化层后,您将获得池化特征图,它们是输入中检测到的特征的汇总版本。 池化层提高了 CNN 的稳定性:如果之前像素的最轻微波动都会导致模型错误分类,那么现在卷积层检测到的输入中特征位置的微小变化将导致特征在同一位置的池化特征图。

现在我们需要将输入展平(将其转换为列向量)并将其传递给常规神经网络进行分类。

全连接层

平坦化的输出被馈送到前馈神经网络,并且在训练的每次迭代中应用反向传播。 该层为模型提供了最终理解图像的能力:每个输入像素和每个输出类之间存在信息流。

卷积神经网络的优点

卷积神经网络有几个优点,使其可用于许多不同的应用。

特征学习

CNN 不需要手动特征工程:它们可以在训练过程中掌握相关特征。 即使您正在处理全新的任务,您也可以使用预先训练的 CNN,并通过向其提供数据来调整权重。 CNN 将根据新任务进行调整。

计算效率

由于卷积过程,CNN 的计算效率比常规神经网络高得多。 CNN 使用参数共享和降维,使得模型的部署变得简单快捷。 它们可以经过优化以在任何设备上运行,甚至在智能手机上。

高精度

目前最先进的图像分类神经网络不是卷积网络。 然而,在图像和视频识别以及类似任务的大多数情况和任务中,CNN 已经统治了很长一段时间。 它们通常比非卷积神经网络表现出更高的准确性,特别是当涉及大量数据时。

卷积神经网络的缺点

然而,CNN 并不完美。即使它看起来是一个非常聪明的工具,它仍然容易受到对抗性攻击。

对抗性攻击

对抗性攻击是向网络提供 “坏” 示例(即以特定方式略微修改图像)以导致错误分类的情况。即使是像素的轻微变化也会让 CNN 发疯。例如,犯罪分子可以欺骗基于 CNN 的人脸识别系统,并在镜头前通过而不被识别。

数据密集型训练

为了让 CNN 展示他们的神奇力量,他们需要大量的训练数据。这些数据不容易收集和预处理,这可能会成为更广泛采用该技术的障碍。这就是为什么即使在今天也只有少数好的预训练模型,如 GoogleNet,VGG,Inception,AlexNet。大多数由全球公司拥有。

卷积神经网络的用途是什么?

卷积神经网络用于许多行业。以下是它们在实际应用中使用的一些常见示例。

图像分类(Image classification)

卷积神经网络通常用于图像分类。通过识别有价值的特征,CNN 可以识别图像上的不同物体。这种能力使它们在医学上很有用,例如,用于 MRI 诊断。CNN 也可用于农业。这些网络从 LSAT 等卫星接收图像,并可以使用这些信息根据耕种水平对土地进行分类。因此,这些数据可用于预测场地的肥力水平或制定最佳利用农田的策略。手写数字识别也是 CNN 最早用于计算机视觉的应用之一。

在这里插入图片描述

物体检测(Object detection)

自动驾驶汽车、人工智能监控系统和智能家居经常使用 CNN 来识别和标记物体。 CNN 可以识别照片上的物体,并实时对其进行分类和标记。 这就是自动驾驶汽车如何绕过其他汽车和行人,以及智能家居如何识别户主的脸部。

在这里插入图片描述

视听匹配(Audio visual matching)

YouTube,Netflix 和其他视频流服务使用视听匹配来改进其平台。有时用户的请求可能非常具体,例如,“关于太空僵尸的电影”,但搜索引擎应该满足这种奇特的请求。

对象重建(Object reconstruction)

您可以使用 CNN 对数字空间中的真实对象进行 3D 建模。目前,有 CNN 模型仅基于一个图像创建 3D 面部模型。类似的技术可用于创建数字孪生,这在建筑、生物技术和制造业中很有用。

语音识别(Speech recognition)和自然语言处理(Natural Language Processing)等

尽管 CNN 经常用于处理图像,但它并不是它们唯一可能的用途。CNN 也可以帮助语音识别和自然语言处理。例如,Facebook 的语音识别技术基于卷积神经网络。

总结

总而言之,卷积神经网络是计算机视觉和类似领域的一个很棒的工具,因为它们能够识别原始数据中的特征。

他们可以识别训练数据中不同像素之间的联系,并使用这些信息自行设计特征,从低级(边缘、圆圈)到高级(面部、手部、汽车)构建。

问题是这些特征对人类来说可能变得相当难以理解。此外,图像中的野生像素有时会导致新的令人惊讶的结果。

希望本篇博客对你学习卷积神经网络有所帮助!如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦😊😊😊!后续会持续更新机器学习相关内容。

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

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

相关文章

架构训练营:3-3设计备选方案与架构细化

3架构中期 什么是备选架构? 备选架构定义了系统可行的架构模式和技术选型 备选方案筛选过程 头脑风暴 :对可选技术进行排列组合,得到可能的方案 红线筛选:根据系统明确的约束和限定,一票否决某些方案(主要…

Docker 安装 Nginx,并实现负载均衡

1、获取 nginx 的镜像 # 默认是latest版本docker pull nginx 2、运行 nginx 容器 docker run --name nginx-80 -p 80:80 --rm -d nginx# --name nginx-80 设定容器的名称# -p 80:80 端口进行映射,将本地的80端口映射到容器内部的80端口# --rm 表示容器退出后直接…

Vue中v-html用法以及指令汇总

操作数组的方法 : push:数组最后位置新增元素 pop: 删除最后一个元素 shift: 删除第一个元素 unshift:往前面加一个元素 splice:在数组的指定位置插入、删除、替换一个元素 sort: 数组排序…

卷积神经网络(CNN)原理详解

近些年人工智能发展迅速,在图像识别、语音识别、物体识别等各种场景上深度学习取得了巨大的成功,例如AlphaGo击败世界围棋冠军,iPhone X内置了人脸识别解锁功能等等,很多AI产品在世界上引起了很大的轰动。 而其中 卷积神经网络&am…

【微信小程序-uniapp】CustomButton 自定义常用吸底按钮组件

1. 效果图 2. 组件完整代码 <template><view:class="[custom-btn flex-center, size == big ? big : mid, type == primary ? primary : info, plain ? plain : , disabled ? disabled : , round ? round : ]"

神经网络之VGG

目录 1.VGG的简单介绍 1.2结构图 3.参考代码 VGGNet-16 架构&#xff1a;完整指南 |卡格尔 (kaggle.com) 1.VGG的简单介绍 经典卷积神经网络的基本组成部分是下面的这个序列&#xff1a; 带填充以保持分辨率的卷积层&#xff1b; 非线性激活函数&#xff0c;如ReLU&a…

挖矿记录+解决方案:利用GitLab组件对服务器进行挖矿导致CPU占用200%

文章目录 什么是云服务器挖矿?事件记录事件分析产生影响解决方案后期预防什么是云服务器挖矿? 云服务器挖矿是指利用云服务器从事赚取比特币的活动。比特币是一种虚拟数字货币,挖矿是将一段时间内比特币系统中发生的交易进行确认,并记录在区块链上形成新区块的过程。 用于…

Mybatis:传参+提交事务(自动or手动)+sql多表关联查询(两种方法)

目录 一、参数两种类型&#xff1a; 二、传参的几种方法&#xff1a; 三、提交事务 四、sql多表关联查询(两种方法) 一、参数两种类型&#xff1a; 1.#{参数}&#xff1a;预编译方式&#xff0c;更安全&#xff0c;只用于向sql中传值&#xff1b; select * from admin w…

只需一个提示词解除GPT-4的字符限制!

ChatGPT的内存有限,GPT-3.5-turbo的限制为4897个令牌,而GPT-4的最大限制为8192。如果您在使用GPT-4进行聊天时超过8192个令牌(约6827个单词),它就会开始遗忘。我想出了一种新的技巧,可以轻松将对话扩展10倍。 这种技巧不会将对话中的每个字都保存到内存中。当您去开会时,会有人…

如何解除“无法完成操作 因为文件包含病毒或潜在垃圾软件”

当运行软件遇到“无法完成操作 因为文件包含病毒或潜在垃圾软件”时&#xff0c;如何解决&#xff1f;如果确认此软件不是病毒软件&#xff0c;那么可以按照如下方法进行解决&#xff1a; 1&#xff1a;关闭防火墙 控制面板-系统和安全-Windows Defender防火墙-自定义设置&am…

分布式运用存储系统Ceph

一、ceph的相关知识 1.ceph介绍与简介 Ceph是一个开源的分布式存储解决方案&#xff0c;旨在提供可扩展性、高性能和强大的数据可靠性。它采用了一种分布式对象存储架构&#xff0c;能够同时提供块存储和文件存储的功能。 Ceph使用C语言开发&#xff0c;是一个开放、自我修复和…

MySQL数据表高级操作

一、克隆/复制数据表二、清空表&#xff0c;删除表内的所有数据删除小结 三、创建临时表四、MySQL中6种常见的约束1、外键的定义2、创建外键约束作用3、创建主表test44、创建从表test55、为主表test4添加一个主键约束。主键名建议以"PK_”开头。6、为从表test5表添加外键&…

数据结构与算法——顺序表(顺序存储结构)及初始化详解

顺序表&#xff0c;全名顺序存储结构&#xff0c;是线性表的一种。通过《什么是线性表》一节的学习我们知道&#xff0c;线性表用于存储逻辑关系为“一对一”的数据&#xff0c;顺序表自然也不例外。 不仅如此&#xff0c;顺序表对数据的物理存储结构也有要求。顺序表存储数据…

【论文阅读】TransCAM: Transformer Attention-based CAM Refinement for WSSS

分享一篇阅读的用于弱监督分割的论文 论文标题&#xff1a; TransCAM: Transformer Attention-based CAM Refinement for Weakly Supervised Semantic Segmentation 作者信息&#xff1a; 代码地址&#xff1a; https://github.com/liruiwen/TransCAM Abstract 大多数现有…

【React】- 组件生命周期连续渲染两次问题

最近在整理生命周期相关的知识内容&#xff0c;然后发现一个奇怪的现象&#xff0c;即组件的生命周期会运行2次&#xff01;经过确认不是代码问题&#xff0c;于是开始找度娘&#xff0c;终于找到其原因-React中的严格模式&#xff0c;在这里记录一下 一、问题重现 如图所示&a…

EMC学习笔记(十五)射频PCB的EMC设计(二)

射频PCB的EMC设计&#xff08;二&#xff09; 1.滤波1.1 电源和控制线的滤波1.2 频率合成器数据线、时钟线、使能线的滤波 2.接地2.1 接地分类2.2 大面积接地2.3 分组就近接地2.4 射频器件接地2.5 接地时应该注意的问题2.6 接地平面的分布 1.滤波 1.1 电源和控制线的滤波 随着…

人工智能自然语言处理:N-gram和TF-IDF模型详解

人工智能自然语言处理&#xff1a;N-gram和TF-IDF模型详解 1.N-gram 模型 N-Gram 是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为 N 的滑动窗口操作&#xff0c;形成了长度是 N 的字节片段序列。 每一个字节片段称为 gram&#xff0c;对所…

SpringBoot 整合redis + Aop防止重复提交 (简易)

1.redis的安装 redis下载 解压 安装 # wget http://download.redis.io/releases/redis-6.0.8.tar.gz # tar xzf redis-6.0.8.tar.gz # cd redis-6.0.8 # make 看一下就会有 进入redis-6.0.8下的src目录 [rootVM-16-8-centos redis]# cd redis-6.0.8 [rootVM-16-8-centos re…

HCIP——HCIA回顾及静态实验

HCIP HCIA一、知识回顾1、OSI七层参考模型&#xff1a;2、重要的几个协议报头格式 二、静态实验1、实验拓扑图2、实验要求3、实验思路4、实验步骤1、给接口划分IP地址以及配置环回地址2、交换机配置划分VLAN3、配置静态路由4、配置DHCP服务5、测试6、优化 HCIA 1、七层参考模型…

51单片机学习--独立按键控制LED

功能&#xff1a;按下K1时D1亮&#xff0c;松开时D1灭&#xff0c;P3_1对应K1 , P2_0对应D1 #include <REGX52.H>void main() {while(1) {if(P3_1 0) //按下K1{P2_0 0;}else{P2_0 1;}}} 按下按钮和松开按钮时会有抖动&#xff0c;所以需要用延时函数来避免抖动造成的…