作为一名小白,在学习深度学习中经常看到一个词叫做嵌入(Embeddings), 一直很难理解,直到读到了邱锡鹏教授的《神经网络与深度学习》一书,让我有了比较直白的理解。分享给各位。
局部表示和分布式表示
为了让机器能够更好的学习到数据的高层语义特征和底层特征,我们首先要构建好的表示
这里介绍两中表示特征的方式:分布式表示(Distributed Representation)和局部表示(Local Representation)
我们以对颜色进行表示为例,解释这两种表示
局部表示
局部表示就是直接对不同的颜色赋予不同的名字,比如鲜红,枣红,夕阳红,每一个名字对应一种颜色。
对于局部表示,我们可以用一个 |ν| 维度的one-hot向量 ν 来表示,对于第i种颜色,向量 ν 的第i个维度为1,其他维度都为0,见下面的Figure1
分布式表示
我们可以把局部表示理解成用坐标轴表示,每一个新的实例就是一个新的维度,一个新的坐标轴
而分布式表示是用向量空间中的一个点来表示,比如可以用RGB三维空间中的一个点,来表示一种颜色,具体示例见Figure1
分布式表示通常是低维的稠密向量。
![](https://i-blog.csdnimg.cn/direct/5ab08e06429d493d94d1629b9dab6d85.png)
嵌入(Embedded)
通过神经网络,我们可以将高维度的局部表示空间 投射到低维度的分布式表示空间
, 此时特征不再是只在坐标轴上,而是可以表示为空间上的点。
总结: 嵌入就是将特征从高维向低维进行映射,并且尽可能的保留特征间的拓扑结构
![](https://i-blog.csdnimg.cn/direct/1aed81d59fd5487ebab1c75ac8b632fa.png)