人工智能
文章平均质量分 89
新西兰做的饭
Here we go!
展开
-
NLP入门——RNN、LSTM模型的搭建、训练与预测
在卷积语言模型建模时,我们选取上下文长度ctx_len进行训练,预测时选取句子的最后ctx_len个分词做预测,这样句子的前0~seql-1-ctx_len个词对于预测没有任何帮助,这对于语言处理来说显然是不利的。在词袋语言模型建模时,我们舍弃ctx_len的概念,利用前缀和,用前seql-1个词作为训练数据,后seql-1个词作为标签训练。最终用这句话所有的分词求前缀和做预测,这样句子中所有的分词都参与了预测,是更准确的。原创 2024-07-17 07:00:00 · 802 阅读 · 0 评论 -
NLP入门——词袋语言模型的搭建、训练与预测
卷积语言模型实际上是取了句子最后ctx_len个词作为上下文输入模型来预测之后的分词。但更好的选择是我们做一个词袋,将所有分词装在词袋中作为上下文,这样预测的分词不只根据最后ctx_len个分词,而是整个词袋中的所有分词。例如我们的序列是:1 2 3 4 5则首先词袋中是1,有首先 1 -> 2接着 1 + 2 -> 3接着 1 + 2 + 3 -> 4最后 1 + 2 + 3 + 4 -> 5。原创 2024-07-11 07:00:00 · 468 阅读 · 0 评论 -
NLP入门——卷积语言模型的搭建、训练与预测
语言模型建模是针对句子建模,主要分为掩码语言模型和自回归语言模型。我们从corpus中截取一句话作为例子,这句话是bpe分词后的句子:1994 年 5 月 17 日 安全 理事会 第 33@@ 77 次 会议 通过掩码语言模型的主要机制是:例如将33@@ 77这两个分词做掩码,这样句子变成了1994 年 5 月 17 日 安全 理事会 第 [MASK] [MASK] 会议 通过。原创 2024-07-10 07:00:00 · 741 阅读 · 0 评论 -
NLP入门——前馈词袋分类模型的搭建、训练与预测
通过以上代码,输入一个2x3的矩阵,在第一个线性层会变化为一个2x4的矩阵,随后使用DBG类输出当前矩阵的形状。在第二次线性层的变换后,矩阵变成2x5。原创 2024-07-05 07:00:00 · 1057 阅读 · 0 评论 -
NLP入门——将文本数据转为张量并存储
1.通过对比和文件,我们可以看出编号为0的组,一共有409个句子,因为在tgt中它有409个类别,而每个句子是1x5的向量,因此0号batch的矩阵就是409x5。2.每个句子是1x5的向量,代表在这个句子中有五个分词。因此向量中的单元为分词的词频,可能为0因为占位符<pad>的出现。3.因为句子按照长度从小到大排序,因此在dataset中更短的句子被分在更靠前的batch中。(句子长度短体现在每个batch矩阵的第二维数量低)原创 2024-06-24 07:00:00 · 711 阅读 · 0 评论 -
NLP入门——复杂函数建模与链式求导
前面我们研究的梯度下降法分类,是简单的对每类中每个子词的分数进行求和,统计分数最大的类别并不断调整分数来提高准确率。我们可以修改函数模型,用更加复杂的函数代替sum(),来达到更好的学习效果。采用梯度下降法计算机进行预测时,我们的corpus中每一行数据对应15类都有一个分数,取分数最大的_max_class作为预测类别,返回的rs存放着每个类别的分数,相当于一个向量。由分析得出,在计算机中是通过函数来判断的。原创 2024-06-20 07:00:00 · 909 阅读 · 0 评论 -
NLP入门——基于梯度下降法分类的应用
这会使得错误的s_{class_max,word}分数减小,使得正确的s_{class_g,word}分数增大,使得s(class_g)趋近于s(class_max),使loss函数值不断减小。如图所示,该点的导数就是这个点相切于J(w)的小三角的高除以宽,如果我们从图中点为初始点开始梯度下降算法,则该点斜率符号为正,即dJ(w)/dw > 0,因此接下来会向左走一步。我们前面研究的都是基于统计的方法,通过不同的统计方法得到不同的准确率,通过改善统计的方式来提高准确率。否则loss将为一个大于0的数。原创 2024-06-19 06:30:00 · 658 阅读 · 0 评论 -
NLP入门——基于TF-IDF算法的应用
可以看到json字符串表示一个对象,我们利用json.loads() 函数会将其转换为一个 Python 字典。得到的分别为原数据中训练集以及验证集中的句子和标签,src.文件中每个句子占一行,tgt.文件中每个句子的类别占一行。原创 2024-06-14 06:30:00 · 733 阅读 · 0 评论 -
NLP入门——数据预处理:子词切分及应用
如果有一个字符串aabaadaab,对其执行BPE算法因为字符对aa出现频率最高,因此将其替换为码Z,这时原字符串变为ZbZdZb此时字符对Zb出现频率最高,将其替换为码Y,此时原字符串变为YZdY此时字符串中所有字符对频率都一样,都是一次。首先是第一个任务:这里首先子词表中应该包含所有的单个字符,随后我们在corpus中寻找出现频率最高的subword pair,这里是st出现了3+4+1=8次。原创 2024-06-13 06:30:00 · 1988 阅读 · 0 评论 -
NLP入门——数据预处理:分词
clone到本地后,在中规定了标点符号规范化规则,使用进行分词。添加后输入echo,打印出环境变量的路径。显示分词处理后的内容。为管道命令,将前一个文件的输出给下一个文件的输入-a表示aggressive,决定是否为激进的切分,切分的尽可能小。其中-a切分,@-@表示“-”和前后两tokens相连;而不带-a的切分则不会将“-”切分为token-l后跟语言,en表示英文-no-escape:用于禁止 Moses 在输出翻译结果时对特殊字符进行转义如果预处理的内容做得足够好,那么应该使用。原创 2024-06-11 14:49:41 · 518 阅读 · 0 评论 -
NLP入门——数据预处理:编码规范化
在计算机中,我们需要将字符与字节序列之间建立起映射关系,这个过程被称为编码。有许多不同的编码方式,例如 ASCII、UTF-8、UTF-16 和 GBK 等。这些编码方式会将每个字符编码为一个或多个字节,以便于在计算机、网络和其他设备之间进行存储和传输。Unicode是一种字符集,它为每个字符、符号和表情符分配了一个唯一的码位(整数),它与许多不同的编码方式结合使用。原创 2024-06-06 22:30:47 · 552 阅读 · 0 评论 -
基于深度学习的心律异常分类算法
神经元是神经网络的基础操作单元。它接受外部或内部的信息,并经过加工后输出。每一个输入都有一个对应的权值,该权值反映了输入之间的重要程度。yf∑i1nωiai−byf∑i1nωiai−b其中,aia_iai是第i个元素信息的输入,ωi\omega_iωi是当前神经元与下一个神经元之间的权重,b\ bb为偏置,ff()f是激活函数,yyy为输出。原创 2024-03-21 16:26:00 · 1983 阅读 · 0 评论