वैरिएबल ऑटोकेनोडर्स (VAE) के लिए पुनर्मूल्यांकन चाल कैसे काम करती है? क्या अंतर्निहित गणित को सरल किए बिना एक सहज और आसान स्पष्टीकरण है? और हमें 'ट्रिक' की आवश्यकता क्यों है?
वैरिएबल ऑटोकेनोडर्स (VAE) के लिए पुनर्मूल्यांकन चाल कैसे काम करती है? क्या अंतर्निहित गणित को सरल किए बिना एक सहज और आसान स्पष्टीकरण है? और हमें 'ट्रिक' की आवश्यकता क्यों है?
जवाबों:
किंग्मा के एनआईपीएस 2015 कार्यशाला स्लाइड के माध्यम से पढ़ने के बाद , मुझे एहसास हुआ कि हमें यादृच्छिक नोड के माध्यम से बैकप्रोपैगेट करने के लिए पुनर्संरचना चाल की आवश्यकता है।
वास्तव में, अपने मूल रूप में, वीएई एक यादृच्छिक नोड से नमूना है जो सही पीछे के पैरामीट्रिक मॉडल द्वारा अनुमानित है । Backprop एक यादृच्छिक नोड के माध्यम से प्रवाह नहीं कर सकता है।q ( z ∣ ϕ , x )
एक नए पैरामीटर का परिचय हमें को एक तरह से पुनर्संरचना करने की अनुमति देता है जो बैकप्रॉप को नियतात्मक नोड्स के माध्यम से प्रवाह करने की अनुमति देता है।z
मान लें कि हम एक सामान्य वितरण है कि द्वारा parameterized है , विशेष रूप से । हम नीचे दी गई समस्या को हल करना चाहते हैं यह बेशक एक मूर्खतापूर्ण समस्या है और इष्टतम स्पष्ट है। हालाँकि, यहाँ हम केवल यह समझना चाहते हैं कि इस उद्देश्य के ग्रेडिएंट की गणना करने में reparameterization ट्रिक कैसे मदद करती है ।θ क्ष θ ( एक्स ) = एन ( θ , 1 ) मिनट θθ ई क्यू [ एक्स 2 ]
गणना करने का एक तरीका इस प्रकार है ∇ θ ई क्यू [ एक्स 2 ] = ∇ θ ∫ क्ष θ ( एक्स ) एक्स 2 डी एक्स = ∫ एक्स 2 ∇ θ क्ष θ ( एक्स ) क्ष θ ( एक्स )
हमारे उदाहरण के लिए जहाँ , यह विधि ∇ θ ई क्यू [ एक्स 2 ] = ई क्यू [ एक्स 2 ( एक्स - θ ) ]
पुनर्मूल्यांकन चाल अपेक्षा को फिर से लिखने का एक तरीका है ताकि हम जिस वितरण के साथ ग्रेडिएंट लेते हैं उसके संबंध में पैरामीटर से स्वतंत्र हो । इसे प्राप्त करने के लिए, हमें स्टोकेस्टिक तत्व को से स्वतंत्र बनाने की आवश्यकता है । इसलिए, हम को लिखते हैं, फिर, हम लिख सकते हैं जहां का वितरण , यानी, । अब हम निम्नानुसार की व्युत्पत्ति लिख सकते हैं क्ष θ एक्स एक्स = θ + ε ,ई क्यू [ एक्स 2 ] = ई पी [ ( θ + ε ) 2 ] पी ε एन ( 0 , 1 ) ई क्यू [ एक्स 2 ] ∇ θ ई क्यू [ एक्स 2 ] = ∇ θ ई पी [ ( θ + ε ) 2 ] =
यहाँ एक IPython नोटबुक है जो मैंने लिखा है कि ग्रेडिएंट्स की गणना के इन दो तरीकों के विचरण को देखता है। http://nbviewer.jupyter.org/github/gokererdogan/Notebooks/blob/master/Reparameterization%20Trick.ipynb
गॉकर के उत्तर में "पुनर्मूल्यांकन चाल" के गणित का एक उचित उदाहरण दिया गया है, लेकिन कुछ प्रेरणा सहायक हो सकती है। (मेरे पास उस उत्तर पर टिप्पणी करने की अनुमति नहीं है; इस प्रकार यहां एक अलग उत्तर है।)
संक्षेप में, हम कुछ मूल्य की गणना करना चाहते हैं फार्म की,
"Reparameterization trick" के बिना , हम अक्सर इसको फिर से लिख सकते हैं, प्रति goker के उत्तर के रूप में, , जहाँ,
यदि हम से , तो का एक निष्पक्ष अनुमान है । यह मोंटे कार्लो एकीकरण के लिए "महत्व नमूनाकरण" का एक उदाहरण है। अगर एक कम्प्यूटेशनल नेटवर्क (उदाहरण के लिए, सुदृढीकरण सीखने के लिए एक नीति नेटवर्क) के कुछ आउटपुट का प्रतिनिधित्व करता है , तो हम नेटवर्क मापदंडों के संबंध में डेरिवेटिव खोजने के लिए बैक-प्रचार (चेन नियम लागू करें) में इसका उपयोग कर सकते हैं।
मुख्य बिंदु यह है कि अक्सर एक बहुत खराब (उच्च विचरण) अनुमान है । यहां तक कि अगर आप बड़ी संख्या में नमूनों पर औसत रखते हैं, तो आप पा सकते हैं कि इसका औसत व्यवस्थित रूप से अंडरशूट (या ओवरशूट) ।
एक मूलभूत समस्या यह है कि लिए आवश्यक योगदान मूल्यों से आ सकता है जो बहुत दुर्लभ हैं (यानी, मान जिसके लिए छोटा है)। का कारक इस के लिए खाते के लिए अपने अनुमान स्केलिंग है, लेकिन है कि स्केलिंग में मदद नहीं करेगा अगर आप इस तरह के एक मूल्य नहीं दिख रहा है जब आप यह अनुमान लगा नमूनों की एक परिमित संख्या से। की अच्छाई या (अर्थात, अनुमान की गुणवत्ता, , लिए से खींची गई ) पर निर्भर हो सकती है, जो इष्टतम से दूर हो सकता है (उदाहरण के लिए, एक मनमाने ढंग से चुना गया प्रारंभिक मूल्य)। यह शराबी व्यक्ति की कहानी की तरह है जो सड़क के पास अपनी चाबियों की तलाश करता है (क्योंकि यही वह जगह है जहां वह नमूना देख सकता है) जहां उसने उन्हें गिराया था।
"Reparameterization trick" कभी-कभी इस समस्या को संबोधित करता है। गोकर की संकेतन का उपयोग करते हुए, ट्रिक एक डिफरेंशियल वेरिएबल, एक फंक्शन के रूप में को फिर से लिखने के लिए है , एक वितरण, , जो पर निर्भर नहीं करता है , और फिर में पर एक अपेक्षा के रूप में उम्मीद को फिर से ,
नए अनुमानक, पुनर्संरचना चाल विशेष रूप से उपयोगी है , अब ऊपर बताई गई समस्याएं नहीं हैं (यानी, जब हम का चयन करने में सक्षम हैं ताकि एक अच्छा अनुमान प्राप्त करना निर्भर न हो। दुर्लभ मूल्यों को आकर्षित करने पर )। यह इस तथ्य से सुगम हो सकता है (लेकिन इसकी गारंटी नहीं है) इस तथ्य से कि पर निर्भर नहीं करता है और हम को एक साधारण असमान वितरण के लिए चुन सकते हैं ।
हालांकि, reparamerization चाल हो सकता है यहां तक कि "काम" जब है न की एक अच्छी आकलनकर्ता । विशेष रूप से, भले ही से में बहुत बड़ा योगदान हो , जो बहुत ही दुर्लभ हैं, हम लगातार अनुकूलन के दौरान उन्हें नहीं देखते हैं और जब हम अपने मॉडल का उपयोग करते हैं तो हम भी उन्हें नहीं देखते हैं (यदि हमारा मॉडल एक पीढ़ीगत मॉडल है )। ज्यादा औपचारिक संदर्भ में, हम हमारे उद्देश्य (से अधिक उम्मीद की जगह के बारे में सोच सकते हैं के लिए एक प्रभावी उद्देश्य कुछ अधिक एक उम्मीद है कि के साथ) "ठेठ सेट" के लिए । उस विशिष्ट सेट के बाहर, हमारेजी θ मनमाने ढंग से खराब मूल्यों का उत्पादन कर सकता है - ब्रॉक एट के चित्र 2 (बी) देखें । अल। प्रशिक्षण के दौरान सैंपल लिए गए विशिष्ट सेट के बाहर GAN का मूल्यांकन किया गया था (उस पेपर में, छोटे ट्रंकेशन वैल्यू जो कि विशिष्ट सेट से अव्यक्त चर मानों के समान हैं, भले ही वे उच्च संभावना हों)।
मुझे आशा है कि वह मदद करेंगे।
पहले मुझे समझाते हैं, हमें VAE में Reparameterization trick की आवश्यकता क्यों है।
VAE में एनकोडर और डिकोडर होते हैं। डिकोडर बेतरतीब ढंग से सैंपल ज़ीरो ~ क्यू (z x, x) से । एनकोडर और डिकोडर को तंत्रिका नेटवर्क के रूप में लागू करने के लिए, आपको यादृच्छिक नमूने के माध्यम से बैकप्रोपोगेट की आवश्यकता होती है और यही समस्या है क्योंकि बैकप्रोपोगेशन यादृच्छिक नोड के माध्यम से प्रवाह नहीं कर सकता है; इस बाधा को दूर करने के लिए, हम पुनर्मूल्यांकन ट्रिक का उपयोग करते हैं।
अब चलिए छल करते हैं। चूंकि हमारा पोस्टीरियर सामान्य रूप से वितरित किया जाता है, इसलिए हम इसे एक और सामान्य वितरण के साथ अनुमानित कर सकते हैं। हम सामान्य रूप से वितरित appro के साथ Z अनुमानित करते हैं ।
लेकिन यह प्रासंगिक कैसे है?
अब यह कहने के बजाय कि Z को q (z x, x) से नमूना लिया गया है , हम कह सकते हैं कि Z एक फ़ंक्शन है जो पैरामीटर (ε, (µ, L)) को लेता है और ये µ, L ऊपरी तंत्रिका नेटवर्क (एनकोडर) से आता है । इसलिए जबकि बैकप्रोपोगेशन के लिए हमें आंशिक डेरिवेटिव wrt की आवश्यकता होती है L, L और ir डेरिवेटिव लेने के लिए अप्रासंगिक है।
मुझे लगा कि प्रोबेशनलिस्टिक ग्राफिकल मॉडल पर स्टैनफोर्ड CS228 पाठ्यक्रम में पाया गया स्पष्टीकरण बहुत अच्छा था। यह यहाँ पाया जा सकता है: https://ermongroup.github.io/cs228-notes/extras/vae/
मैंने सुविधा के लिए यहाँ महत्वपूर्ण भागों की प्रतिलिपि बनाई / कॉपी की है / मेरी अपनी समझ है (हालाँकि मैं दृढ़ता से मूल लिंक की जाँच करने की सलाह देता हूँ)।
तो, हमारी समस्या यह है कि हमारे पास यह ढाल है जिसे हम गणना करना चाहते हैं:
यदि आप स्कोर फ़ंक्शन के अनुमानकों से परिचित हैं (मेरा मानना है कि REINFORCE सिर्फ इस का एक विशेष मामला है), तो आप देखेंगे कि वे जिस समस्या का समाधान कर रहे हैं वह बहुत अधिक है। हालांकि, स्कोर फ़ंक्शन आकलनकर्ता के पास एक उच्च विचरण है, जिससे मॉडल सीखने में बहुत मुश्किलें आती हैं।
इसलिए, कुछ शर्तों के तहत, हम वितरण को 2-चरणीय प्रक्रिया के रूप में व्यक्त कर सकते हैं।
पहले हम मानक सामान्य की तरह एक साधारण वितरण से एक शोर चर नमूना लेते हैं । इसके बाद, हम एक नियतात्मक परिवर्तन जो इस जटिल वितरण पर यादृच्छिक शोर को मैप करता है। यह दूसरा भाग हमेशा संभव नहीं होता है, लेकिन यह कई दिलचस्प वर्गों के लिए सच है ।
एक उदाहरण के रूप में, चलो एक बहुत ही सरल q का उपयोग करते हैं जिससे हम नमूना लेते हैं।
अब, हमें q (z) की अपेक्षा का ग्रेडिएंट प्राप्त करने की आवश्यकता के बजाय, हम इसे सरल फ़ंक्शन संबंध में एक अपेक्षा के ग्रेडिएंट के रूप में फिर से लिख सकते हैं ।
यह निम्न विचरण है, इमो के लिए, गैर-तुच्छ कारणों से। स्पष्टीकरण के लिए यहां परिशिष्ट के भाग डी की जाँच करें: https://arxiv.org/pdf/1401.4082.pdf
हमारे पास हमारा संभावित मॉडल है। और मॉडल के मापदंडों को पुनर्प्राप्त करना चाहते हैं। हम अपने काम को कम करके वैरिएबल लोअर बाउंड (वीएलबी) को अनुकूलित करते हैं। ऐसा करने के लिए हमें दो चीजें करने में सक्षम होना चाहिए:
लेखक दोनों के लिए मोंटे कार्लो अनुमानक का उपयोग करने का सुझाव देते हैं। और वास्तव में वे वीएलबी के अधिक सटीक मोंटे कार्लो ग्रेडिएंट एस्टिमेटर प्राप्त करने के लिए इस ट्रिक का परिचय देते हैं।
यह सिर्फ संख्यात्मक पद्धति का सुधार है।
पुनर्संयोजन चाल ढाल के लिए एमसी अनुमानक के विचरण को नाटकीय रूप से कम कर देता है। तो यह एक विचरण कमी तकनीक है:
हमारा लक्ष्य का अनुमान
हम "स्कोर फ़ंक्शन आकलनकर्ता" का उपयोग कर सकते हैं:
लेकिन स्कोर फ़ंक्शन अनुमानक में उच्च विचरण होता है। उदाहरण के लिए, यदि संभाव्यता बहुत छोटी है, तो का पूर्ण मान
बहुत बड़ा है और मान स्वयं नकारात्मक है। इसलिए हमारे पास उच्च विचरण होगा।
Reparametrization हमारे पास
अब उम्मीद है कि पीटी और ग्रेडिएंट पैरामीटर से स्वतंत्र है । इसलिए हम ढाल को सीधे अपेक्षा के अंदर रख सकते हैं, जिसे स्पष्ट रूप से अपेक्षा को लिखकर आसानी से देखा जा सकता है। धीरे-धीरे मूल्य बहुत कम हो जाते हैं इसलिए हमारे पास सहज रूप से कम विचरण होता है।
नोट: हम इस पुनरावर्तन पद्धति को केवल तभी कर सकते हैं यदि निरंतर है तो हम का ग्रेडिएंट ले सकते हैं। ।