赞
踩
这是深度学习的一个基本概念,看到有一篇讲的不错的博文,大家可以看看,特此转载,链接如下:https://blog.csdn.net/mawenqi0729/article/details/80698780
除此之外,我在举一个简单的例子,让大家有一个直观的理解。 这也是目前我对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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。