| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> AI人工智能进阶-BERT/Transformer/LSTM/RNN原理与代码 -> 正文阅读 |
|
[人工智能]AI人工智能进阶-BERT/Transformer/LSTM/RNN原理与代码 |
所有的分享都来自于我个人笔记,经过我自己的思考总结实践积累下来的东西,希望能帮助到入门的朋友们。
RNN??
传统神经网络(DNN)无法对时间序列建模,上一层神经元的输出只能传递给下一层神经元。而在循环神经网络(RNN)中,神经元的输出在下一时刻是可以传递给自身的,同时还输出一个藏隐层状态,给当前层在处理下一个样本时使用,
它可以看作是带自循环反馈的全连接神经网络。
很多任务的时序信息很重要,即一个样本中前后输入的信息是有关联的。样本出现时间顺序信息对语音识别、自然语言处理、视频识别等问题很重要,所以对于这类问题,可以使用 RNN 建模。分为<
单层RNN
>,<
多隐层RNN
>,<
双向循环神经网络
(bidirectional recurrent neural network,
Bi-RNN
)由两层循环神经网络组成,它们的输入相同,只是信息传递的方向不同>。
LSTM
? 是一种改进之后的RNN循环神经网络,可以解决 RNN 无法处理长距离的依赖的问题。 LSTM等门机制的结构一定程度上缓解了长期依赖的问题,但是对于特别
长期的依赖现象,LSTM依旧无能为力。
Bidirectional RNN或
Bidirectional LSTM:双向RNN或LSTM,可以同时使用前后序列(
考虑整个句子的信息),能更好地理解上下文环境并消除歧义。对于很多NLP的应用,可以获取完整的整个句子,那这个标准的双向RNN算法就很高效。
缺点: 需要完整数据的序列,你才能预测任意位置。比如语音识别系统中,这就要求你必须等待一个人说完整句话,才能做出识别,这样就有一个比较长的等待时间。
Transformer?这个模型主要有Google mind团队提出来的一种模型,可以说这边模型出来之后,NLP领域实现了大一统的趋势,这个模型是2017年发表的
attention all you need 中所提到的seq2seq模型。
BERT(Bidirectional Encoder Representations from Transformers)??就是
transformer衍生出来的预训练语言模型(无监督模型),是transformer的编码encode部分 ,输入一句话模型能输出字的embedding。在过去我们使用word2vec,lstm等技术也逐渐被BERT模型所替代,其成为NLP主流框架,基本很多NLP很多任务都可以用BERT去解决。
BERT训练方法:一、使用MLM(
Masked Language Model)方法。二、
NSP(Next Sentence Prediction)方法。
Transformer的提出解决了上面两个问题:
(1) 首先它使用了
Attention机制,将序列中的任意两个位置之间的距离是缩小为一个常量;
(2) 其次它不是类似RNN的顺序结构,因此具有
更好的并行性,符合现有的GPU框架。
主要区别与优势:
word2vec与transformer
的区别:word2vec需要训练得到词embedding,但是每一个词(或字)在不同的上下文是拥有不同的含义的,不同语境下的词含有不同的意思,因此如果基于固定的词的embedding进行语言模型构建是有很大缺陷的,而transformer可以利用上下文的关系来得到我们每一个词的向量。
LSTM
与transformer
的区别
:而说到LSTM等时序性的网络不能只能做到串行训练,即下一个词的训练需要等到上一个词训练完成才可以进行,同时也影响训练速度,相对而言BERT的预言模型则可以做到并行计算,这往往是因为其
自注意力机制以及
位置嵌入机制发挥的功能,在后面我们也会讲到。
RNN
与transformer
的区别:RNN
会将它已经处理过的前面的所有单词/向量的表示与它正在处理的当前单词/向量结合起来。而自注意力机制会将所有相关单词的理解融入到我们正在处理的单词中。
一阶段:基础入门概念(无基础可懂)
【入门概念】
Encoder-Decoder?和?Seq2Seq
【入门概念】
Attention 机制
【入门概念】
Transformer
【入门概念】
解密?BERT (什么是BERT)
【$基础介绍】
BERT大火却不懂Transformer?读这一篇就够了
【Bert模型评估】
BERT和Transformer到底学到了什么
二阶段:理论和源码/论文和资源/应用
Bert的Transformer低层学了表层特征,中间层学了句法特征,高层学了语义特征
【视频】
李宏毅 Bert教程
【视频】
唐宇迪 Bert教程
【*RNN/LSTM和TF代码】
时间序列分析(4) RNN/LSTM
【英文资料】
The Illustrated Transformer
【发展与衍变】
从Transformer到BERT模型
【$已实践代码】
Pytorch实现:?BERT? ?
Pytorch实现:?Transformer
【$原理和Torch代码】?
聊聊?Transformer
【$原理和Torch代码】
深入理解Transformer及其源码
【$必看】
图解Transformer(完整版)
【$必看】
BERT(一) Transformer原理理解
【$必看】
BERT(二) BERT解读及应用
【$BERT代码】
一文彻底搞懂BERT实现
【$BERT TF代码】
NLP实战篇之bert源码阅读(optimization)
【*BERT github
】
Google BERT源码及模型
【*WWM中文模型 github】
Whole Word Masking (wwm)
【*Huggingface-transformers github】
Huggingface-transformers
辅助阅读
【TF】TensorFlow
理解语言的 Transformer 模型
****
【TF】
预训练模型-BERT预训练源码解读笔记
【TF】
BERT代码阅读
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:41:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |