लगभग सभी कोड उदाहरणों में मैंने एक वीएई के बारे में देखा है, नुकसान कार्यों को निम्नानुसार परिभाषित किया गया है (यह टेंसोफ़्लो कोड है, लेकिन मैंने थीनो, मशाल आदि के लिए समान देखा है। यह एक कंफर्ट के लिए भी है, लेकिन यह भी प्रासंगिक नहीं है , बस उन कुल्हाड़ियों को प्रभावित करता है जिन पर रकम लगी है):
# 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 हानि पर ध्यान केंद्रित)
जहाँ अव्यक्त सदिश z (और इसी माध्य μ और भिन्नता σ 2 ) की आयामीता है , K इनपुट विशेषताओं की गतिशीलता है, M मिनी-बैच आकार है, सुपरस्क्रिप्ट ( i ) i वें डेटा बिंदु और L को दर्शाता है। ( एम ) एम वें मिनी-बैच के लिए नुकसान है ।