फ़ंक्शन खोना

GAN, संभावना के बंटवारे की नकल करने की कोशिश करते हैं. इसलिए, उन्हें बताता है कि GAN के जनरेट किए गए डेटा के डिस्ट्रिब्यूशन और असली डेटा के डिस्ट्रिब्यूशन के बीच की दूरी क्या है.

आप GAN घटाने वाले फ़ंक्शन में दो डिस्ट्रिब्यूशन के बीच के अंतर को कैसे कैप्चर करते हैं? यह सवाल सक्रिय शोध का एक क्षेत्र है और इसके लिए कई तरीके सुझाए गए हैं. हम यहां दो आम GAN हानि फ़ंक्शन पर ध्यान देंगे, जिनमें से दोनों TF-GAN में लागू किए गए हैं:

  • कम से कम नुकसान: ऐप्लिकेशन के अनइंस्टॉल होने का तरीका, GAN को दिखाने वाले पेपर में इस्तेमाल किया गया है.
  • वसर्स्टाइन हानि: TF-GAN अनुमानों के लिए डिफ़ॉल्ट हानि फ़ंक्शन. सबसे पहले 2017 के पेपर में बताया गया है.

TF-GAN भी कई दूसरे लॉस फ़ंक्शन लागू करता है.

एक या उससे ज़्यादा नुकसान?

GAN में दो तरह के नुकसान होते हैं: एक जनरेटर जनरेट करने के लिए और दूसरा, डिसिस्ट्रेटर ट्रेनिंग के लिए. प्रॉबेबिलिटी डिस्ट्रिब्यूशन के बीच की दूरी का आकलन करने के लिए, दो लॉस फ़ंक्शन एक साथ कैसे काम करते हैं?

घटाने की स्कीम में हम यहां देखेंगे कि जनरेटर और डिस्ट्रिब्यूटर के नुकसान की संभावना, प्रॉबेबिलिटी डिस्ट्रिब्यूशन के बीच की दूरी से ली जाती है. हालांकि, इन दोनों स्कीमों में जनरेटर, मेज़रमेंट के सिर्फ़ एक शब्द पर असर डाल सकता है: वह शब्द जो नकली डेटा के डिस्ट्रिब्यूशन को दिखाता है. इसलिए, जनरेटर की ट्रेनिंग के दौरान हम दूसरे शब्द को छोड़ देते हैं. यह असल डेटा के डिस्ट्रिब्यूशन को दिखाता है.

जनरेटर और डिस्ट्रिब्यूटर के नुकसान, आखिर में अलग-अलग दिखते हैं, भले ही वे किसी फ़ॉर्मूला से मिले हों.

कम से कम नुकसान

GAN पेश करने वाले पेपर में, जनरेटर इन फ़ंक्शन को कम करने की कोशिश करता है, जबकि दावेदार उसे बढ़ाने की कोशिश करता है:

$$E_x[log(D(x))] + E_z[log(1 - D(G(z)))]$$

इस फ़ंक्शन में:

  • D(x), संभावना का एक अनुमान है. संभावना है कि असल डेटा इंस्टेंस x असल है.
  • असल डेटा इंस्टेंस के लिए Ex अनुमानित मान है.
  • शोर z के हिसाब से, G(z) जनरेट और जनरेट किया गया आउटपुट होता है.
  • D(G(z)), यह अनुमान लगाने की संभावना का अनुमान लगाने का अनुमान लगाते हैं कि नकली झूठ असल में मौजूद है या नहीं.
  • Ez जनरेटर के सभी रैंडम इनपुट की अनुमानित वैल्यू है (असल में, जनरेट किए गए सभी नकली इंस्टेंस G(z) पर अनुमानित वैल्यू).
  • फ़ॉर्मूला, असल और जनरेट किए गए डिस्ट्रिब्यूशन के बीच क्रॉस-एंट्रॉपी से लिया जाता है.

जनरेटर, फ़ंक्शन में log(D(x)) शब्द को सीधे तौर पर प्रभावित नहीं कर सकता है, इसलिए जनरेटर के लिए नुकसान को कम करना log(1 - D(G(z))) को कम करने के बराबर है.

टीएफ़-जीएएन में, इस नुकसान फ़ंक्शन को लागू करने के लिए minimax_discriminator_loss और minimax_genator_loss देखें.

कम से कम बदलाव

ओरिजनल जीएएन पेपर में बताया गया है कि ऊपर दिए गए कम से कम नुकसान के फ़ंक्शन की वजह से, जीएएन ट्रेनिंग के शुरुआती चरणों में जीएएन रुक सकता है. इसलिए, पेपर के ज़रिए जनरेटर के नुकसान में बदलाव किया जाता है, ताकि जनरेटर log D(G(z)) को ज़्यादा से ज़्यादा करने की कोशिश कर सके.

TF-GAN में, इस बदलाव को लागू करने के लिए, modified_genator_loss पर जाएं.

वासरस्टीन लॉस

डिफ़ॉल्ट रूप से, TF-GAN वसरस्टीन से होने वाली हानि का इस्तेमाल करता है.

यह नुकसान फ़ंक्शन GAN स्कीम में बदलाव ("WAsertine GAN" या "WGAN") पर निर्भर करता है, जिसमें विभाजक असल में इंस्टेंस की कैटगरी तय नहीं करता है. हर इंस्टेंस के लिए यह एक नंबर आउटपुट देता है. यह संख्या 0 से कम या 0 से ज़्यादा नहीं होनी चाहिए. इसलिए, हम थ्रेशोल्ड के तौर पर 0.5 का इस्तेमाल करके यह तय कर सकते हैं कि कोई इंस्टेंस असली है या नकली. भेदभाव की ट्रेनिंग, नकली इंस्टेंस के बजाय असल इंस्टेंस के लिए बेहतर नतीजे देने की कोशिश करती है.

ऐसा इसलिए, क्योंकि यह असल और नकली के बीच असल में अंतर नहीं कर सकती. WGAN (अलग करने वाले) को "आलोचक"के बजाय, असल में &आलोचक कहा जाता है. इस खास सिद्धांत की सैद्धांतिक अहमियत है, लेकिन व्यावहारिक तौर पर हम इसे इस बात से स्वीकार कर सकते हैं कि नुकसान पहुंचाने वाले फ़ंक्शन के लिए इनपुट ज़रूरी नहीं हैं.

नुकसान पहुंचाने वाले फ़ंक्शन खुद ही बहुत आसान होते हैं:

आलोचक का नुकसान: D(x) - D(G(z))

विभाजक इस फ़ंक्शन को ज़्यादा से ज़्यादा बढ़ाने की कोशिश करता है. दूसरे शब्दों में, यह असल इंस्टेंस पर इसके आउटपुट और नकली इंस्टेंस पर इसके आउटपुट के बीच के अंतर को बढ़ाने की कोशिश करता है.

जनरेटर का नुकसान: D(G(z))

जनरेटर इस फ़ंक्शन को बढ़ाने की कोशिश करता है. दूसरे शब्दों में, यह नकली मामलों के लिए भेदभाव करने वाले के आउटपुट को बढ़ाने की कोशिश करता है.

इन फ़ंक्शन में:

  • किसी असल इंस्टेंस के लिए D(x), आलोचक का आउटपुट है.
  • शोर z के हिसाब से, G(z) जनरेट और जनरेट किया गया आउटपुट होता है.
  • D(G(z)), नकली इंस्टेंस के लिए आलोचक का आउटपुट है.
  • आलोचक D का आउटपुट 1 और 0 के बीच नहीं होना चाहिए.
  • ये फ़ॉर्मूला, जगह के मूवर दूरी के बीच, असल और जनरेट किए गए डिस्ट्रिब्यूशन के बीच से लिए जाते हैं.

TF-GAN में, लागू करने के लिए wassertine_genator_loss और Weasertine_discriminator_loss देखें.

ज़रूरी शर्तें

वासरस्टान जीएएन (या डब्ल्यूजीएएन) के सैद्धांतिक उचित होने की वजह से, पूरे जीएएन पर महत्व लागू किए जाने चाहिए, ताकि वे पाबंदी वाली सीमा में रहें.

फ़ायदे

वैसरस्टाइन जीएएन, मिनीमैक्स आधारित जीएएन की तुलना में अटकने की कम संभावना रखते हैं. साथ ही, वे गायब होने वाली समस्याओं से बच जाते हैं. अर्थ मूवर की दूरी का एक वास्तविक मेट्रिक होने का भी फ़ायदा होता है: यह संभावना के डिस्ट्रिब्यूशन के स्पेस में दूरी का माप होता है. इस तरह से क्रॉस-एंट्रॉपी कोई मेट्रिक नहीं है.