VAEs के लिए पुनर्संरचना चाल कैसे काम करता है और यह महत्वपूर्ण क्यों है?


57

वैरिएबल ऑटोकेनोडर्स (VAE) के लिए पुनर्मूल्यांकन चाल कैसे काम करती है? क्या अंतर्निहित गणित को सरल किए बिना एक सहज और आसान स्पष्टीकरण है? और हमें 'ट्रिक' की आवश्यकता क्यों है?


5
उत्तर का एक हिस्सा यह ध्यान रखना है कि सभी सामान्य वितरण सामान्य (1, 0) के केवल छोटे और अनुवादित संस्करण हैं। नॉर्मल (म्यू, सिग्मा) से ड्रा करने के लिए आप नॉर्मल (1, 0) से ड्रा कर सकते हैं, सिग्मा (स्केल) से गुणा कर सकते हैं और म्यू (ट्रांसलेशन) जोड़ सकते हैं।
भिक्षु

@monk: (1,0) के बजाय यह (0,1) नॉर्मल (0,1) होना चाहिए था, वरना मल्टीप्लिंग और शिफ्टिंग पूरी तरह से हाफ वायर हो जाते!
रीका

@ ब्रीज हा! हां, निश्चित रूप से, धन्यवाद।
भिक्षु

जवाबों:


57

किंग्मा के एनआईपीएस 2015 कार्यशाला स्लाइड के माध्यम से पढ़ने के बाद , मुझे एहसास हुआ कि हमें यादृच्छिक नोड के माध्यम से बैकप्रोपैगेट करने के लिए पुनर्संरचना चाल की आवश्यकता है।

वास्तव में, अपने मूल रूप में, वीएई एक यादृच्छिक नोड से नमूना है जो सही पीछे के पैरामीट्रिक मॉडल द्वारा अनुमानित है । Backprop एक यादृच्छिक नोड के माध्यम से प्रवाह नहीं कर सकता है।q ( z ϕ , x )zq(zϕ,x)

एक नए पैरामीटर का परिचय हमें को एक तरह से पुनर्संरचना करने की अनुमति देता है जो बैकप्रॉप को नियतात्मक नोड्स के माध्यम से प्रवाह करने की अनुमति देता है।zϵz

मूल और प्रतिरूपित रूप


3
निर्धारक अब दाईं ओर क्यों है ? z
लाया गया

2
यह नहीं है, लेकिन यह "यादृच्छिकता का स्रोत" नहीं है - इस भूमिका को द्वारा लिया गया है । ϵ
क्वांट_देव

नोट करें कि यह विधि 2014 से पहले कई बार प्रस्तावित की गई है: blog.shakirm.com/2015/10/…
quant_dev

2
इतना सरल, इतना सहज! बहुत बढ़िया जवाब!
सेरही

2
दुर्भाग्य से, यह नहीं है। मूल रूप अभी भी उच्च विचरण के साथ बैकप्रोपैजेबल हो सकता है। विवरण मेरी पोस्ट से पाया जा सकता है ।
जेपी झांग

56

मान लें कि हम एक सामान्य वितरण है कि द्वारा parameterized है , विशेष रूप से । हम नीचे दी गई समस्या को हल करना चाहते हैं यह बेशक एक मूर्खतापूर्ण समस्या है और इष्टतम स्पष्ट है। हालाँकि, यहाँ हम केवल यह समझना चाहते हैं कि इस उद्देश्य के ग्रेडिएंट की गणना करने में reparameterization ट्रिक कैसे मदद करती है ।θ क्ष θ ( एक्स ) = एन ( θ , 1 ) मिनट θqθqθ(x)=N(θ,1)θ क्यू [ एक्स 2 ]

minθEq[x2]
θEq[x2]

गणना करने का एक तरीका इस प्रकार है θक्यू [ एक्स 2 ] = θक्ष θ ( एक्स ) एक्स 2 डी एक्स = एक्स 2 θ क्ष θ ( एक्स ) क्ष θ ( एक्स )θEq[x2]

θEq[x2]=θqθ(x)x2dx=x2θqθ(x)qθ(x)qθ(x)dx=qθ(x)θlogqθ(x)x2dx=Eq[x2θlogqθ(x)]

हमारे उदाहरण के लिए जहाँ , यह विधि θक्यू [ एक्स 2 ] = क्यू [ एक्स 2 ( एक्स - θ ) ]qθ(x)=N(θ,1)

θEq[x2]=Eq[x2(xθ)]

पुनर्मूल्यांकन चाल अपेक्षा को फिर से लिखने का एक तरीका है ताकि हम जिस वितरण के साथ ग्रेडिएंट लेते हैं उसके संबंध में पैरामीटर से स्वतंत्र हो । इसे प्राप्त करने के लिए, हमें स्टोकेस्टिक तत्व को से स्वतंत्र बनाने की आवश्यकता है । इसलिए, हम को लिखते हैं, फिर, हम लिख सकते हैं जहां का वितरण , यानी, । अब हम निम्नानुसार की व्युत्पत्ति लिख सकते हैं क्ष θ एक्स एक्स = θ + ε ,θqθxक्यू [ एक्स 2 ] = पी [ ( θ + ε ) 2 ] पी ε एन ( 0 , 1 ) क्यू [ एक्स 2 ] θक्यू [ एक्स 2 ] = θपी [ ( θ + ε ) 2 ] =

x=θ+ϵ,ϵN(0,1)
Eq[x2]=Ep[(θ+ϵ)2]
pϵN(0,1)Eq[x2]
θEq[x2]=θEp[(θ+ϵ)2]=Ep[2(θ+ϵ)]

यहाँ एक IPython नोटबुक है जो मैंने लिखा है कि ग्रेडिएंट्स की गणना के इन दो तरीकों के विचरण को देखता है। http://nbviewer.jupyter.org/github/gokererdogan/Notebooks/blob/master/Reparameterization%20Trick.ipynb


4
पहले समीकरण के लिए "स्पष्ट" थीटा क्या है?
gwg

2
यह देखने का एक तरीका है कि ई [x ^ 2] = E [x] ^ 2 + वार (x), जो कि थीटा ^ 2 + 1 है, इस पर ध्यान दें। तो थीटा = 0 इस उद्देश्य को कम करता है।
गोकर

तो, यह पूरी तरह से समस्या पर निर्भर करता है? कहने के लिए min_ \ the थीटा E_q [| x | ^ (1/4)] यह पूरी तरह से अलग हो सकता है?
ऐनी वैन रोसुम

समस्या पर क्या निर्भर करता है? इष्टतम थीटा? यदि हां, तो यह निश्चित रूप से समस्या पर निर्भर करता है।
गोरक्षक

समीकरण में बस के बाद "इस विधि देता है", नहीं यह होना चाहिए के बजाय सिर्फ ? θEq[x2]=Eq[x2(xθ)qθ(x)]θEq[x2]=Eq[x2(xθ)]
अल्फाओमेगा

17

गॉकर के उत्तर में "पुनर्मूल्यांकन चाल" के गणित का एक उचित उदाहरण दिया गया है, लेकिन कुछ प्रेरणा सहायक हो सकती है। (मेरे पास उस उत्तर पर टिप्पणी करने की अनुमति नहीं है; इस प्रकार यहां एक अलग उत्तर है।)

संक्षेप में, हम कुछ मूल्य की गणना करना चाहते हैं फार्म की, Gθ

Gθ=θExqθ[]

"Reparameterization trick" के बिना , हम अक्सर इसको फिर से लिख सकते हैं, प्रति goker के उत्तर के रूप में, , जहाँ, Exqθ[Gθest(x)]

Gθest(x)=1qθ(x)θqθ(x)=θlog(qθ(x))

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

मुख्य बिंदु यह है कि अक्सर एक बहुत खराब (उच्च विचरण) अनुमान है । यहां तक ​​कि अगर आप बड़ी संख्या में नमूनों पर औसत रखते हैं, तो आप पा सकते हैं कि इसका औसत व्यवस्थित रूप से अंडरशूट (या ओवरशूट) ।GθestGθ

एक मूलभूत समस्या यह है कि लिए आवश्यक योगदान मूल्यों से आ सकता है जो बहुत दुर्लभ हैं (यानी, मान जिसके लिए छोटा है)। का कारक इस के लिए खाते के लिए अपने अनुमान स्केलिंग है, लेकिन है कि स्केलिंग में मदद नहीं करेगा अगर आप इस तरह के एक मूल्य नहीं दिख रहा है जब आप यह अनुमान लगा नमूनों की एक परिमित संख्या से। की अच्छाई या (अर्थात, अनुमान की गुणवत्ता, , लिए से खींची गई ) पर निर्भर हो सकती हैGθxxqθ(x)1qθ(x)xGθqθGθestxqθθ, जो इष्टतम से दूर हो सकता है (उदाहरण के लिए, एक मनमाने ढंग से चुना गया प्रारंभिक मूल्य)। यह शराबी व्यक्ति की कहानी की तरह है जो सड़क के पास अपनी चाबियों की तलाश करता है (क्योंकि यही वह जगह है जहां वह नमूना देख सकता है) जहां उसने उन्हें गिराया था।

"Reparameterization trick" कभी-कभी इस समस्या को संबोधित करता है। गोकर की संकेतन का उपयोग करते हुए, ट्रिक एक डिफरेंशियल वेरिएबल, एक फंक्शन के रूप में को फिर से लिखने के लिए है , एक वितरण, , जो पर निर्भर नहीं करता है , और फिर में पर एक अपेक्षा के रूप में उम्मीद को फिर से ,xϵpθGθp

Gθ=θEϵp[J(θ,ϵ)]=Eϵp[θJ(θ,ϵ)]
लिए कुछ ।J(θ,ϵ)

नए अनुमानक, पुनर्संरचना चाल विशेष रूप से उपयोगी है , अब ऊपर बताई गई समस्याएं नहीं हैं (यानी, जब हम का चयन करने में सक्षम हैं ताकि एक अच्छा अनुमान प्राप्त करना निर्भर न हो। दुर्लभ मूल्यों को आकर्षित करने पर )। यह इस तथ्य से सुगम हो सकता है (लेकिन इसकी गारंटी नहीं है) इस तथ्य से कि पर निर्भर नहीं करता है और हम को एक साधारण असमान वितरण के लिए चुन सकते हैं ।θJ(θ,ϵ)pϵpθp

हालांकि, reparamerization चाल हो सकता है यहां तक कि "काम" जब है की एक अच्छी आकलनकर्ता । विशेष रूप से, भले ही से में बहुत बड़ा योगदान हो , जो बहुत ही दुर्लभ हैं, हम लगातार अनुकूलन के दौरान उन्हें नहीं देखते हैं और जब हम अपने मॉडल का उपयोग करते हैं तो हम भी उन्हें नहीं देखते हैं (यदि हमारा मॉडल एक पीढ़ीगत मॉडल है )। ज्यादा औपचारिक संदर्भ में, हम हमारे उद्देश्य (से अधिक उम्मीद की जगह के बारे में सोच सकते हैं के लिए एक प्रभावी उद्देश्य कुछ अधिक एक उम्मीद है कि के साथ) "ठेठ सेट" के लिए । उस विशिष्ट सेट के बाहर, हमारेθJ(θ,ϵ)जी θGθGθϵppϵ मनमाने ढंग से खराब मूल्यों का उत्पादन कर सकता है - ब्रॉक एट के चित्र 2 (बी) देखें अल। प्रशिक्षण के दौरान सैंपल लिए गए विशिष्ट सेट के बाहर GAN का मूल्यांकन किया गया था (उस पेपर में, छोटे ट्रंकेशन वैल्यू जो कि विशिष्ट सेट से अव्यक्त चर मानों के समान हैं, भले ही वे उच्च संभावना हों)।J

मुझे आशा है कि वह मदद करेंगे।


"1 / qθ (x) का कारक इसके लिए आपके अनुमान को बढ़ा रहा है, लेकिन यदि आपने x का ऐसा मान कभी नहीं देखा, तो यह स्केलिंग मदद नहीं करेगा।" क्या आप और अधिक व्याख्या कर सकते हैं?
czxttkl

@czxttkl व्यवहार में हम अनुमान लगाते हैं कि नमूनों की सीमित संख्या के साथ अपेक्षित मूल्य हैं। यदि कुछ लिए बहुत छोटा है , तो हम ऐसे का नमूना लेने की बहुत संभावना नहीं है । भले ही में का एक बड़ा कारक शामिल है , और यह वास्तविक अपेक्षित मूल्य में सार्थक योगदान दे सकता है, इसे हमारे लिए अपेक्षित मूल्य के अनुमान से बाहर रखा जा सकता है। नमूनों की कोई उचित संख्या। एक्स एक्स जी एस टी θ ( एक्स ) 1 / क्ष θqθxxGθest(x)1/qθ
सेठ ब्रूडर

10

पहले मुझे समझाते हैं, हमें VAE में Reparameterization trick की आवश्यकता क्यों है।

VAE में एनकोडर और डिकोडर होते हैं। डिकोडर बेतरतीब ढंग से सैंपल ज़ीरो ~ क्यू (z x, x) से । एनकोडर और डिकोडर को तंत्रिका नेटवर्क के रूप में लागू करने के लिए, आपको यादृच्छिक नमूने के माध्यम से बैकप्रोपोगेट की आवश्यकता होती है और यही समस्या है क्योंकि बैकप्रोपोगेशन यादृच्छिक नोड के माध्यम से प्रवाह नहीं कर सकता है; इस बाधा को दूर करने के लिए, हम पुनर्मूल्यांकन ट्रिक का उपयोग करते हैं।

अब चलिए छल करते हैं। चूंकि हमारा पोस्टीरियर सामान्य रूप से वितरित किया जाता है, इसलिए हम इसे एक और सामान्य वितरण के साथ अनुमानित कर सकते हैं। हम सामान्य रूप से वितरित appro के साथ Z अनुमानित करते हैं ।

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

लेकिन यह प्रासंगिक कैसे है?

अब यह कहने के बजाय कि Z को q (z x, x) से नमूना लिया गया है , हम कह सकते हैं कि Z एक फ़ंक्शन है जो पैरामीटर (ε, (µ, L)) को लेता है और ये µ, L ऊपरी तंत्रिका नेटवर्क (एनकोडर) से आता है । इसलिए जबकि बैकप्रोपोगेशन के लिए हमें आंशिक डेरिवेटिव wrt की आवश्यकता होती है L, L और ir डेरिवेटिव लेने के लिए अप्रासंगिक है।

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


इस अवधारणा को समझने के लिए सर्वश्रेष्ठ वीडियो। मैं बेहतर समझ के लिए पूरा वीडियो देखने की सलाह दूंगा लेकिन अगर आप केवल पुनरावर्तन ट्रिक को समझना चाहते हैं तो 8 मिनट से देखें। youtube.com/channel/UCNIkB2IeJ-6AmZv7bQ1oBYg
शर्लक

9

मुझे लगा कि प्रोबेशनलिस्टिक ग्राफिकल मॉडल पर स्टैनफोर्ड CS228 पाठ्यक्रम में पाया गया स्पष्टीकरण बहुत अच्छा था। यह यहाँ पाया जा सकता है: https://ermongroup.github.io/cs228-notes/extras/vae/

मैंने सुविधा के लिए यहाँ महत्वपूर्ण भागों की प्रतिलिपि बनाई / कॉपी की है / मेरी अपनी समझ है (हालाँकि मैं दृढ़ता से मूल लिंक की जाँच करने की सलाह देता हूँ)।

तो, हमारी समस्या यह है कि हमारे पास यह ढाल है जिसे हम गणना करना चाहते हैं:

ϕEzq(z|x)[f(x,z)]

यदि आप स्कोर फ़ंक्शन के अनुमानकों से परिचित हैं (मेरा मानना ​​है कि REINFORCE सिर्फ इस का एक विशेष मामला है), तो आप देखेंगे कि वे जिस समस्या का समाधान कर रहे हैं वह बहुत अधिक है। हालांकि, स्कोर फ़ंक्शन आकलनकर्ता के पास एक उच्च विचरण है, जिससे मॉडल सीखने में बहुत मुश्किलें आती हैं।

इसलिए, कुछ शर्तों के तहत, हम वितरण को 2-चरणीय प्रक्रिया के रूप में व्यक्त कर सकते हैं।qϕ(z|x)

पहले हम मानक सामान्य की तरह एक साधारण वितरण से एक शोर चर नमूना लेते हैं । इसके बाद, हम एक नियतात्मक परिवर्तन जो इस जटिल वितरण पर यादृच्छिक शोर को मैप करता है। यह दूसरा भाग हमेशा संभव नहीं होता है, लेकिन यह कई दिलचस्प वर्गों के लिए सच है ।ϵp(ϵ)gϕ(ϵ,x)qϕ

एक उदाहरण के रूप में, चलो एक बहुत ही सरल q का उपयोग करते हैं जिससे हम नमूना लेते हैं।

zqμ,σ=N(μ,σ)
अब, से नमूना लेने के बजाय , हम इसे रूप में फिर से लिख सकते हैं। जहां ।q
z=gμ,σ(ϵ)=μ+ϵσ
ϵN(0,1)

अब, हमें q (z) की अपेक्षा का ग्रेडिएंट प्राप्त करने की आवश्यकता के बजाय, हम इसे सरल फ़ंक्शन संबंध में एक अपेक्षा के ग्रेडिएंट के रूप में फिर से लिख सकते हैं ।p(ϵ)

ϕEzq(z|x)[f(x,z)]=Eϵp(ϵ)[ϕf(x,g(ϵ,x))]

यह निम्न विचरण है, इमो के लिए, गैर-तुच्छ कारणों से। स्पष्टीकरण के लिए यहां परिशिष्ट के भाग डी की जाँच करें: https://arxiv.org/pdf/1401.4082.pdf


नमस्ते, क्या आप जानते हैं, कार्यान्वयन में वे एसटीडी को 2 से क्यों विभाजित करते हैं? (यानी std = torch.exp (z_var / 2)) पुनर्मूल्यांकन में?
राका

4

हमारे पास हमारा संभावित मॉडल है। और मॉडल के मापदंडों को पुनर्प्राप्त करना चाहते हैं। हम अपने काम को कम करके वैरिएबल लोअर बाउंड (वीएलबी) को अनुकूलित करते हैं। ऐसा करने के लिए हमें दो चीजें करने में सक्षम होना चाहिए:

  • वीएलबी की गणना करें
  • वीएलबी का ग्रेडिएंट प्राप्त करें

लेखक दोनों के लिए मोंटे कार्लो अनुमानक का उपयोग करने का सुझाव देते हैं। और वास्तव में वे वीएलबी के अधिक सटीक मोंटे कार्लो ग्रेडिएंट एस्टिमेटर प्राप्त करने के लिए इस ट्रिक का परिचय देते हैं।

यह सिर्फ संख्यात्मक पद्धति का सुधार है।


2

पुनर्संयोजन चाल ढाल के लिए एमसी अनुमानक के विचरण को नाटकीय रूप से कम कर देता है। तो यह एक विचरण कमी तकनीक है:

हमारा लक्ष्य का अनुमान

ϕEq(z(i)x(i);ϕ)[logp(x(i)z(i),w)]

हम "स्कोर फ़ंक्शन आकलनकर्ता" का उपयोग कर सकते हैं: लेकिन स्कोर फ़ंक्शन अनुमानक में उच्च विचरण होता है। उदाहरण के लिए, यदि संभाव्यता बहुत छोटी है, तो का पूर्ण मान बहुत बड़ा है और मान स्वयं नकारात्मक है। इसलिए हमारे पास उच्च विचरण होगा।

ϕEq(z(i)x(i);ϕ)[logp(x(i)z(i),w)]=Eq(z(i)x(i);ϕ)[logp(x(i)z(i),w)ϕlogqϕ(z)]
p(x(i)z(i),w)logp(x(i)z(i),w)

Reparametrization हमारे पास z(i)=g(ϵ(i),x(i),ϕ)

ϕEq(z(i)x(i);ϕ)[logp(x(i)z(i),w)]=Ep(ϵ(i))[ϕlogp(x(i)g(ϵ(i),x(i),ϕ),w)]

अब उम्मीद है कि पीटी और ग्रेडिएंट पैरामीटर से स्वतंत्र है । इसलिए हम ढाल को सीधे अपेक्षा के अंदर रख सकते हैं, जिसे स्पष्ट रूप से अपेक्षा को लिखकर आसानी से देखा जा सकता है। धीरे-धीरे मूल्य बहुत कम हो जाते हैं इसलिए हमारे पास सहज रूप से कम विचरण होता है।p(ϵ(i))p(ϵ(i))ϕ

नोट: हम इस पुनरावर्तन पद्धति को केवल तभी कर सकते हैं यदि निरंतर है तो हम का ग्रेडिएंट ले सकते हैं। ।z(i)z(i)=g(ϵ(i),x(i),ϕ)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.