2017-07-19 119 views
3

對於我的論文,我運行了一個4層深度網絡,用於序列轉換用例 150 x Conv(64,5)x GRU(100)x softmax在loss ='categorical_crossentropy'的最後一個階段激活。深度學習:包含keras的小數據集:局部最小值

訓練損失和準確性最優化地相當快地收斂 其中驗證損失和準確性似乎卡在val_acc 97至98.2範圍內,無法超越此範圍。

我的模型是否過擬合?

嘗試在圖層之間丟失0.2。

Output after drop-out 
    Epoch 85/250 
    [==============================] - 3s - loss: 0.0057 - acc: 0.9996 - val_loss: 0.2249 - val_acc: 0.9774 
    Epoch 86/250 
    [==============================] - 3s - loss: 0.0043 - acc: 0.9987 - val_loss: 0.2063 - val_acc: 0.9774 
    Epoch 87/250 
    [==============================] - 3s - loss: 0.0039 - acc: 0.9987 - val_loss: 0.2180 - val_acc: 0.9809 
    Epoch 88/250 
    [==============================] - 3s - loss: 0.0075 - acc: 0.9978 - val_loss: 0.2272 - val_acc: 0.9774 
    Epoch 89/250 
    [==============================] - 3s - loss: 0.0078 - acc: 0.9974 - val_loss: 0.2265 - val_acc: 0.9774 
    Epoch 90/250 
    [==============================] - 3s - loss: 0.0027 - acc: 0.9996 - val_loss: 0.2212 - val_acc: 0.9809 
    Epoch 91/250 
    [==============================] - 3s - loss: 3.2185e-04 - acc: 1.0000 - val_loss: 0.2190 - val_acc: 0.9809 
    Epoch 92/250 
    [==============================] - 3s - loss: 0.0020 - acc: 0.9991 - val_loss: 0.2239 - val_acc: 0.9792 
    Epoch 93/250 
    [==============================] - 3s - loss: 0.0047 - acc: 0.9987 - val_loss: 0.2163 - val_acc: 0.9809 
    Epoch 94/250 
    [==============================] - 3s - loss: 2.1863e-04 - acc: 1.0000 - val_loss: 0.2190 - val_acc: 0.9809 
    Epoch 95/250 
    [==============================] - 3s - loss: 0.0011 - acc: 0.9996 - val_loss: 0.2190 - val_acc: 0.9809 
    Epoch 96/250 
    [==============================] - 3s - loss: 0.0040 - acc: 0.9987 - val_loss: 0.2289 - val_acc: 0.9792 
    Epoch 97/250 
    [==============================] - 3s - loss: 2.9621e-04 - acc: 1.0000 - val_loss: 0.2360 - val_acc: 0.9792 
    Epoch 98/250 
    [==============================] - 3s - loss: 4.3776e-04 - acc: 1.0000 - val_loss: 0.2437 - val_acc: 0.9774 

回答

2

你提出的案例是一個非常複雜的案例。爲了回答你的問題,如果過度擬合是真正發生在你的情況,你需要回答兩個問題:

  1. 上驗證所獲得的結果設置滿意? - 驗證集的主要目的是爲您提供見解,瞭解新數據到達時會發生什麼。如果您對驗證集的準確性感到滿意,那麼您應該將您的模型視爲不過度過度。
  2. 我是否應該擔心模型在訓練集上的準確性極高? - 您可能很容易注意到,您的模型在訓練集上幾乎完美無缺。這可能意味着它學會了一些模式。通常情況下 - 數據中總會有一些噪音 - 而且您的模型的屬性在數據上是完美的 - 意味着它可能使用其部分能力來學習偏差。爲了測試我通常更喜歡用最低得分測試正面例子或者得分最高的負面樣例 - 因爲離羣值通常在這兩個組中(模型努力將它們推到/低於0.5閾值)。

所以 - 檢查這兩個問題後,如果您的模型過度配合,您可能會得到答案。您提出的行爲非常好 - 背後的實際原因可能是驗證集中很少有模式未在訓練集中正確覆蓋。但在設計機器學習解決方案時,您應該始終考慮這一點。

+0

花費時間檢查模型上的不同排列。你對網絡使用部分學習能力的觀察是正確的。嘗試了各種模型容量減少百分比來驗證。在較低的能力下,培訓acc和驗證準確性同時進行。您對具有獨特模式的驗證集的第二次觀察也是如此,需要花時間手動驗證兩個數據集 – Ajay

1

不,這不是過度配合。過度訓練只發生在訓練損失低,驗證損失高的情況下。這也可以被看作是訓練和驗證準確度之間的高度差異(在分類的情況下)。

+0

我們可以使用什麼參數來檢查順序到順序用例中的過度擬合? – Ajay