NLP
文章平均质量分 94
Andy_shenzl
你看不懂的世界,背后都是原理
展开
-
《Attention Is All You Need》解读
是一篇由Ashish Vaswani等人在2017年发表的论文,它在自然语言处理领域引入了一种新的架构——Transformer。这个架构现在被广泛应用于各种任务,如机器翻译、文本摘要、问答系统等。Transformer模型的核心是“自注意力”(self-attention)机制,这一机制能够有效捕捉文本序列中的长距离依赖关系。原创 2024-07-04 17:07:39 · 1290 阅读 · 0 评论 -
seq2seq+Attention机制原理介绍
Attention机制是一项先进技术,用于增强基于循环神经网络(RNN)、长短时记忆网络(LSTM)和门控循环单元(GRU)的编码器-解码器模型性能。它通常被称作Attention Mechanism,在深度学习领域非常流行,广泛应用于机器翻译、语音识别、图像标注等多个领域。Attention机制的作用与流行原因通过为序列中每个元素分配不同权重,Attention机制增强了模型的信息区分和识别能力。这种权重分配让模型更灵活地学习,尤其是在处理句子中每个词时,能根据其对翻译或识别结果的重要性进行调整。原创 2024-07-03 16:50:12 · 826 阅读 · 0 评论 -
seq2seq原理介绍
Seq2Seq模型,即序列到序列模型,是一种深度学习架构,它能够接收一个序列作为输入,并通过特定的生成方法生成另一个序列作为输出。这种模型的一个关键特点是,输入序列和输出序列的长度可以是不同的,从而解决了传统循环神经网络(RNN)在处理不等长序列时的限制。Seq2Seq模型通常采用编码器-解码器(Encoder-Decoder)结构,这也是其另一个常用的名称。在这个结构中,编码器负责将输入序列编码成一个固定长度的向量,这个向量捕捉了输入序列的语义信息。然后,解码器利用这个向量来生成输出序列。原创 2024-06-28 10:18:46 · 1020 阅读 · 0 评论 -
Bert基础(八)--Bert实战之理解Bert微调
到目前为止,我们已经介绍了如何使用预训练的BERT模型。现在,我们将学习如何针对下游任务微调预训练的BERT模型。需要注意的是,微调并非需要我们从头开始训练BERT模型,而是使用预训练的BERT模型,并根据任务需要更新模型的权重。在本节中,我们将学习如何为以下任务微调预训练的BERT模型。原创 2024-03-26 13:38:30 · 2006 阅读 · 0 评论 -
Bert基础(七)--Bert实战之理解Bert模型结构
在篇我们将详细学习如何使用预训练的BERT模型。首先,我们将了解谷歌对外公开的预训练的BERT模型的不同配置。然后,我们将学习如何使用预训练的BERT模型作为特征提取器。此外,我们还将探究Hugging Face的Transformers库,学习如何使用Transformers库从预训练的BERT模型中提取嵌入。接着,我们将了解如何从BERT的编码器层中提取嵌入,并学习如何为下游任务微调预训练的BERT模型。原创 2024-03-26 09:21:52 · 1319 阅读 · 0 评论 -
Bert基础(六)--Bert模型预训练
在本节中,我们将学习如何对BERT模型进行预训练。假设我们有一个模型m。首先,我们使用一个大型数据集针对某个具体的任务来训练模型m,并保存训练后的模型。然后,对于一个新任务,我们不再使用随机的权重来初始化模型,而是用已经训练过的模型的权重来初始化m(预训练过的模型)。也就是说,由于模型m已经在一个大型数据集上训练过了,因此我们不用为一个新任务从头开始训练模型,而是使用预训练的模型m,并根据新任务调整(微调)其权重。这是迁移学习的一种类型。原创 2024-03-25 11:19:33 · 1264 阅读 · 0 评论 -
Bert基础(五)--Bert基本原理
我们将开始了解流行且先进的文本嵌入模型BERT。由于在许多自然语言处理任务上的卓越表现,BERT彻底改变了自然语言处理的方法。首先,我们将了解什么是BERT,以及它与其他嵌入模型的区别。然后,我们将详细分析BERT的工作原理和基础配置。接下来,我们将通过两个任务来了解BERT模型是如何进行预训练的。这两个任务分别为掩码语言模型构建和下句预测。然后,我们将分析BERT的预训练过程。最后将讲解几种有趣的子词词元化算法,包括字节对编码、字节级字节对编码和WordPiece。原创 2024-03-25 09:21:56 · 982 阅读 · 0 评论 -
白话transformer(五):位置编码
在前面其实讲过,这次我们具体看看他的数学原理白话transformer(五)原创 2024-03-21 09:12:59 · 1324 阅读 · 0 评论 -
白话transformer(四):整体架构介绍
transformer现在是最主流的深度学习框架,尤其是大模型的流程让transformer的作用更加凸显,他可以对话、分类、生成文本等功能,那么他到底是如何工作的呢。原创 2024-03-19 09:20:13 · 1149 阅读 · 0 评论 -
白话transformer(三):Q K V矩阵代码演示
在前面讲解了QKV矩阵的原理,属于比较主观的解释,下面用简单的代码再过一遍加深下印象。白话transformer(三)原创 2024-03-15 07:55:31 · 1763 阅读 · 0 评论 -
RNN和LSTM的几个问题探讨
每次提到RNN最先遇到的问题肯定是梯度消失和梯度爆炸,那么什么是梯度消失和梯度爆炸?RNN中为什么会出现这个问题呢?梯度消失和梯度爆炸是深度学习模型,特别是在训练递归神经网络(RNN)和深度前馈神经网络时可能遇到的两个主要问题。这两个问题都源于神经网络中梯度的连乘效应。梯度消失和梯度爆炸是RNN在反向传播过程中常见的问题,RNN的反向传播是通过时间的反向传播”(Backpropagation Through Time,BPTT),其运行流程与一般的反向传播大有不同。在不同类型NLP任务会有不同的输出层结构、原创 2024-03-13 09:18:00 · 1135 阅读 · 1 评论 -
白话transformer(二):Q K V矩阵
前面说了注意力机制的工作原理,本次来看看为了实现自注意力机制,Q K V矩阵是如何实现的。白话transformer(二)原创 2024-03-13 09:17:07 · 2652 阅读 · 0 评论 -
Bert基础(五)--解码器(下)
但在这一层,我们有两个输入矩阵:一个是R(编码器输出的特征值),另一个是M(前一个子层的注意力矩阵)。然后,我们把顶层解码器的输出送入线性层。我们可以看到,每个解码器中的多头注意力层都有两个输入:一个来自带掩码的多头注意力层,另一个是编码器输出的特征值。(3) 然后,将注意力矩阵[插图]和编码器输出的特征值[插图]作为多头注意力层(编码器−解码器注意力层)的输入,并再次输出新的注意力矩阵。(1) 首先,我们将解码器的输入转换为嵌入矩阵,然后将位置编码加入其中,并将其作为输入送入底层的解码器(解码器1)。原创 2024-02-28 10:51:31 · 1089 阅读 · 0 评论 -
Bert基础(四)--解码器(上)
因此,一个解码器(第一个除外)将有两个输入:一个是来自前一个解码器的输出,另一个是编码器输出的特征值。同理,我们也不是将输入直接送入解码器,而是将其转换为嵌入矩阵,为其添加位置编码,然后再送入解码器。,我们不是将输入直接送入解码器,而是将其转换为嵌入矩阵(输出嵌入矩阵)并添加位置编码,然后再送入解码器。,我们将输入转换为嵌入(我们称之为嵌入值输出,因为这里计算的是解码器在以前的步骤中生成的词的嵌入),将位置编码加入其中,然后将其送入解码器。需要注意的是,这里使用的数值是随机的,只是为了方便理解。原创 2024-02-22 13:21:29 · 1373 阅读 · 0 评论 -
Bert基础(三)--位置编码
这样一来,输入矩阵不仅有词的嵌入值,还有词在句子中的位置信息。下图是一个编码器模块,从中我们可以看到,在将输入矩阵送入编码器之前,首先要将位置编码加入输入矩阵中,再将其作为输入送入编码器。前馈网络的参数在句子的不同位置上是相同的,但在不同的编码器模块上是不同的。(1) 将输入转换为嵌入矩阵(输入矩阵),并将位置编码加入其中,再将结果作为输入传入底层的编码器(编码器1)。只需将输入矩阵X与计算得到的位置编码矩阵P进行逐元素相加,并将得出的结果作为输入矩阵送入编码器中。代入pos值,我们得到结果。原创 2024-02-21 16:35:57 · 1829 阅读 · 0 评论 -
Bert基础(二)--多头注意力
为了确保结果准确,我们不能依赖单一的注意力矩阵,而应该计算多个注意力矩阵,并将其结果串联起来。使用多头注意力的逻辑是这样的:使用多个注意力矩阵,而非单一的注意力矩阵,可以提高注意力矩阵的准确性。也就是说,我们可以应用在上篇中学习的计算注意力矩阵Z的方法,来求得多个注意力矩阵。我们已经知道,为了计算注意力矩阵,需要创建三个新的矩阵,分别为查询矩阵、键矩阵和值矩阵。,那么可以直接将所有的注意力头(注意力矩阵)串联起来,并将结果乘以一个新的权重矩阵。,就可以依次得出对应的查询矩阵、键矩阵和值矩阵。原创 2024-02-20 16:08:33 · 1092 阅读 · 0 评论 -
Bert基础(一)--自注意力机制
当下最先进的深度学习架构之一,Transformer被广泛应用于自然语言处理领域。它不单替代了以前流行的循环神经网络(recurrent neural network, RNN)和长短期记忆(long short-term memory, LSTM)网络,并且以它为基础衍生出了诸如BERT、GPT-3、T5等知名架构。本文将带领你深入了解Transformer的实现细节及工作原理。原创 2024-02-19 13:24:29 · 1444 阅读 · 0 评论 -
Bert基础(十五)-- Bert中文文本分类任务(colab)
train_data 是一个包含输入数据的字典,其中 “input_ids” 是模型输入的token ID,“attention_mask” 是用于标识输入序列中哪些位置是有效的前景tokens,“labels” 是序列分类任务的标签。我们可以自己打印下我们前面定义好的训练数据,如下TensorDataset 将数据转换为一个PyTorch张量数据集,其中每个样本是一个包含input_ids、attention_mask和label的元组。原创 2024-02-07 13:29:36 · 1180 阅读 · 0 评论 -
知识图谱最简单的demo实现
知识图谱整个建立过程可以分为以下几点:fill:#333;color:#333;color:#333;fill:none;数据处理创建三元组可视化展示数据预处理:分词、命名实体识别、语义角色识别、句法依存分析等创建三元组:需要根据命名实体识别、语义角色识别结果进行处理,建立规则生成三元组用用图数据库或者接触可视化工具进行展示。原创 2023-11-30 16:18:39 · 1399 阅读 · 0 评论 -
主题模型--BERTopic python解析
BERTopic是基于BERT词向量进行主题建模技术,它利用 Transformer 和 c-TF-IDF 来创建密集的集群(分类),允许轻松解释主题,同时在主题描述中保留重要词。主题模型(Topic Model)是自然语言处理中的一种常用模型,是一种无监督学习方法,它用于从大量文档中自动提取主题信息。分词可以实现处理好再进行建模,也可以定义好分词的方法在建模时传入,一般建议先分词在建模,这样可以打印中间分词结果进行检查。主题模型的核心思想是,每篇文档都可以看作是多个主题的混合,而每个主题则由一组词构成。原创 2023-10-24 14:58:14 · 8079 阅读 · 4 评论 -
RNN学习笔记3-时间序列预测
用LSTM预测时间序列,需要对原始序列做一些简单的处理首先做一个窗口,这个窗口来确定每次需要多少数据进行训练,即xtx_txt的长度,标签的长度也需要确定,本例中我们取的窗口都是一样的,如下:def model_data(seq_size,train_data,test_data): train_x, train_y = [], [] for i in range(len(train_data) - seq_size - 1): train_x.append(np.ex原创 2020-05-19 15:22:10 · 849 阅读 · 0 评论 -
RNN学习笔记3-mnist数据集
在进行代码演练之前,需要先了解下数据集情况我们知道,Mnist数据集是28*28 的图片,所以我们在进行训练的时候,需要进行思维的转换,就是把图片怎么用序列进行训练。对于一张图片,我们把它分成28份,即28个序列,每一行28个像素点为一个序列,即x0x_0x0为图片的第一行,也就是第一个序列,如果我们假定隐藏层为128,那么输出为128*1的向量。根据上一节的LSTM公式 \qquad\;\;输入门:it=σ(Wi⋅[ht−1,xt]+bi)i_t=\sigma(W_i\cdot[h_{t原创 2020-05-14 15:55:14 · 471 阅读 · 0 评论 -
RNN学习笔记3-LSTM
引入LSTM尽管RNN被设计成可以利用历史的信息来辅助当前的决策,但是由于在上节提到的梯度消失或者梯度爆炸问题,RNN主要还是学习短期的依赖关系。所以RNN新的技术挑战就是-长期依赖。长短时记忆网络(Long Short Term Memory Network, LSTM),是一种改进之后的循环神经网络,可以解决RNN无法处理长距离的依赖的问题.LSTM在一个整体的循环网络结构中除了外部的RNN大循环,还要考虑自身单元“细胞”的自循环。传统RNN每个模块内只是一个简单的tanh层,LSTM每个循原创 2020-05-14 11:15:43 · 590 阅读 · 0 评论 -
RNN学习笔记1-前向传播
RNNx^t长方形o^t原创 2020-05-09 18:23:50 · 631 阅读 · 0 评论 -
Word2vec
算法介绍2013年,Google开源了一款用于词向量计算的工具–Word2vec,引起了工业界和学术界的关注。Word2vec可以在百万数量级的词典和上亿数量级的数据集上进行高效的训练,得到的训练结果–词向量(Word Embedding)–可以很好的度量词与词之间的相似性。语言模型语言模型也就是自然语言处理(NLP),语言模型的范围非常广,比如分词、信息抽取、命名实体识别、词性标注、句法分析、语音识别等等,其中,常见的是对一段文字的出现概率进行估计,这在信息检索、机器翻译、语音识别中比较重要。比如,原创 2020-06-24 16:18:45 · 281 阅读 · 0 评论 -
NLP-结巴分词器
目录1、实例理解2、添加自定义词典3、关键词抽取4、分词-词云展示Python中分分词工具很多,包括盘古分词、Yaha分词、Jieba分词、清华THULAC等。它们的基本用法都大同小异,使用的比较广泛的是结巴分词。Jieba分词结合了基于规则和基于统计这两类方法:基于前缀词典实现词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG),采用动态规...原创 2019-12-18 13:47:56 · 964 阅读 · 0 评论