वजन कम करने के लिए कैसे वैरिएबल ऑटो-एनकोडर में पुनर्निर्माण नुकसान बनाम केएलडी


26

लगभग सभी कोड उदाहरणों में मैंने एक वीएई के बारे में देखा है, नुकसान कार्यों को निम्नानुसार परिभाषित किया गया है (यह टेंसोफ़्लो कोड है, लेकिन मैंने थीनो, मशाल आदि के लिए समान देखा है। यह एक कंफर्ट के लिए भी है, लेकिन यह भी प्रासंगिक नहीं है , बस उन कुल्हाड़ियों को प्रभावित करता है जिन पर रकम लगी है):

# latent space loss. KL divergence between latent space distribution and unit gaussian, for each batch.
# first half of eq 10. in https://arxiv.org/abs/1312.6114
kl_loss = -0.5 * tf.reduce_sum(1 + log_sigma_sq - tf.square(mu) - tf.exp(log_sigma_sq), axis=1)

# reconstruction error, using pixel-wise L2 loss, for each batch
rec_loss = tf.reduce_sum(tf.squared_difference(y, x), axis=[1,2,3])

# or binary cross entropy (assuming 0...1 values)
y = tf.clip_by_value(y, 1e-8, 1-1e-8) # prevent nan on log(0)
rec_loss = -tf.reduce_sum(x * tf.log(y) + (1-x) * tf.log(1-y), axis=[1,2,3])

# sum the two and average over batches
loss = tf.reduce_mean(kl_loss + rec_loss)

हालाँकि kl_loss और rec_loss की सांख्यिक सीमा क्रमशः अव्यक्त स्थान के dims और इनपुट सुविधा आकार (जैसे पिक्सेल रिज़ॉल्यूशन) पर बहुत निर्भर हैं। क्या यह समझदारी होगी कि z- मंद KLD और प्रति पिक्सेल (या फ़ीचर) LSE या BCE प्राप्त करने के लिए घटाने_मैं के साथ घटाने_सम की जगह? अधिक महत्वपूर्ण बात, अंतिम नुकसान के लिए एक साथ योग करने पर हम पुनर्निर्माण के नुकसान के साथ अव्यक्त हानि का भार कैसे उठाते हैं? क्या यह सिर्फ परीक्षण और त्रुटि है? या इसके लिए कुछ सिद्धांत (या कम से कम अंगूठे का नियम) है? मुझे इस पर कोई जानकारी कहीं भी नहीं मिली (मूल पेपर सहित)।


जो समस्या मुझे हो रही है, वह यह है कि यदि मेरे इनपुट फीचर (x) आयामों और अव्यक्त स्थान (z) आयामों के बीच का संतुलन 'इष्टतम' नहीं है, तो या तो मेरा पुनर्संरचना बहुत अच्छा है, लेकिन सीखा अव्यक्त स्थान असंरचित है (यदि x आयाम हैं केएलडी पर बहुत अधिक और पुनर्निर्माण त्रुटि हावी है), या इसके विपरीत (पुनर्निर्माण अच्छा नहीं है लेकिन सीखा अव्यक्त स्थान अच्छी तरह से संरचित है यदि केएलडी हावी है)।

मैं खुद को पुनर्निर्माण हानि (इनपुट सुविधा आकार द्वारा विभाजित), और KLD (z आयामों द्वारा विभाजित) को सामान्य करने के लिए पा रहा हूं और फिर मैन्युअल रूप से KLD शब्द को एक मनमाना वजन कारक के साथ भारित कर रहा हूं (सामान्यीकरण इतना है कि मैं उसी का उपयोग कर सकता हूं या कर सकता हूं) x या z के आयामों से स्वतंत्र समान वजन )। आनुभविक रूप से मैंने पुनर्निर्माण और संरचित अव्यक्त स्थान के बीच एक अच्छा संतुलन प्रदान करने के लिए लगभग 0.1 पाया है जो मेरे लिए एक 'मीठा स्थान' जैसा लगता है। मैं इस क्षेत्र में पूर्व काम की तलाश में हूं।


अनुरोध करने पर, गणित के ऊपर अंकन (पुनर्निर्माण त्रुटि के लिए L2 हानि पर ध्यान केंद्रित)

एलएलटीnटी(मैं)=-12Σj=1जम्मू(1+लॉग(σj(मैं))2-(μj(मैं))2-(σj(मैं))2)

एलआरसीn(मैं)=-Σकश्मीर=1कश्मीर(yकश्मीर(मैं)-एक्सकश्मीर(मैं))2

एल(मीटर)=1एमΣमैं=1एम(एलएलटीnटी(मैं)+एलआरसीn(मैं))

जहाँ अव्यक्त सदिश z (और इसी माध्य μ और भिन्नता σ 2 ) की आयामीता है , K इनपुट विशेषताओं की गतिशीलता है, M मिनी-बैच आकार है, सुपरस्क्रिप्ट ( i ) i वें डेटा बिंदु और L को दर्शाता है। ( एम ) एम वें मिनी-बैच के लिए नुकसान है ।जम्मूzμσ2KM(i)iL(m)m

जवाबों:


17

7

मैं इस मुद्दे से संबंधित एक और पेपर जोड़ना चाहूंगा (फिलहाल मेरी कम प्रतिष्ठा के कारण मैं टिप्पणी नहीं कर सकता)।

कागज के उप-भाग 3.1 में, लेखकों ने निर्दिष्ट किया कि वे VAE के एक सीधे कार्यान्वयन को प्रशिक्षित करने में विफल रहे जो समान रूप से संभावना और केएल विचलन का भार उठाते थे। उनके मामले में, केएल का नुकसान अवांछनीय रूप से शून्य तक कम हो गया था, हालांकि यह एक छोटा मूल्य होने की उम्मीद थी। इसे दूर करने के लिए, उन्होंने "केएल कॉस्ट एनीलिंग" का उपयोग करने का प्रस्ताव दिया, जिसने धीरे-धीरे केएल डायवर्जन शब्द (नीला वक्र) के वजन कारक को 0 से 1 तक बढ़ा दिया।

चित्रा 2. पेन ट्रीबैंक पर हमारे वीएई के लिए केएल विचलन शब्द के (अनवीटेड) मूल्य के साथ-साथ एक विशिष्ट सिग्मोइड एनीलिंग शेड्यूल के अनुसार परिधीय कम बाउंड केएल विचलन शब्द का वजन।

इस काम के आसपास समाधान भी सीढ़ी VAE में लागू किया जाता है।

पेपर:

बोमन, एसआर, विल्निस, एल।, विनयल्स, ओ।, दाई, एएम, जोजफॉविक्ज, आर। और बेंगियो, एस।, 2015। एक निरंतर स्थान से वाक्य उत्पन्न करना । arXiv प्रीप्रिंट arXiv: 1511.06349।

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