मेरे पास केरस में एक कन्वेन्शनल + एलएसटीएम मॉडल है, यह (रेफ 1) के समान है, जिसका उपयोग मैं एक कागेल प्रतियोगिता के लिए कर रहा हूं। वास्तुकला नीचे दिखाया गया है। मैंने इसे 11000 नमूनों के अपने लेबल सेट पर प्रशिक्षित किया है (दो कक्षाएं, प्रारंभिक प्रचलन ~ 9: 1 है, इसलिए मैंने 20 युगों के विभाजन के साथ 50 युगों के लिए 1 के 1/1 अनुपात के लिए अपघटित कर दिया था) मैं बहुत अधिक हो रहा था थोड़ी देर के लिए लेकिन मुझे लगा कि यह शोर और ड्रॉपआउट परतों के साथ नियंत्रण में है।
मॉडल ऐसा लग रहा था कि यह आश्चर्यजनक रूप से प्रशिक्षण दे रहा था, अंत में प्रशिक्षण सेट की संपूर्णता पर 91% का स्कोर किया, लेकिन परीक्षण डेटा सेट, पूर्ण कचरा पर परीक्षण करने पर।
सूचना: सत्यापन सटीकता प्रशिक्षण सटीकता से अधिक है। यह "विशिष्ट" ओवरफिटिंग के विपरीत है।
मेरा अंतर्ज्ञान, छोटे-ईश सत्यापन विभाजन को देखते हुए, मॉडल अभी भी इनपुट सेट पर बहुत दृढ़ता से फिट होने और सामान्यीकरण खोने का प्रबंधन कर रहा है। अन्य सुराग यह है कि val_acc एसीसी से अधिक है, जो कि गड़बड़ लगती है। क्या यहाँ सबसे अधिक संभावना है?
यदि यह ओवरफिटिंग है, तो सत्यापन विभाजन को बढ़ाकर इसे कम कर देगा, या क्या मैं एक ही मुद्दे में चलाने जा रहा हूं, औसतन, प्रत्येक नमूना आधा कुल युगों को देखेगा?
आदर्श:
Layer (type) Output Shape Param # Connected to
====================================================================================================
convolution1d_19 (Convolution1D) (None, None, 64) 8256 convolution1d_input_16[0][0]
____________________________________________________________________________________________________
maxpooling1d_18 (MaxPooling1D) (None, None, 64) 0 convolution1d_19[0][0]
____________________________________________________________________________________________________
batchnormalization_8 (BatchNormal(None, None, 64) 128 maxpooling1d_18[0][0]
____________________________________________________________________________________________________
gaussiannoise_5 (GaussianNoise) (None, None, 64) 0 batchnormalization_8[0][0]
____________________________________________________________________________________________________
lstm_16 (LSTM) (None, 64) 33024 gaussiannoise_5[0][0]
____________________________________________________________________________________________________
dropout_9 (Dropout) (None, 64) 0 lstm_16[0][0]
____________________________________________________________________________________________________
batchnormalization_9 (BatchNormal(None, 64) 128 dropout_9[0][0]
____________________________________________________________________________________________________
dense_23 (Dense) (None, 64) 4160 batchnormalization_9[0][0]
____________________________________________________________________________________________________
dropout_10 (Dropout) (None, 64) 0 dense_23[0][0]
____________________________________________________________________________________________________
dense_24 (Dense) (None, 2) 130 dropout_10[0][0]
====================================================================================================
Total params: 45826
यहाँ मॉडल फिट करने के लिए कॉल है (वर्ग वजन आमतौर पर 1: 1 के आसपास है क्योंकि मैंने इनपुट को अपडाउन किया है):
class_weight= {0:1./(1-ones_rate), 1:1./ones_rate} # automatically balance based on class occurence
m2.fit(X_train, y_train, nb_epoch=50, batch_size=64, shuffle=True, class_weight=class_weight, validation_split=0.2 )
एसई का कुछ मूर्खतापूर्ण नियम है कि मैं 2 से अधिक लिंक पोस्ट नहीं कर सकता जब तक कि मेरा स्कोर अधिक न हो, इसलिए यहां उदाहरण दिया गया है कि आपकी रुचि क्या है: Ref 1: machinelearningmastery DOT com SLASH अनुक्रम-वर्गीकरण-lstm-recurrent-neural-नेटवर्क- अजगर-keras