NLP中用RNN提取特徵後,再接CNN或者最大池化或者平均池化,哪種效果更好,實際意義上如何解釋

時間 2021-06-03 05:01:54

1樓:SpearBot

「Dense層」我理解成使用fully connected網路將得到的輸出降維,也是我們應用LSTM設計模型解決實際問題時常用的做法。

通常神經元的輸出是乙個超過64維的向量(與神經元-cell 裡面的神經單元-neuron 的數量一致),因此,利用LSTM進行序列特徵提取時,通常會對神經元的輸出向量再做一步處理,降維成包含盡量多資訊的低維特徵向量。

現分成兩個階段,分開回答一下對於LSTM每個神經元的隱藏狀態、得到LSTM輸出向量的不同做法,以及最後如何得到LSTM輸出特徵向量的做法。

如何處理得到LSTM輸出向量,總結起來我了解的做法大概有以下幾種:

直接取最後乙個神經元的輸出作為LSTM的輸出特徵向量

對所有神經元的hidden state向量,做max-pooling或mean-pooling,獲得考慮了每乙個神經元隱藏狀態資訊的乙個輸出向量

增加attention層,同樣也是考慮每乙個神經元隱藏狀態,為不同的隱藏狀態增加權重,有點類似再接一層CNN的做法,得到新的aggregation 向量作為LSTM的輸出

具體看下每種做法,相應都有其道理。第1種,相當於完全利用LSTM的記憶機制,將這一模型給出的序列處理結果作為該序列的神經網路分析結果,信任神經元記憶到最後乙個元素位置的隱藏向量。後面兩種就相當於是干預一下LSTM的處理結果,不完全信任LSTM對輸入元素的處理,認為中間產生的神經元隱藏狀態變數中也包含有有用的資訊,人工的對中間的神經元狀態變數進行提取。

再說到得到LSTM輸出向量之後的操作,我的理解,不管是再用一層GCN, 還是Sense全連線網路,都是在將多維的LSTM輸出向量進行降維,降維成目標問題需要的特徵表示。比如我們常做的二元分類,就是會對LSTM的輸出新增一層全連線網路變成兩維向量,再用一次softmax函式將其變形成兩個互補概率的意義,對應到二元分類的目標。然後就以該二元特徵向量,來構建loss function,進行back propagation調參。

2樓:NLP

有接池化層的嗎?現在CNN在NLP上面的使用,已經很少接pooling層了,因為pooling層會導致NLP中很重要的詞語位置資訊丟失,你底層使用RNN除了捕獲長距離依賴之外,還可以獲得詞語之間的相對位置關係,你後面再接乙個pooling層會導致位置資訊丟失。

影象處理中有哪些特徵提取演算法?

FATRI 1 SIFT SIFT 尺度不變特徵變換 Scale invariant features transform SIFT是一種檢測區域性特徵的演算法,該演算法通過求一幅圖中的特徵點 interest points,or corner points 及其有關scale 和 orientat...

如何從文字中提取名詞和形容詞 NLP

張懷文 如果要使用工具的話,現在可選的工具有很多,比如Hanlp,jieba,斯坦福的nlp包等等。如果是思路的話,簡單想兩個思路。多分類的思路 給每個字打乙個類別標籤,然後訓乙個多分類器,來分名詞和形容詞。但是有乙個問題,就是乙個字的詞性應該跟它處的上下文有很大關係,而多分類沒有很好的刻畫這個事。...

怎樣在二值影象中提取不規則圓弧特徵?

豬殊 1 如果你認為這是一段橢圓的話,可以用針對橢圓的霍夫變換。由於解析度低了點,乙個邊緣點可以先對應稱乙個小正方形裡的一片點,再每個點在引數空間中找對應曲線。同樣也可以假設成其他f x,y 0的形式。2 如果不進行任何假設,提取邊界點座標進行基於三次樣條插值 spline 的曲線擬合 然後你就可以...