हम सिर्फ हाइपर मापदंडों को क्यों नहीं सीखते हैं?


11

मैं एक बहुत ही लोकप्रिय पेपर " एक्सप्लेनिंग और हार्नेसिंग एडिशनल एग्जामिनेशन " लागू कर रहा था और पेपर में, यह एक प्रतिकूल उद्देश्य फ़ंक्शन को प्रशिक्षित करता है

J '' (') = αJ (+) + (1 - α) J' (θ)।

यह α को एक हाइपरपरमीटर के रूप में मानता है। α 0.1, 0.2, 0.3, आदि हो सकता है।

इस विशिष्ट कागज के बावजूद, मैं सोच रहा हूँ, क्यों हम सिर्फ α को अपने मापदंडों में शामिल नहीं करते हैं और सबसे अच्छा α सीखते हैं?

ऐसा करने के लिए नुकसान क्या है? क्या यह ओवरफिटिंग की वजह से है? यदि ऐसा है, तो सिर्फ 1 और पैरामीटर सीखने से इतना ओवरफिटिंग क्यों होता है?


खैर, अगर हाइपरपैरमीटर लागत फ़ंक्शन (और डीजीपी-डेटा जनरेटिंग प्रक्रिया का नहीं) का एक पैरामीटर है, तो यह स्पष्ट नहीं है कि इसके द्वारा स्वयं डेटा में इसके बारे में जानकारी है।
kjetil b halvorsen

1
कई मामलों में, हम चयन करने के लिए डेटा का उपयोग करते हैं αएक सत्यापन सेट पर मॉडल के प्रदर्शन को देखकर। (यानी, सामान्यीकरण त्रुटि के लिए एक प्रॉक्सी।)
विमल

जवाबों:


8

"हम सिर्फ हाइपर मापदंडों को क्यों नहीं सीखते?"

बहुत अच्छा सवाल है! मैं और अधिक सामान्य उत्तर देने का प्रयास करूँगा। टी एल; डॉ जवाब यह है कि आप निश्चित रूप से hyperparameters, बस एक ही डेटा से नहीं सीख सकते हैं। थोड़ा और विस्तृत उत्तर के लिए आगे पढ़ें।


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

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

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

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

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

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


नमस्कार, आपके जवाब के लिए धन्यवाद। यदि मैं समान डेटा का उपयोग करता हूं तो क्या होगा ??
एरिन

7

हाइपरपरमेटर्स उस पेपर में एक की तरह अक्सर नुकसान फ़ंक्शन में कई शब्दों को संतुलित करने के लिए उपयोग किया जाता है। यदि आपने उन्हें सीखने योग्य बना दिया है, तो अनुकूलन प्रक्रिया बस उन सभी शब्दों को शब्दों के प्रति आवंटित करना सीख लेगी, जो उन शब्दों की कीमत पर अनुकूलित करना आसान है, जो अनुकूलन के लिए कठिन हैं, जो शर्तों को संतुलित करने के बिंदु को पराजित करते हैं।

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


4

चूंकि आपने "कागज की परवाह किए बिना" पूछा था, मैं एक सरल उदाहरण लेना चाहता हूं: दंडित रैखिक प्रतिगमन (रिज / लासो)।

उन मामलों के लिए, मैं दो कारणों के बारे में सोच सकता हूं: लेकिन पहले, ध्यान दें कि यहां दो कार्य हैं: (F1) नुकसान फ़ंक्शन, जो हाइपर-पैरामीटर का एक विश्लेषणात्मक कार्य है और डेटा (आपके द्वारा लिंक किए गए पेपर में,) आईटी इस J~; और (F2) सामान्यीकरण त्रुटि का एक अनुमान, जो (F1) के लिए इष्टतम समाधान और आपके द्वारा चुने गए हाइपर-पैरामीटर पर निर्भर करता है।

कैविएट: कागज पर एक सरसरी निगाह से पता चलता है कि लेखक MNIST डेटासेट के लिए एक न्यूरल नेटवर्क क्लासिफायर ट्रेन करते हैं। यह स्पष्ट रूप से नहीं कहा जाता है कि हाइपर-पैरामीटर कैसे चुनेंα, लेकिन मैंने एक को उठाया होगा α जो सर्वश्रेष्ठ मॉडल की सत्यापन त्रुटि को कम करता है।

  1. हाइपर-पैरामीटर के अनुकूलन के लिए उद्देश्य समारोह एक अभिव्यक्ति है जो सामान्यीकरण त्रुटि के लिए एक प्रॉक्सी है। यह अभिव्यक्ति एक साधारण विश्लेषणात्मक फ़ंक्शन के रूप में लिखना मुश्किल है जिसे विभेदित किया जा सकता है, लेकिन इसे आसानी से अंतर्निहित अनुकूलन समस्या को हल करके किसी बिंदु पर आसानी से मूल्यांकन किया जा सकता है।

  2. फ़ंक्शन (एफ 2) का मूल्यांकन आपको एक अनुकूलन समस्या को हल करने की आवश्यकता है, जो महंगा हो सकता है। तो, भले ही आप क्रमिक वंश को करने के लिए F2 के लिए ढाल को अनुमानित कर सकते हैं, यह महंगा और धीमा होगा। ऐसे मामलों में, ग्रिड-खोज करना अक्सर "काफी अच्छा होता है।"

यह कहने के बाद कि, हाइपर-पैरामीटर पर उनकी निर्भरता के कारण कुछ चिकनाई संरचना मानकर ब्लैक-बॉक्स उद्देश्य कार्यों (जैसे F2) को अनुकूलित करने की तकनीकें हैं। एक उदाहरण के रूप में, आप इस पोस्ट को देख सकते हैं जो दिखाता है कि कैसे एक लैस्सो मॉडल का प्रदर्शन अपने हाइपर-पैरामीटर के साथ बदलता रहता हैλ:

लास्सो मॉडल प्रदर्शन

(इस पोस्ट से ली गई छवि: https://stats.stackexchange.com/a/26607/54725 )

कुछ संदर्भ:


क्या आप विशेष रूप से जे (x, x + esign (JxJ (y, x, y)) को F2 के रूप में द्वितीय पद की बात कर रहे हैं?
Aerin

@ ऐरन नं। J लागत समारोह है; J~नियमित लागत समारोह है। चूंकि वे एक क्लासिफायरियर का निर्माण कर रहे हैं, मैं कहूंगा कि F2 सत्यापन हानि फ़ंक्शन हो सकता है। कागज वास्तव में कहते हैं कि उन्होंने उठायाα 0.5 के रूप में यह काफी अच्छी तरह से काम किया (वे अन्य मूल्यों का पता नहीं लगा α, न ही लेने की रणनीति α)।
विमल

तो क्या कागज में आप एफ 1 और एफ 2 के रूप में संदर्भित कर रहे हैं?
एरिन

एफ 1 है J~और मैंने F2 के रूप में सत्यापन त्रुटि का उपयोग किया होगा। मैं इसे स्पष्ट करने के लिए अपने उत्तर को अपडेट करूंगा।
विमल

1

आइए देखें कि यदि हम हाइपरपरमीटर को प्लग करते हैं तो पहली ऑर्डर की स्थिति कैसी होगी α और इसे वैसे ही सीखने की कोशिश करें θ डेटा से:

αJ(θ)=ααJ(θ)+α(1α)J(θ)=J(θ)J(θ)=0
इसलिए,
J(θ)=J(θ)

जब इस हाइपरपैरिमेट का अनुकूलन किया जाता है, तो यह J और J दोनों का कार्य एक ही कार्य करेगा, अर्थात समान भार। आप एक तुच्छ समाधान के साथ समाप्त करेंगे।

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

yL=XLβL
aL=σ(yL)
XL+1=aL
βLβ

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

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