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

百度网页版官方优化的意思

百度网页版官方,优化的意思,做网站留言板需要什么条件,做付费网站理解词嵌入 重要的是,进行one-hot编码时,你做了一个与特征工程有关的决策。你向模型中注入了有关特征空间结构的基本假设。这个假设是:你所编码的不同词元之间是相互独立的。事实上,one-hot向量之间都是相互正交的。对于单词而言…

理解词嵌入

重要的是,进行one-hot编码时,你做了一个与特征工程有关的决策。你向模型中注入了有关特征空间结构的基本假设。这个假设是:你所编码的不同词元之间是相互独立的。事实上,one-hot向量之间都是相互正交的。对于单词而言,这个假设显然是错误的。单词构成了一个结构化的空间,单词之间共享信息。在大多数句子中,​“movie”和“film”这两个词是可以互换的,所以表示“movie”的向量与表示“film”的向量不应该正交,它们应该是同一个向量,或者非常相似。说得更抽象一点,两个词向量之间的几何关系应该反映这两个单词之间的语义关系。例如,在一个合理的词向量空间中,同义词应该被嵌入到相似的词向量中,一般来说,任意两个词向量之间的几何距离(比如余弦距离或L2距离)应该与这两个单词之间的“语义距离”有关。含义不同的单词之间应该相距很远,而相关的单词应该相距更近。词嵌入是实现这一想法的词向量表示,它将人类语言映射到结构化几何空间中。

one-hot编码得到的向量是二进制的、稀疏的(大部分元素是0)​、高维的(维度大小等于词表中的单词个数)​,而词嵌入是低维的浮点向量(密集向量,与稀疏向量相对)​,如图11-2所示。常见的词嵌入是256维、512维或1024维(处理非常大的词表时)​。与此相对,one-hot编码的词向量通常是20 000维(词表中包含20 000个词元)或更高。因此,词嵌入可以将更多的信息塞入更少的维度中。

在这里插入图片描述

词嵌入是密集的表示,也是结构化的表示,其结构是从数据中学习得到的。相似的单词会被嵌入到相邻的位置,而且嵌入空间中的特定方向也是有意义的。为了更清楚地说明这一点,我们来看一个具体示例。在图11-3中,4个词被嵌入到二维平面中:这4个词分别是Cat(猫)​、Dog(狗)​、Wolf(狼)和Tiger(虎)​。利用我们这里选择的向量表示,这些词之间的某些语义关系可以被编码为几何变换。例如,从Cat到Tiger的向量与从Dog到Wolf的向量相同,这个向量可以被解释为“从宠物到野生动物”向量。同样,从Dog到Cat的向量与从Wolf到Tiger的向量也相同,这个向量可以被解释为“从犬科到猫科”向量。

在这里插入图片描述

在现实世界的词嵌入空间中,常见的有意义的几何变换示例包括“性别”向量和“复数”向量。例如,将“king”​(国王)向量加上“female”​(女性)向量,得到的是“queen”​(女王)向量。将“king”​(国王)向量加上“plural”​(复数)向量,得到的是“kings”向量。词嵌入空间通常包含上千个这种可解释的向量,它们可能都很有用。我们来看一下在实践中如何使用这样的嵌入空间。有以下两种方法可以得到词嵌入。在完成主任务(比如文档分类或情感预测)的同时学习词嵌入。在这种情况下,一开始是随机的词向量,然后对这些词向量进行学习,学习方式与学习神经网络权重相同。在不同于待解决问题的机器学习任务上预计算词嵌入,然后将其加载到模型中。这些词嵌入叫作预训练词嵌入(pretrained word embedding)​。我们来分别看一下这两种方法。

利用Embedding层学习词嵌入

是否存在一个理想的词嵌入空间,它可以完美地映射人类语言,并可用于所有自然语言处理任务?这样的词嵌入空间可能存在,但我们尚未发现。此外,并不存在人类语言这种东西。世界上有许多种语言,它们之间并不是同构的,因为语言反映的是特定文化和特定背景。但从更实际的角度来说,一个好的词嵌入空间在很大程度上取决于你的任务,英语影评情感分析模型的完美词嵌入空间,可能不同于英语法律文件分类模型的完美词嵌入空间,因为某些语义关系的重要性因任务而异。因此,合理的做法是对每个新任务都学习一个新的嵌入空间。幸运的是,反向传播让这种学习变得简单,Keras则使其变得更简单。我们只需学习Embedding层的权重,如代码清单11-15所示。

代码清单11-15 将Embedding层实例化

embedding_layer = layers.Embedding(input_dim=max_tokens, output_dim=256)---- Embedding层至少需要两个参数:词元个数和嵌入维度(这里是256

你可以将Embedding层理解为一个字典,它将整数索引(表示某个单词)映射为密集向量。它接收整数作为输入,在内部字典中查找这些整数,然后返回对应的向量。Embedding层的作用实际上就是字典查询,

如图11-4所示。

在这里插入图片描述

Embedding层的输入是形状为(batch_size, sequence_length)的2阶整数张量,其中每个元素都是一个整数序列。该层返回的是一个形状为(batch_size,sequence_length, embedding_dimensionality)的3阶浮点数张量。将Embedding层实例化时,它的权重(内部的词向量字典)是随机初始化的,就像其他层一样。在训练过程中,利用反向传播来逐渐调节这些词向量,改变空间结构,使其可以被下游模型利用。训练完成之后,嵌入空间会充分地显示结构。这种结构专门针对模型训练所要解决的问题。我们来构建一个包含Embedding层的模型,为我们的任务建立基准,如代码清单11-16所示。

代码清单11-16 从头开始训练一个使用Embedding层的模型

inputs = keras.Input(shape=(None,), dtype="int64")
embedded = layers.Embedding(input_dim=max_tokens, output_dim=256)(inputs)
x = layers.Bidirectional(layers.LSTM(32))(embedded)
x = layers.Dropout(0.5)(x)
outputs = layers.Dense(1, activation="sigmoid")(x)
model = keras.Model(inputs, outputs)
model.compile(optimizer="rmsprop",loss="binary_crossentropy",metrics=["accuracy"])
model.summary()callbacks = [keras.callbacks.ModelCheckpoint("embeddings_bidir_gru.keras",save_best_only=True)
]
model.fit(int_train_ds, validation_data=int_val_ds, epochs=10,callbacks=callbacks)
model = keras.models.load_model("embeddings_bidir_gru.keras")
print(f"Test acc: {model.evaluate(int_test_ds)[1]:.3f}")

模型训练速度比one-hot模型快得多(因为LSTM只需处理256维向量,而不是20 000维)​,测试精度也差不多(87%)​。然而,这个模型与简单的二元语法模型相比仍有一定差距。部分原因在于,这个模型所查看的数据略少:二元语法模型处理的是完整的评论,而这个序列模型在600个单词之后截断序列。

http://www.dtcms.com/wzjs/81998.html

相关文章:

  • 中英双语网站程序网站关键词优化多少钱
  • 哪个网站可以做身份核验国际新闻界官网
  • 淘宝网时时彩做网站是真的吗湖北短视频seo营销
  • 这个网站做海外推广app拉新推广平台渠道商
  • 手机电脑网站设计站长统计官方网站
  • 做公司网站思路软件开发工具
  • 西安做网站公司哪家好河南郑州最新事件
  • wordpress mobile themes百度seo排名优化联系方式
  • wordpress服务器出错seo技术公司
  • 怎么做卖卷网站小红书seo是什么
  • 哈密做网站做网页多少钱一个页面
  • 简述网站的制作流程站内营销推广方式
  • 个人网站推广渠道 微博 贴吧优化合作平台
  • 网站做联盟广告能赚钱吗吉林seo排名公司
  • 苏州新区做网站关键词搜索站长工具
  • 在香港做网站需要什么培训网登录入口
  • 做网站看什么书百度官方入口
  • 网站建设存在的问题及建议乐云seo
  • 上海建站网络科技有限公司百度首页
  • 做网站主要学什么海口百度seo公司
  • wordpress 主机安装教程深圳seo公司
  • 网站制作教程步骤百度联盟广告点击一次收益
  • 如果网站没有做icp备案吗磁力神器
  • 加强烟草行业政府网站建设管理百度空间登录入口
  • 网站全屏上下滚动灰色词seo推广
  • 让自己的电脑做网站的服务器孔宇seo
  • 正规微商平台搜索引擎优化的意思
  • 做抖音的网站手机百度网页版
  • 淘客网站推广免备案排名优化公司哪家靠谱
  • 页面模板怎么编辑云南seo公司