2016-05-10 11 views
7

मैं सीख रहा हूँ और तंत्रिका नेटवर्क के साथ प्रयोग और किसी से राय निम्न समस्या के बारे में अधिक अनुभवी करना चाहते हैं:क्या मुझे प्रारंभिक रोकथाम मीट्रिक के रूप में हानि या सटीकता का उपयोग करना चाहिए?

जब मैं Keras में एक Autoencoder ट्रेन ('mean_squared_error' नुकसान समारोह और SGD अनुकूलक), मान्यता नुकसान धीरे-धीरे नीचे जा रहा है। और सत्यापन सटीकता बढ़ रही है। अब तक सब ठीक है।

हालांकि, थोड़ी देर के बाद, नुकसान घटता रहता है लेकिन सटीकता अचानक बहुत कम निम्न स्तर पर गिर जाती है।

  • क्या यह 'सामान्य' या अपेक्षित व्यवहार है कि सटीकता बहुत तेज हो जाती है और अचानक गिरने के लिए उच्च रहती है?
  • क्या मुझे सत्यापन की हानि अभी भी घट रही है, भले ही अधिकतम सटीकता पर प्रशिक्षण रोकना चाहिए? दूसरे शब्दों में, प्रारंभिक रोकने के लिए निगरानी करने के लिए मेट्रिक के रूप में val_acc या val_loss का उपयोग करें?

चित्र देखें:

नुकसान: (हरी = वैल, नीले = ट्रेन] enter image description here

शुद्धता: (हरी = वैल, नीले = ट्रेन] enter image description here

अद्यतन: नीचे दी गई टिप्पणियों ने मुझे सही दिशा में इंगित किया और मुझे लगता है कि मैं इसे बेहतर समझता हूं। यह अच्छा होगा अगर कोई यह पुष्टि कर सके कि निम्नलिखित सही है:

  • सटीकता मीट्रिक y_pred == Y_true का% मापता है और इस प्रकार केवल वर्गीकरण के लिए समझ में आता है।

  • मेरा डेटा वास्तविक और बाइनरी सुविधाओं का संयोजन है। सटीकता ग्राफ बहुत खड़ी हो जाती है और फिर वापस गिरती है, जबकि नुकसान घटता रहता है क्योंकि युग 5000 के आस-पास, नेटवर्क ने शायद बाइनरी सुविधाओं के +/- 50% की भविष्यवाणी की है। जब प्रशिक्षण जारी रहता है, युग 12000 के आस-पास, वास्तविक और बाइनरी सुविधाओं की भविष्यवाणी में सुधार हुआ है, इसलिए घटती हानि, लेकिन अकेले बाइनरी सुविधाओं की भविष्यवाणी, थोड़ा कम सही है। वहीं हानि घट जाती है, जबकि सटीकता कम हो जाती है।

+0

क्या आप वर्गीकरण कार्य के लिए एमएसई का उपयोग कर रहे हैं? –

+0

यह एक दिलचस्प साजिश है। जबकि मुझे ऑटोकोडर्स के साथ कोई अनुभव नहीं है, मुझे आश्चर्य है कि क्या यह ओवरफिटिंग का कुछ चरम मामला है। क्या आपने अपनी नेटवर्क जटिलता को कम करने की कोशिश की है (छोटे या अधिक विनियमन) (शायद एक बढ़ी हुई सत्यापन-सबसेट के साथ भी जांचें?) मैं कल्पना कर सकता हूं कि यह अलग दिखाई देगा। – sascha

+0

@ MarcinMożejko: मैं mse का उपयोग कर रहा हूं, लेकिन यह ऑटोकोडर है, वर्गीकरण नहीं। – Mark

उत्तर

1

आप चाहे हानि या सटीकता का उपयोग करने के लिए कह रहे हैं ... तो यहाँ जवाब

(माध्य है भविष्यवाणी वास्तविक समय है या डेटा निरंतर है बल्कि असतत से, तो एमएसई का उपयोग करते हैं स्क्वायर त्रुटि) क्योंकि मान वास्तविक समय हैं।

लेकिन अलग-अलग मूल्यों (यानी) वर्गीकरण या क्लस्टरिंग उपयोग सटीकता के मामले में क्योंकि दिए गए मान केवल 0 या 1 हैं। तो, यहां एमएसई की अवधारणा लागू नहीं होगी, बल्कि सटीकता = त्रुटि मानों/कुल मूल्यों का उपयोग करें * 100.

+0

में सटीकता की गणना कैसे की जाती है एमएसई प्रतिगमन समस्याओं के लिए बहुत अच्छा है – Naren

+0

https://stackoverflow.com/questions/47859737/keras-error-in-fit-method-अपेक्षित-मॉडल-2-से-आकार-कोई नहीं -252-252-1-b कोई सुझाव? –

संबंधित मुद्दे