क्रॉस सत्यापन और पैरामीटर ट्यूनिंग


18

क्या कोई मुझे बता सकता है कि परिणाम के रूप में वास्तव में क्रॉस-सत्यापन विश्लेषण क्या देता है? क्या यह सिर्फ औसत सटीकता है या यह किसी भी मॉडल को दिए गए मापदंडों के साथ देता है?

क्योंकि, मैंने कहीं सुना है कि पैरामीटर-ट्यूनिंग के लिए क्रॉस-वैलिडेशन का उपयोग किया जाता है।

जवाबों:


26

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

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


12

जोनाथन के जवाब में जोड़ने के लिए।

हालाँकि, यदि आप पैरामीटर ट्यूनिंग के लिए क्रॉस सत्यापन का उपयोग करते हैं, तो वास्तव में आउट-सैंपल आपके मॉडल का हिस्सा बन जाते हैं। तो आपको अंतिम मॉडल के प्रदर्शन को सही ढंग से मापने के लिए एक और स्वतंत्र नमूने की आवश्यकता है।

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


4

पिछले उत्तरों में जोड़ने के लिए, हम शुरुआत से शुरू करेंगे:

ऐसे कुछ तरीके हैं जिनसे आप अपने मॉडल को प्रशिक्षण डेटा पर ओवरफिट कर सकते हैं, कुछ स्पष्ट हैं, तो कुछ कम। सबसे पहले, और सबसे महत्वपूर्ण एक प्रशिक्षण मापदंडों (वजन) से अधिक डेटा (लॉजिस्टिक प्रतिगमन में वक्र फिटिंग पैरामीटर, तंत्रिका नेटवर्क में नेटवर्क भार) से अधिक है। फिर आप डेटा में शोर को मॉडल करेंगे - यदि आप ओवरफिट करते हैं, तो आप न केवल अंतर्निहित उत्पादन फ़ंक्शन को कैप्चर करते हैं, बल्कि नमूना आकार और इस तथ्य के कारण यादृच्छिकता भी है कि नमूना आबादी का सही प्रतिनिधित्व नहीं है। यह ओवरफिटिंग कुछ हद तक मॉडल की कुछ विशेषताओं (सामान्य जटिलता में) को दंडित करके कम की जा सकती है। यह एक बार प्रशिक्षण को रोकने के द्वारा किया जा सकता है, जब ट्रेन के नमूने पर प्रदर्शन में कोई सुधार नहीं होता है, एक न्यूरल नेटवर्क (जिसे ड्रॉपआउट कहा जाता है) से कुछ न्यूरॉन्स निकालकर,https://ieeexplore.ieee.org/document/614177/ ) आदि)। हालाँकि ये नियमितीकरण की रणनीतियाँ स्वयं पैरामीरिज्ड हैं (आप कब रुकते हैं ?, कितने न्यूरॉन्स निकालने हैं? आदि)। इसके अलावा अधिकांश मशीन लर्निंग मॉडल में कई हाइपर-पैरामीटर होते हैं जिन्हें प्रशिक्षण शुरू होने से पहले सेट करने की आवश्यकता होती है। और ये हाइपर-पैरामीटर पैरामीटर ट्यूनिंग चरण में ट्यून किए गए हैं।

यह हमें दूसरे और अधिक सूक्ष्म प्रकार के ओवरफिटिंग के लिए लाता है: हाइपर-पैरामीटर ओवरफिटिंग। क्रॉस-सत्यापन का उपयोग "सर्वोत्तम" हाइपर-मापदंडों को खोजने के लिए किया जा सकता है, नमूना के k-1 सिलवटों पर अपने मॉडल को बार-बार प्रशिक्षित करके और अंतिम मोड़ पर परीक्षण करके।

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

  1. ग्रिड खोज: प्रत्येक हाइपर-पैरामीटर के लिए आप संभावित मानों की सीमित संख्या की गणना करते हैं। फिर प्रक्रिया पूरी तरह से एन्यूमरेटेड हाइपर-मापदंडों के सभी संयोजनों के लिए की जाती है। जाहिर है, यदि आपके पास निरंतर हाइपर-पैरामीटर हैं, तो आप उन सभी को आज़मा नहीं सकते।
  2. यादृच्छिक ग्रिड खोज: सामान्य ग्रिड खोज के समान, लेकिन इस बार आप सभी संयोजनों को पूरी तरह से बाहर करने की कोशिश नहीं करते हैं, बल्कि सभी संभावित मूल्यों के लिए निश्चित समय का नमूना लेते हैं। ध्यान दें कि यहां हाइपर-पैरामीटर के लिए संभव मूल्यों को न केवल गणना करना संभव है, बल्कि आप नमूना से वितरण भी प्रदान कर सकते हैं।
  3. बाइसियनसर्च - हाइपर-पैरामीटर मानों के संयोजन को स्कोर के अपेक्षित सुधार को अधिकतम करने के लिए चुना जाता है। और अधिक के लिए: http://papers.nips.cc/paper/4522-practical-bayesian-optimization-of-machine-learning-algorithms.pdf । और एक पुस्तकालय जो केवल उसी के साथ काम करता है: https://github.com/hyperopt/hyperopt । जैसा कि स्केनियर के साथ संयोजन करना उतना आसान नहीं है जितना कि दसियों ने सिफारिश की है, इसका उपयोग केवल तभी करें जब आप स्केलेर के साथ काम नहीं कर रहे हों।
  4. हाइपर-पैरामीटर स्पेस में निर्देशित खोज के अन्य तरीके। मेरे अनुभव से वे शायद ही कभी उपयोग किए जाते हैं, इसलिए मैं उन्हें यहां कवर नहीं करूंगा।

हालाँकि, यह कहानी का अंत नहीं है, क्योंकि हाइपर-पैरामीटर डेटा को ओवरफिट भी कर सकते हैं (और करेंगे)। अधिकांश मामलों के लिए आप बस इसके साथ रह सकते हैं, लेकिन यदि आप अपने मॉडल की सामान्यीकरण शक्ति को अधिकतम करना चाहते हैं, तो आप हाइपर-मापदंडों को भी नियमित करने का प्रयास कर सकते हैं। सबसे पहले, आप नेस्टेड ग्रिड खोज (विवरण: http://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html) , चर्चा का उपयोग करके आउट-ऑफ-सैंपल डेटा पर प्रदर्शन को थोड़ा बेहतर तरीके से आंक सकते हैं : नेस्ट क्रॉस सत्यापन मॉडल चयन के लिए), या बस एक सत्यापन सेट का उपयोग करें जो हाइपर-पैरामीटर ट्यूनिंग के लिए उपयोग नहीं किया जाता है। हाइपर-पैरामीटर स्पेस में नियमितीकरण के लिए, यह एक खुला प्रश्न है। कुछ विचारों में हाइपर-पैरामीटर मानों का सबसे अच्छा सेट नहीं चुनना शामिल है, लेकिन बीच में कुछ करीब; तर्क निम्नानुसार है: सर्वश्रेष्ठ हाइपर-पैरामीटर मान सबसे अधिक संभावना डेटा को ओवरफिट करते हैं, क्योंकि ट्रेन डेटा के अन्य की तुलना में बेहतर प्रदर्शन, खराब पैरामीटर बस खराब हैं, लेकिन बीच के लोग संभवतः सर्वश्रेष्ठ लोगों की तुलना में बेहतर सामान्यीकरण प्राप्त कर सकते हैं। । एंड्रयू एनजी ने इसके बारे में एक पेपर लिखा था। एक अन्य विकल्प आपके खोज स्थान को सीमित कर रहा है (आप यहां मजबूत पूर्वाग्रह का परिचय देकर नियमित कर रहे हैं - खोज स्थान के बाहर के मूल्यों को कभी भी स्पष्ट रूप से नहीं चुना जाएगा)।

पक्ष की टिप्पणी: एक प्रदर्शन मीट्रिक के रूप में सटीकता का उपयोग करना ज्यादातर मामलों में एक बहुत बुरा विचार है, एफ 1 और एफ_बेटा स्कोर में देखें - ये मीट्रिक ज्यादातर मामलों में बेहतर ढंग से प्रतिबिंबित करेंगे कि आप वास्तव में बाइनरी वर्गीकरण समस्याओं में अनुकूलन करने की कोशिश कर रहे हैं।

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


2

यदि आप scikit-learn पृष्ठभूमि से हैं, तो यह उत्तर मददगार हो सकता है।

k- गुना क्रॉस-सत्यापन का उपयोग डेटा को kविभाजन में विभाजित करने के लिए किया जाता है , अनुमानक को तब k-1विभाजन पर प्रशिक्षित किया जाता है और फिर kthविभाजन पर परीक्षण किया जाता है । इस तरह, यह चुनना कि कौन सा विभाजन विभाजन होना चाहिए kth, kसंभावनाएं हैं। इसलिए आपको अपने अनुमानक kकी सभी kसंभावनाओं के परिणाम मिलते हैं ।

ये कम्प्यूटेशनल रूप से महंगे तरीके हैं, लेकिन अगर आप अलग-अलग अनुमान लगाने की कोशिश करने जा रहे हैं, तो आप इन तीनों को सीवी के साथ हाइपरपैरेट ट्यूनिंग करने के लिए आज़मा सकते हैं:

मैं। GridSearchCV - सभी अनुमानकर्ताओं के लिए हाइपरपैरमीटर के लिए सभी संभावित P और C की एक संपूर्ण सूची। अंत में उस विशेष अनुमानक सीवी के माध्य का उपयोग करते हुए सर्वश्रेष्ठ हाइपरपामेटर्स देता है।

ii। RandomizedSearchCV - हाइपरपैरमीटर के सभी P और C नहीं करता है, लेकिन एक यादृच्छिक दृष्टिकोण पर, गणना पर निकटतम संभव सटीक अनुमानक को अधिक बचत देता है।

iii। BayesSearchCV - scikit-learnबेतरतीब खोज और फिट परिणाम करने के लिए बायेसियन अनुकूलन का हिस्सा नहीं है ।

tl: dr : CV का उपयोग सिर्फ उच्च पूर्वाग्रह से बचने के लिए किया जाता है और आपके द्वारा आकलन किए जा रहे डेटा के कारण आर अनुमानक के लिए उच्च विचरण होता है। आशा है कि यह मददगार था।

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