ग्रेडिएंट डिसेंट की तरह ग्रेडिएंट बूस्टिंग कैसे होती है?


9

मैं ग्रेडिएंट बूस्टिंग ( https://en.wikipedia.org/wiki/Gradient_boosting ) पर उपयोगी विकिपीडिया प्रविष्टि पढ़ रहा हूं , और यह समझने की कोशिश करता हूं कि कैसे / क्यों हम अवशिष्ट मूल चरण (जिसे छद्म-प्रवणता भी कहा जाता है) द्वारा अवशिष्टों का अनुमान लगा सकते हैं। )। क्या कोई मुझे इस बात का अंतर्ज्ञान दे सकता है कि कैसे मूल वंश जुड़ा हुआ है / अवशेषों के समान है? बहुत सराहना की मदद करो!

यहाँ छवि विवरण दर्ज करें

जवाबों:


11

मान लीजिए कि हम निम्नलिखित स्थिति में हैं। हमारे पास कुछ डेटा है{एक्समैं,yमैं}, जहां प्रत्येक एक्समैं एक संख्या या वेक्टर हो सकता है, और हम एक फ़ंक्शन निर्धारित करना चाहते हैं यह रिश्ता तय करता है (एक्समैं)yमैं, इस अर्थ में कि कम से कम वर्ग त्रुटि:

12Σमैं(yमैं-(एक्समैं))2

छोटा है।

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

एल(;y)=12(y-)2

और फिर भविष्यवाणी के संबंध में ढाल लें

एल(;y)=-y

फिर एक प्रारंभिक मूल्य से शुरू होने वाला ग्रेडिएंट अपडेट y0 है

y1=y0-(y0,y)=y0-(y0-y)=y

तो हम इस सेटअप के साथ एक क्रमिक कदम में हमारी सही भविष्यवाणी को ठीक करते हैं, जो अच्छा है!

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

बड़ा विचार कमजोर रूप से अनुमानित है एल

Start प्रारंभिक अनुमान के साथ , लगभग हमेशा एक साधारण स्थिर कार्य (एक्स)=0, यह हर जगह परिभाषित किया गया है। अब प्रारंभिक आंकड़ों का उपयोग करते हुए, प्रशिक्षण डेटा पर नुकसान फ़ंक्शन की ढाल का मूल्यांकन करके एक नया काम कर रहे डेटासेट का निर्माण करें:

डब्ल्यू={एक्समैं,0-y}

Now approximate एल कमजोर शिक्षार्थी को फिट करके डब्ल्यू। कहते हैं हमें सन्निकटन मिलता हैएफएल। हमें डेटा का विस्तार प्राप्त हुआ हैडब्ल्यू के रूप में पूरे डोमेन में एफ(एक्स)हालाँकि, हमने प्रशिक्षण बिंदुओं पर सटीकता खो दी है, क्योंकि हम एक छोटे से शिक्षार्थी को फिट करते हैं।

Finally, उपयोग एफ की जगह में एल के क्रमिक अद्यतन में 0 पूरे डोमेन पर:

1(एक्स)=0(एक्स)-एफ(एक्स)

हम बाहर निकलते हैं 1, का एक नया सन्निकटन से थोड़ा बेहतर है 0। के साथ शुरू करो1, और संतुष्ट होने तक पुनरावृति।

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


याह, मुझे लगता है कि अच्छा है। केवल ध्यान देने योग्य बात यह है कि यदि आप, उदाहरण के लिए, द्विपद हानि को कम करने के लिए बढ़ावा देना चाहते हैं
Σमैंyमैंलॉग(पीमैं)+(1-yमैं)लॉग(1-पीमैं)
फिर हम जिस ढाल का विस्तार करते हैं वह अब प्राकृतिक तरीके से अवशेषों से संबंधित नहीं है।
मैथ्यू

धन्यवाद मैथ्यू। एक बात जो मैं अपने सिर को पाने की कोशिश कर रहा हूं। साहित्य में यह अक्सर कहा जाता है कि मॉडल अपडेट F (m + 1) = F (m) + हैα*(), जहां h (m) कमजोर शिक्षार्थी है। अगर मैं एक पेड़-आधारित मॉडल के बारे में सोच रहा हूं - तो क्या इसका मतलब यह है कि प्रतिगमन और वर्गीकरण दोनों के लिए हम दो मॉडल के परिणामों के सरल जोड़ द्वारा दिए गए डेटापॉइंट के लिए हमारी भविष्यवाणी को व्यावहारिक रूप से अपडेट करते हैं? क्या यह भी काम करता है अगर हम बाइनरी को वर्गीकृत करने की कोशिश कर रहे हैं? या + संकेत की शाब्दिक व्याख्या नहीं की जानी चाहिए?
राउटर

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

1
@MatthewDrury मुझे लगता है कि कई साहित्य में, हम सीधे अपडेट नहीं हैं 1 साथ में 0-एफ(एक्स), लेकिन इसके साथ 0-α*एफ(एक्स), कहाँ पे α0 से 1 तक सीखने की दर है।
डू

@ hxd1011 हाँ, यह बिल्कुल सही है, और ग्रेडिंग को सफलतापूर्वक बढ़ाने के लिए महत्वपूर्ण है।
मैथ्यू ड्र्यू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.