मैं प्रतिगमन मॉडल बना रहा हूं। एक प्रीप्रोसेसिंग कदम के रूप में, मैं 0 और मानक विचलन का मतलब करने के लिए अपने फीचर मानों को स्केल करता हूं। क्या लक्ष्य मानों को भी सामान्य करना आवश्यक है?
मैं प्रतिगमन मॉडल बना रहा हूं। एक प्रीप्रोसेसिंग कदम के रूप में, मैं 0 और मानक विचलन का मतलब करने के लिए अपने फीचर मानों को स्केल करता हूं। क्या लक्ष्य मानों को भी सामान्य करना आवश्यक है?
जवाबों:
आइए पहले विश्लेषण करें कि फीचर स्केलिंग क्यों की जाती है। फ़ीचर स्केलिंग, सबसे बड़े वंश एल्गोरिदम के अभिसरण को बेहतर बनाता है, जिसमें पैमाने पर आक्रमण की संपत्ति नहीं होती है।
स्टोकेस्टिक ढाल वंश में प्रशिक्षण उदाहरण वजन इतना तरह iteratively अद्यतन करता है सूचित,
कहाँ वजन रहे हैं, γ , एक stepsize है ∇ डब्ल्यू ढाल wrt वजन है, ℓ , एक नुकसान समारोह है च डब्ल्यू समारोह द्वारा parameterized है डब्ल्यू , एक्स एक प्रशिक्षण उदाहरण है, और y प्रतिक्रिया / लेबल है।
निम्नलिखित उत्तल कार्यों की तुलना करें, उचित स्केलिंग और अनुचित स्केलिंग का प्रतिनिधित्व करें।
आकार में से एक वजन अद्यतन के माध्यम से एक कदम अनुचित तरीके से बढ़ाया मामले से ठीक से बढ़ाया मामले में गलती से काफी बेहतर कमी निकलेगा। नीचे दिखाया गया है की दिशा है ∇ डब्ल्यू ℓ ( च डब्ल्यू ( एक्स ) , y ) लंबाई की γ ।
आउटपुट को सामान्य करने से आकार प्रभावित नहीं होगा , इसलिए यह आम तौर पर आवश्यक नहीं है।
एकमात्र स्थिति जिसकी मैं कल्पना कर सकता हूं कि आउटपुट को स्केल करने का प्रभाव पड़ता है, यदि आपकी प्रतिक्रिया चर बहुत बड़ी है और / या आप f32 चर (जो कि GPU रैखिक बीजगणित के साथ आम है) का उपयोग कर रहे हैं। इस मामले में भार के एक तत्व का एक अस्थायी बिंदु अतिप्रवाह प्राप्त करना संभव है। लक्षण या तो एक Inf मान है या यह अन्य चरम प्रतिनिधित्व के चारों ओर लपेटेगा।
आम तौर पर, यह आवश्यक नहीं है। स्केलिंग इनपुट स्थिति से बचने में मदद करता है, जब एक या कई विशेषताएं दूसरों पर परिमाण में हावी होती हैं, नतीजतन, मॉडल शायद ही छोटे पैमाने के चर के योगदान को उठाता है, भले ही वे मजबूत हों। लेकिन अगर आप लक्ष्य को मापते हैं, तो आपका मतलब चुकता त्रुटि स्वचालित रूप से कम हो जाती है। MSE> 1 का मतलब है कि आप लगातार (भोली) भविष्यवाणी से भी बदतर कर रहे हैं।
नहीं, प्रतिक्रिया के रैखिक रूपांतरण कभी भी आवश्यक नहीं होते हैं। हालाँकि, वे आपके मॉडल की व्याख्या में सहायता करने के लिए सहायक हो सकते हैं। उदाहरण के लिए, यदि आपकी प्रतिक्रिया मीटरों में दी गई है, लेकिन आमतौर पर बहुत छोटी है, तो यह मिलीमीटर के लिए पुनर्विक्रय करने में सहायक हो सकती है। यह भी ध्यान दें कि आदानों को केंद्रित और / या स्केलिंग उसी कारण से उपयोगी हो सकता है। उदाहरण के लिए, आप मोटे तौर पर एक गुणांक की व्याख्या कर सकते हैं क्योंकि भविष्यवक्ता में प्रति यूनिट परिवर्तन पर प्रतिक्रिया पर प्रभाव जब अन्य सभी भविष्यवाणियों को 0 पर सेट किया जाता है । लेकिन 0 अक्सर उन चरों के लिए मान्य या दिलचस्प मूल्य नहीं होगा। आदानों को केंद्रित करने से आप गुणांक की व्याख्या कर सकते हैं क्योंकि प्रति यूनिट परिवर्तन का प्रभाव तब होता है जब अन्य भविष्यवाणियां अपने औसत मूल्यों को मानती हैं।
यदि मूल पैमाने पर भविष्यवाणियों में प्रतिक्रिया रैखिक नहीं है, तो अन्य परिवर्तन (यानी लॉग या स्क्वायर रूट) सहायक हो सकते हैं। यदि यह मामला है, तो आप यह देखने के लिए सामान्यीकृत रैखिक मॉडल के बारे में पढ़ सकते हैं कि क्या वे आपके लिए उपयुक्त हैं।
हां , आपको लक्ष्य चर को स्केल करने की आवश्यकता है। मैं इस संदर्भ को उद्धृत करूंगा :
बदले में मूल्यों के एक बड़े प्रसार के साथ एक लक्ष्य चर, बड़ी त्रुटि ढाल मूल्यों में नाटकीय रूप से परिवर्तन करने के लिए वजन मूल्यों के कारण, सीखने की प्रक्रिया को अस्थिर कर सकता है।
संदर्भ में, कोड पर एक प्रदर्शन भी होता है जहां प्रशिक्षण के दौरान मॉडल वजन बहुत बड़ी त्रुटियों को देखते हुए विस्फोट हो जाता है, और बदले में, वजन अपडेट के लिए गणना की गई त्रुटि ग्रेडिएंट भी विस्फोट हो गया। संक्षेप में, यदि आप डेटा को मापते नहीं हैं और आपके पास बहुत बड़े मूल्य हैं, तो बहुत कम सीखने की दर मूल्यों का उपयोग करना सुनिश्चित करें। इसका उल्लेख @drSpacy ने भी किया था।