【转】RNN、LSTM、Transformer、BERT简介与区别

几者的主要参考文章: https://blog.csdn.net/weixin_41089007/article/details/96474760

RNN与LSTM的区别参考文章: https://blog.csdn.net/hfutdog/article/details/96479716

RNN和LSTM的区别如下:

  • RNN没有细胞状态;LSTM通过细胞状态记忆信息。
  • RNN激活函数只有tanh;LSTM通过输入门、遗忘门、输出门引入sigmoid函数并结合tanh函数,添加求和操作,减少梯度消失和梯度爆炸的可能性
  • RNN只能够处理短期依赖问题;LSTM既能够处理短期依赖问题,又能够处理长期依赖问题
  • 但是LSTM相对的运行时间较长

双向RNN和BERT
双向RNN与self attention layer 的共同点在于: 输入输出都是序列,且输出每个时间节点预测的向量都与输入的所有时间节点相关联;
最大的不同点在于双向RNN输出无法并行(当前时刻的输出与上一时刻的hidden state相关),而attention可以并行

LSTM与BERT

  • LSTM
    概述:
    lstm是代表性的rnn结构,rnn提出是为了解决时序的问题;典型的例子就是NLP中的句子理解,视频的内容理解;模型结构的设计保证输入顺序按照时序顺序对结果产生影响,当前时间步的输入是当前位置和上一个时间步的输出。

  • 优点:
    解决了dnn或者是bow词袋模型的问题,不能区分时序

  • 缺点:
    处理长文本的时候耗时较长,考虑到上下文,一般还采用双向rnn结构;模型效果上,对于长依赖问题效果不好,容易理解 经过很多个step的传递,信息会减弱

  • BERT

  • 概述
    bert通过注意力机制实现时序的理解,我认为精妙之处有两点,一点是位置编码融入向量表达,另外一点是就是注意力机制中的QKV矩阵了;残差网络防止网络过于复杂带来的过拟合。
    优点

  • 注意力机制,也就是每个位置相对另一个位置的权重是可以并行计算的,在计算资源足够的前提下比lstm会快很多;通过设计预训练任务,用海量无监督数据做预训练,模型效果更好

  • 缺点
    由于网络更加复杂,计算量相对lstm更大,训练收敛更慢

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

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

相关文章

LeetCode 812. 最大三角形面积(坐标面积公式)

1. 题目 给定包含多个点的集合&#xff0c;从其中取三个点组成三角形&#xff0c;返回能组成的最大三角形的面积。 示例: 输入: points [[0,0],[0,1],[1,0],[0,2],[2,0]] 输出: 2 解释: 这五个点如下图所示。组成的橙色三角形是最大的&#xff0c;面积为2。注意: 3 < po…

孩子感冒发烧怎么办

老大感冒发烧三天刚好&#xff0c;老二开始咳嗽鼻塞&#xff0c;孩子们生病忙的就是父母&#xff0c;几天下来&#xff0c;连自己也病了。终于一切恢复常态&#xff0c;想想也该总结一下孩子们生病的经历。 1月1号夜里&#xff0c;老大开始咳嗽&#xff0c;以为是气候干燥&…

李宏毅机器学习(十)GPT-3

前情提要 论文名称&#xff1a; Language Models are Few-shot learners 但是GPT-3的缺点在于&#xff0c;太过巨大&#xff01; 它有多大呢&#xff1f; 原来最大的时候是Turing NLG&#xff0c;有17B&#xff0c;而GPT-3是它的10倍&#xff01; 对GPT-3的评价&#xff1a; …

ipython是免费的吗_IPython技巧

IPython是一个python的交互式shell&#xff0c;比python自带的shell好用得多&#xff0c;支持变量自动补全、自动缩进、直接运行shell命令、内置了许多很有用的功能和函数&#xff0c;让我们可以用更高的效率来使用python&#xff0c;同时也是利用Python进行科学计算和交互可视…

LeetCode 985. 查询后的偶数和

1. 题目 给出一个整数数组 A 和一个查询数组 queries。 对于第 i 次查询&#xff0c;有 val queries[i][0], index queries[i][1]&#xff0c;我们会把 val 加到 A[index] 上。 然后&#xff0c;第 i 次查询的答案是 A 中偶数值的和。 &#xff08;此处给定的 index quer…

C#正则表达式判断输入日期格式是否正确

/// <summary> /// 是否为日期型字符串 /// </summary> /// <param name"StrSource">日期字符串(2008-05-08)</param> /// <returns></returns> public static bool IsDate(string StrSourc…

知识图谱论文阅读(八)【转】推荐系统遇上深度学习(二十六)--知识图谱与推荐系统结合之DKN模型原理及实现

学习的博客&#xff1a; 推荐系统遇上深度学习(二十六)–知识图谱与推荐系统结合之DKN模型原理及实现 知识图谱特征学习的模型分类汇总 知识图谱嵌入(KGE)&#xff1a;方法和应用的综述 论文&#xff1a; Knowledge Graph Embedding: A Survey of Approaches and Application…

thinkphp用来做什么项目_thinkphp第1课:使用thinkphp创建一个项目

一、thinkphp第一课&#xff1a;1、在网站根目录下&#xff0c;建立一个项目名称orange&#xff1b;2、在orange目录下&#xff0c;创建一个入口文件index.php&#xff1a;define(APP_DEBUG,true); //开启调试模式require(../TP/ThinkPHP.php);?>3、下载thinkphp核心包并解…

LeetCode 1005. K 次取反后最大化的数组和

1. 题目 给定一个整数数组 A&#xff0c;我们只能用以下方法修改该数组&#xff1a; 我们选择某个个索引 i 并将 A[i] 替换为 -A[i]&#xff0c;然后总共重复这个过程 K 次。&#xff08;我们可以多次选择同一个索引 i。&#xff09; 以这种方式修改数组后&#xff0c;返回数…

Server操作Mxd文件详细讲解

Server操作Mxd文件详细讲解Server发布地图都是基于Mxd去发布的&#xff0c;这点与IMS使用axl文件差不多。一般来说&#xff0c;发布后mxd尽可能不要修改&#xff0c;或者在通过使用arcMap进行编辑后在重新发布。修改mxd会导致地图服务发生变化&#xff0c;因此&#xff0c;相对…

知识图谱入门知识(五)【转】秒懂词向量Word2Vec的本质

博文&#xff1a; 秒懂词向量Word2Vec的本质 什么是Word2Vec&#xff1f; 词性标注&#xff1a;是动词还是名词&#xff0c;样本&#xff08;x&#xff0c;y&#xff09;中&#xff0c;x是词语&#xff0c;y是它们的词性 f&#xff08;x&#xff09;->y 中的f&#xff08;…

af_netlink_2、netlink简介

Netlink 是一种特殊的 socket&#xff0c;它是 Linux 所特有的&#xff0c;类似于 BSD 中的AF_ROUTE 但又远比它的功能强大&#xff0c;目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多&#xff0c;包括&#xff1a;路由 daemon(NETLINK_ROUTE)&am…

LeetCode 819. 最常见的单词

1. 题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。 返回出现次数最多&#xff0c;同时不在禁用列表中的单词。 题目保证至少有一个词不在禁用列表中&#xff0c;而且答案唯一。 禁用列表中的单词用小写字母表示&#xff0c;不含标点符号。段落中的单词不区分…

Java代码优化方案 J2ME内存优化

从几本书上&#xff0c;N个网站上整理的一些JAVA代码优化方案&#xff0c;最近的项目只有1M内存可用&#xff0c;必须很抠门了~J2ME项目更要注意的 避免内存溢出 l 不用的对象释放(置空) 如 &#xff1a; a不为空时 anew object()//这句代码执行时将有两个对象存在于内存中 较…

was 程序jvm_【保家护行航】WAS知识学习分享

文/王文平保家护行航&#xff1a;航是护航&#xff0c;是保障人真抓实干&#xff0c;持之以恒&#xff0c;切实做好运维保障本职工作&#xff0c;守护农行生产安全的务本崇实&#xff1b;航是领航&#xff0c;是保障人敬业敏学&#xff0c;精益求精&#xff0c;努力提高运维管理…

LeetCode 824. 山羊拉丁文

1. 题目 给定一个由空格分割单词的句子 S。每个单词只包含大写或小写字母。 我们要将句子转换为 “Goat Latin”&#xff08;一种类似于 猪拉丁文 - Pig Latin 的虚构语言&#xff09;。 山羊拉丁文的规则如下&#xff1a; 如果单词以元音开头&#xff08;a, e, i, o, u&am…

jQuery学习笔记:事件

一、页面载入1、ready(fn)当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。这是事件模块中最重要的一个函数&#xff0c;因为它可以极大地提高web应用程序的响应速度。 简单地说&#xff0c;这个方法纯粹是对向window.load事件注册事件的替代方法。通过使用这个方法&#…

torch.nn.Module()

torch.nn.Module() 如果自己想研究&#xff0c;官方文档 它是所有的神经网络的根父类&#xff01; 你的神经网络必然要继承&#xff01; 模块也可以包含其他模块&#xff0c;允许将它们嵌套在树结构中。所以呢&#xff0c;你可以将子模块指定为常规属性。常规定义子模块的方法…

dlib 怎么安装vs2017_win10中的dlib库安装过程

之前试过很多方法结果都失败&#xff0c;最后终于发现一个成功的方法&#xff0c;先记一下以防忘记。参考&#xff1a;记一次Win10环境python3.7安装dlib模块趟过的坑由于我是通过Anaconda安装的Python&#xff0c;所以环境与这位博主的有所不同&#xff0c;所以具体情况需要根…

LeetCode 779. 第K个语法符号(找规律)

1. 题目 在第一行我们写上一个 0。 接下来的每一行&#xff0c;将前一行中的0替换为01&#xff0c;1替换为10。 给定行数 N 和序数 K&#xff0c;返回第 N 行中第 K个字符。&#xff08;K从1开始&#xff09; 例子: 输入: N 1, K 1 输出: 0输入: N 2, K 1 输出: 0输入: …