在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文介绍Embedding的概念,给出了如何在TensorFlow中进行Embedding训练的简单示例,并解释了如何使用TensorBoard Embedding投影查看嵌入。前两部分是针对机器学习或TensorFlow的新手, Embedding投影如何做面向各级用户。 一个Embedding是从离散对象(如单词)到实数向量的映射。例如,英文单词(成千上万个)的300维Embedding可以包括:
这些向量中的各个维度通常没有固有的意义。机器学习要利用的是向量之间的位置和距离的整体模式。 Embedding对于机器学习的输入非常重要。更普遍的分类器和神经网络,一般是对实数的向量起作用。他们最好是在密集向量上训练,向量中所有的值都有助于定义一个对象。然而,对于机器学习的许多重要的输入,例如文字,没有自然的矢量表示。Embedding函数是将这些离散输入对象转换为有用的连续向量的标准和有效的方法。 Embedding作为机器学习的输出也是有价值的。由于Embedding将对象映射到向量,因此应用程序可以使用向量空间中的相似性(例如,欧几里得距离或向量之间的角度)作为对象相似度的强大而灵活的度量。一个常见的用途是找到最近的邻居。例如,使用与上面相同的单词Embedding,这里是每个单词的三个最近的邻居和相应的角度:
从上面可以看到,苹果和橙子在某种程度上比柠檬和橙子(相距45.3°)(相隔48.3°)更相似。 在TensorFlow Embedding要在TensorFlow中创建词Embedding,我们首先将文本分成单词,然后为词汇表中的每个单词分配一个整数。让我们假设这已经完成了,
之后,张量 Embedding可以使用许多网络类型训练,并且可以使用各种损失函数和数据集。例如,给定大量句子,可以使用递归神经网络来预测来自前一个单词的下一个单词,或者可以训练两个网络来做多语言翻译。这些方法在词的矢量表示教程中有介绍。 可视化EmbeddingTensorBoard包括Embedding Projector(Embedding投影),这个工具可以让你交互式地显示Embedding。该工具可以读取模型中的Embedding,并在二维或三维中渲染它们。 Embedding投影有三个面板:
投影Embedding投影提供三种方法来降低数据集的维度。
其他有用的文章是如何有效地使用t-SNE和主成分分析直观解释。 浏览您可以通过使用自然click-and-drag手势进行缩放,旋转和平移来做可视方化浏览。将鼠标悬停在某个点上会显示所有元数据。您也可以检查最近邻子集。点击一个点会导致右窗格列出最近的邻居,以及到当前点的距离。投影中还强调了最近邻的点。 将视图限制为点的子集并仅在这些点上执行投影有时是有用的。为此,您可以通过多种方式选择点:
然后点击“隔离NNN点”按钮,它位于左侧“检查器”窗格顶部,下图显示了101个被选中的点,可以让用户单击“隔离101点”: 在单词Embedding数据集中选择“important”的最近邻居。 高级提示:使用自定义投影进行过滤很强大,下面,我们过滤了“politics”的100个最近邻居,并将它们投影到“worst” – “best”向量上作为x轴。 y轴是随机的。因此,您可以在右侧找到“ideas”,“science”,“perspective”,“journalism”,但在左侧找到“crisis”,“violence”和“conflict”。
要共享您的发现,您可以使用右下角的书签面板,并将当前状态(包括任何投影的计算坐标)保存为小文件。然后可以将投影指向一组一个或多个这些文件,制作下面的面板。然后其他用户可以通过一系列书签浏览。 Metadata(元数据)如果您正在使用Embedding,则可能需要将标签/图像附加到数据点。您可以通过生成包含每个点的标签的元数据文件并在Embedding投影的数据面板中单击”Load data”来完成此操作。 元数据可以是标签或图像,它们存储在单独的文件中。对于标签,格式应该是aTSV文件(以红色显示的制表符),其第一行包含列标题(以粗体显示),后续行包含元数据值。例如:
除标题外,假定元数据文件中行的顺序与嵌入变量中的向量的顺序相匹配。因此,元数据文件中的第(i + 1)行对应于Embedding变量的i-th行。如果TSV元数据文件只有一个列,那么我们不希望有一个标题行,并假设每一行都是嵌入的标签。我们兼容这个异常,因为它与通用的”vocab file”格式相匹配。 要将图像用作元数据,您必须生成一个精灵图像,由小缩略图组成,Embedding中的每个矢量一个。精灵应该以row-first顺序存储缩略图:第一个数据点放置在左上方,最后一个数据点放在右下方,尽管最后一行不需要填充,如下所示。 参考这个链接:在Embedding投影中查看缩略图的有趣示例。 Mini-FAQ“embedding”是动作还是事物?都是。人们讨论在矢量空间(行为)中Embedding单词,以及在生成单词Embedding(事物)。两者共同的是Embedding作为从离散对象到矢量的映射的概念。创建或应用该映射是一个操作,但映射本身是一个事物。 Embedding成high-dimensional(高维)还是low-dimensional(低维)?看情况。例如,单词和短语的300维矢量空间通常被称为low-dimensional(低维和稠密),与它可以包含的数百万个单词和短语相比。但在数学上它是high-dimensional,显示出许多与我们的人类直觉了解的二维和三维空间有很大不同的属性。 Embedding是否与Embedding层相同?不是。Embedding层是神经网络的一部分,但一个Embedding是一个更一般的概念。 参考资料
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13