CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?

【导师不教?我来教!】同济计算机博士半小时就教会了我五大深度神经网络,CNN/RNN/GAN/transformer/LSTM一次学会,简直不要太强!_哔哩哔哩_bilibili了解的五大神经网络,整理笔记如下:

视频是唐宇迪博士讲解的,但是这个up主发的有一种东拼西凑的感觉,给人感觉不是很完整

一、卷积神经网络(优势:计算机视觉)

1、卷积的作用:特征提取,本质就是提取卷积核那个大小区域中的特征值

2、利用不同的卷积核对同一数据进行提取,可以得到多维度的特征图,丰富特征内容

3、边缘填充(padding)可以解决边缘特征在提取时权重不高的问题

4、卷积的结果公式:

  其中size'是下一次特征图长或宽,size是这一次特征图的长或宽,kernelsize是卷积核大小,padding留白行数,step为卷积步长

5、为了减少计算量,在一轮卷积中,卷积核的参数是共享的,不会随着位置改变而改变

6、池化层的作用:特征降维

7、通常说几层神经网络的时候,只有带权值与参数的层会被计入,如卷积层与线性层,如池化层这种不带权值与参数的层不会被计入

8、经典的CNN网络模型:AlexNet、VGG、ResNet(利用残差相加提供了增加网络深度的方法)

9、感受野:特征图中特征所代表的原图中区域的大小

10、具有相同的感受野的多个小卷积核组合与一个大卷积核相比,所需要的参数少,特征提取更细致,加入的非线性变换也更多,所以现在基本上都使用小卷积核来进行卷积

二、循环神经网络(RNN)(优势:时间序列问题处理,多用于NLP)

1、输入数据为特征向量,并且按照时间顺序排列

2、RNN网络缺点是会记忆之前所有的数据,LSTM模型通过加入遗忘门解决了这个问题

3、示例:Word2Vec 文本向量化:创建一个多维的文本空间,一个向量就代表一个词,词义越相近的词在文本空间中的距离也就越近

4、Word2Vec模型中,反向传播的过程中,不仅会更新神经网络,还会更新输入的词向量

5、RNN经典模型:CBOW,skipgram

6、由于数据量大,模型构建方案一般不使用输入一词输出预测词的模式,而是使用输入前一词A和后一词B,输出B在A后的概率,但是由于数据集均为通顺语句采集而来,概率均为1,所以需要人为在数据集中加入错误语句,并且标记概率为0,被称为负采样

三、对抗生成网络(GNN)

1、对抗生成网络分为生成器、判别器、损失函数,其中生成器负责利用噪声生成数据,产生以假乱真的效果,判别器需要火眼金睛,分辨真实数据与虚假数据,损失函数负责让生成器更加真实,让判别器更加强大。

四、Teansformer(功能强大,但是需要很大数据来训练)

1、Transformer由编码器(Encoder)和解码器(Decoder)组成

2、Transfromer的本质就是重组输入的向量,以得到更加完美的特征向量

3、Transfromer的工作流程:

3.1、获取输入句子的每一个单词表示向量X(由单词特征加上位置特征得到)

3.2、将得到的单词表示向量矩阵X传入Encoder中,输出编码矩阵C,C与输入的单词矩阵X维度完全一致

3.3、将矩阵C传递到Decoder中,Decoder依次根据当前翻译过的单词预测下一个单词。

4、Transformer的内部结构如下图所示

5、在训练时,Decoder中的第一个Multi-Head Attention采用mask模式,即在预测到第i+1个单词时候,需要掩盖i+1之后的单词。

6、单词的特征获取方法有很多种,比如Word2Vec,Glov算法预训练,或者也可以使用Transformer训练得到,位置特征则可以通过公式得到,公式如下:

7、Add是残差链接操作,Norm是LayerNormalization归一化操作,Feed Forward层是两个全连接层,第一个全连接层使用ReLU进行非线性激活,第二个不激活

8、Transformer内部结构存在多个Multi-Head Attention结构,这个结构是由多个Attention组成的多头注意力机制,Attention 注意力机制为Transformer的重点,它可以使模型更加关注那些比较好的特征,忽略差一些的特征

9、Attention内部结构如下图所示

10、Attention接收的输入为单词特征矩阵X或者上一个Encoder block的输入,经过三个矩阵WQ、WK、WV的变换得到了三个输入Q、K、V然后经过内部计算得到输出Z

11、Attention内部计算的公式可以概况为

12、Multi-Head Attention将多个Attention的输出拼接在一起传入一个线性层,得到最终的输出Z

13、Transformer与RNN相比,不能利用单词顺序特征,所以需要在输入加入位置特征,经过实验,加入位置特征比不加位置特征的效果好三个百分点,位置特征的编码方式不对模型产生影响。

14、VIT是Transfromer在CV领域的应用,VIT第一层的感受野就可以覆盖整张图

15、VIT的结构如下:

16、VIT将图片分为多个patch(16*16)然后将patch投影为多个固定长度的向量送入Transformer,利用Transformer的Encoder进行编码,并且在输入序列的0位置加入一个特殊的token,token对应的输出就可以代表图片的类别

17、Transformer需要大量的数据,比CNN多得多,需要谷歌那个级别的数据量

18、TNT模型:VIT将图片分为了16*16的多个patch,TNT认为每个patch还是太大了,可以继续进行分割

19、TNT模型方法:在VIT基础上,将拆分后的patch当作一张图像进行transformer进一步分割,划分为新的向量,通过全连接改变输出特征大小,使其重组后的特征与patch编码大小相同,最后与元素输入patch向量进行相加

20、DETR模型,用于目标检测,结构如下

五、LSTM长短期记忆

这部分基本是代码解析了,就没有记录,我认为LSTM其实就是RNN的一个分支。

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

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

相关文章

【第2章 Node.js基础】2.7 Node.js 的流(一) 可读流

🌈 Node.js 的流 🚀什么是流 流不是 Node.js 特有的概念。它们是几十年前在 Unix 操作系统中引入的。 我们可以把流看作这些数据的集合,就像液体一样,我们先把这些液体保存在一个容器里(流的内部缓冲区 BufferList&…

JS原生-弹框+阿里巴巴矢量图

效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&q…

【题解】洛谷 P9658 Laser Trap

题解-P9658 Laser Trap 题目传送门 题意简述 题面是英文的&#xff0c;还没翻译&#xff0c;就讲一讲吧。 n n n 个激光发射器&#xff0c;两两之间产生激光束&#xff0c;将平面分为若干区域。 问至少删去多少个发射器&#xff0c;可以使得原点与外侧区域联通。 多组数据&a…

Java封装一个根据指定的字段来获取子集的工具类

工具类 ZhLambdaUtils SuppressWarnings("all") public class ZhLambdaUtils {/*** METHOD_NAME*/private static final String METHOD_NAME "writeReplace";/*** 获取到lambda参数的方法名称** param <T> parameter* param function functi…

excel导入 Easy Excel

依旧是框架感觉有东西&#xff0c;但是确实是模拟不出来&#xff0c;各种零零散散的件太多了 controller层 ApiOperation(value "导入Excel", notes "导入Excel", httpMethod "POST", response ExcelResponseDTO.class)ApiImplicitParams({…

Unity3d 导入中文字体转TMPtext asset

外部字体放入unity仓库以后呢&#xff0c;需要把这个字体转成用立体的字体文件才可以被使用&#xff01; 要想转换的话呢先放入仓库对字体点右键上面有一个Create创建里面有一个TEXT Asset&#xff0c;创建好就可以使用了

(论文阅读32/100)Flowing convnets for human pose estimation in videos

32.文献阅读笔记 简介 题目 Flowing convnets for human pose estimation in videos 作者 Tomas Pfister, James Charles, and Andrew Zisserman, ICCV, 2015. 原文链接 https://arxiv.org/pdf/1506.02897.pdf 关键词 Human Pose Estimation in Videos 研究问题 视频…

leetcode刷题日志-58最后一个单词的长度

给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 1&#xff1a; 输入&#xff1a;s “Hello World” 输出&#xff1a;5 解释&a…

spring为什么要使用三级缓存来解决循环依赖

出现循环依赖的原因 AService依赖BService Service("aService") public class AService {AutowiredBService bService; } BService依赖AService Service("bService") public class BService {AutowiredAService aService; } 此时就出现了循环依赖 想…

应用软件安全编程--17预防基于 DOM 的 XSS

DOM型XSS从效果上来说也属于反射型XSS,由于形成的原因比较特殊所以进行单独划分。在网站页面中有许多页面的元素&#xff0c;当页面到达浏览器时浏览器会为页面创建一个顶级的Document object 文档对象&#xff0c;接着生成各个子文档对象&#xff0c;每个页面元素对应一个文档…

11.16 知识总结(模型层更多内容)

一、 多表查询&#xff08;跨表查询&#xff09; <br class"Apple-interchange-newline"><div></div> 子查询&#xff1a;分步查询 链表查询&#xff1a;把多个有关系的表拼接成一个大表(虚拟表) inner join left join right join 1.1 基于双下划…

【2016年数据结构真题】

已知由n&#xff08;M>2&#xff09;个正整数构成的集合A{a<k<n},将其划分为两个不相交的子集A1 和A2&#xff0c;元素个数分别是n1和n2&#xff0c;A1和A2中的元素之和分别为S1和S2。设计一个尽可能高效的划分算法&#xff0c;满足|n1-n2|最小且|s1-s2|最大。要求…

Ubuntu16.04上安装Docker

Ubuntu16.04上安装Docker 更新 apt 包索引: sudo apt-get update安装依赖包,以便使用 HTTPS 仓库 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common添加 Docker GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu…

JVM——运行时数据区(堆+方法区+直接内存)

目录 1.Java堆2.方法区**方法区&#xff08;Method Area&#xff09;溢出**方法区&#xff08;Method Area&#xff09;字符串常量池静态变量的存储 3.直接内存(Direct Memory) 1.Java堆 ⚫ 一般Java程序中堆内存是空间最大的一块内存区域。创建出来的对象都存在于堆上。 ⚫ 栈…

matlab二维曲面散点图插值方法

在 MATLAB 中&#xff0c;你可以使用以下函数进行二维曲面散点插值&#xff1a; griddata: 该函数可以在散点数据上进行二维插值&#xff0c;生成平滑的曲面。它支持多种插值方法&#xff0c;包括三次样条插值、最近邻插值、线性插值和自然邻近法插值。 scatteredInterpolant:…

update与merge基本语法规则、异同点、使用场景

– UPDATE更新数据SQL UPDATE /append parallel(A,8) nologging/ CRSMAK.M_CM_GS_BILL_DISH_INFO A --票据贴现信息 SET A.YEAR_PAR_AMT (SELECT /parallel(B,8)/ YEAR_PAR_AMT FROM (SELECT BIZ_ID, SUM(NVL(PAR_AMT, 0)) YEAR_PAR_AMT --年累计票面金额 FROM CRSMAK.M_CM_G…

存钱虚拟计划,嘚

存钱计划—虚拟 2024年 (第一年) 1月 2月 3月 4月 5月 6 月 7月 8月 9月 10月 11月 12月 1w 1w 1w 1w 1w 1w 1w 1w 1w 1w 1w 1w 2025年(第二年) 1w1w*102.5% A 懒得写A代替 A A A A A A A A A A 2026年(第三年) (1w1w*10…

Centos7.9用rancher来快速部署K8S

什么是 Rancher&#xff1f; Rancher 是一个 Kubernetes 管理工具&#xff0c;让你能在任何地方和任何提供商上部署和运行集群。 Rancher 可以创建来自 Kubernetes 托管服务提供商的集群&#xff0c;创建节点并安装 Kubernetes&#xff0c;或者导入在任何地方运行的现有 Kube…