一文弄懂CNN/RNN/GAN/Transformer等架构

1. 引言

本文旨在友好地介绍深度学习架构,包括卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)transformerencoder-decoder 架构。

闲话少说,让我们直接开始吧。

2. 卷积神经网络

卷积神经网络(CNN)是一种人工神经网络,旨在处理和分析具有网格状拓扑结构的数据,如图像和视频。将 CNN 想象成一个多层过滤器,可处理图像以提取有意义的特征并进行推理预测。

想象一下,假设我们有一张手写数字的照片,希望计算机能识别出这个数字。CNN 的工作原理是在图像上应用一系列滤波器,逐渐提取出越来越复杂的特征。浅层的滤波器检测边缘和线条等简单特征,而深层的滤波器则检测形状和数字等更复杂的模式特征。

在这里插入图片描述

CNN 的层可分为三种主要类型:卷积层、池化层和全连接层。

● 卷积层:这些层将滤波器应用于图像。每个滤波器在图像上滑动,计算滤波器与其覆盖像素之间的点积。这一过程会生成新的特征图,突出图像中的特定模式。这个过程会用不同的滤波器重复多次,从而生成一组捕捉图像不同方面的特征图。

● 池化层:池化层对特征图进行下采样操作,在保留重要特征的同时减少数据的空间维度。这有助于降低计算复杂度,防止过拟合。最常见的池化类型是最大值池化,它从像素的一个小邻域中选择最大值。

● 全连接层:这些层与传统神经网络中的层类似。它们将一层中的每个神经元与下一层中的每个神经元连接起来。卷积层和池化层的输出会被平铺并通过一个或多个全连接层,从而让网络做出最终预测,例如识别图像中的数字。

总之,CNN是一种神经网络,旨在处理结构化数据,如图像。它的工作原理是对图像应用一系列滤波器或核函数,逐渐提取更复杂的特征。然后,通过池化层,以减少空间维度,防止过度拟合。最后,输出将通过全连接层进行最终预测。

3. 循环神经网络

循环神经网络(RNN)是一种人工神经网络,旨在处理时间序列、语音和自然语言等序列数据。将 RNN 想象成传送带,一次处理一个元素的信息,从而 "记住 "前一个元素的信息,对下一个元素做出预测。

想象一下,我们有一串单词,我们希望计算机生成这串单词中的下一个单词。RNN 的工作原理是每次处理序列中的每个单词,并利用前一个单词的信息预测下一个单词。

RNN 的关键组成部分是递归连接,它允许信息从一个时间步流动到下一个时间步。递归连接是神经元内部的一个连接,它能 "记住 "上一个时间步的信息。

在这里插入图片描述

RNN 可分为三个主要部分:输入层、递归层和输出层。

● 输入层:输入层接收每个时刻的输入信息,例如序列中的一个单词。

● 递归层:递归层处理来自输入层的信息,利用递归连接 "记忆 "前一时刻的信息。递归层包含一组神经元,每个神经元都与自身有递归连接,并与当前时刻的输入进行连接。

● 输出层:输出层根据递归层处理的信息生成预测结果。在生成序列中下一个单词的情况下,输出层会预测序列中前一个单词之后最有可能出现的单词。

总之,RNN 是一种用于处理顺序数据的神经网络。它每次处理一个元素的信息,利用递归连接来 "记忆
"前一个元素的信息。递归层允许网络处理整个序列,使其非常适合语言翻译、语音识别和时间序列预测等任务。

4. 生成对抗网络架构

生成对抗网络(GAN)是一种深度学习架构,它使用两个神经网络(生成器和判别器)来创建新的、逼真的数据。将 GAN 想象成两个敌对的艺术家,一个创造假艺术,另一个则试图辨别真假。

GAN 的目标是在图像、音频和文本等不同领域生成高质量的真实数据样本。生成器网络创建新样本,而判别器网络则评估所生成样本的真实性。这两个网络以对抗的方式同时进行训练,生成器试图生成更逼真的样本,而判别器则更善于检测伪造样本。

在这里插入图片描述

GAN 的两个主要组成部分如下:

● 生成器:生成器网络负责创建新样本。它将随机噪声向量作为输入,并生成输出样本,如图像或句子。生成器通过最小化损失函数来测量生成样本与真实数据之间的差异,从而训练生成更真实的样本。

● 判别器:判别器网络评估生成样本的真伪。它将一个样本作为输入,然后输出一个概率,表明该样本是真的还是假的。判别器通过损失函数来测量真实样本和生成样本概率之间的差异,从而训练判别器分辨真假样本。

GAN 的对抗性源于生成器和判别器之间的竞争。生成器试图生成更逼真的样本来欺骗判别器,而判别器则试图提高自己分辨真假样本的能力。这个过程会一直持续下去,直到生成器生成高质量、逼真的数据,而这些数据很难与真实数据区分开来。

总之,GAN是一种深度学习架构,它使用两个神经网络(生成器和判别器)来创建新的真实数据。生成器创建新样本,判别器评估样本的真实性。这两个网络以对抗的方式进行训练,生成器生成更逼真的样本,而判别器则提高检测真假样本的能力。GAN目前可应用于各种领域,如图像和视频生成、音乐合成和文本到图像合成等。

5. Transformers架构

Transformers是一种神经网络架构,广泛应用于自然语言处理(NLP)任务,如翻译、文本分类和问答系统。它们是在 2017 年发表的开创性论文 "Attention Is All You Need "中引入的。

Transformers想象成一个复杂的语言模型,通过将文本分解成更小的片段并分析它们之间的关系来处理文本。然后,该模型可以对各种查询生成连贯流畅的回复。

在这里插入图片描述

Transformers由多个重复模块组成,称为层。每个层包含两个主要组件:y

● 自注意力机制:自注意力机制允许模型分析输入文本不同部分之间的关系。它的工作原理是为输入序列中的每个单词分配权重,以显示其与当前上下文的相关性。这样,模型就能将注意力集中在重要的词语上,而淡化不那么相关的词语的重要性。

● 前馈神经网络:前馈神经网络是处理自我注意机制输出的多层感知机。它们负责学习输入文本中单词之间的复杂关系。
Transformers的关键创新之处在于使用自注意机制,这使得模型能够高效处理长序列文本,而无需进行昂贵的递归或卷积操作。这使得Transformers的计算效率高,能有效地完成各种NLP任务。

简单地说,Transformers是一种功能强大的神经网络架构,专为自然语言处理任务而设计。它们通过将文本分解成更小的片段,并通过自注意机制分析片段之间的关系来处理文本。这样,该模型就能对各种查询生成连贯流畅的回复。

6. encoder-decoder架构

编码器-解码器架构在自然语言处理(NLP)任务中非常流行。它们通常用于序列到序列问题,如机器翻译,其目标是将一种语言(源语言)的输入文本转换为另一种语言(目标语言)的相应文本。

把编码器-解码器架构想象成一个翻译员,他听一个人说外语,同时将其翻译成听者的母语。

在这里插入图片描述

该架构由两个主要部分组成:

● 编码器:编码器接收输入序列(源文本)并按顺序进行处理,生成一个紧凑的表示形式,通常称为 context vector context embedding。这种表示概括了输入序列,并包含有关其语法、语义和上下文的信息。编码器可以是递归神经网络(RNN),也可以是Transformers,具体取决于具体任务和实现方式。

● 解码器:解码器采用编码器生成的上下文向量,逐个元素生成输出序列(目标文本)。解码器通常是一个递归神经网络或Transformers,与编码器类似。它根据前面的单词和上下文向量中包含的信息预测目标序列中的下一个单词,从而依次生成输出序列。

在训练期间,解码器接收真实的目标序列,其目标是预测序列中的下一个单词。在推理过程中,解码器接收直到此时为止生成的文本,并用它来预测下一个单词。

总之,编码器-解码器架构是自然语言处理任务中的一种流行方法,尤其适用于序列-序列问题,如机器翻译。该架构由一个编码器和一个解码器组成,编码器负责处理输入序列并生成一个紧凑的向量表示,解码器负责根据该表示生成输出序列。这样,该模型就能将一种语言的输入文本翻译成另一种语言的相应文本。

7. 总结

本文重点介绍了图像和自然语言处理等场景的神经网络结构,包括CNN、RNN、GAN、Transformers以及encoder-decoder架构等,学会这些网络结构可以大家在处理具体任务时可以有更加针对性的选择。

您学废了嘛?

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

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

相关文章

【OpenCV】图像像素的遍历

1 前言 介绍两种遍历像素的方法(非指针、指针)。注意:.at() .ptr()的作用、用法。相关API: Mat对象.ptr() Mat对象.at() 2 代码及内容 #include "iostream" #include "opencv2/opencv.hpp"using namespac…

正则表达式(2)

文章目录 专栏导读1、贪婪与非贪婪2、转义匹配 专栏导读 ✍ 作者简介:i阿极,CSDN 数据分析领域优质创作者,专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》,本专栏针对大学生、初级数据分析工程师精…

国外服务器托管需要了解哪些信息

国外服务器托管服务提供了一种在国外租用并管理服务器的方式,适用于需要特定地域服务或对本地法规有特殊要求的企业和个人。那么想要进行国外服务器托管需要了解哪些信息呢?Rak部落小编为您整理发布国外服务器托管相关内容。 以下是一些关于国外服务器托管服务的详…

vue3表单参数校验+正则表达式

这里我们要实现在form表单中对表单项添加参数校验。 校验要求 我们的表单中有用户名、密码、电话号码、邮箱这四个项。 我们设置用户名为3到20位的非空字符 密码为3到25位非空字符 电话号码就用目前用的电话号码正则表达式,要求手机号码以 1 开头,第…

STM32单片机智能电表交流电压电流程序设计(电流 电压互感器TV1005M+TA1005M)

资料下载地址:STM32单片机智能电表交流电压电流程序设计(电流 电压互感器TV1005MTA1005M) 1、摘要 5、基于STM32F103单片机智能电表交流电压电流设计 本设计由STM32单片机核心板电路交流电压电流检测模块电路WIFI模块电路指示灯电路组成。 1、通过电压互感器TV100…

XML --java学习笔记

XML(全称EXtensible Markup Language&#xff0c;可扩展标记语言) 本质是一种数据的格式&#xff0c;可以用来存储复杂的数据结构&#xff0c;和数据关系 XML的特点 XML中的“<标签名>”称为一个标签或一个元素&#xff0c;一般是成对出现的XML中的标签名可以自己定义…

Doris实践——信贷系统日志分析场景的实践应用

目录 前言 一、早期架构演进 1.1 架构1.0 基于Kettle MySQL离线数仓 1.2 架构2.0 基于 Presto / Trino统一查询 二、基于Doris的新一代架构 三、新数仓架构搭建经验 3.1 并发查询加速 3.2 数仓底座建设 四、Doris助力信DolphinScheduler 和 Shell 贷业务场景落地 4.…

【Git】命令行使用体验大大优化的方法

Git的优化使用 相信很多人&#xff0c;在使用git作为版本管理工具时都会感受到它的方便&#xff0c;但是也会有一些问题困扰着我们&#xff0c;让我们觉得使用体验不是很好。我在使用git的过程中就发现了几个问题&#xff1a;写commit费时、怎么做多人开发的代码审查等等。今天…

基于springboot+vue+Mysql的在线考试系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

Linux操作系统之防火墙、redis安装

目录 一、防火墙 1、防火墙的类别 2、安装iptables(四表五链&#xff09; 一、防火墙 1、防火墙的类别 安全产品 杀毒 针对病毒&#xff0c;特征篡改系统中文件杀毒软件针对处理病毒程序 防火墙 针对木马&#xff0c;特征系统窃密 防火墙针对处理木马 防火墙分为两种 硬件…

Codeforces Round 824 (Div. 2) D. Meta-set

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e18, maxm 4e4 5; c…

设计模式——工厂模式01

工厂模式 定义&#xff1a;工厂模式是创建子类实例化对象的一种方式&#xff0c;屏蔽了创造工厂的内部细节。把创建对象与使用对象进行拆分&#xff0c;满足单一职责。如果需要向工厂中添加新商品&#xff0c; 只需要扩展子类再重写其工厂方法&#xff0c;满足开闭原则。 设计…

第十一届能源与环境研究国际会议-可再生能源走向脱碳化(ICEER 2024)即将召开!

能源和环境是当今世界至关重要的研究和教育领域&#xff0c;持续的气候危机和对可持续发展战略的迫切需求&#xff0c;需要从能源科学到地球工程等广泛领域的变革性工程解决方案和创新。ICEER 2024为来自学术界&#xff0c;研究中心和全球工业界的工程师&#xff0c;研究人员和…

以太网布局指南

2层板 顶层走信号线以及地平面底层走信号线以及地平面信号走线应至少沿一条边被接地或接地走线包围如果使用地走线&#xff0c;应接本层接地平面&#xff0c;与上层接地平面解耦。 4层板 当信号走线被重新引用到功率平面时&#xff0c;在地平面和功率平面之间需要去耦电容器(0…

SAP HCM 多成本中心薪酬过账标准程序解读

SAP HCM薪酬过账会涉及到CO对象&#xff0c;CO对象主要是成本中心、WBS、内部订单、订单等&#xff0c;成本中心有多个维护地方0001信息类型0027信息类型等&#xff0c;那么成本中心多个地方维护&#xff0c;优先级是如何&#xff0c;0027>1018>0001,也就是说人身上的优先…

【数据结构(一)】初识数据结构

❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你学更多数据结构知识 目录 1.前言2.集合架构3.时间和空间复杂度3.1算法效率3.2时间复杂度3.2.1大O的渐进…

Golang | Leetcode Golang题解之第10题正则表达式匹配

题目&#xff1a; 题解&#xff1a; func isMatch(s string, p string) bool {m, n : len(s), len(p)matches : func(i, j int) bool {if i 0 {return false}if p[j-1] . {return true}return s[i-1] p[j-1]}f : make([][]bool, m 1)for i : 0; i < len(f); i {f[i] m…

matlab中角度-弧度转化

在 MATLAB 中进行角度和弧度之间的转换可以使用内置的函数&#xff1a; 1. 将角度转换为弧度&#xff1a; matlab rad deg * pi / 180; 这里 deg 是你想要转换的角度值&#xff0c;pi 是 MATLAB 内置的圆周率常量。 2. 将弧度转换为角度&#xff1a; matlab…

SQLite的架构(十一)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite下一代查询规划器(十&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 介绍 本文档介绍SQLite库的架构。 这里的信息对那些想要了解或 修改SQLite的内部工作原理。 接口SQL 命令处理器虚拟机B-树…

C++ //练习 11.14 扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair的vector,保存孩子的名和生日。

C Primer&#xff08;第5版&#xff09; 练习 11.14 练习 11.14 扩展你在11.2.1节练习&#xff08;第378页&#xff09;中编写的孩子姓到名的map&#xff0c;添加一个pair的vector&#xff0c;保存孩子的名和生日。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#x…