這是深度學習的一個基本概念,看到有一篇講的不錯的博文,大家可以看看,特此轉載,鏈接如下: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