जब मैं अपने तंत्रिका नेटवर्क को प्रशिक्षण दे रहा था तो 8वें युग के दौरान सत्यापन सटीकता में अचानक गिरावट आई इसका क्या मतलब है?

Train for 281 steps, validate for 24 steps Epoch 1/10 281/281 [==============================] - 106s 378ms/step - loss: 1.5758 - accuracy: 0.8089 - val_loss: 1.8909 - val_accuracy: 0.4766 Epoch 2/10 281/281 [==============================] - 99s 353ms/step - loss: 1.5057 - accuracy: 0.8715 - val_loss: 1.7364 - val_accuracy: 0.6276 Epoch 3/10 281/281 [==============================] - 99s 353ms/step - loss: 1.4829 - accuracy: 0.8929 - val_loss: 1.5347 - val_accuracy: 0.8398 Epoch 4/10 281/281 [==============================] - 99s 353ms/step - loss: 1.4445 - accuracy: 0.9301 - val_loss: 1.5551 - val_accuracy: 0.8047 Epoch 5/10 281/281 [==============================] - 99s 353ms/step - loss: 1.4331 - accuracy: 0.9412 - val_loss: 1.5043 - val_accuracy: 0.8659 Epoch 6/10 281/281 [==============================] - 97s 344ms/step - loss: 1.4100 - accuracy: 0.9639 - val_loss: 1.5562 - val_accuracy: 0.8151 Epoch 7/10 281/281 [==============================] - 96s 342ms/step - loss: 1.4140 - accuracy: 0.9585 - val_loss: 1.4935 - val_accuracy: 0.8737 Epoch 8/10 281/281 [==============================] - 96s 341ms/step - loss: 1.4173 - accuracy: 0.9567 - val_loss: 1.7569 - val_accuracy: 0.6055 Epoch 9/10 281/281 [==============================] - 96s 340ms/step - loss: 1.4241 - accuracy: 0.9490 - val_loss: 1.4756 - val_accuracy: 0.9023 Epoch 10/10 281/281 [==============================] - 96s 340ms/step - loss: 1.4067 - accuracy: 0.9662 - val_loss: 1.4167 - val_accuracy: 0.9648

0
Alex Lee 15 मार्च 2020, 12:50

1 उत्तर

सबसे बढ़िया उत्तर

सत्यापन हानि में अचानक गिरावट और बैच प्रशिक्षण के कारण प्रशिक्षण हानि होती है; संक्षेप में, अभिसरण तभी सुचारू होगा जब हम पूरे डेटासेट के साथ प्रशिक्षित होंगे, बैचों के साथ नहीं। इसलिए, ऐसी बूंदों (प्रशिक्षण और सत्यापन दोनों के लिए) को देखना सामान्य है।

  • val_loss: 1.4935 - val_accuracy: 0.8737 (पिछला युग)
  • val_loss: १.७५६९ - val_accuracy: ०.६०५५ (ड्रॉप के साथ युग)
  • val_loss: १.४७५६ - val_accuracy: ०.९०२३ (अगला युग)

यदि आप सत्यापन हानि पर एक नज़र डालते हैं, तो यह केवल ०.२६ के साथ बढ़ी; हालांकि, इसके परिणामस्वरूप आपकी सटीकता में 27% की कमी आई है। इस मामले में, यह इस तथ्य के कारण है कि आपका मॉडल निश्चित नहीं है जब यह भविष्यवाणी करता है (कम से कम प्रशिक्षण के इस चरण में)।

कल्पना कीजिए कि आपके पास एक द्विआधारी वर्गीकरण मॉडल (सेब और संतरे के बीच) है। प्रत्येक भविष्यवाणी पर, जब जमीनी सच्चाई एक सेब होती है, तो नेटवर्क 51% आश्वस्त होता है कि छवि एक सेब की है। हमारे पास ग्राउंड_ट्रुथ सेब है, और जैसा कि केरस पर्दे के पीछे करता है, डिफ़ॉल्ट आत्मविश्वास सीमा 50% है। तब सभी भविष्यवाणियां अच्छी होती हैं और आपकी सटीकता अच्छी होती है।

हालाँकि, अब 'समस्याग्रस्त' युग आता है। प्रशिक्षण के एक और युग के बाद आपके तंत्रिका नेटवर्क के वजन के बदले हुए मूल्यों के कारण, जब आप अपने सत्यापन डेटासेट पर भविष्यवाणी करते हैं, तो आपको प्रत्येक ग्राउंड_ट्रुथ सेब के लिए 48-49% का विश्वास मिलता है, और फिर से, चूंकि सीमा 50% है, आपको पिछले युग की तुलना में बहुत खराब सटीकता मिलती है।

यह विशेष मामला जो आप अनुभव कर रहे हैं, जैसा कि आप अब पिछले स्पष्टीकरण से अनुमान लगा सकते हैं, नुकसान को इतना प्रभावित नहीं करता है, लेकिन सटीकता को प्रभावित करता है। यह बैकप्रोपेगेशन के दौरान नुकसान को इतना प्रभावित नहीं करता है, क्योंकि नुकसान की गणना करते समय 49% और 51% के बीच आत्मविश्वास की भविष्यवाणी में अंतर समग्र नुकसान में बहुत महत्वपूर्ण अंतर नहीं है (जैसा कि आप अपने मामले में देखते हैं, केवल 0.26% ) अंत में, 'पिछले युग' में भी, जब मॉडल ने एक सेब की सही भविष्यवाणी की थी, तो तंत्रिका नेटवर्क इतना आश्वस्त नहीं था, उदाहरण के लिए, एक सेब के लिए केवल ५१% आत्मविश्वास, ९५% नहीं।

1
Timbus Calin 15 मार्च 2020, 11:02