क्यों मशीन सीखने में खराब है?


49

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


संबंधित: ऊपर दिए गए प्रश्न का अनुसरण करें, " जब एक मॉडल को परिभाषित नहीं किया जाता है? "


1
क्या आपका सवाल वास्तव में है कि क्या कोई ऐसा मामला है जहां ओवरफिट होना असंभव है?
सीन ओवेन

@ सीनियन: नहीं, ओवरफिट करना कैसे असंभव होगा?
भूलों

सहमत हूँ, जैसा कि आपने पूछा कि क्या ओवरफिटिंग करने से मॉडल खराब हो जाते हैं, चाहे डेटा कितना भी खराब क्यों न हो
शॉन ओवेन

1
ओवरफिटिंग परिभाषा से खराब है। यह नहीं होगा यदि यह नहीं थे के ऊपर -fitting।
गाला

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

जवाबों:


44

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

यह समझने का एक तरीका है कि सहज ज्ञान युक्त यह है कि एक मॉडल डेटा के कुछ प्रासंगिक हिस्सों (सिग्नल) और कुछ अप्रासंगिक भागों (शोर) का उपयोग कर सकता है। एक ओवरफ़ीड मॉडल शोर का अधिक उपयोग करता है, जो ज्ञात शोर (प्रशिक्षण डेटा) के मामले में अपने प्रदर्शन को बढ़ाता है और उपन्यास शोर (परीक्षण डेटा) के मामले में अपने प्रदर्शन को कम करता है। प्रशिक्षण और परीक्षण डेटा के बीच प्रदर्शन में अंतर यह दर्शाता है कि मॉडल कितना शोर उठाता है; और शोर को उठाते हुए सीधे परीक्षण डेटा (भविष्य के डेटा सहित) पर खराब प्रदर्शन में बदल जाता है।

सारांश: ओवरफिटिंग परिभाषा से खराब है, इसका जटिलता या सामान्यीकरण करने की क्षमता के साथ बहुत कुछ नहीं है, बल्कि संकेत के लिए गलत ध्वनि के साथ करना है।

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


17

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

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

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

संपादित करें : यह कुछ उपयोग का हो सकता है, शायद उपरोक्त स्पष्टीकरण में गतिशीलता को जोड़कर: डी


14

मोटे तौर पर, ओवर-फिटिंग आम तौर पर तब होता है जब अनुपात

यहाँ छवि विवरण दर्ज करें

बहुत ऊंचा है।

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

उदाहरण:

  • यदि आपका डेटा दो आयामों में है, तो आपके पास प्रशिक्षण सेट में 10000 अंक हैं और मॉडल एक पंक्ति है, आपको अंडर- फिट होने की संभावना है ।
  • यदि आपका डेटा दो आयामों में है, तो आपके पास प्रशिक्षण सेट में 10 अंक हैं और मॉडल 100-डिग्री बहुपद है, आपके ओवर- फिट होने की संभावना है ।

यहाँ छवि विवरण दर्ज करें

एक सैद्धांतिक दृष्टिकोण से, आपके मॉडल को ठीक से प्रशिक्षित करने के लिए आवश्यक डेटा की मात्रा मशीन सीखने में एक महत्वपूर्ण अभी तक-से-उत्तरित प्रश्न है। इस प्रश्न का उत्तर देने के लिए ऐसा एक दृष्टिकोण कुलपति आयाम है । एक अन्य पक्षपात-विचरण व्यापार है

अनुभवजन्य दृष्टिकोण से, लोग आमतौर पर एक ही भूखंड पर प्रशिक्षण त्रुटि और परीक्षण त्रुटि की साजिश करते हैं और यह सुनिश्चित करते हैं कि वे परीक्षण त्रुटि की कीमत पर प्रशिक्षण त्रुटि को कम नहीं करते हैं:

यहाँ छवि विवरण दर्ज करें

मैं Coursera 'मशीन लर्निंग कोर्स , सेक्शन "10: मशीन लर्निंग लगाने की सलाह" देखने की सलाह दूंगा

(पुनश्च: कृपया इस एसई पर TeX समर्थन के लिए पूछने के लिए यहां जाएं।)


8

लगता है अभी तक किसी ने XKCD को कॉमिक ओवरफिट करते हुए पोस्ट नहीं किया है।

यहाँ छवि विवरण दर्ज करें


5

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


+1 धन्यवाद, आपके उत्तर के परिणामस्वरूप, मैंने ऊपर दिए गए प्रश्न के लिए एक अनुवर्ती पोस्ट किया है, " जब एक मॉडल को कम कर दिया जाता है? "
ब्लंडर्स

4

ओवरफिटिंग के बारे में समस्या को समझने के लिए मुझे क्या मिला, यह कल्पना करके कि सबसे अधिक ओवरफिट मॉडल क्या होगा। अनिवार्य रूप से, यह एक साधारण लुक-अप तालिका होगी।

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

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

भविष्य में क्या हो सकता है, यह जानने के लिए अपने परिणामों को सामान्य बनाने के लिए, आपको एक मॉडल बनाना होगा जो सामान्य करता है कि आपके प्रशिक्षण सेट में क्या हो रहा है। ओवरफिट मॉडल आपके पास पहले से मौजूद डेटा का वर्णन करने का एक बड़ा काम करते हैं, लेकिन वर्णनात्मक मॉडल आवश्यक रूप से अनुमानित मॉडल नहीं हैं।

नो फ्री लंच प्रमेय कहता है कि कोई भी मॉडल किसी भी अन्य मॉडल को सभी संभावित उदाहरणों के सेट पर बेहतर प्रदर्शन नहीं कर सकता है । यदि आप भविष्यवाणी करना चाहते हैं कि संख्याओं के क्रम में आगे क्या आएगा "2, 4, 16, 32" तो आप किसी अन्य मॉडल की तुलना में अधिक सटीक एक मॉडल का निर्माण नहीं कर सकते हैं यदि आप यह अनुमान नहीं लगाते हैं कि एक अंतर्निहित पैटर्न है। एक मॉडल जो ओवरफिट है वह वास्तव में पैटर्न का मूल्यांकन नहीं कर रहा है - यह बस मॉडलिंग कर रहा है जो यह जानता है कि यह संभव है और आपको टिप्पणियों को दे रहा है। आपको यह अनुमान लगाने से शक्ति मिलती है कि कुछ अंतर्निहित फ़ंक्शन है और यदि आप यह निर्धारित कर सकते हैं कि फ़ंक्शन क्या है, तो आप घटनाओं के परिणाम की भविष्यवाणी कर सकते हैं। लेकिन अगर वास्तव में कोई पैटर्न नहीं है, तो आप भाग्य से बाहर हैं और आप जो कुछ भी कर सकते हैं, वह आपको बता सकता है कि आपको पता है कि क्या संभव है।


1

आप गलत तरीके से दो अलग-अलग संस्थाओं का सामना कर रहे हैं: (1) पूर्वाग्रह-विचरण और (2) मॉडल जटिलता।

φ^φ*n

|φ*-φ^|φ जैसा nφ

φφ^φ*φ={,सी}

[|y-(φ^)|] जैसा n

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


0

ओवरफिटिंग के बारे में बहुत सारे अच्छे स्पष्टीकरण दिए गए हैं। यहाँ मेरे विचार हैं ओवरफिटिंग तब होती है जब आपका विचरण बहुत अधिक होता है और पूर्वाग्रह बहुत कम होता है।

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

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

अंत में, ओवरफिटिंग से बचने के लिए आप मॉडल को नियमित कर सकते हैं या क्रॉस वेलिडेशन का उपयोग कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.