自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 AC自动机(Aho-Corasick):一种扫描一次母文本就能找出所有单词的数据结构

例如,当前为状态8,接受字符u进行状态转移,转移失败后,从根结点到当前结点的字符串为she,其最长后缀为he,所以状态8的fail指针指向状态3。3)接受下一个字符r,从状态8按字符r转移,转移失败,按虚线所指方向转移至状态3,从状态3按r转移,可成功转移至状态6。4)接受下一个字符u,状态6按字符u转移,转移失败,按虚线所指方向跳转至根状态,从根状态按字符u转移,转移失败,保持根状态不变。1)接受字符h,从根状态按字符h转移,转移失败,构建一个新状态结点,即图中的1号结点,当前状态变为状态1;

2023-01-30 22:56:09 343

原创 用Python实现字典树(Trie)与双数组字典树(DATrie)

假如我们把字典中的词以记录的形式(无序)存入数据库中。现给定一串字符,要查找该字符串是否为字典中的词。因为数据库中的记录是无序的,所以,最朴素的方法就逐记录匹配。此方法简单,但是效率不高。因为每次匹配都必须从首字符开始。当然,可以将数据库中的记录按字符编码进行排序。这样,首字相同的词的记录都聚集在某个区间,匹配首字时直接跳至首字所处的区间开头即可,其它字符的匹配以此类推。其实这种方法的思想就是前缀匹配的思想。但是用数据库实现比较麻烦,可以用字典树这种数据结构来实现。

2022-12-04 20:21:05 2176

原创 用隐马尔可夫模型推测女朋友心情(Ⅴ):模型参数估计(模型训练)

上一期我们实现了训练样本的生成功能,这一期我们一起来讨论一下怎么用训练样本来估计模型参数,也就是解决隐马尔可夫模型的训练问题。上一期说过,我们用生成的训练样本来训练新模型的目的是想看看训练出的新模型的参数是否与原模型的参数几乎一致。也就是用测试驱动的方法验证一下模型算法是否正确。

2022-11-17 23:24:01 496

原创 用隐马尔可夫模型推测女朋友心情(Ⅳ):训练样本的生成

曾在第一期提到过,王同学没有女朋友心情序列与事件序列的样本,他只凭着对女友的了解,预估了三个参数矩阵的概率分布。这一期我们要做一件有趣的事,就是用王同学给的模型参数来生成训练样本。下一期,我们再用所生成的样本训练一个新的模型,看看这个新模型的参数值是否与王同学给的参数值一致(或者说十分接近)。

2022-11-09 19:37:10 335

原创 用隐马尔可夫模型推测女朋友心情(Ⅲ):用维特比(Viterbi)算法求心情序列与事件序列的最大联合概率

上一期,王同学已经推导出了求两个序列联合概率的方法。他现在要解决的问题是如何更省时地找到联合概率最大的那个心情序列。先来张示意图,图中S1、S2、S3表示三种不同的心情。t从1到7,共7天。从这张图看,求联合概率最大的心情序列就是求一条使联合概率最大的心情路径。如果用遍历法,3种心情,7天的序列,时间复杂度是O(3^{7})1 维特比算法的基本思想现在,让我们看着图-1,展开想像的翅膀,假设在t=3时刻,各找到一条以S1、S2、S3结点为尾结点的局部最优路径。那么,问题来了,这三条局部路径对后面时刻

2022-10-27 22:56:39 218

原创 用隐马尔可夫模型推测女朋友心情(Ⅱ):求心情序列与事件序列的联合概率

上一期,王同学凭着自己对女友的了解,预估了π、A、B,三个参数矩阵的取值。过去一周,通过与女友聊天,王同学了解到女友从周一到周日晚上做的事情分别为:看书、看剧、跑步、看书、看剧、逛商超、看剧。他想用这个观测序列预测女友这周的心情。要预测女友的心情,换说话说,就是要求最大概率的心情序列,使得心情序列与做事序列联合发生的概率最大。循序渐进地解决问题,我们先考虑如何求心情序列与做事序列的联合概率,再考虑如何求最大概率。假设王同学根据事件序列:{看书,看剧,跑步,看书,看剧,逛商超,看剧},凭直觉给出了女友的

2022-10-24 20:36:26 223

原创 用隐马尔可夫模型推测女朋友心情(Ⅰ):问题描述与模型假设

1 问题描述王同学最近一直在外地出差,虽然出差工作很忙,但他每天晚上都会腾出时间和女朋友聊会儿天。一来说说自己在外地见到的新鲜事,二来了解一下女友一天过得好不好、是否开心。但是他觉得每天直接问她心情好不好也不妥,问多了会烦。不过,他知道女友不同的心情会做不同的事,于是,他想是不是可以通过问女友每天晚上在干啥来推测她的心情。突然间,他来了灵感,他想到了隐马尔可夫模型。2 问题分析把女友的心情作为隐状态,共有三种状态:正常、开心、不开心。把与心情比较相关的事作为观测,他想到了几种与女友心情比较相关的事

2022-10-19 21:30:33 232

原创 【数学建模】大区域核酸检测中分组的诀窍

在全员核酸筛查中,为减少检验次数,通常采用分组检测的办法,将一组人的样本混合在一起化验。问题(一): 假如对样本进行第一次分组检测后,再对混合样本呈阳性的小组进行全员检测,则当给定样本为阳性的先验概率。所以平均总检验次数为:第一次分组的检验次数,加上第二次分组的检验次数,再加上对所有阳性组成员进行检验的次数,即,为简化问题,这里将第一次检验呈阳性小组全部组合在一起,然后再重新分组,因此,问题(三) :假如第一次分组检测后,再对混合样本呈阳性的小组人员进行二次分组检测,则当给定。是否为可分组的最大阳性概率。

2022-09-25 21:57:22 4125 4

原创 直观理解批标准化与层标准化

我以前的一篇博文《给深层网络做参数初始化的门道及其原理》中分析了深度神经网络隐层数据逐层增大的原因。文中通过公式推导,证明了隐层数据的标准差逐层增大。同时还论证了当隐层数据尺度波动很大时,权值变量的梯度也会随之有很大的波动,从而使得训练过程中可能导致梯度爆炸或消失。起初,研究人员用精心设计的初始化方法来解决这个问题,随后研究人员用数据标准化的方法来控制隐层数据尺度的变化。我们知道神经网络在前向传播中,前一层参数的变化会可能导致输出数据分布的改变,即数据的尺度可能增大或减小了。于是,就会导致权值参数梯度爆炸

2022-08-23 22:49:36 1643

原创 Think Before You Speak: Explicitly Generating Implicit Commonsense Knowledge for Response Generation

人们在对话中,除了句子本身的意思外,还常常隐含一些常识。许多端到端的对话模型是基于对话历史来生成回复。这种模型并没有显性地学习对话历史中隐含的常识。或者说,模型可能不知道对话历史中隐含的某些常识。有些研究者提出基于知识扩充的对话模型(knowledge-augmented Response Generation, RG)。其中大多数需要用到外部知识库(Knowledge Base, KB)。主要采取让模型从知识库中检索与对话历史有关联的知识的方法,然后利用检索得到的知识来辅助生成Response。这类方.

2022-07-15 21:18:13 484

原创 概率图模型之贝叶斯网络的理解与应用

概率图模型简单的说,就是用图来表示概率模型。它是一种通用化的有确定性知识表示和处理方法。在概率图模型的表达中,结点表示随机变量,结点之间直接相连的边表示随机变量之间的概率关系。贝叶斯网络是一种基于概率推理的数学模型,其理论基础是贝叶斯公式。一个贝叶斯网络就是一个有向无环图,结点表示随机变量,可以是可观测是、隐含变量、未知参量或假设等;结点之间的有向边表示条件依存关系,箭头指向的结点依存于箭头发出的结点(父结点)。以经济状况、房地产销售额、空调销售额三个随机变量为例,构建一个简单的贝叶斯网络。图-1上图展示了

2022-06-08 21:39:28 2700

原创 【数学建模】面包店老板使日均收入最大化的诀窍

面包店每天烘烤一定数量的面包出售,每个成本3元,以8元的价格卖出,晚间关门前将未卖完的面包无偿处理掉,若已知每天面包需求量的概率分布如下表所示。从长期看,面包店老板为了能得到最高的日均收入,他每天要烘烤多少个面包?这个最高收入是多少?

2022-05-19 21:45:00 6629 4

原创 智能问答模型训练中三种常用的损失函数解读

智能问答是NLP领域落地最多的场景,其商业价值较高,能有效解决业务问题,降低人力成本。智能问答分为封闭域问答与开放域问答两种。封闭域的问答是指根据用户的问题,从已有问答库中找出最匹配的答案返回给用户。而开放域问答则是根据用户的问题,由模型根据已学会的知识生成相应的答案返回给用户。由于当前开放域问答存在回答不可控的问题,在工业界落地项目较少。而封闭域问答是NLP领域中落地最多的项目之一。封闭域问答最常见的形式是FAQ问答,即常见问题解答。在NLP中,对FAQ任务的解决方案是,将用户会遇到的常见问题收集起来构建

2022-05-08 09:43:50 2916

原创 给深层网络做参数初始化的门道及其原理

神经网络的参数学习是一个非凸优化问题,当使用梯度下降法来进行优化网络参数时,参数初始值的选取十分关键。如果参数的初始值不恰当,轻则影响网络的优化效率和泛化能力,重则导致梯度爆炸或消失。参数初始化的方式通常有三种:预训练初始化、随机初始化、固定值初始化。预训练初始化是指用已经训练好的模型的参数来初始化待训练网络的参数。固定值初始化是指用一个固定值来初始化参数。随机初始化是指用一个随机值来初始化参数。这个随机值可以没有规律,也可以让其服从某个分布。实践中,随机初始化是较常用的权值初始化方法。现有的深度学习理

2022-04-13 23:40:01 1689

原创 使用Pytorch中的Dataset类构建数据集的方法及其底层逻辑

我们在用Pytorch开发项目的时候,常常将项目代码分为数据处理模块、模型构建模块与训练控制模块。数据处理模块的主要任务是构建数据集。为方便深度学习项目构建数据集,Pytorch为我们提供了Dataset类。那么,假如现在已经有训练数据和标签,该怎么用Dataset类构建一个符合Pytorch规范的数据集呢?在刚开始学的时候,或许我们会上网找一些代码来参考。不过,有时我们找到的代码可能与自己的数据格式不一样,以至于在模仿着写的时候,不确定自己写的代码对不对。本人起初也有这样的体会,为此,本文就来说说我的领悟

2022-03-23 23:16:30 18196 9

原创 通俗解读NLP中几种常见的注意力机制

注意力机制在NLP领域中有广泛的应用,诸如机器翻译、智能对话、篇章问答等。在模型设计中使用注意力机制,可以显著提升模型的性能。然而,对于初识注意力机制的朋友来说,可能会有这样的疑问:自然语言处理中说的注意力机制到底是啥?它与我们大脑中的注意力有何联系?它是如何实现的?面对诸多疑问,本文将用通俗的语言来解开这些困惑。本文首先简单介绍一下认知神经学中的注意力。接着,详细解说NLP领域常见的三种注意力机制:Bahdanau注意力、Luong注意力和自注意力(self-attention)。最后,对几种注意力机制进

2022-03-11 11:59:08 8964 2

原创 论文解读: Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

在自然语言研究领域,某些自然语言处理任务可能利用“预训练模型+任务描述”方式的无监督学习来解决。然而,这种无监督学习方法不如有监督学习方法效果好。此篇论文将二者的想法相结合,提出了一种基于模板(Pattern)的半监督小样本学习方法。论文的贡献主要有两个:1)提出基于模板的半监督训练方法(PET);2)提出通过模型融与迭代(iPET)训练多个模型,然后用训练好的多个模型给无标签数据集打软标签(soft label),以扩充标注数据集。

2022-02-09 17:01:40 2377

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除