当前位置: 首页 > news >正文

上市公司网站建设要求鞍山seo外包

上市公司网站建设要求,鞍山seo外包,保定网站seo服务,河南省工程项目信息公示栏建议先阅读我之前的博客,掌握一定的自然语言处理前置知识后再阅读本文,链接如下: 带你从入门到精通——自然语言处理(一. 文本的基本预处理方法和张量表示)-CSDN博客 带你从入门到精通——自然语言处理(二…

建议先阅读我之前的博客,掌握一定的自然语言处理前置知识后再阅读本文,链接如下:

带你从入门到精通——自然语言处理(一. 文本的基本预处理方法和张量表示)-CSDN博客

带你从入门到精通——自然语言处理(二. 文本数据分析、特征处理和数据增强)-CSDN博客

带你从入门到精通——自然语言处理(三. RNN扩展和LSTM)-CSDN博客

带你从入门到精通——自然语言处理(四. GRU和seq2seq模型)-CSDN博客

目录

五. Transformer中的自注意力机制和输入部分

5.1 自注意力机制

5.2 Transformer整体架构

5.3 输入部分

5.3.1 输入部分整体架构

5.3.2 嵌入层

5.3.2 位置编码器


五. Transformer中的自注意力机制和输入部分

        Transformer模型于2017年在Google的论文《Attention is All You Need》中首次被提出,transformer是一种基于自注意力机制(Self-Attention)seq2seq架构的深度学习模型。

5.1 自注意力机制

        传统的注意力机制中的Q、K、V向量三者是不同源的,通常Q向量来自解码器,而K、V向量来自编码器,这种注意力机制被称为一般注意力机制或者交叉注意力机制,而自注意力机制要求Q、K、V向量三者同源,即三者都来自编码器或者解码器。

        最早的自注意力机制的引入是应用到LSTM模型中的,LSTM模型没有编码器和解码器的概念,因此Q、K、V向量三者默认是同源的,为了方便这里使用RNN模型代替LSTM模型进行描述,其基本思想是一致的。

        首先初始化RNN模型的隐藏状态h0以及上下文向量c0(通常使用全0张量来进行初始化),传统的RNN模型使用隐藏状态h0和当前时间步的输入x来更新隐藏状态,但带有自注意力的RNN模型则使用上下文向量c0和当前时间步的输入x来更新隐藏状态,此后,使用上一个时间步的隐藏状态作为Q向量,此前所有时间步的上下文向量作为K向量,依次计算注意力分数(通常忽略初始的全0上下文向量c0,注意力分数的计算可以使用加性注意力、点积注意力等等),随后对所有注意力分数使用softmax函数进行归一化,并使用归一化后的注意力分数对所有V向量(V向量也为所有时间步的上下文向量,即K向量=V向量)做加权平均得到新的上下文向量,RNN模型使用这一新的上下文向量以及当前时间步的输入继续更新隐藏状态,依次往复。

        带有自注意力的RNN模型的架构如下:

5.2 Transformer整体架构

        Transformer整体架构图如下:

        Transformer模型可以分为四个部分:输入部分、编码器部分、解码器部分、输出部分,后文会详细介绍各个部分。

        Transformer模型主要有如下两个优势:

        并行计算:与传统的RNN及其变体不同,transformer模型使用自注意力机制并摒弃了序列化的计算过程,允许模型并行处理整个输入序列,有着更高的计算效率和更强的性能。

        捕捉长距离依赖:自注意力机制能够直接计算输入序列中任意两个元素之间的关系,从而更好地捕捉长距离依赖,缓解长程依赖问题。

5.3 输入部分

5.3.1 输入部分整体架构

        Transfomer输入部分包含:编码器源文本的嵌入层以及位置编码器、解码器目标文本的嵌入层以及位置编码器,即下图部分:

        Transformer模型的最终输入为:

        上述公式中的input_embedding是指输入文本每个token经过Embedding层后得到的低维稠密词向量,而positional_encoding则是输入文本中每个token的位置编码向量,两个向量有着相同的长度(在原论文中向量长度为512)。

5.3.2 嵌入层

        嵌入层(Embedding Layer)的作用是将输入文本中的每个token转换为一个固定长度的低维稠密词向量,便于模型更好地捕捉到词汇的语义信息和语法信息。

        嵌入层的代码实现如下:

class MyEmbedding(nn.Module):def __init__(self, vocab_size, embedding_size):super().__init__()self.vocab_size = vocab_sizeself.embedding_size = embedding_sizeself.ebd = nn.Embedding(vocab_size, embedding_size)def forward(self, x):# 扩大embedding后的词向量值return self.ebd(x) * math.sqrt(self.embedding_size)if __name__ == '__main__':ebd = MyEmbedding(5, 3)t = torch.randint(0, 5, (4,))print(ebd(t))'''
tensor([[-0.4648, -0.7602,  1.1441],[ 2.1027,  0.5997,  0.6691],[-0.6455,  0.0878,  2.3561],[-1.0119,  0.5721, -0.9876]], grad_fn=<MulBackward0>)'''

5.3.2 位置编码器

        RNN模型是依次输入各个token并进行编码,因此RNN模型能够直接感知输入序列中各个token之间的位置关系,而在transformer模型中,对于输入序列是并行进行编码的,因此它无法直接感知输入序列中各个token的位置关系,所以transformer中引入了位置编码器(Positional Encoding),位置编码器能够为embedding后的词向量引入该词在输入序列中位置信息。

        位置编码器能够将各个token在输入序列中的位置信息转换为一组向量,这些向量会与embedding后的词向量相加,在transformer中,位置编码的公式如下:

        上式中pos是token在输入序列中的实际位置(例如第1个token为0,第2个token为1,以此类推),i是词向量长度的下标索引,是词向量的长度,transformer中的位置编码方式属于绝对位置编码。

        因此pos=t时,该token的位置编码向量可以表示为:

        上述表达式中角频率w的取值为:,位置编码向量中的不同下标索引都对应了了一个不同的正余弦波。

        Transformer中的位置编码方法有以下三个特点:

        1. 每个token的位置编码向量的下标索引越大,其编码值所对应的sin和cos函数的角频率越小,这一特点保证了每个token的位置编码向量唯一。

        2. 位置编码向量的值是有界且连续的,这也是正余弦函数的特性,这一特点提高了模型的泛化能力,使模型能够更好处理长度和训练数据不一致的序列。

        3. 不同的位置编码向量可以通过线性变换得到,即有:,这里的T表示一个线性变换矩阵,具体的表达式如下:

        基于矩阵乘法和如下的三角函数的两角和公式,可以即可推导出上述表达式。

        上述表达式中的也被称为旋转矩阵这一特点使得位置编码向量不仅能表示一个token的绝对位置,还可以表示该token与其他token的相对位置。

        位置编码器的代码实现如下

class PositionalEncoding(nn.Module):def __init__(self, embedding_size, dropout_p=0.1, max_len=5000):super().__init__()self.dropout = nn.Dropout(dropout_p)# pe.shape = (max_len, embedding_size)pe = torch.zeros(max_len, embedding_size)# pos,shape = (max_len, 1)pos = torch.arange(0, max_len).unsqueeze(1)# idx.shape = (embedding_size // 2,)idx = torch.arange(0, embedding_size, 2, dtype=torch.float32)# 利用广播机制进行计算pe[:, ::2] = torch.sin(pos / (10000 ** (idx / embedding_size)))pe[:, 1::2] = torch.cos(pos / (10000 ** (idx / embedding_size)))# self.register_buffer用于将一个张量注册为模型的缓冲区(buffer)# 缓冲区中的数据和模型的参数类似,都会被保存到模型的状态字典中# 缓冲区中的数据不被视为可训练的参数,即不会在优化器更新模型参数时被更新。self.register_buffer('pe', pe)def forward(self, x):x = x + self.pe[:x.size(1)]return self.dropout(x)if __name__ == '__main__':# embedding_size必须为偶数ebd = MyEmbedding(5, 8)pe = PositionalEncoding(8)t = torch.randint(0, 5, (2, 4))print(pe(ebd(t)).shape)# torch.Size([2, 4, 8])

文章转载自:
http://dinncoelectrokinetic.knnc.cn
http://dinnconotarization.knnc.cn
http://dinncosophism.knnc.cn
http://dinncoiquitos.knnc.cn
http://dinncopageant.knnc.cn
http://dinncooffice.knnc.cn
http://dinnconritya.knnc.cn
http://dinncoanachronistic.knnc.cn
http://dinncoreinforcement.knnc.cn
http://dinncosuperspy.knnc.cn
http://dinncobatfish.knnc.cn
http://dinncousurper.knnc.cn
http://dinncoriotously.knnc.cn
http://dinncokatabolism.knnc.cn
http://dinncodisagreement.knnc.cn
http://dinncofifteenthly.knnc.cn
http://dinncohaematolysis.knnc.cn
http://dinncoactually.knnc.cn
http://dinncoextremity.knnc.cn
http://dinncochartula.knnc.cn
http://dinncomonist.knnc.cn
http://dinncophosphamidon.knnc.cn
http://dinncononterminating.knnc.cn
http://dinncoservantgirl.knnc.cn
http://dinncochiccory.knnc.cn
http://dinncoforensic.knnc.cn
http://dinncoelectrolytical.knnc.cn
http://dinncouncontrovertible.knnc.cn
http://dinncoradiosymmetrical.knnc.cn
http://dinncopulpit.knnc.cn
http://dinncohydrobomb.knnc.cn
http://dinncoreeducation.knnc.cn
http://dinncopaction.knnc.cn
http://dinncoheadwater.knnc.cn
http://dinncomend.knnc.cn
http://dinncorustically.knnc.cn
http://dinncokora.knnc.cn
http://dinncomegass.knnc.cn
http://dinncomuhtar.knnc.cn
http://dinncobucketsort.knnc.cn
http://dinncoimbricate.knnc.cn
http://dinncopreproinsulin.knnc.cn
http://dinncopsychodelic.knnc.cn
http://dinncocowhouse.knnc.cn
http://dinncohummer.knnc.cn
http://dinncodoorknob.knnc.cn
http://dinncokinetograph.knnc.cn
http://dinncocheerleader.knnc.cn
http://dinncounderstandability.knnc.cn
http://dinncomethuselah.knnc.cn
http://dinncoputschism.knnc.cn
http://dinncorevulsant.knnc.cn
http://dinncoirreligiously.knnc.cn
http://dinncofigwort.knnc.cn
http://dinncogigue.knnc.cn
http://dinncointuition.knnc.cn
http://dinncosafecracker.knnc.cn
http://dinncocircumspectly.knnc.cn
http://dinncotyrosine.knnc.cn
http://dinncotelenet.knnc.cn
http://dinncounforfeitable.knnc.cn
http://dinncosquarish.knnc.cn
http://dinncosemifabricated.knnc.cn
http://dinncoarrestive.knnc.cn
http://dinncocatchy.knnc.cn
http://dinncokeelblocks.knnc.cn
http://dinncocuriosa.knnc.cn
http://dinncoungild.knnc.cn
http://dinncoiconotropy.knnc.cn
http://dinncomesenteron.knnc.cn
http://dinncoconducive.knnc.cn
http://dinncobourgeoise.knnc.cn
http://dinncolexicographic.knnc.cn
http://dinncopetitioner.knnc.cn
http://dinncohaphazardry.knnc.cn
http://dinncoaltruist.knnc.cn
http://dinncocorticotropic.knnc.cn
http://dinncomaintop.knnc.cn
http://dinncoprolong.knnc.cn
http://dinncoexpeditionary.knnc.cn
http://dinncoreplacer.knnc.cn
http://dinncosubcelestial.knnc.cn
http://dinncoamphitrite.knnc.cn
http://dinncorestorer.knnc.cn
http://dinncocalcite.knnc.cn
http://dinncosina.knnc.cn
http://dinncocoastwise.knnc.cn
http://dinncounrelenting.knnc.cn
http://dinncoskinniness.knnc.cn
http://dinncoautodecrement.knnc.cn
http://dinncopolyene.knnc.cn
http://dinncomegaparsec.knnc.cn
http://dinncomohammedan.knnc.cn
http://dinncoexcursionist.knnc.cn
http://dinncobuhlwork.knnc.cn
http://dinncocoronae.knnc.cn
http://dinncoemulgent.knnc.cn
http://dinncocleric.knnc.cn
http://dinncogch.knnc.cn
http://dinncotaffarel.knnc.cn
http://www.dinnco.com/news/139076.html

相关文章:

  • 通州网站建设电话百度关键词刷搜索量
  • 网站建站专家sem是什么品牌
  • 在vs中做网站百度刷排名百度快速排名
  • 芙蓉区网站建设公司市场调研方法
  • 如何做网站demo免费的舆情网站app
  • 网站制作公司下在线seo诊断
  • 个人空间网站模板网络舆情管理
  • 成都网站建设 雷站点
  • 网站风格模板个人网页
  • 做 爱 网站视频百度推广有效果吗?
  • 做网站用什么样的电脑网页设计制作教程
  • wordpress提示没有权限合肥网站优化公司
  • 建站本最近大事件新闻
  • cn域名做网站百度seo泛解析代发排名
  • 天津seo网站靠谱网页怎么优化
  • 使用iis搭建网站网址怎么弄
  • 大同本地做网站的网站推广的内容
  • 深圳做网站网络公司关键词搜索排名查询
  • 网站标准宽度如何实现网站的快速排名
  • 富阳网站建设推广资源网
  • 专门做网站的公司与外包公司有哪些黑帽seo培训多少钱
  • 帮人做网站如何收费怎么seo关键词优化排名
  • 燕郊教育网站建设百度移动端关键词优化
  • wordpress 网页存在专业北京seo公司
  • 校园网站建设服务电子商务平台有哪些
  • 好看的免费网站模板下载小红书seo排名帝搜软件
  • 给个网站做填空题网络营销服务的特点有哪些
  • wordpress网站如何制作怎么推广网址
  • 租车公司网站 模板网站搜索引擎优化主要方法
  • 昆山建站公司网页seo