one-hot表示和分布式表示

这是深度学习的一个基本概念,看到有一篇讲的不错的博文,大家可以看看,特此转载,链接如下:https://blog.csdn.net/mawenqi0729/article/details/80698780

除此之外,我在举一个简单的例子,让大家有一个直观的理解。 这也是目前我对one-hot编码及分布式表示的理解。

one-hot编码和分布式表示的直观理解:

one-hot编码
有5个样本分别是:

样本 特征
sample1 红色卡车
sample2 红色汽车
sample3 灰色卡车
sample4 灰色汽车
sample5 灰色卡车

我们可以知道,这个例子中共有4种不同的状态,即红色卡车、红色汽车、灰色卡车、灰色汽车,于是我们用4位来表示各个状态,依次为(0,0,0,1),(0,0,1,0),(0,1,0,0),(1,0,0,0)。
这就是one-hot编码,N个状态就用N位状态寄存器,并且在任意时候,其中只有一位有效。

分布式表示

那么分布式表示在上述例子中怎么做呢?
将颜色作为一个特征,用两位来表示红色:0,灰色:1;车类型用两位来表示汽车:0,卡车:1
这样一来4种状态只要两位来表示了,即红色卡车、红色汽车、灰色卡车、灰色汽车,依次为(0,1),(0,0),(1,1),(1,0)。也就是共享了一些参数。
————————————————————————————————————————————
通过上述例子应该就能很直观的理解one-hot编码和分布式表示啦。下面在放另一篇文章的一个不错的例子,供大家理解只用。

我们可以把左图看成是一般的聚类方式,右图看成是基于分布式表示的聚类方式。如左图所示,假设我们把整个的空间分成几个区域,那每一个区域可以由一组参数来描述(charaterize)。 比如在高斯混合模型(Gaussian Mixture Model)里,每一个混合模块(Mixture component)都由一组高斯分布的期望和协方差来(covariance)决定。相比之下,在右图中,每一个区域由三个子模块来表达。 这个时候我们只需要三组参数,而且每一个区域都会共享这三组参数,被称之为参数共享(parameter sharing)。 这个性质带来的一个重要的优点是 – 非局部泛化(non-localgeneralization). 我们需要知道机器学习的目的就是要在测试级上(test set)得到更好的泛化(bettergeneralization)效果 。 在左图中,我们只能得到局部泛化(local generalization), 即便这样,为了达到局部泛化的目的,我们需要对每个区域有足够多的例子(training examples)。除此之外,分布式表示可以有效地应对curse of dimensionality问题 。

在这里插入图片描述
——摘自:https://www.jiqizhixin.com/articles/2019-02-01-3

发布了41 篇原创文章 · 获赞 40 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_39805362/article/details/101760529
今日推荐