
NLP
文章平均质量分 95
宝贝儿好
李园园
展开
-
【NLP】第十一章:隐马尔可夫——前向算法、后向算法、维特比算法、Baum-Welch算法
就是好比我现在知道了观测序列Observations、掩藏序列States,我试着去学一个最优的(π, A, B),让在这个(π, A, B)下,观测序列Observations、掩藏序列States的概率最大。(2)矩阵B就更好理解了,矩阵B的第一行表示我已经抽取的是盒子1,那我抽取白球的概率就是0.4,抽取黑球的概率就是0.6了,因为第一个盒子只有4白6黑嘛。三是,由于每次抽取的小球的颜色的概率不仅取决于,小球所在的盒子中的黑白球的比例,还取决于你是从哪个盒子中抽的,所以其实观测序列还对应着一个。原创 2025-02-11 23:50:44 · 780 阅读 · 0 评论 -
【NLP】第十章:Transformer论文解读
因为感受野就像一个滑窗的效果,有的窗口大点,有的窗口小点,但是不管大小,它的本质都是窗口。另外一个理解维度是:卷积网络虽然是独立的小滑窗看序列的,但它是可以有一系列的卷积核组成,就是卷积是多通道看这个序列,那不同通道就会看到不同的数据模式,这是卷积的强大之处。所以多头其实就是为了模拟卷积层的多通道的效果。或者说这个linear层是把embedding后的词向量再映射会到标签编码,所以这个linear层和权重结构和embedding层的权重结构是一样的,而且功能是互逆的,所以,这两个层也是可以共享参数的。原创 2025-01-23 21:41:40 · 1288 阅读 · 0 评论 -
【NLP】第九章:Transformer原理、计算流程以及代码实现-3
至此我们手动计算的编码器和解码器的计算流程就结束了,和调包pytorch中的Transformer算法的计算结果一样,说明每步我们的原理、计算流程,以及各个细节都理解的没错。一般我们都是将0填充位置的值设置成一个非常小的负数,这样softmax后,这部分的注意力分值就无限趋近0了,也就相当于用0给mask了。所以上图的Linear层就是一个普通的全连接层,这个层的输入就是embedding_dim=6,输出就是tgt_vocab size=12,也所以这个线性层就是一个。原创 2025-01-15 23:40:18 · 1183 阅读 · 0 评论 -
【NLP】第八章:Transformer原理、计算流程以及代码实现-2
完整的Transformer算法的。因为要确保此后我们手动计算的数据流是正确的,就是至少要和pytorch计算出来的结果一致的,才能证明我们对Transformer的理解是没有偏差的。:这两个类是Transformer编码器的实现和解码器的实现,其中nn.TransformerEncoder包含了多个nn.TransformerEncoderLayer层的堆叠。通常不同的LNP任务上会使用Transformer架构的不同部分,很多更优的模型也是在Transformer的基础上调整改造的。原创 2024-12-27 14:46:24 · 1172 阅读 · 0 评论 -
【NLP】第七章:Transformer原理、计算流程以及代码实现-1
所以Transformer中的词嵌入是从头开始训练的,所以设置参数的时候,可能不会把单词的语义存储在前几个维度里,这样就避开了位置编码。这也是我的猜想,因为也有人说,即使sinusoidal位置编码本身拥有很好的形式,但位置编码和词嵌入向量相加进入attention模块后,首先进行的是一个线性变换,而这个线性变换就直接导致了。一个有效的、好的位置编码算法是要涉及大量的数学推导的,是要对数学公式有非常敏锐的数感的。一个好的起点意味着一个丝滑的迭代过程,如果你的起点就很糟糕,那你的训练过程势必也会很艰难。原创 2024-12-20 13:48:38 · 1424 阅读 · 0 评论 -
【NLP】第六章:位置编码Positional Encoding
前面讲RNN时一般都会有一个ht的输出,这个输出就是样本与样本之间的信息,而且RNN是时序循环的,所以RNN本身的结构,在物理上,就自带词的前后顺序信息的。比如词never,不管never本身的词向量是什么,只要你在序列中排第一个位置,你的位置向量就是[0,1,01],你排第三个位置,你的位置向量就是[0.9,-0,4,0.2,1.0]。也所以,你可以理解为:embedding后的词嵌入,PE按照每个样本在sequence中的位置,把embedding后的词嵌入给扭转后,才送入attention的。原创 2024-12-18 14:32:01 · 1491 阅读 · 0 评论 -
【NLP】第五章:注意力机制Attention
五、注意力机制Attention在讲Transformer之前,我先把注意力机制Attention单独拿出来先讲一下。一是因为attention是Transformer中非常关键的技术,也是transformer之所以区别其他模型的关键之处。但是transformer本身的架构就非常复杂了,到真正开讲transformer时才讲attention,transformer的篇幅就会又臭又长,所以这里我单独把attention先提出来讲。二是因为attention从2016年被transformer原创 2024-12-12 16:40:42 · 1809 阅读 · 0 评论 -
【NLP】第四章:门控循环单元GRU
哎,笑一会儿,本来记忆和遗忘就是一体两面,非此即彼的。从上图的公式看,其实这两个门,仅仅是两个门而已,它们两个的计算一模一样,输入一模一样,只是使用了两个不同的矩阵线性变换了一下,而且这两个矩阵都是随机生成的,只有在训练过程中,这两个门才会慢慢迭代成其功能的门。有的资料叫节点,有的叫单元,有的叫循环单元,,,等等各种叫法,所以我们也不用纠结。第二个坑就是上图的C处,我一开始先计算的rt*ht-1,然后再进行线性变换,一看结果对不上,查看GRU的说明文档才发现,pytorch人家是先线性变换后再乘rt的。原创 2024-11-29 01:15:09 · 1895 阅读 · 0 评论 -
【NLP】第三章:长短期记忆网络LSTM
RNN是一个时序意义上的深度网络,虽然从表达式上t时刻的loss与之前所有时刻的隐含态h都有关系,即按照时序展开,会发现已经有类似Residual Connection直接连接每个输入到当前的loss,但是与ResNet的巨大不同在于,这些连接反复使用的都是同一个W。但是对于RNN的输入来说,并不是必须等步长输入的,就是可以变步长输入,就是没有要求你所有的输入都是等步长,你有几步就循环几次好了,不是说我必须要求都要是比如10步,必须要循环10次,不是的,你有几步循环几次即可。,也是承载着记忆信息。原创 2024-11-25 23:47:11 · 1453 阅读 · 0 评论 -
【NLP】第二章:循环神经网络RNN、DRNN、 BRNN
如果是普通的DNN架构,那DNN是把这个sequence当作6条样本数据,这6条样本数据作为一个输入矩阵,喂入网络,网络的正向传播也是网络每层神经元的参数矩阵和这个6个样本矩阵的转置相乘,然后输出到下一层,下一层的所有神经元参数矩阵再和这个输出相乘,继续输出到它的下一层,直到最后的输出层,输出的数据矩阵再转置一下显示出来。我画的图就形象太多了,你就立马理解了我前面说的是把6个一模一样的架构竖着排,然后第一个样本从垂直方向的第一层进入,第二个样本从垂直方向的第二层进入,,,依次类推,开始正向传播。原创 2024-11-16 02:11:01 · 1193 阅读 · 0 评论 -
【NLP】第一章:知识体系框架概览
比如你是简单的数据集,你非得用100层以上的网络跑,或者你是复杂的时序数据,你非得用简单的几层DNN去跑,那都是不合适的,就是你不会取得你想要的效果的。另外,如果你已经有了大量的复杂的原始数据,那你拿这些数据去训练模型时,你还得要掌握很多的数据预处理、数据增强、特征工程等系列技术手段和技术trick,你才能训练出好的模型,就是模型有很强的学习能力和泛化能力。NLP技术的应用领域:机器翻译、文本摘要、问答系统、搜索引擎、推荐系统、语音助手、聊天机器人、自动摘要、情感分析、语言大模型的相关软件和APP。原创 2024-11-15 13:24:25 · 1538 阅读 · 0 评论