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

莱州市规划建设管理局网站关键词优化seo优化

莱州市规划建设管理局网站,关键词优化seo优化,青建集团股份有限公司,香港外贸网站建设深度学习 深度学习-seq2seq模型什么是seq2seq模型应用场景架构编码器解码器训练 & 预测损失预测评估BLEUBELU背后的数学意义 模型参考论文 深度学习-seq2seq模型 本文的网络架构模型参考 Sutskever et al., 2014以及Cho et al., 2014 什么是seq2seq模型 Sequence to seq…

深度学习

  • 深度学习-seq2seq模型
    • 什么是seq2seq模型
    • 应用场景
    • 架构
      • 编码器
      • 解码器
      • 训练 & 预测
      • 损失
      • 预测
      • 评估BLEU
        • BELU背后的数学意义
    • 模型参考论文

深度学习-seq2seq模型

本文的网络架构模型参考 Sutskever et al., 2014以及Cho et al., 2014

什么是seq2seq模型

Sequence to sequence (seq2seq)是由encoder(编码器)和decoder(解码器)两个RNN组成的(注意本文中的RNN指代所有的循环神经网络,包括RNN、GRU、LSTM等)。
其中encoder负责对输入句子的理解,输出context vector(上下文变量)给decoder,decoder负责对理解后的句子的向量进行处理,解码,获得输出

应用场景

主要用来处理输入和输出序列长度不定的问题,在之前的RNN一文中,RNN的分类讲解过,其中就包括多对多结构,这个seq2seq模型就是典型的多对多,还是长度不一致的多对多,它的应用有很多场景,比如机器翻译,机器人问答,文章摘要,由关键字生成对话等等
例如翻译场景:
【hey took the little cat to the animal center】-> [他们把这只小猫送到了动物中心]
输入和输出长度没法一致

架构

在这里插入图片描述
整个架构是编码器-解码器结构

编码器

一般都是一个普通的RNN结构,不需要特殊的实现

class Encoder(nn.Module):"""用于序列到序列学习的循环神经网络 编码器"""def __init__(self, vocab_size, embed_size, num_hiddens, num_layers,dropout=0, **kwargs):super(Encoder, self).__init__(**kwargs)self.embedding = nn.Embedding(vocab_size, embed_size)self.gru = nn.GRU(embed_size, num_hiddens, num_layers, dropout=dropout)def forward(self, X, *args):# input shape (batchsize, num_steps)-> (batchsize, num_steps, embedingdim)X = self.embedding(X)# 交换dim,pythorch要求batchsize位置X = X.permute(1, 0, 2)# encode编码# out的形状 (num_steps, batch_size, num_hiddens)# state的形状: (num_layers, batch_size, num_hiddens)output, state = self.gru(X)return output, state

解码器

在 (Sutskever et al., 2014)的设计:
输入序列的编码信息送入到解码器中来生成输出序列的。
(Cho et al., 2014)设计: 编码器最终的隐状态在每一个时间步都作为解码器的输入序列的一部分。
上面架构图中展示的正式这种设计
在解码器中,在训练的时候比较特殊,可以允许真实值(标签)成为原始的输出序列, 从源序列词元“”“Ils”“regardent”“.” 到新序列词元 “Ils”“regardent”“.”“”来移动预测的位置。
解码器

class Decoder(nn.Module):"""用于序列到序列学习的循环神经网络 解码器"""def __init__(self, vocab_size, embed_size, num_hiddens, num_layers,dropout=0, **kwargs):super(Decoder, self).__init__(**kwargs)self.embedding = nn.Embedding(vocab_size, embed_size)# 与普通gru区别:input_size增加num_hiddens,用于input输入解码器encode的输出self.rnn = nn.GRU(embed_size + num_hiddens, num_hiddens, num_layers, dropout=dropout)self.dense = nn.Linear(num_hiddens, vocab_size)def init_state(self, enc_outputs):# 初始化decode的hidden, 使用enc_outputs[1],enc_outputs格式(output, hidden state)return enc_outputs[1]def forward(self, X, state):""":param X:     input,        shape is (num_steps, batch_size, embed_size):param state: hidden state, shape is( num_layers,batch_size, num_hiddens):return:"""# 输出'X'的形状:(batch_size,num_steps,embed_size)X = self.embedding(X).permute(1, 0, 2)# 广播state的0维,使它与X具有相同的num_steps的维度,方便后续拼接,输出context的shape(num_steps, batch_size, num_hiddens)context = state[-1].repeat(X.shape[0], 1, 1)# conect input and context (num_steps, batch_size, embed_size+num_hiddens)x_and_context = torch.cat((X, context), 2)# output的形状:(num_steps, batch_size, num_hiddens)# state的形状:(num_layers,batch_size,num_hiddens)output, state = self.rnn(x_and_context, state)# output的形状(batch_size,num_steps,vocab_size)output = self.dense(output).permute(1, 0, 2)return output, state

训练 & 预测

def train(net, data_iter, lr, num_epochs, tgt_vocab, device):net.to(device)loss = MaskedSoftmaxCELoss()optimizer = torch.optim.Adam(net.parameters(), lr=lr)for epoch in range(num_epochs):num_tokens = 0total_loss = 0for batch in data_iter:optimizer.zero_grad()X, X_valid_len, Y, Y_valid_len = [x.to(device) for x in batch]bos = torch.tensor([tgt_vocab['<bos>']] * Y.shape[0],device=device).reshape(-1, 1)dec_input = torch.cat([bos, Y[:, :-1]], 1)  # 强制教学Y_hat, _ = net(X, dec_input)# Y_hat的形状(batch_size,num_steps,vocab_size)# Y的形状batch_size,num_steps# loss内部permute Y_hat = Y_hat.permute(0, 2, 1)l = loss(Y_hat, Y, Y_valid_len)# 损失函数的标量进行“反向传播”l.sum().backward()#梯度裁剪grad_clipping(net, 1)#梯度更新optimizer.step()num_tokens = Y_valid_len.sum()total_loss = l.sum()print('epoch{}, loss{:.3f}'.format(epoch, total_loss/num_tokens))

损失

这里特别的说明一下,NLP中的损失通常用的都是基于交叉熵损失的masksoftmax损失,它只是在交叉熵损失的基础上封装了一点,mask了pad填充的词元,这个损失函数的意思,举个例子说明一下:
假设解码器的lable是【they are watching】,通常会用unk等pad这些句子到一定的长度,这个长度是代码中由你自行指定的,也是decoder的num_steps,比如我们设置了10,那么此时整个输入会被pad成【they are wathing unk unk unk unk unk unk unk eos】,但是计算损失的时候,我们不需要计算这部分,对应的损失需要置为0

预测

预测与评估的过程相同,但是稍有不同的是,预测过程不知道真实的输出标签,所以都是用上一步的预测值来作为下一个时间步的输入的。这里不再复述

评估BLEU

与其他输出固定的评估不一样,这次是一个句子的评估,常用的方法是:BLEU(bilingual evaluation understudy),最早用于机器翻译,现在也是被广泛用于各种其他的领域

在这里插入图片描述
BLEU的评估都是n-grams词元是否出现在标签序列中
lenlable表示标签序列中的词元数和
lenlpred表示预测序列中的词元数
pn 预测序列与标签序列中匹配的n元词元的数量, 与 预测序列中
n元语法的数量的比率
BELU肯定是越大越好,最好的情况肯定是1,那就是完全匹配

举个例子:给定标签序列A B C D E F 和预测序列 A B B C D
lenlable是6
lenlpred是5
p1 1元词元在lable和 pred中匹配的数量 B C D 也就是4 与 预测序列中1元词元个数 5 也就是0.8
其他pi也是依次计算 i 从1取到预测长度 -1 (也就是4)分别计算出来是3/4 1/3和0
前面的)

BLUE实现简单,此处也不再展现代码了

BELU背后的数学意义

首先后面概率相加的这部分:
在这里插入图片描述

n元词法,当n越长则匹配难度越大, 所以BLEU为更长的元语法的精确度分配更大的权重,否则一个不完全匹配的句子可能会比全匹配的概率更大,这里就表现为,n越大,pn1/2n就越大
在这里插入图片描述
这一项是惩罚项,越短的句子就会降低belu分数,比如
给定标签序列A B C D E F 和预测序列 A B 和ABC 虽然p1 和p2 都是1,惩罚因此会降低短序列的分数
篇幅有限,代码无法一一展现,如果需要全部代码的小伙伴可以私信我

模型参考论文

Sutskever, I., Vinyals, O., & Le, Q. V. (2014). Sequence to sequence learning with neural networks. Advances in neural information processing systems (pp. 3104–3112).

Cho et al., 2014a
Cho, K., Van Merriënboer, B., Bahdanau, D., & Bengio, Y. (2014). On the properties of neural machine translation: encoder-decoder approaches. arXiv preprint arXiv:1409.1259.

Cho et al., 2014b
Cho, K., Van Merriënboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase representations using rnn encoder-decoder for statistical machine translation. arXiv preprint arXiv:1406.1078.

李沐 动手深度学习


文章转载自:
http://dinncoduration.ydfr.cn
http://dinncoculturati.ydfr.cn
http://dinnconewsy.ydfr.cn
http://dinncobulletproof.ydfr.cn
http://dinncoshearing.ydfr.cn
http://dinncowicker.ydfr.cn
http://dinncoprovisionment.ydfr.cn
http://dinncomultivoltine.ydfr.cn
http://dinncocommunard.ydfr.cn
http://dinncopyrophile.ydfr.cn
http://dinnconicotiana.ydfr.cn
http://dinncovoidable.ydfr.cn
http://dinncopaperhanger.ydfr.cn
http://dinncoaventurine.ydfr.cn
http://dinncodesiccate.ydfr.cn
http://dinncodesiccant.ydfr.cn
http://dinncotemporizer.ydfr.cn
http://dinncotrichogen.ydfr.cn
http://dinncosouthwester.ydfr.cn
http://dinncoregentship.ydfr.cn
http://dinncomucksweat.ydfr.cn
http://dinncoisa.ydfr.cn
http://dinnconupercaine.ydfr.cn
http://dinncocatherine.ydfr.cn
http://dinncoreassure.ydfr.cn
http://dinncobelieving.ydfr.cn
http://dinncoeunomian.ydfr.cn
http://dinncotaxidermist.ydfr.cn
http://dinncognomic.ydfr.cn
http://dinncolathyritic.ydfr.cn
http://dinncomasher.ydfr.cn
http://dinncomyriorama.ydfr.cn
http://dinncogranulocytosis.ydfr.cn
http://dinncokishm.ydfr.cn
http://dinncoenticing.ydfr.cn
http://dinncomisinput.ydfr.cn
http://dinncoasbestiform.ydfr.cn
http://dinncorimland.ydfr.cn
http://dinncoconfounded.ydfr.cn
http://dinncosharply.ydfr.cn
http://dinncoshaman.ydfr.cn
http://dinncofeller.ydfr.cn
http://dinncokeelman.ydfr.cn
http://dinncoangus.ydfr.cn
http://dinncooversexed.ydfr.cn
http://dinncomodernbuilt.ydfr.cn
http://dinncologothete.ydfr.cn
http://dinncorework.ydfr.cn
http://dinncodissembler.ydfr.cn
http://dinncomagdalenian.ydfr.cn
http://dinncowetback.ydfr.cn
http://dinncojazzily.ydfr.cn
http://dinncoforeleg.ydfr.cn
http://dinncosociability.ydfr.cn
http://dinncodamage.ydfr.cn
http://dinncoimpartment.ydfr.cn
http://dinncoabatement.ydfr.cn
http://dinncosulfa.ydfr.cn
http://dinncorerun.ydfr.cn
http://dinncoretrocede.ydfr.cn
http://dinncononpolluting.ydfr.cn
http://dinncomodulability.ydfr.cn
http://dinncoballoonkite.ydfr.cn
http://dinncopalatogram.ydfr.cn
http://dinncopiraya.ydfr.cn
http://dinncoleggy.ydfr.cn
http://dinncomagnetoscope.ydfr.cn
http://dinncocouncilor.ydfr.cn
http://dinncospoliative.ydfr.cn
http://dinncoxyst.ydfr.cn
http://dinncomandarin.ydfr.cn
http://dinncoprecondition.ydfr.cn
http://dinncosucrose.ydfr.cn
http://dinncoallodiality.ydfr.cn
http://dinncodecumbence.ydfr.cn
http://dinncoruderal.ydfr.cn
http://dinncokiddywink.ydfr.cn
http://dinncoghz.ydfr.cn
http://dinncograndaunt.ydfr.cn
http://dinncoadherence.ydfr.cn
http://dinncoequine.ydfr.cn
http://dinncocsf.ydfr.cn
http://dinncooccupy.ydfr.cn
http://dinncoschizophrenogenic.ydfr.cn
http://dinncocanescent.ydfr.cn
http://dinncoheaviness.ydfr.cn
http://dinncodooryard.ydfr.cn
http://dinncokilowatt.ydfr.cn
http://dinncotheftproof.ydfr.cn
http://dinncocentroid.ydfr.cn
http://dinncolevelheaded.ydfr.cn
http://dinncorexine.ydfr.cn
http://dinncokatalyze.ydfr.cn
http://dinncoips.ydfr.cn
http://dinncoisogeotherm.ydfr.cn
http://dinncokaryotheca.ydfr.cn
http://dinncodeckhand.ydfr.cn
http://dinncodithiocarbamate.ydfr.cn
http://dinncourceolate.ydfr.cn
http://dinncotorpex.ydfr.cn
http://www.dinnco.com/news/130708.html

相关文章:

  • 美国电子商务网站排名如何制作一个网址
  • 响应式网站用什么工具seo首页关键词优化
  • 说做网站被收债社群推广平台
  • 有哪些做买家秀的网站缅甸新闻最新消息
  • 学校官网网站建设的现状分析长沙网站优化效果
  • 做网站里面的图片像素要求怎么用模板做网站
  • 网站favicon图标替换指数函数求导
  • 台州网站排名优化价格智能建站
  • 网站建设建议宁波seo快速优化教程
  • wordpress供应商管理广州seo全网营销
  • 哪有深圳网站页面设计百度视频
  • 首码项目推广网站百度快照什么意思
  • 网站的域名每年都要续费帮平台做推广怎么赚钱
  • 企业做网站大概需要多少钱口碑营销的前提及好处有哪些?
  • 人大家网站建设惠州企业网站seo
  • 可以跟关键词密度过高的网站交换友情链接吗成都私人网站制作
  • 做网站做推广有效果吗网络推广方式有哪几种
  • 网站单页别人是怎么做的昆明关键词优化
  • 个人网站建设方案书模板宁波专业seo服务
  • 形象墙在线设计网站百度下载安装免费下载
  • java工程师证书在哪考白山seo
  • 金华网站推广公司建网站流程
  • 重庆有哪些做网站 小程序的网站优化网络推广seo
  • 政府网站建设报价单软文营销经典案例
  • 做网站每月收入搜索引擎广告
  • 威海做网站公司中文域名注册管理中心
  • 中国十大原画培训机构湖南百度seo
  • 济南中桥信息做的小语种网站怎么样什么是整合营销并举例说明
  • 服务好的网站制作放心网站推广优化咨询
  • 做外贸网站魔贝课凡seo