कैसे ढाल वंश के लिए समाप्ति की स्थिति को परिभाषित करने के लिए?


24

असल में, मैं आपसे पूछना चाहता था कि मैं धीरे-धीरे उतरने की स्थिति को कैसे परिभाषित कर सकता हूं।

क्या मैं पुनरावृत्तियों की संख्या के आधार पर इसे रोक सकता हूँ, अर्थात, मान के लिए मान, १०० पुनरावृत्तियों?

या क्या मुझे ऐसा इंतजार करना चाहिए कि दो मापदंडों मानों में भिन्न 'नया' और 'पुराना' के आदेशों के क्रम में बहुत छोटा है ? इसमें निश्चित रूप से ज्यादा समय लगेगा।10-6

सबसे अच्छा तरीका क्या है? मेरे मामले में भी एक पुनरावृत्ति महत्वपूर्ण समय लेता है। इस स्थिति में अगर मैं दूसरी शर्त की प्रतीक्षा करता हूं तो मुझे लगता है कि सप्ताह लग सकते हैं।

तो मुझे किस दृष्टिकोण का उपयोग करना चाहिए। इस परिदृश्य से कैसे निपटा जाए?


1
यह स्पष्ट रूप से कहा नहीं गया है, लेकिन मुझे लगता है कि आप एक MLE खोजने की कोशिश कर रहे हैं। आपका परिणाम वास्तव में पूरी तरह से आपके पैरामीटर स्थान, आपके संभावना फ़ंक्शन और आपकी आवश्यकताओं (उर्फ, सबसे अच्छी तरह से परिभाषित नहीं है) पर निर्भर करता है। यदि आप सिर्फ सैद्धांतिक औचित्य की तलाश कर रहे हैं जैसे कि असममित दक्षता; Le'Cam शर्तों के तहत आप बस एक-चरण MLE का उपयोग कर सकते हैं (आगे की धारणा के अनुसार आप न्यूटन के तरीके और अपने ढाल वंश के लिए स्कोर फ़ंक्शन का उपयोग कर रहे हैं)। इसके लिए आवश्यक है कि आपका प्रारंभिक मूल्य ऐसा हो कि प्रायिकता में। n1/2θ^0θ
जोनाथन लिसिक

इतना इंतजार, जब आपने "नया" कहा - "पुराना" पर्याप्त रूप से छोटा है, तो क्या यह ढाल वंश के लिए एक गलत समाप्ति की स्थिति है? (यदि निश्चित बिंदु जैसे प्रमेय लागू होते हैं, तो वह स्थिति ठीक होनी चाहिए?)
चार्ली पार्कर

जब कोई भी बंद हो सकता है: फ़ंक्शन मान , या gradients , या पैरामीटर , किसी भी रिश्तेदार या निरपेक्ष को स्थानांतरित करना बंद कर देते हैं। लेकिन व्यवहार में पैरामीटर .. वैसे भी बहुत सारे हैं, इसलिए वे मुड़े हुए हैं, लेकिन हर कार्यक्रम अलग तरीके से करता है। एक तस्वीर के लिए Mathworks सहिष्णुता और मानदंड को देखना । मैंमैंएक्समैं3×2ftolabs ftolrelxtolabs
Denis

जवाबों:


19

अच्छा प्रश्न। मैंने साहित्य में नियमों को रोकने के बहुत सारे देखा है, और संदर्भ के आधार पर प्रत्येक के फायदे और नुकसान हैं। optimआर में समारोह, उदाहरण के लिए, कम से कम तीन अलग अलग रोक नियम हैं:

  • maxit, अर्थात् पूर्वनिर्धारित अधिकतम पुनरावृत्तियों की संख्या। इसी तरह का एक और विकल्प जो मैंने साहित्य में देखा है, वह समय से पहले सेकंड की अधिकतम संख्या है। यदि आप सभी की जरूरत है एक अनुमानित समाधान है, यह एक बहुत ही उचित हो सकता है। वास्तव में, मॉडल के वर्ग (विशेष रूप से रैखिक मॉडल) हैं, जिसके लिए शुरुआती रोक आपके पैरामीटर मूल्यों पर पूर्व में गॉसियन लगाने के समान है। बार-बार कहने वाले कहते हैं कि आपके पास एक पूर्व के बजाय "एल 2 मानदंड" होगा, लेकिन वे भी ऐसा करना उचित समझेंगे। मैंने केवल इस पेपर को स्किम्ड किया है , लेकिन यह शुरुआती ठहराव और नियमितीकरण के बीच संबंधों के बारे में बात करता है और आपको अधिक जानकारी की ओर इंगित करने में मदद कर सकता है। लेकिन संक्षिप्त संस्करण है, हां, जल्दी रोकना आपके लिए पूरी तरह से सम्मानजनक बात हो सकती है, जो आप पर निर्भर करती है '

  • abstol, यानी, जब फ़ंक्शन शून्य के करीब "बंद हो जाता है"। यह आपके लिए प्रासंगिक नहीं हो सकता (ऐसा नहीं लगता कि आप शून्य की उम्मीद कर रहे हैं), इसलिए मैं इसे छोड़ दूंगा।

  • reltol, जो आपके दूसरे सुझाव जैसा है - जब सुधार एक सीमा से नीचे चला जाता है तो रुकें। मुझे वास्तव में यह पता नहीं है कि इस पर कितना सिद्धांत है, लेकिन आप शायद इस तरह से कम संख्या में पुनरावृत्ति प्राप्त करेंगे। यदि यह आपके लिए महत्वपूर्ण है, तो यह अधिक पुनरावृत्तियों के लिए कोड चलाने के लायक हो सकता है।

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

उचित समय में कम मिनीमा खोजने के लिए अन्य संभावित विकल्प शामिल हो सकते हैं:

  • स्टोचस्टिक ग्रेडिएंट डिसेंट, जिसे केवल एक समय में आपके डेटा के एक छोटे हिस्से के लिए ग्रेडिएंट्स का अनुमान लगाने की आवश्यकता होती है (उदाहरण के लिए "शुद्ध" SGD, या छोटे मिनी-बैचों के लिए एक डेटा बिंदु)।

  • अधिक उन्नत अनुकूलन फ़ंक्शंस (जैसे न्यूटन-प्रकार के तरीके या कंजुगेट ग्रेडिएंट), जो आपके उद्देश्य फ़ंक्शन की वक्रता के बारे में जानकारी का उपयोग करके आपको बेहतर दिशाओं में इंगित करने और बेहतर कदम आकार लेने में मदद करते हैं क्योंकि आप ढलान पर जाते हैं।

  • आपके अपडेट नियम में एक "गति" शब्द है, ताकि आपका आशावादी अपने उद्देश्य फ़ंक्शन में घाटी की दीवारों को बंद करने के बजाय डाउनहिल को रोल करने का बेहतर काम करे।

इन दृष्टिकोणों की चर्चा इन व्याख्यान नोट्स में की गई है जो मुझे ऑनलाइन मिले थे।

उम्मीद है की यह मदद करेगा!

ओह संपादित करें , और आप बेहतर शुरुआती मान प्राप्त करने का प्रयास कर सकते हैं (जैसे समस्या का एक सरल संस्करण हल करके) ताकि आपकी "गर्म शुरुआत" से इष्टतम के करीब पहुंचने के लिए कम पुनरावृत्तियां हों।


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

मैं स्पष्ट करना चाहूंगा कि क्या reltol(यानी जब "सुधार" होना बंद हो जाता है) का मतलब है। पहले सुधार का मतलब है लागत समारोह में कमी। तो मैं मान लूंगा कि आपका क्या मतलब है, जब लागत फ़ंक्शन काफी कम हो जाता है (या बढ़ना शुरू होता है) एक हाल्ट, है ना? एक वास्तव में नहीं करता है "| पुराना - नया |" अद्यतन नियम का प्रकार, सही?
चार्ली पार्कर

1
abstolपैरामीटर केवल समझ में आता है अगर तुम लागत समारोह, नहीं लागत समारोह के ही ढाल की सहिष्णुता ले जा रहे हैं। एक स्थानीय अनुकूलक में, ढाल का मान शून्य है; लेकिन फ़ंक्शन का मान नहीं है।
मारियो बेसेरा

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