मॉडल को कैसे पता चले कि ओवरफिटिंग शुरू हो गई है?


12

मुझे आशा है कि निम्नलिखित अंश मेरे प्रश्न को समझने में एक अंतर्दृष्टि प्रदान करेंगे। ये http://neuralnetworksanddeeplearning.com/chap3.html से हैं

फिर धीरे-धीरे सीखना धीमा हो जाता है। अंत में, 280 के आसपास की वर्गीकरण सटीकता में बहुत सुधार होना बंद हो जाता है। बाद के युगों में केवल युग के अंत में सटीकता के मूल्य के पास छोटे स्टोचैस्टिक उतार-चढ़ाव देखने को मिलते हैं। पहले के ग्राफ के साथ इसका विरोध करें, जहां प्रशिक्षण डेटा से जुड़ी लागत आसानी से गिरती रहती है। यदि हम उस लागत को देखते हैं, तो ऐसा लगता है कि हमारा मॉडल अभी भी "बेहतर" हो रहा है। लेकिन परीक्षण सटीकता के परिणाम बताते हैं कि सुधार एक भ्रम है। ठीक उसी तरह जिस मॉडल को फरमी ने नापसंद किया था, हमारे नेटवर्क ने एपोच 280 के बाद जो सीखा वह अब टेस्ट डेटा के लिए सामान्य नहीं है। और इसलिए यह उपयोगी नहीं है। हम कहते हैं कि नेटवर्क 280 से आगे निकल रहा है या आगे निकल रहा है।

हम एक तंत्रिका नेटवर्क को प्रशिक्षित कर रहे हैं और लागत (प्रशिक्षण डेटा पर) युग 400 तक गिर रहा है, लेकिन वर्गीकरण सटीकता स्थिर हो रही है (कुछ स्टोकैस्टिक उतार-चढ़ाव को रोकना) युग 280 के बाद इसलिए हम निष्कर्ष निकालते हैं कि मॉडल प्रशिक्षण डेटा पोस्ट युग 280 पर अति कर रहा है।

हम देख सकते हैं कि परीक्षण डेटा पर लागत लगभग 15 वर्ष तक सुधारती है, लेकिन इसके बाद यह वास्तव में खराब होने लगती है, भले ही प्रशिक्षण डेटा पर लागत बेहतर हो रही है। यह एक और संकेत है कि हमारा मॉडल ओवरफिटिंग है। यह एक पहेली बन गया है, हालांकि, यह है कि क्या हमें 15 या युग 280 का संबंध मानना ​​चाहिए, जिस बिंदु पर ओवरफिटिंग सीखने पर हावी हो रही है? व्यावहारिक दृष्टिकोण से, जो हम वास्तव में परवाह करते हैं वह परीक्षण डेटा पर वर्गीकरण सटीकता में सुधार कर रहा है, जबकि परीक्षण डेटा पर लागत वर्गीकरण सटीकता के लिए एक प्रॉक्सी से अधिक नहीं है। और इसलिए यह सबसे अधिक समझ में आता है कि 280 280 का संबंध उस बिंदु के रूप में है जिसके आगे हमारे तंत्रिका नेटवर्क में अधिगम हावी है।

जैसा कि पहले परीक्षण लागत के साथ तुलना में परीक्षण डेटा पर वर्गीकरण सटीकता का विरोध था, अब हम प्रशिक्षण लागत के खिलाफ परीक्षण डेटा पर खर्च कर रहे हैं।

फिर किताब बताती है कि 280 सही युग क्यों है जहां ओवरफिटिंग शुरू हो गई है। यही मेरे साथ एक मुद्दा है। मैं इसके चारों ओर अपना सिर नहीं लपेट सकता।

हम मॉडल को लागत को कम करने के लिए कह रहे हैं और इस तरह लागत मीट्रिक है जो इसे सही तरीके से वर्गीकृत करने के लिए अपनी ताकत के माप के रूप में उपयोग करता है। यदि हम 280 को सही युग मानते हैं, जहां ओवरफिटिंग शुरू हो गई है, तो क्या हमने एक तरह से पक्षपाती मॉडल नहीं बनाया है, हालांकि यह विशेष परीक्षण डेटा पर एक बेहतर क्लासिफायर है, लेकिन फिर भी कम आत्मविश्वास के साथ निर्णय ले रहा है और इसलिए इसके विचलन का खतरा अधिक है परीक्षण डेटा पर दिखाए गए परिणामों से?


मॉडल को परीक्षण सेट के बारे में पता नहीं है । यह अनदेखी डेटा के लिए एक प्रॉक्सी के रूप में खड़ा है। इसलिए, यदि यह एक प्रतिनिधि वितरण से आता है, तो आप ओवरफिटिंग होने पर यह निर्धारित करने के लिए इसका उपयोग कर सकते हैं। यदि आप चाहें, तो आप अभी तक एक और होल्ड सेट बना सकते हैं और देख सकते हैं कि क्या यह धारणा है।
Emre

Confidence कम आत्मविश्वास के साथ निर्णय लेने ’से आपका क्या मतलब है?
ग्रासहॉपर

@ ग्रासहॉपर कहते हैं कि मॉडल 4 वर्गों में से एक {A, B, C, D} की भविष्यवाणी करने की कोशिश कर रहा है। टेस्ट डेटा लेबल (क्रम में) हैं (ए, बी, सी, डी)। अब एक उदाहरण में मॉडल संभाव्यता को फेंकता है (मैं भविष्यवाणियों को लेबल करूंगा) ((0.28, 0.24, 0.24, 0.24) (ए), (0.24,0.28,0.24,0.24) (बी), (0.24,0.24) 0.28,0.24) (C), (0.24,0.24,0.24,0.28) (D)) और दूसरे में मॉडल फेंकता है ((1,0,0,0) (A), (0,1,0,0) (बी), (0.24,0.26,0.25,0.25) (बी), (0,0,0,1) (डी))। कम आत्मविश्वास से मेरा मतलब पहला उदाहरण है। कृपया ध्यान दें कि वर्गीकरण सटीकता पहली बार में 100% है और फिर भी लागत अधिक है
नितिन सिवाच

@Grasshopper संक्षेप में। मॉडल का पहला उदाहरण 280 युग (पूछे गए प्रश्न के संदर्भ में) के बाद बनाया गया है और मॉडल का दूसरा उदाहरण 15 युग के बाद बनाया गया है। अब यह किताब 280 के सुझाव पर आगे बढ़ती है, जहां ओवर-फिटिंग शुरू हुई है। मुझे यह निगलने में मुश्किल हो रही है। किसी भी मदद या विचार जो आप प्रदान कर सकते हैं वह बहुत सराहना की जाती है।
नितिन सिवाच

जवाबों:


6

मान लीजिए कि हम यह अनुमान लगाना चाहते हैं कि क्या कोई छात्रा अपने रिज्यूम के आधार पर नौकरी के लिए इंटरव्यू देगी।

अब, मान लें कि हम 10,000 रिज्यूम और उनके परिणामों के डेटासेट से एक मॉडल को प्रशिक्षित करते हैं।

अगला, हम मूल डेटासेट पर मॉडल की कोशिश करते हैं, और यह 99% सटीकता के साथ परिणामों की भविष्यवाणी करता है ... वाह!

लेकिन अब आती है बुरी खबर।

जब हम एक नए ("अनदेखी") मॉडल को फिर से शुरू करते हैं, तो हम केवल 50% सटीकता प्राप्त करते हैं ... उह-ओह!

हमारा मॉडल डेटा को अनदेखा करने के लिए हमारे प्रशिक्षण डेटा से अच्छी तरह से सामान्यीकृत नहीं है।

इसे ओवरफिटिंग के रूप में जाना जाता है, और यह मशीन सीखने और डेटा विज्ञान में एक आम समस्या है।

ओवरफिटिंग वी / एस अंडरफिटिंग

हम विपरीत समस्या को देखते हुए, ओवरफिटिंग को बेहतर समझ सकते हैं।

अंडरफ़िटिंग तब होती है जब कोई मॉडल बहुत सरल होता है - बहुत कम सुविधाओं द्वारा सूचित या बहुत अधिक नियमित - जो इसे डेटासेट से सीखने में अनम्य बनाता है।

सरल शिक्षार्थी अपनी भविष्यवाणियों में कम विचरण करते हैं लेकिन गलत परिणामों के प्रति अधिक पूर्वाग्रह रखते हैं (देखें: द बायस-वेरिएंस ट्रेडऑफ़)।

दूसरी ओर, जटिल शिक्षार्थी अपनी भविष्यवाणियों में अधिक विचरण करते हैं।

पूर्वाग्रह और विचरण दोनों मशीन सीखने में भविष्यवाणी की त्रुटि के रूप हैं।

आमतौर पर, हम पूर्वाग्रह से त्रुटि को कम कर सकते हैं, लेकिन परिणामस्वरूप विचरण से त्रुटि को बढ़ा सकते हैं, या इसके विपरीत।

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


2

कुछ ऐसा जो मैंने सीखा है वह यह है कि सीखने के मोड़ को हल करने के लिए कठिन तरीका है, मुझे पता है, मशीन लर्निंग कोड प्रति-से लिखने में उतना मज़ा नहीं है, लेकिन यह समझना मौलिक है कि क्या हो रहा है।

अंगूठे की परिभाषा का एक नियम यह है कि जब आपकी सत्यापन सटीकता में सुधार होना बंद हो जाता है (या यहां तक ​​कि खराब होने लगता है) तो आपकी ट्रेन सटीकता में सुधार होता रहता है।

अधिक फिटिंग से बचने के लिए सबसे सरल समाधान जल्दी रुकना है (जैसे ही चीजें खराब दिखती हैं प्रशिक्षण रोकना), निश्चित रूप से सबसे सरल समाधान लागत पर आता है: यह सबसे अच्छा समाधान नहीं है। नियमितीकरण और ड्रॉपआउट फिटिंग पर लड़ने के लिए अच्छे उपकरण हैं, लेकिन यह एक अलग मामला है :)

आशा है ये मदद करेगा


2

जैसा कि आप स्रोत के हवाले से कह रहे हैं, "परीक्षण डेटा पर लागत वर्गीकरण सटीकता के लिए एक प्रॉक्सी से अधिक नहीं है।" आप पूछ सकते हैं, हमें प्रॉक्सी का उपयोग क्यों करना चाहिए, सीधे सटीकता का उपयोग क्यों नहीं करना चाहिए? इसका उत्तर यह है कि आपको वज़न और पूर्वाग्रह के साथ लागत फ़ंक्शन को कम करना होगा। इसलिए इसे वज़न और पूर्वाग्रहों का एक अलग कार्य करना होगा। सटीकता एक अलग करने योग्य कार्य नहीं है और इसलिए इसे सीधे उपयोग नहीं किया जा सकता है। लेकिन आखिरकार आप सटीकता के बारे में परवाह करते हैं, जैसा कि आपने खुद ऊपर बताया है (... कृपया ध्यान दें कि वर्गीकरण सटीकता पहली बार में 100% है और फिर भी लागत अधिक है ...), आप परीक्षण के आधार पर सटीकता के आधार पर ओवरफिटिंग का निर्धारण करते हैं। सेट।


0

यह समझने के लिए कि ओवरफिटिंग का मतलब क्या है और यह मॉडल की सटीकता को कैसे प्रभावित करता है, आपको पूर्वाग्रह - विचरण व्यापार को समझने की आवश्यकता है।

अंडर-फिटिंग के साथ-साथ ओवरफिटिंग दो अलग-अलग समस्याएं हैं जो सीधे पक्षपाती-विचरण समस्याओं से संबंधित हैं। तीन अलग-अलग कारकों के बीच संबंध को समझना हमेशा महत्वपूर्ण होता है और ये कारक पूर्वाग्रह-विचरण (ओवरफिटिंग-अंडर-फिटिंग) समस्याओं से कैसे जुड़े होते हैं:

1- मॉडल का आकार। मापदंडों की संख्या

2- प्रशिक्षण के लिए उपलब्ध आंकड़ों की मात्रा। प्रशिक्षण नमूनों की संख्या।

3- पुनरावृत्तियों की संख्या। प्रशिक्षण पुनरावृत्तियों।

इन कारकों में से किसी के बीच सीधा संबंध बनाना- दूसरों को देखे बिना अंडर-फिटिंग की समस्याओं को हमेशा गलत निष्कर्ष तक ले जाएगा।

ओवरफिटिंग और अंडर-फिटिंग की समस्याओं से बचने के लिए गणितीय समीकरणों का उपयोग करके इन कारकों को समझना और थीम को जोड़ना एक कठिन काम है, क्योंकि यह एक कार्य पर निर्भर है, लोग ओवरफिटिंग की खोज और बचने के लिए सरल तरीकों का उपयोग करते हैं। आसान तरीका यह है कि डेटा को तीन अलग-अलग हिस्सों में विभाजित किया जाए, प्रशिक्षण, सत्यापन और परीक्षण। परीक्षण को छुआ नहीं जाना चाहिए। प्रत्येक पुनरावृत्ति या पुनरावृत्तियों के बाद नेटवर्क का परीक्षण करने के लिए नेटवर्क और सत्यापन सेट को प्रशिक्षित करने के लिए प्रशिक्षण सेट का उपयोग करें। सैद्धांतिक रूप से, आप देखेंगे कि सत्यापन सेट पर त्रुटि पहले एन पुनरावृत्तियों के लिए धीरे-धीरे घटती है और फिर बहुत कम पुनरावृत्तियों के लिए स्थिर होगी और फिर बढ़नी शुरू हो जाएगी। जब त्रुटि बढ़नी शुरू हो जाती है, तो आपका नेटवर्क प्रशिक्षण डेटा को छोड़ना शुरू कर देता है और प्रशिक्षण प्रक्रिया को रोक दिया जाना चाहिए।

नोट: मूल्य N ऊपर सूचीबद्ध तीन कारकों से बहुत संबंधित है। डेमो मॉडल सेट और विभिन्न मॉडलों, प्रशिक्षण डेटा के साथ परीक्षण करना हमेशा एक अच्छा अभ्यास होता है। आप देखेंगे कि जितना बड़ा मॉडल - कम प्रशिक्षण डेटा उतना छोटा N. छोटा मॉडल - जितना अधिक प्रशिक्षण डेटा उतना बड़ा N. नोट: अंडर-फिटिंग समस्या वाले छोटे मॉडल का उपयोग करते समय सावधान रहें।


आपने कहा है "सैद्धांतिक रूप से, आप देखेंगे कि सत्यापन सेट पर त्रुटि पहले N पुनरावृत्तियों के लिए धीरे-धीरे घटती है और फिर बहुत कम पुनरावृत्तियों के लिए स्थिर होगी और फिर बढ़नी शुरू हो जाएगी।" यहां त्रुटि से आपका क्या मतलब है यह वास्तव में मुद्दा है जिसे मैंने प्रश्न में उठाया है। उत्तर 15 है यदि मैं त्रुटि के माप के रूप में लागत लेता हूं और 280 अगर मैं त्रुटि के माप के रूप में वर्गीकरण सटीकता लेता हूं
नितिन सिवाच

कृपया उपरोक्त टिप्पणी में सुधार पर ध्यान दें: जब ओवरफिटिंग शुरू हो गई है, तो इसका उत्तर युग 15 है यदि मैं त्रुटि के माप के रूप में लागत लेता हूं और 280 मैं यदि त्रुटि के माप के रूप में वर्गीकरण सटीकता लेता हूं
नितिन सिवाच

सत्यापन सेट पर त्रुटि
बशर हदद

और उस त्रुटि का माप क्या है? (100 - वर्गीकरण सटीकता) या लागत। मैं वर्गीकरण सटीकता के संबंध में सत्यापन सेट साधनों पर त्रुटि को समझता हूं। लेकिन वास्तव में मैं यही पूछ रहा हूं। लागत क्यों नहीं? कृपया मूल प्रश्न पर ग्रासहॉपर की प्रतिक्रिया में मेरे द्वारा की गई टिप्पणियों का संदर्भ लें
नितिन सिवाच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.