2010-05-04 16 views
10

के लिए पैरामीटर ट्यूनिंग मुझे अपने संकल्पनात्मक एल्गोरिदम के पैरामीटर को ट्यून करने के तरीके को समझने का प्रयास करने में कोई समस्या है ताकि यह अदृश्य डेटा पर अपेक्षाकृत अच्छी तरह से प्रदर्शन कर सके।पेरिसट्रॉन लर्निंग एल्गोरिदम

मैंने एक सत्यापित कार्यप्रणाली एल्गोरिदम लागू किया है और मैं एक विधि को समझना चाहता हूं जिसके द्वारा मैं पुनरावृत्ति की संख्या और perceptron की सीखने की दर को ट्यून कर सकता हूं। ये दो पैरामीटर हैं जिनमें मुझे रूचि है।

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

पुनरावृत्तियों की संख्या के लिए, मुझे पूरी तरह से यकीन नहीं है कि एक आदर्श संख्या कैसे निर्धारित करें।

किसी भी मामले में, किसी भी मदद की सराहना की जाएगी। धन्यवाद।

उत्तर

13

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

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

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

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

फिर, साजिश युग संख्या के एक समारोह के रूप में कुल त्रुटि (यानी, एक्स अक्ष पर युग संख्या, y अक्ष पर कुल त्रुटि)। शुरू में जाहिर है, आप ' ऊपरी बाएं कोने में डेटा बिंदुओं को नीचे और दाईं ओर और एक घटती ढलान के साथ

एल्गोरिदम प्रशिक्षण डेटा के खिलाफ नेटवर्क को प्रशिक्षित करने दें। (जैसे द्वारा, 10 रन प्रति) जब तक आप वक्र (बनाम युग संख्या कुल त्रुटि) को देखने के अवधियों को बढ़ाएँ समतल --i.e।, अतिरिक्त पुनरावृत्तियों कुल त्रुटि में कमी का कारण नहीं है।

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

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

यहां एक और पैरामीटर महत्वपूर्ण है (हालांकि कड़ाई से जरूरी नहीं), 'गति'। जैसा कि नाम से पता चलता है, एक गति अवधि का उपयोग करने से आपको पर्याप्त रूप से प्रशिक्षित नेटवर्क अधिक तेज़ी से प्राप्त करने में मदद मिलेगी। संक्षेप में, गति सीखने की दर के लिए एक गुणक है - जब तक त्रुटि दर घट रही है, गति गति प्रगति को तेज करती है। गति अवधि के पीछे अंतर्ज्ञान 'है जब तक आप गंतव्य की ओर यात्रा करते हैं, अपनी गति' बढ़ाएं। गति अवधि के लिए विशिष्ट मान 0.1 या 0.2 हैं। उपर्युक्त प्रशिक्षण योजना में, सीखने की दर को अलग करते समय आपको शायद गति स्थिर रखना चाहिए।

+0

यह सही जवाब है, लेकिन अपनी लर्निंग रेट और मोमेंटम को उस डोमेन तक सीमित न करें (स्केलिंग)। एक यादृच्छिक नेटवर्क उत्पन्न करें, 0.01-0.99 को 0.05 चरणों को ले जाएं। यदि आप वैश्विक मिनीमा को इस तरह से हिला नहीं सकते हैं, तो सुनिश्चित करें कि आपने अपने इनपुट को सही तरीके से सामान्यीकृत किया है। मैं लॉग का एक बड़ा प्रशंसक हूँ! – deepelement

3

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

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

1

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

डेटा को शून्य-माध्य, इकाई भिन्नता या 0-1 या किसी अन्य मानक रूप के बीच सामान्यीकृत करना सीखने की दर के मूल्य को चुनने में मदद कर सकता है। जैसा कि डॉग ने उल्लेख किया है, 0.05 और 0.2 के बीच सीखने की दर आम तौर पर अच्छी तरह से काम करती है।

इसके अलावा यह एल्गोरिदम को तेजी से एकत्र करने में मदद करेगा।

स्रोत: जुस्ज़कज़क, पी .; डी एम जे टैक्स, और आर पी डब्ल्यू। नेस (2002)। "समर्थन वेक्टर डेटा विवरण में फ़ीचर स्केलिंग"। प्रोक। 8 वें अन्नू सम्मेलन। अभिभाषक। स्कूल कम्प्यूट इमेजिंग: 95-10।

संबंधित मुद्दे