
深度学习自然语言处理基础
文章平均质量分 96
此专栏包含《深度学习进阶-自然语言处理》一书的学习笔记以及视频
骑着蜗牛环游深度学习世界
一个缓慢成长的小白
展开
-
3.5-RNN文本生成
初步尝试使用RNN网络来生成文本;原创 2024-07-26 21:54:31 · 797 阅读 · 0 评论 -
3.4-GRU
对比了LSTM和GRU的网络结构;实现了GRU的前向传播和反向传播;实现了Time GRU层;基于PTB数据集,对GRU网络进行训练;将在LSTM网络上改进的内容应用到GRU网络上来。原创 2024-07-26 21:48:17 · 891 阅读 · 0 评论 -
3.3-LSTM的改进
本节介绍LSTM语言建模的三种改进策略:LSTM多层化、权重共享、加入dropout层防止过拟合原创 2024-07-21 15:33:46 · 1663 阅读 · 0 评论 -
3.2-LSTM的代码实现
进行LSTM、Time LSTM层的代码实现;并基于此在PTB数据集上进行训练得到实验结果原创 2024-07-18 15:25:54 · 1349 阅读 · 0 评论 -
3.1-RNN存在的问题以及LSTM的结构
阐述了RNN存在的梯度消失和梯度爆炸问题;引入LSTM,说明了LSTM的遗忘门、输入门、输出门、新增记忆单元的结构;以及为什么LSTM能够缓解梯度消失从而实现长期记住短期记忆原创 2024-07-18 15:15:37 · 893 阅读 · 0 评论 -
2.3-基于RNN的语言模型的学习与评价
使用RNN来对语言模型进行建模的代码实现,包括初始化、前向传播和反向传播;介绍语言模型的评价指标——困惑度指标;并在PTB数据集上实现了RNN对语言模型的初步建模。原创 2024-07-16 14:22:15 · 938 阅读 · 0 评论 -
2.2-RNN-RNN的代码实现
RNN层的前向传播和反向传播的代码实现;能够处理时序数据的TRNN层的代码实现;以及用TRNN来实现语言模型时Embedding层、Affine层、Softmax with loss层的适配代码实现。原创 2024-07-16 14:14:57 · 758 阅读 · 0 评论 -
2.1-RNN-概率和语言模型
阐述语言模型的概率形式;讨论了CBOW模型能否表示语言模型;从而引出RNN模型的网络结构。原创 2024-07-14 11:42:40 · 749 阅读 · 0 评论 -
1.10-改进CBOW模型的学习
实现了改进版本的CBOW模型的学习过程;过程中针对cupy包和vscode中绘图遇到的问题进行解决,并给出了可行的解决方案原创 2024-07-14 11:28:37 · 1063 阅读 · 0 评论 -
1.9-改进的CBOW模型的实现
使用Embedding层改进输入层以及输出层;使用sigmoid函数和负采样方法改进损失的计算,化多分类为二分类;实现了改进之后的CBOW模型。原创 2024-07-10 17:03:30 · 1201 阅读 · 0 评论 -
1.8-word2vec的改进
因此我们好像就没有必要用一个矩阵乘法来实现“选取某一行”这样的过程,毕竟我们能够知道这个乘法本质上是取一行出来,但是计算机不知道,他只知道我们给他了一个向量和一个矩阵,他会老老实实的去计算乘法;负采样概率的微调:word2vec中提出的负采样对刚才的概率分布增加了一个步骤,对原来的概率分布取0.75次方,之后再执行负采样;的乘积运算,如下图所示,同样是维度太大的问题;的乘积运算之后还有softmax的计算,这个概率化的计算方法需要每个元素都求一次指数,因此当语料库非常大的时候,这个计算量也是巨大的。原创 2024-07-08 17:20:41 · 1131 阅读 · 0 评论 -
1.8.0-矩阵乘法的反向传播-简单推导
理解上述过程之后,我们要知道,我们需要弄清楚的是一条数据的过程,mini-batch的情况只是为了可以一次性处理多条数据,不会影响一条数据的计算过程;而一条数据的推导过程,其实还是去看里面具体的某一个值的梯度是怎么算的,最终就是落到了加法和乘法,落实到我们学过的基本的加法和乘法的偏导数了。最后就是,理解之后,我们直接记住结论即可;原创 2024-07-08 17:03:29 · 1350 阅读 · 0 评论 -
1.7-自然语言的分布式表示-skip-gram模型代码实现
skip-gram模型的简单代码实现;以及与CBOW模型在代码实现上的区别;基于计数的方法与基于推理的方法的区别和联系的总结。原创 2024-07-03 14:49:20 · 1034 阅读 · 0 评论 -
1.6自然语言的分布式表示-word2vec补充说明
类比CBOW模型中使用概率来表示交叉熵损失的公式的过程:由于这里要预测的是一个上下文,我们可以把上下文看成一个整体,这个整体具有一个可取的范围;在前面的笔记中,我们知道CBOW模型使用了交叉熵损失;对于某条数据而言,通过模型计算得到输出并转化为概率形式,记为。这也证明skip-gram模型的损失是上下文各个单词损失的和;因此,首先求各个输出层的损失,然后加起来作为整个模型的损失;取决于上下文窗口的大小;CBOW模型是在给定某个上下文时,输出目标词的概率;对应的独热编码中的那个位置元素值为1,其余均为0;原创 2024-06-24 14:36:43 · 1077 阅读 · 0 评论 -
1.5自然语言的分布式表示-word2vec学习的实现
之前的笔记中,我们已经基于数据构建了语料库、单词与ID之间的映射;并基于语料库(就一个句子)构建了CBOW模型学习所需要的数据,即上下文及其对应的目标词;并将其转换为独热编码的形式;接着,我们也构建了简单CBOW模型的网络结构;并根据创建的CBOW模型类创建了模型实例;接下来我们来看让模型进行学习的代码实现。原创 2024-06-24 14:33:16 · 847 阅读 · 0 评论 -
1.4自然语言的分布式表示-word2vec实操
自然语言处理模型-CBOW模型的网络结构的简单实现-交叉熵损失函数的计算过程-softmax函数的计算过程原创 2024-06-20 16:52:20 · 1098 阅读 · 0 评论 -
1.3自然语言的分布式表示-word2vec
使用神经网络,构建神经网络模型;将数据输入到模型中,模型进行预测,并反复更新网络的权重以下图为例,所谓的推理就是给定了单词的上下文,让模型去预测中间这个单词是什么;模型的输出将是一个关于各个可能单词的概率分布,概率最大的那个就是要预测的那个单词;通过不断地学习,模型逐渐能够准确预测这个单词是什么;那么就可以说,模型学习到了单词的出现模式,即当周围出现某些单词的时候,中间的那个单词就会出现。通过这种方式学习到的最终模型便可以用来进行单词的分布式表示(将结合后面的内容进行叙述)原创 2024-06-20 16:46:18 · 1310 阅读 · 0 评论 -
1.2-自然语言的分布式表示-基于计数的方法
以上就是对单词进行密集向量表示,然后计算单词间相似度的主要过程,可以概括为:首先创建单词的共现矩阵,将其转化为 PPMI 矩阵,再基于 SVD 降 维以提高稳健性,最后获得每个单词的分布式表示。另外,我们已经确认 过,这样的分布式表示具有在含义或语法上相似的单词在向量空间上位置相 近的性质,因为从计算与每个单词最相似的单词有哪些的过程可以证实这一点。原创 2024-06-09 10:14:53 · 1243 阅读 · 2 评论 -
1.1-自然语言的分布式表示-同义词词典
本文章介绍了同义词词典的概念以及如何使用同义词词典。原创 2024-06-09 10:03:35 · 642 阅读 · 0 评论