自然语言处理中注意力机制综述

https://www.toutiao.com/a6655120292144218637/

 

自然语言处理中注意力机制综述

 

 


 

目录

1.写在前面

2.Seq2Seq 模型

3.NLP中注意力机制起源

4.NLP中的注意力机制

5.Hierarchical Attention

6.Self-Attention

7.Memory-based Attention

8.Soft/Hard Attention

9.Global/Local Attention

10.评价指标

11.写在后面

12.参考文献


写在前面

近些年来,注意力机制一直频繁的出现在目之所及的文献或者博文中,可见在nlp中算得上是个相当流行的概念,事实也证明其在nlp领域散发出不小得作用。这几年的顶会paper就能看出这一点。本文深入浅出地介绍了近些年的自然语言中的注意力机制包括从起源、变体到评价指标方面。

据Lilian Weng博主[1]总结以及一些资料显示,Attention机制最早应该是在视觉图像领域提出来的,这方面的工作应该很多,历史也比较悠久。人类的视觉注意力虽然存在很多不同的模型,但它们都基本上归结为给予需要重点关注的目标区域(注意力焦点)更重要的注意力,同时给予周围的图像低的注意力,然后随着时间的推移调整焦点。

而直到Bahdanau等人[3]发表了论文《Neural Machine Translation by Jointly Learning to Align and Translate》,该论文使用类似attention的机制在机器翻译任务上将翻译和对齐同时进行,这个工作目前是最被认可为是第一个提出attention机制应用到NLP领域中的工作,值得一提的是,该论文2015年被ICLR录用,截至现在,谷歌引用量为5596,可见后续nlp在这一块的研究火爆程度。

注意力机制首先从人类直觉中得到,在nlp领域的机器翻译任务上首先取得不错的效果。简而言之,深度学习中的注意力可以广义地解释为重要性权重的向量:为了预测一个元素,例如句子中的单词,使用注意力向量来估计它与其他元素的相关程度有多强,并将其值的总和作为目标的近似值。既然注意力机制最早在nlp领域应用于机器翻译任务,那在这个之前又是怎么做的呢?

传统的基于短语的翻译系统通过将源句分成多个块然后逐个词地翻译它们来完成它们的任务,这导致了翻译输出的不流畅。不妨先来想想我们人类是如何翻译的?我们首先会阅读整个待翻译的句子,然后结合上下文理解其含义,最后产生翻译。

从某种程度上来说,神经机器翻译(NMT)的提出正是想去模仿这一过程。而在NMT的翻译模型中经典的做法是由编码器 - 解码器架构制定(encoder-decoder),用作encoder和decoder常用的是循环神经网络。这类模型大概过程是首先将源句子的输入序列送入到编码器中,提取最后隐藏状态的表示并用于解码器的输入,然后一个接一个地生成目标单词,这个过程广义上可以理解为不断地将前一个时刻 t-1 的输出作为后一个时刻 t 的输入,循环解码,直到输出停止符为止。

通过这种方式,NMT解决了传统的基于短语的方法中的局部翻译问题:它可以捕获语言中的长距离依赖性,并提供更流畅的翻译。

但是这样做也存在很多缺点,譬如,RNN是健忘的,这意味着前面的信息在经过多个时间步骤传播后会被逐渐消弱乃至消失。其次,在解码期间没有进行对齐操作,因此在解码每个元素的过程中,焦点分散在整个序列中。对于前面那个问题,LSTM、GRU在一定程度能够缓解。而后者正是Bahdanau等人重视的问题。


 

Seq2Seq模型

在介绍注意力模型之前,不得不先学习一波Encoder-Decoder框架,虽然说注意力模型可以看作一种通用的思想,本身并不依赖于特定框架(比如文章[15]:Learning Sentence Representation with Guidance of Human Attention),但是目前大多数注意力模型都伴随在Encoder-Decoder框架下。

Seq2seq模型最早由bengio等人[17]论文《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》。随后Sutskever等人[16]在文章《Sequence to Sequence Learning with Neural Networks》中提出改进模型即为目前常说的Seq2Seq模型。

从广义上讲,它的目的是将输入序列(源序列)转换为新的输出序列(目标序列),这种方式不会受限于两个序列的长度,换句话说,两个序列的长度可以任意。以nlp领域来说,序列可以是句子、段落、篇章等,所以我们也可以把它看作处理由一个句子(段落或篇章)生成另外一个句子(段落或篇章)的通用处理模型。

对于句子对,我们期望输入句子Source,期待通过Encoder-Decoder框架来生成目标句子Target。Source和Target可以是同一种语言,也可以是两种不同的语言,若是不同语言,就可以处理翻译问题了。若是相同语言,输入序列Source长度为篇章,而目标序列Target为小段落则可以处理文本摘要问题 (目标序列Target为句子则可以处理标题生成问题)等等等。

seq2seq模型通常具有编码器 - 解码器架构:

  • 编码器encoder: 编码器处理输入序列并将序列信息压缩成固定长度的上下文向量(语义编码/语义向量context)。期望这个向量能够比较好的表示输入序列的信息。

 

  • 解码器decoder: 利用上下文向量初始化解码器以得到变换后的目标序列输出。早期工作仅使用编码器的最后状态作为解码器的输入。

 

  • 编码器和解码器都是循环神经网络,比较常见的是使用LSTM或GRU。

 

 

自然语言处理中注意力机制综述

 

 

编码器 - 解码器模型


 

 

NLP中注意力机制的起源

前面谈到在Seq2Seq结构中,encoder把所有的输入序列都编码成一个统一的语义向量context,然后再由decoder解码。而context自然也就成了限制模型性能的瓶颈。

譬如机器翻译问题,当要翻译的句子较长时,一个context可能存不下那么多信息。除此之外,只用编码器的最后一个隐藏层状态,感觉上都不是很合理。

实际上当我们翻译一个句子的时候,譬如:Source: 机器学习-->Target: machine learning。当decoder要生成"machine"的时候,应该更关注"机器",而生成"learning"的时候,应该给予"学习"更大的权重。所以如果要改进Seq2Seq结构,一个不错的想法自然就是利用encoder所有隐藏层状态解决context限制问题。

Bahdanau等人[3]把attention机制用到了神经网络机器翻译(NMT)上。传统的encoder-decoder模型通过encoder将Source序列编码到一个固定维度的中间语义向量context,然后再使用decoder进行解码翻译到目标语言序列。前面谈到了这种做法的局限性,而且,Bahdanau等人[3]在其文章的摘要中也说到这个context可能是提高这种基本编码器 - 解码器架构性能的瓶颈,那Bahdanau等人又是如何尝试缓解这个问题的呢? 别急,让我们来一探究竟。

作者为了缓解中间向量context很难将Source序列所有重要信息压缩进来的问题,特别是对于那些很长的句子。提出在机器翻译任务上在 encoder–decoder 做出了如下扩展:将翻译和对齐联合学习。这个操作在生成Target序列的每个词时,用到的中间语义向量context是Source序列通过encoder的隐藏层的加权和,而传统的做法是只用encoder最后一个时刻输出

自然语言处理中注意力机制综述

 

作为context,这样就能保证在解码不同词的时候,Source序列对现在解码词的贡献是不一样的。

想想前面那个例子:Source: 机器学习-->Target: machine learning (假如中文按照字切分)。decoder在解码"machine"时,"机"和"器"提供的权重要更大一些,同样,在解码"learning"时,"学"和"习"提供的权重相应的会更大一些,这在直觉也和人类翻译也是一致的。

通过这种attention的设计,作者将Source序列的每个词(通过encoder的隐藏层输出)和Target序列 (当前要翻译的词) 的每个词巧妙的建立了联系。想一想,翻译每个词的时候,都有一个语义向量,而这个语义向量是Source序列每个词通过encoder之后的隐藏层的加权和。 由此可以得到一个Source序列和Target序列的对齐矩阵,通过可视化这个矩阵,可以看出在翻译一个词的时候,Source序列的每个词对当前要翻译词的重要性分布,这在直觉上也能给人一种可解释性的感觉。

论文中的图也能很好的看出这一点:

 

自然语言处理中注意力机制综述

 

 

生成第t个目标词

自然语言处理中注意力机制综述

 

 

 

更形象一点可以看这个图:

 

自然语言处理中注意力机制综述

 

 

现在让我们从公式层面来看看这个东东 (加粗变量表示它们是向量,这篇文章中的其他地方也一样)。 假设我们有一个长度为n的源序列x,并尝试输出长度为m的目标序列y:

 

自然语言处理中注意力机制综述

 

 

作者采样bidirectional RNN作为encoder(实际上这里可以有很多选择),具有前向隐藏状态

自然语言处理中注意力机制综述

 

和后向隐藏状态

自然语言处理中注意力机制综述

 

为了获得词的上下文信息,作者采用简单串联方式将前向和后向表示拼接作为encoder的隐藏层状态,公式如下:

 

自然语言处理中注意力机制综述

 

对于目标(输出)序列的每个词(假设位置为t),decoder网络的隐藏层状态:

 

自然语言处理中注意力机制综述

 

其中

自然语言处理中注意力机制综述

 

语义向量

自然语言处理中注意力机制综述

 

是源(输入)序列的隐藏状态的加权和,权重为对齐分数:

 

自然语言处理中注意力机制综述

 

(注意:这里的score函数为原文的a函数,原文的描述为:

自然语言处理中注意力机制综述

 

is an alignment model)

对齐模型基于

自然语言处理中注意力机制综述

 

(在i时刻的输入)和

自然语言处理中注意力机制综述

 

(在t时刻的输出)的匹配程度分配分数

自然语言处理中注意力机制综述

 

自然语言处理中注意力机制综述

 

是定义每个目标(输出)单词应该考虑给每个源(输入)隐藏状态的多大的权重(这恰恰反映了对此时解码的目标单词的贡献重要性)。

在Bahdanau[3]的论文中,作者采用的对齐模型为前馈神经网络,该网络与所提出的系统的所有其他组件共同训练。因此,score函数采用以下形式,tanh用作非线性激活函数,公式如下:

 

自然语言处理中注意力机制综述

 

 

其中

自然语言处理中注意力机制综述

 

自然语言处理中注意力机制综述

 

和都是在对齐模型中学习的权重矩阵。对齐分数矩阵是一个很好的可解释性的东东,可以明确显示源词和目标词之间的相关性。

 

自然语言处理中注意力机制综述

 

 

对齐矩阵例子

 

而decoder每个词的条件概率为:

 

自然语言处理中注意力机制综述

 

 

g为非线性的,可能是多层的输出

自然语言处理中注意力机制综述

 

概率的函数,

自然语言处理中注意力机制综述

 

是RNN的隐藏状态,

自然语言处理中注意力机制综述

 

为语义向量。


NLP中的注意力机制

随着注意力机制的广泛应用,在某种程度上缓解了源序列和目标序列由于距离限制而难以建模依赖关系的问题。现在已经涌现出了一大批基于基本形式的注意力的不同变体来处理更复杂的任务。让我们一起来看看其在不同NLP问题中的注意力机制。

其实我们可能已经意识到了,对齐模型的设计不是唯一的,确实,在某种意义上说,根据不同的任务设计适应于特定任务的对齐模型可以看作设计出了新的attention变体,让我们再回过头来看看这个对齐模型(函数):

自然语言处理中注意力机制综述

 

。再来看看几个代表性的work。

  • Citation[5]等人提出Content-base attention,其对齐函数模型设计为:

自然语言处理中注意力机制综述

 

  • Bahdanau[3]等人的Additive(*),其设计为:

自然语言处理中注意力机制综述

 

  • Luong[4]等人文献包含了几种方式:

自然语言处理中注意力机制综述

 

  • 以及Luong[4]等人还尝试过location-based function:

自然语言处理中注意力机制综述

 

  • 这种方法的对齐分数仅从目标隐藏状态学习得到。
  • Vaswani[6]等人的Scaled Dot-Product(^):

自然语言处理中注意力机制综述

 

  • 细心的童鞋可能早就发现了这东东和点积注意力很像,只是加了个scale factor。当输入较大时,softmax函数可能具有极小的梯度,难以有效学习,所以作者加入比例因子

自然语言处理中注意力机制综述

 

  • Cheng[7]等人的Self-Attention(&)可以关联相同输入序列的不同位置。 从理论上讲,Self-Attention可以采用上面的任何 score functions。在一些文章中也称为“intra-attention” 。

Hu[7]对此分了个类:

 

自然语言处理中注意力机制综述

 

前面谈到的一些Basic Attention给人的感觉能够从序列中根据权重分布提取重要元素。而Multi-dimensional Attention能够捕获不同表示空间中的term之间的多个交互,这一点简单的实现可以通过直接将多个单维表示堆叠在一起构建。Wang[8]等人提出了coupled multi-layer attentions,该模型属于多层注意力网络模型。作者称,通过这种多层方式,该模型可以进一步利用术语之间的间接关系,以获得更精确的信息。


Hierarchical Attention

再来看看Hierarchical Attention,Yang[9]等人提出了Hierarchical Attention Networks,看下面的图可能会更直观:

 

自然语言处理中注意力机制综述

 

 

Hierarchical Attention Networks

这种结构能够反映文档的层次结构。模型在单词和句子级别分别设计了两个不同级别的注意力机制,这样做能够在构建文档表示时区别地对待这些内容。Hierarchical attention可以相应地构建分层注意力,自下而上(即,词级到句子级)或自上而下(词级到字符级),以提取全局和本地的重要信息。自下而上的方法上面刚谈完。那么自上而下又是如何做的呢?让我们看看Ji[10]等人的模型:

 

自然语言处理中注意力机制综述

 

 

Nested Attention Hybrid Model

和机器翻译类似,作者依旧采用encoder-decoder架构,然后用word-level attention对全局语法和流畅性纠错,设计character-level attention对本地拼写错误纠正。


Self-Attention

那Self-Attention又是指什么呢?

Self-Attention(自注意力),也称为intra-attention(内部注意力),是关联单个序列的不同位置的注意力机制,以便计算序列的交互表示。它已被证明在很多领域十分有效比如机器阅读,文本摘要或图像描述生成。

比如Cheng[11]等人在机器阅读里面利用了自注意力。当前单词为红色,蓝色阴影的大小表示激活程度,自注意力机制使得能够学习当前单词和句子前一部分词之间的相关性。

 

自然语言处理中注意力机制综述

 

 

当前单词为红色,蓝色阴影的大小表示激活程度

比如Xu[12]等人利用自注意力在图像描述生成任务。注意力权重的可视化清楚地表明了模型关注的图像的哪些区域以便输出某个单词。

自然语言处理中注意力机制综述

 

我们假设序列元素为

自然语言处理中注意力机制综述

 

,其匹配向量为

自然语言处理中注意力机制综述

 

。让我们再来回顾下前面说的基本注意力的对齐函数,attention score通过

自然语言处理中注意力机制综述

 

计算得到,由于是通过将外部u与每个元素

自然语言处理中注意力机制综述

 

匹配来计算注意力,所以这种形式可以看作是外部注意力。当我们把外部u替换成序列本身(或部分本身),这种形式就可以看作为内部注意力(internal attention)。

我们根据文章[7]中的例子来看看这个过程,例如句子:"Volleyball match is in progress between ladies"。句子中其它单词都依赖着"match",理想情况下,我们希望使用自注意力来自动捕获这种内在依赖。换句话说,自注意力可以解释为,每个单词

自然语言处理中注意力机制综述

 

去和V序列中的内部模式

自然语言处理中注意力机制综述

 

匹配,匹配函数

自然语言处理中注意力机制综述

 

自然语言处理中注意力机制综述

 

很自然的选择为V中其它单词

自然语言处理中注意力机制综述

 

,这样遍可以计算成对注意力得分。为了完全捕捉序列中单词之间的复杂相互作用,我们可以进一步扩展它以计算序列中每对单词之间的注意力。这种方式让每个单词和序列中其它单词交互了关系。

 

自然语言处理中注意力机制综述

 

 

另一方面,自注意力还可以自适应方式学习复杂的上下文单词表示。譬如经典文章[14]:A structured self-attentive sentence embedding。这篇文章提出了一种通过引入自关注力机制来提取可解释句子嵌入的新模型。 使用二维矩阵而不是向量来代表嵌入,矩阵的每一行都在句子的不同部分,想深入了解的可以去看看这篇文章,另外,文章的公式感觉真的很漂亮

值得一提还有2017年谷歌提出的Transformer[6],这是一种新颖的基于注意力的机器翻译架构,也是一个混合神经网络,具有前馈层和自注意层。论文的题目挺霸气:Attention is All you Need,毫无疑问,它是2017年最具影响力和最有趣的论文之一。那这篇文章的Transformer的庐山真面目到底是这样的呢?

这篇文章为提出许多改进,在完全抛弃了RNN的情况下进行seq2seq建模。接下来一起来详细看看吧。


Key, Value and Query

众所周知,在NLP任务中,通常的处理方法是先分词,然后每个词转化为对应的词向量。接着一般最常见的有二类操作,第一类是接RNN(变体LSTM、GRU、SRU等),但是这一类方法没有摆脱时序这个局限,也就是说无法并行,也导致了在大数据集上的速度效率问题。第二类是接CNN,CNN方便并行,而且容易捕捉到一些全局的结构信息。很长一段时间都是以上二种的抉择以及改造,直到谷歌提供了第三类思路:纯靠注意力,也就是现在要讲的这个东东。

将输入序列编码表示视为一组键值对(K,V)以及查询 Q,因为文章[6]取K=V=Q,所以也自然称为Self Attention。

 

自然语言处理中注意力机制综述

 

 

K, V像是key-value的关系从而是一一对应的,那么上式的意思就是通过Q中每个元素query,与K中各个元素求内积然后softmax的方式,来得到Q中元素与V中元素的相似度,然后加权求和,得到一个新的向量。其中因子为了使得内积不至于太大。以上公式在文中也称为点积注意力(scaled dot-product attention):输出是值的加权和,其中分配给每个值的权重由查询的点积与所有键确定。

而Transformer主要由多头自注意力(Multi-Head Self-Attention)单元组成。那么Multi-Head Self-Attention又是什么呢?以下为论文中的图:

 

自然语言处理中注意力机制综述

 

 

Multi-head scaled dot-product attention mechanism

Multi-Head Self-Attention不是仅仅计算一次注意力,而是多次并行地通过缩放的点积注意力。 独立的注意力输出被简单地连接并线性地转换成预期的维度。论文[6]表示,多头注意力允许模型共同关注来自不同位置的不同表示子空间的信息。 只有一个注意力的头,平均值就会抑制这一点。

 

自然语言处理中注意力机制综述

 

 

自然语言处理中注意力机制综述

 

是需要学习的参数矩阵。既然为seq2seq模式,自然也包括encoder和decoder,那这篇文章又是如何构建这些的呢?莫急,请继续往下看。


Encoder

 

自然语言处理中注意力机制综述

 

 

The transformer's encoder

编码器生成基于自注意力的表示,其能够从可能无限大的上下文中定位特定信息。值得一提的是,上面的结构文章堆了六个。

  • 每层都有一个多头自注意力层
  • 每层都有一个简单的全连接的前馈网络
  • 每个子层采用残差连接和层规范化。 所有子层输出相同维度dmodel = 512。

Decoder

 

自然语言处理中注意力机制综述

 

 

The transformer's decoder.

解码器能够从编码表示中检索。上面的结构也堆了六个。

  • 每层有两个多头注意机制子层。
  • 每层有一个完全连接的前馈网络子层。
  • 与编码器类似,每个子层采用残差连接和层规范化。

与encoder不同的是,第一个多头注意子层被设计成防止关注后续位置,因为我们不希望在预测当前位置时查看目标序列的未来。最后来看一看整体架构:

自然语言处理中注意力机制综述

 

The full model architecture of the transformer.


Memory-based Attention

那Memory-based Attention又是什么呢?我们先换种方式来看前面的注意力,假设有一系列的键值对

自然语言处理中注意力机制综述

 

存在内存中和查询向量q,这样便能重写为以下过程:

 

自然语言处理中注意力机制综述

 

 

这种解释是把注意力作为使用查询q的寻址过程,这个过程基于注意力分数从memory中读取内容。聪明的童鞋肯定已经发现了,如果我们假设

自然语言处理中注意力机制综述

 

,这不就是前面谈到的基础注意力么?然而,由于结合了额外的函数,可以实现可重用性和增加灵活性,所以Memory-based attention mechanism可以设计得更加强大。

那为什么又要这样做呢?在nlp的一些任务上比如问答匹配任务,答案往往与问题间接相关,因此基本的注意力技术就显得很无力了。那处理这一任务该如何做才好呢?这个时候就体现了Memory-based attention mechanism的强大了,譬如Sukhbaatar[19]等人通过迭代内存更新(也称为多跳)来模拟时间推理过程,以逐步引导注意到答案的正确位置:

 

自然语言处理中注意力机制综述

 

 

在每次迭代中,使用新内容更新查询,并且使用更新的查询来检索相关内容。一种简单的更新方法为相加

自然语言处理中注意力机制综述

 

。那么还有其它更新方法么?

当然有,直觉敏感的童鞋肯定想到了,光是这一点,就可以根据特定任务去设计,比如Kuma[13]等人的工作。这种方式的灵活度也体现在key和value可以自由的被设计,比如我们可以自由地将先验知识结合到key和value嵌入中,以允许它们分别更好地捕获相关信息。看到这里是不是觉得文章灌水其实也不是什么难事了。


Soft/Hard Attention

最后想再谈谈Soft/Hard Attention,是因为在很多地方都看到了这个名词。

据我所知,这个概念由《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》提出,这是对attention另一种分类。SoftAttention本质上和Bahdanau等人[3]很相似,其权重取值在0到1之间,而Hard Attention取值为0或者1。


Global/Local Attention

Luong等人[4]提出了Global Attention和Local Attention。Global Attention本质上和Bahdanau等人[3]很相似。Global方法顾名思义就是会关注源句子序列的所有词,具体地说,在计算语义向量时,会考虑编码器所有的隐藏状态。而在Local Attention中,计算语义向量时只关注每个目标词的一部分编码器隐藏状态。由于Global方法必须计算源句子序列所有隐藏状态,当句子长度过长会使得计算代价昂贵并使得翻译变得不太实际,比如在翻译段落和文档的时候。

 

自然语言处理中注意力机制综述

 

 


评价指标

在看一些带有attention的paper时,常常会伴随着为了说明自己文章attention是work的实验,但实际上尝试提供严格数学证明的文章极少。

Hu[7]把Attention的评价方式分为两类,Quantitative(定量指标)和Qualitative(定性指标)。定量指标顾名思义就是对attention的贡献就行量化,这一方面一般会结合下游任务,最常见的当属机器翻译,我们都知道机器翻译的最流行评价指标之一是BLEU,我们可以在翻译任务设计attention和不加attention进行对比,对比的指标就是BLEU,设置我们可以设计多种不同的attention进行对比。

定性指标评价是目前应用最广泛的评价技术,因为它简单易行,便于可视化。具体做法一般都是为整个句子构建一个热力图,其热力图强度与每个单词接收到的标准化注意力得分成正比。也就是说,词的贡献越大,颜色越深。其实这在直觉上也是能够接收的,因为往往相关任务的关键词的attention权值肯定要比其它词重要。比如Hu[7]文中的图:

自然语言处理中注意力机制综述

 

写在后面

本文参考了众多文献,对近些年的自然语言中的注意力机制从起源、变体到评价方面都进行了简要介绍,但是要明白的是,实际上注意力机制在nlp上的研究特别多,为此,我仅仅对18、19年的文献进行了简单的调研(AAAI、IJCAI、ACL、EMNLP、NAACL等顶会),就至少有一百篇之多,足见attention还是很潮的,所以我也把链接放到了我的github上。方便查阅。以后慢慢补充~~

地址:

https://github.com/yuquanle/Attention-Mechanisms-paper/blob/master/Attention-mechanisms-paper.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1379798.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【深度学习基础】从零开始的炼丹生活00——机器学习数学基础以及数值计算数值优化方法

正值假期,决定恶补机器学习、深度学习及相关领域(顺便开个博客)。首先学习一下数学基础以及数值计算的方法(主要参考《深度学习》) 一、数学基础 这里简单复习一下机器学习相关的数学1.线性代数 范数 衡量一个向量的…

“泰迪杯”挑战赛 -利用非侵入式负荷检测进行高效率数据挖掘(完整数学模型)

目录 1 研究背景与意义 2 变量说明 3 问题分析 4 问题一 4.1 数据预处理 4.1.1 降噪处理 4.1.2 数据变换 4.2 负荷特征分析 4.2.1 暂态特征 4.2.2 稳态特征 5 问题二 5.1 相似度与权系数 5.2 模型建立 5.3 模型求解 6 问题三 6.1 事件检测算法 6.2 模型建立 6.3 模型求解…

37%原则如何优化我们做决定的时间

当需要百(千,万…)里挑一时,需要权衡最优解和效率,有一个37%原则比较有趣。 整个择优过程分为两个阶段: 观望:在前面 k k k个候选者中冒泡记录最优者 p p p,其分数为 V p V_p Vp​,但并不选择…

清风数学建模学习笔记——层次分析法

目录 一、模型简介 二、建模步骤 三、模型总结 一、层次分析法——模型简介 层次分析法,简称AHP,是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。该方法是美国运筹学家匹茨堡大学教授萨…

Attention is all you need ---Transformer

大语言模型已经在很多领域大显身手,其应用包括只能写作、音乐创作、知识问答、聊天、客服、广告文案、论文、新闻、小说创作、润色、会议/文章摘要等等领域。在商业上模型即产品、服务即产品、插件即产品,任何形态的用户可触及的都可以是产品&#xff0c…

you-get下载速度慢解决方法

Python版本:3.10 运行环境:Windows10 问题描述:在使用you-get下载X站视频时网速很慢,并一直限制在某个值,通过以下办法即可恢复正常网速 解决办法: 进入windows 安全中心-病毒和威胁防护-管理设置点击添加或删除排…

Microsoft store下载速度过慢

最开始是进入Microsoft store点击安装后一直无响应,后来知道这是因为Microsoft store下载速度过慢。下边几个步骤都尝试了,个人认为最重要的是Windows Update设置步骤,刚开始可能一直没有正确打开 修改DNS 右键任务栏网络图标->打开“网…

Linux网络编程 socket编程篇(一) socket编程基础

目录 一、预备知识 1.IP地址 2.端口号 3.网络通信 4.TCP协议简介 5.UDP协议简介 6.网络字节序 二、socket 1.什么是socket(套接字)? 2.为什么要有套接字? 3.套接字的主要类型 拓】网络套接字 三、socket API 1.socket API是什么? 2.为什么…

如何预防ssl中间人攻击?

当我们连上公共WiFi打开网页或邮箱时,殊不知此时可能有人正在监视着我们的各种网络活动。打开账户网页那一瞬间,不法分子可能已经盗取了我们的银行凭证、家庭住址、电子邮件和联系人信息,而这一切我们却毫不知情。这是一种网络上常见的“中间…

[保研/考研机试] KY3 约数的个数 清华大学复试上机题 C++实现

题目链接&#xff1a; KY3 约数的个数 https://www.nowcoder.com/share/jump/437195121691716950188 描述 输入n个整数,依次输出每个数的约数的个数 输入描述&#xff1a; 输入的第一行为N&#xff0c;即数组的个数(N<1000) 接下来的1行包括N个整数&#xff0c;其中每个…

wsl2安装mysql环境

安装完mysql后通过如下命令启动mysql service mysql start 会显示如下错误&#xff1a; mysql: unrecognized service 实际上上面显示的错误是由于mysql没有启动成功造成的 我们要想办法成功启动mysql才可以 1.通过如下操作就可以跳过密码直接进入mysql环境 2.如果想找到my…

nodejs+vue+elementui美食网站的设计与实现演示录像2023_0fh04

本次的毕业设计主要就是设计并开发一个美食网站软件。运用当前Google提供的nodejs 框架来实现对美食信息查询功能。当然使用的数据库是mysql。系统主要包括个人信息修改&#xff0c;对餐厅管理、用户管理、餐厅信息管理、菜系分类管理、美食信息管理、美食文化管理、系统管理、…

【百度翻译api】中文自动翻译为英文

欸&#xff0c;最近想做一些nlp的项目&#xff0c;做完了中文的想做做英文的&#xff0c;但是呢&#xff0c;国内爬虫爬取的肯定都是中文 &#xff0c;爬取外网的技术我没有尝试过&#xff0c;没有把握。所以我决定启用翻译&#xff0c;在这期间chatGPT给了我非常多的方法&…

关于电脑连接好WiFi却无法使用浏览器上网的一种解决方法

如果你的电脑的网络设置里选项是自动获取ip地址的话&#xff0c;那么大概率适用此方法。&#xff08;我这个已经是填好的&#xff0c;之前是自动获取&#xff09; 方法步骤&#xff1a;这里分两步 &#xff08;1&#xff09;首先确定无法使用浏览器上网的原因。&#xff08;比…

windows11连接上WiFi但是无法上网

电脑经常会出现网络等问题&#xff0c;win11在连接到WiFi&#xff0c;但是无法正常上网。进行网络诊断显示“该设备或资源&#xff08;Web代理&#xff09;未设置为接收端口7890”。借鉴过网络上许多方法都没有解决。可以尝试使用以下这种方式解决&#xff0c;本人亲测已解决。…

电脑显示wifi连接但是不能上网(dns无法连接)

网络问题 电脑显示wifi连接但是不能上网 1.使用手机等其它设备&#xff0c;连接同一个wifi&#xff0c;检查是否出现问题 如果其它设备也不能使用&#xff0c;则为网络本身的问题 如果不是&#xff0c;在继续检查电脑的问题 2.诊断问题 打开 “网络和Internet设置”找到下…

WIFI已连接,无法上网

wifi已经连接但显示无网络访问权限&#xff0c;查看IP&#xff0c;没有获取到IP。 解决方法&#xff1a; 1、在左下角Windows开始处打开【设置】界面 2、选择【更新和安全】 3、点击左侧窗格中的【恢复】。 4、点击【重置此电脑】下方的【开始】按钮。 5、删除所有内容 重置…

函数的模拟实现

题一&#xff1a; 模拟实现strncpy #include <stdio.h>void my_strncpy(char* arr2, char* arr1, size_t num){int i 0;for (i 0; i < num; i){*(arr2 i) *(arr1 i);}}int main(){char arr1[] "hello liangzai";char arr2[10] { 0 };//strncpy(ar…

家里WIFI连接上了但是无法上网的问题解决方案

今天下午回家&#xff0c;发现我家的WIFI网络连接上了&#xff0c;但是没有网络。草&#xff0c;我猜肯定又是隔壁小孩蹭我家WiFi了&#xff0c;于是我决定&#xff0c;是时候做个了断了。 一、重启路由器 刚开始连上了WiFi但是没网&#xff0c;这种时候可以选择 拔掉路由器 的…

win11系统连接上WiFi却无法上网怎么解决?

问题描述&#xff1a; 昨天更新了一下电脑系统&#xff0c;从win10家庭版更新到win11家庭版本&#xff0c;当天用的还是好好的&#xff0c;但是一夜之间&#xff0c;第二天打开电脑只能链接WiFi&#xff0c;但是不能上网&#xff0c;真的很令人纳闷。 原因分析&#xff1a; 1、…