我正在尋址句級二進制分類任務。我的數據由3個令牌的子陣列組成:左上下文,核心和右上下文。爲什麼2幾乎相等Keras CNN返回2完全不同的結果
我用Keras制定卷積神經網絡的幾個備選方案和驗證哪一個最適合我的問題。
我是Python和Keras的新手,爲了測試哪些改變提高了我的指標(準確度,精確度,召回率,f1和auc-roc),我決定從更簡單的解決方案入手。首先進行的簡化是關於輸入數據:我決定忽略上下文創建Keras的順序模型:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) (None, 500) 0
_________________________________________________________________
masking_1 (Masking) (None, 500) 0
_________________________________________________________________
embedding_1 (Embedding) (None, 500, 100) 64025600
_________________________________________________________________
conv1d_1 (Conv1D) (None, 497, 128) 51328
_________________________________________________________________
average_pooling1d_1 (Average (None, 62, 128) 0
_________________________________________________________________
dropout_1 (Dropout) (None, 62, 128) 0
_________________________________________________________________
conv1d_2 (Conv1D) (None, 61, 256) 65792
_________________________________________________________________
dropout_2 (Dropout) (None, 61, 256) 0
_________________________________________________________________
conv1d_3 (Conv1D) (None, 54, 32) 65568
_________________________________________________________________
global_max_pooling1d_1 (Glob (None, 32) 0
_________________________________________________________________
dense_1 (Dense) (None, 16) 528
_________________________________________________________________
dropout_3 (Dropout) (None, 16) 0
_________________________________________________________________
dense_2 (Dense) (None, 2) 34
=================================================================
正如你所看到的,我使用的輸入一個固定的大小,所以我採用的填充預處理。我還使用了Word2Vec模型的嵌入圖層。
這種模式返回以下結果:
P 0.875457875
R 0.878676471
F1 0.87706422
AUC-ROC 0.906102654
我想實現如何LAMBDA層的方式來選擇我的CNN裏面輸入數據的一個子。我用我的LAMBDA層的定義如下:
Lambda(lambda x: x[:, 1], output_shape=(500,))(input)
這是我的新CNN的總結(因爲你可以看到它幾乎比現有同):
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) (None, 3, 500) 0
_________________________________________________________________
lambda_1 (Lambda) (None, 500) 0
_________________________________________________________________
masking_1 (Masking) (None, 500) 0
_________________________________________________________________
embedding_1 (Embedding) (None, 500, 100) 64025600
_________________________________________________________________
conv1d_1 (Conv1D) (None, 497, 128) 51328
_________________________________________________________________
average_pooling1d_1 (Average (None, 62, 128) 0
_________________________________________________________________
dropout_1 (Dropout) (None, 62, 128) 0
_________________________________________________________________
conv1d_2 (Conv1D) (None, 61, 256) 65792
_________________________________________________________________
dropout_2 (Dropout) (None, 61, 256) 0
_________________________________________________________________
conv1d_3 (Conv1D) (None, 54, 32) 65568
_________________________________________________________________
global_max_pooling1d_1 (Glob (None, 32) 0
_________________________________________________________________
dense_1 (Dense) (None, 16) 528
_________________________________________________________________
dropout_3 (Dropout) (None, 16) 0
_________________________________________________________________
dense_2 (Dense) (None, 2) 34
=================================================================
但結果令人噁心,因爲準確性停止在60%,關於第一個模型結果顯然精度,召回率和f1太低(< 0.10)。
我不知道發生了什麼,我不知道這些網絡是否與我想象的更加不同。
關於這個問題的任何線索?
我重新說明了我的問題來澄清它。因爲我認爲你不瞭解它。 不過,我要回答你的問題。 –
1.-在我的任務中,關於近距離標記的本地特徵非常重要,所以CNN對於這類任務非常適用。您可以在文獻中找到若干有關NLP的CNN示例:https://dl.acm.org/citation.cfm?id = 2969342,http://www.anthology.aclweb.org/N/N15/N15-1011 .pdf,http://anthology.aclweb.org/C/C14/C14-1008.pdf,http://emnlp2014.org/papers/pdf/EMNLP2014181.pdf。不過,我只會嘗試濃縮圖層以便比較結果。 –
2.-我正在比較兩個完全相同的CNN體繫結構與Labmda層的差異(等概率層,等密集層,相等池,平均丟失率,相等學習率)。其中一個表現相當好,另一個表現相當差。 3.-我需要考慮語義特徵。這是使用Word嵌入解決方案來引導令牌的主要原因。一個熱媒不會幫助我解決這個問題。 我真的很感謝你的回答。 –