embedding層和全連線層的區別是什麼?

時間 2021-05-11 15:38:22

1樓:空字元

如果單單只是從計算的角度來說的話,兩者沒有任何區別,都是兩個矩陣相乘。只是說從向量表示的角度來說,embedding層的權重有自己獨特的意義,而全連線層沒有。 這也類似於注意力機制,在不同的背景下同乙個東西有著不同的解釋

2樓:鐵心核桃

前面 @Hover 已經說的很清楚了。我也跟著再多說幾句。

Embededding是一種泛稱,表示對資料的一種特徵變換操作(當然也可以表示這種變換的結果,如詞「詞嵌入」),你可以將任何乙個特徵對映都稱為「嵌入」,線性還是非線性都無所謂;FC是一種具體的操作結構,表示了「輸出向量每乙個元素都是由輸入全部元素線性組合得到」這種具體線性操作,當然,如果你的embededding是線性變換的時候,可以用FC這種結構來表達。

Embededding一詞來自於微分流形。試想球面上的任意點用兩個座標就可以唯一確定(如經緯度)。但是如果把它放在三維空間中(試想放在牆角的乙個籃球),任意點又可以用三維直角座標表示。

我們說球面是「嵌入」在三維空間中的二維空間。那麼由三維到二維的對映過程就是一種embededding。

3樓:

embedding是一種思想,將高維稀疏tensor壓縮為低維稠密tensor,方便表示和計算。

全連線層是實現embedding的一種方式,但全連線不只是能用來產生embedding,還可以做其他很多事。

假設我們希望把乙個高維的one-hot向量(假設維度為X)壓縮為低維的embedding向量(假設維度為H),那麼可以用全連線層訓練實現。

假設全連線層的輸入是N * X(N是batch size,下同),全連線層的輸出是N * H,全連線層的權重是X * H,那麼通過這個全連線層的計算,就能得到embedding向量,其維度為H。碰巧的是,這個計算過程如果其輸入是one-hot向量,那麼這裡就是乙個查表的過程。

4樓:

embedding層和全連線層本質上是乙個東西,embedding的輸入既然是onehot,我就不做矩陣乘了,直接lookup。

5樓:DanielChai

二者概念不太一樣

embedding目的是把乙個高緯的,每個維度上相對稀疏的資料投影到相對低維的,每個維度可以取實數集的資料操作。本質上是用連續空間替代(準)離散空間,以增加空間利用率,減少不必要的parameter。

nlp和推薦系統裡的embedding,輸入資料就是word id或item ID,也就是one hot encoding,輸入維度就是詞的個數,每個維度上取01,空間利用率極低。這種情況下,一般的embedding的實現方式就是乙個用全連層,輸入維度高,輸出維度低。

當然embeddibg也可以用多個全連層加activation層,cnn層,lstm層,以及它們的排列組合來實現。這種情況下,embedding和encoding似乎也沒什麼區別。不過一般說embedding層,實現方式就是乙個沒有bias的fc層

全連層就是從乙個座標系投影到另外乙個座標系,維度可公升可降,可以用來做embedding,也可以幹別的

6樓:ever

embedding層是全連線層的乙個特例。設輸入向量為x,全連線層的權重引數矩陣為W,則該層的輸出向量為y=Wx;只是在embedding層中,x為one-hot向量,例如:[0,1,0,0,0],則線性變換就退化成了乙個查表操作。

7樓:Hover

Embededding 描述的一種功能,FC描述的是一種結構,二者的劃分方式不同

Embedding的目的是進行資料的降維和向量化,比如影象用CNN卷了之後也可以叫做Embedding,Auto-Encoder裡面前面的那一部分也可以叫做Embedding,LSTM可以視作將狀態Embedding等等。所以Embedding描述的是一種功能:資料降維和稠密表示(≈向量化),且通常所指的Embedding是中間的產物,為了方便後面的處理。

就算是Word2Vec或者GraphEmbedding等以Embeddind為目標輸出的網路,其Embedding作為輸出也只能視作整個環節的中間產物,因為必須有下游任務(Link-prediction,Graph Classification,etc)等才有意義

而FC描述的是一種結構,我們可以使用FC進行Embedding的功能,但是不是必須的。比如輸入10000的one-hot,全連線輸出128的vec,此時FC完成了Embedding的功能。後來,CV中使用CNN, NLP中使用SeqModel等都可以視作Embedding。

FC Layer組成MLP之後可以直接輸出結果,此時就不是用作Embedding,而是直接end-end的輸出結果。

8樓:grassofsky

embedding層和全連線層是兩個不同的概念。

word embedding層:將word轉換成詞向量的網路層。重點是向量化。描述的是一種目的。

全連線層:神經網路節點全連線起來的網路層。重點是全連線。描述的是一種網路連線方式。

也就是說,為了實現embedding這種目的,可以使用全連線層這種方式,也可以使用其他的方式實現。

9樓:鵬懿如斯

embedding層是把資料都轉成稀疏的向量。

比如[a b c d e]原來用[1 2 3 4 5]表示,用embedding層可以把他轉化成5個向量[[1 0 0 0 0][0 1 0 0 0][0 0 1 0 0][0 0 0 1 0][0 0 0 0 1]]。

全鏈結層資料維度是不變的。

10樓:

NN 中一般說的 embedding 是指用 pre-trained NN model 直接提取特徵的吧?有專門叫 embedding layer 的?fc 不就是常規的神經元全連線的網路層麼?

所以,我的觀點是:

embedding layer(s) 就是將輸入進行 transform,得到固定特徵表達的模組(一般用 pre-trained neural network module來實現);

fc layer 就是 CNN 中用於全連神經元的特定的 layer。

lstm層和全連線層的本質區別是什麼?

黑火藥 個人淺見,本質的區別在於不同的網路結構適合處理不同結構的資料,網路結構與資料結構越相似,優勢越大。lstm更好的模擬了序列相關的資料生成的過程,也就是今天的資料與昨天有很大關係,昨天的資料與前天又有很大關係,資料間是按順序影響的。因此lstm在處理帶有序列相關性質的資料時,比全連線的網路更有...

全連線層的作用是什麼?

有一天我變成蝸牛 個人的理解,不知道準不準確,有問題的話還請大家幫忙指出 卷積層 每個卷積核只關注某一區域性特徵,同時引數共享可以保證一些特徵平移或旋轉的變換不會影響區域性特徵圖的提取結果。池化層 進一步壓縮區域性特徵圖,避免過擬合。全連線層 整合區域性特徵圖,得到全域性特徵資訊。softmax層 ...

1 1的卷積核和全連線層有什麼異同?

xixi 全連線要求輸入是向量,因此要把輸入影象拉直為向量,無法只對channel緯度做變換 1 1的卷積可以不用改變輸入影象的形狀直接對最後channel緯度變換,用來降維或整合不同channel的資訊。 科研狗也有春天 簡單回答一下 1 數學本質上一樣,都是特徵圖中的元素乘以權重再求和。全連線是...