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