भले ही परिवर्तनशील ऑटोकेनोडर्स (VAE) को लागू करना और प्रशिक्षित करना आसान है, यह समझाते हुए कि वे बिल्कुल भी सरल नहीं हैं, क्योंकि वे डीप लर्निंग और वेरिएशन बेयस से अवधारणाओं को मिश्रित करते हैं, और डीप लर्निंग और प्रोबेबिलिस्टिक मॉडलिंग समुदाय समान अवधारणाओं के लिए विभिन्न शब्दों का उपयोग करते हैं। इस प्रकार जब वीएई समझाते हैं तो आप या तो सांख्यिकीय मॉडल भाग पर ध्यान केंद्रित करते हैं, पाठक को इस बात का सुराग दिए बिना कि वास्तव में इसे कैसे लागू किया जाए, या इसके विपरीत नेटवर्क आर्किटेक्चर और नुकसान फ़ंक्शन पर ध्यान केंद्रित किया जाए, जिसमें कुल्बैक-लीबियाई शब्द लगता है। पतली हवा से बाहर निकाला। मैं यहाँ एक मध्य मैदान पर प्रहार करने की कोशिश करूँगा, जो मॉडल से शुरू होगा लेकिन वास्तव में इसे लागू करने के लिए पर्याप्त विवरण देगा, या किसी और के कार्यान्वयन को समझेगा।
VAE जनरेटिव मॉडल हैं
शास्त्रीय (विरल, denoising, आदि) autoencoders के विपरीत, Vaes हैं उत्पादक मॉडल, Gans की तरह। जेनेरेटिव मॉडल के साथ मेरा मतलब है कि एक मॉडल जो इनपुट स्पेस x पर संभावना वितरण p(x) सीखता है । इसका मतलब यह है कि हमने इस तरह के एक मॉडल को प्रशिक्षित करने के बाद, हम पी ( एक्स ) के (हमारे अनुमान) से नमूना ले सकते हैं । यदि हमारा प्रशिक्षण सेट हस्तलिखित अंकों (एमएनआईएसटी) से बना है, तो प्रशिक्षण के बाद जेनेरेटिव मॉडल उन चित्रों को बनाने में सक्षम होता है जो हस्तलिखित अंकों की तरह दिखते हैं, भले ही वे प्रशिक्षण सेट में छवियों की "प्रतियां" न हों।xp(x)
प्रशिक्षण सेट में छवियों के वितरण को सीखने का तात्पर्य है कि हस्तलिखित अंकों की तरह दिखने वाली छवियों को उत्पन्न होने की उच्च संभावना होनी चाहिए, जबकि जॉली रोजर या यादृच्छिक शोर की तरह दिखने वाली छवियों की कम संभावना होनी चाहिए। दूसरे शब्दों में, इसका मतलब है कि पिक्सल के बीच निर्भरता के बारे में सीखना: यदि हमारी छवि MNIST से 28×28=784 पिक्सेल ग्रेस्केल छवि है, तो मॉडल को सीखना चाहिए कि यदि पिक्सेल बहुत उज्ज्वल है, तो एक महत्वपूर्ण संभावना है कि कुछ पड़ोसी पिक्सेल उज्ज्वल भी हैं, कि यदि हमारे पास उज्ज्वल पिक्सेल की लंबी, तिरछी रेखा है, तो हमारे पास इस (7) के ऊपर पिक्सेल की एक और छोटी, क्षैतिज रेखा हो सकती है, आदि।
VAE अव्यक्त चर मॉडल हैं
VAE एक है अव्यक्त चर इसका मतलब है कि: मॉडल x , 784 पिक्सेल तीव्रता (के यादृच्छिक वेक्टर मनाया चर), एक (संभवतः बहुत जटिल) एक यादृच्छिक वेक्टर के समारोह के रूप में मॉडलिंग की है z ∈ Z कम आयामी स्वरूप, जिसका घटकों के अप्राप्य ( अव्यक्त ) चर हैं। ऐसा मॉडल कब समझ में आता है? उदाहरण के लिए, एमएनआईएसटी मामले में हम सोचते हैं कि हस्तलिखित अंक एक्स के आयाम की तुलना में कई गुना आयाम के हैं।एक्स, क्योंकि 784 पिक्सेल तीव्रता के यादृच्छिक व्यवस्था के विशाल बहुमत, हस्तलिखित अंक की तरह नहीं दिखते। सहज रूप से हम आयाम को कम से कम 10 (अंकों की संख्या) होने की उम्मीद करेंगे, लेकिन यह सबसे अधिक संभावना है क्योंकि प्रत्येक अंक को अलग-अलग तरीकों से लिखा जा सकता है। अंतिम छवि की गुणवत्ता (उदाहरण के लिए, वैश्विक घुमाव और अनुवाद) के लिए कुछ अंतर महत्वहीन हैं, लेकिन अन्य महत्वपूर्ण हैं। तो इस मामले में अव्यक्त मॉडल समझ में आता है। इस पर और बाद में। ध्यान दें कि, आश्चर्यजनक रूप से, भले ही हमारा अंतर्ज्ञान हमें बताता है कि आयाम 10 के बारे में होना चाहिए, हम निश्चित रूप से एक VAE के साथ MNIST डाटासेट को एनकोड करने के लिए सिर्फ 2 अव्यक्त चर का उपयोग कर सकते हैं (हालांकि परिणाम सुंदर नहीं होंगे)। कारण यह है कि एक भी वास्तविक चर असीम रूप से कई वर्गों को सांकेतिक शब्दों में बदलना कर सकता है, क्योंकि यह सभी संभव पूर्णांक मान और अधिक मान सकता है। बेशक, अगर कक्षाओं में उनके बीच महत्वपूर्ण ओवरलैप है (जैसे कि 9 और 8 या 7 और मैं MNIST में), तो भी केवल दो अव्यक्त चर का सबसे जटिल कार्य प्रत्येक वर्ग के लिए स्पष्ट रूप से समझदार नमूने उत्पन्न करने का एक खराब काम करेगा। इस पर और बाद में।
VAE एक बहुभिन्नरूपी पैरामीट्रिक वितरण (जहाँ के पैरामीटर हैं ), और वे पैरामीटर सीखते हैं बहुभिन्नरूपी वितरण। लिए एक पैरामीट्रिक पीडीएफ का उपयोग , जो प्रशिक्षण सेट के विकास के साथ सीमा के बिना VAE के मापदंडों की संख्या को बढ़ने से रोकता है, VAE लिंगो में परिशोधन कहा जाता है (हाँ, मुझे पता है ...)।क्ष( z | x , λ )λक्षz
डिकोडर नेटवर्क
हम डिकोडर नेटवर्क से शुरू करते हैं क्योंकि VAE एक जेनरेटर मॉडल है, और VAE का एकमात्र हिस्सा जो वास्तव में नई छवियों को उत्पन्न करने के लिए उपयोग किया जाता है वह डिकोडर है। एनकोडर नेटवर्क का उपयोग केवल अनुमान (प्रशिक्षण) के समय किया जाता है।
डिकोडर नेटवर्क का लक्ष्य नए यादृच्छिक वैक्टर को इनपुट स्पेस , अर्थात्, नई छवियां, अव्यक्त वेक्टर बोध से शुरू करना है । इसका मतलब साफ है कि इसे सशर्त वितरण सीखना चाहिए । VAEs के लिए यह वितरण अक्सर एक बहुभिन्नरूपी गॉसियन 1 माना जाता है :एक्सएक्सzp ( x | z )
पीφ( x | z ) = एन( X | μ ( z ; φ ) , σ ( z ; φ )2मैं)
φ एनकोडर नेटवर्क के भार (और पक्षपात) का वेक्टर है। वैक्टर और जटिल, अज्ञात कार्य हैं; डिकोडर नेटवर्क द्वारा मॉडलिंग की गई: तंत्रिका नेटवर्क शक्तिशाली nonlinear फ़ंक्शन सन्निकटन हैं।μ ( z ; ϕ )σ ( z ; φ )
जैसा कि टिप्पणियों में @amoeba द्वारा उल्लेख किया गया है, डिकोडर और एक क्लासिक अव्यक्त चर मॉडल के बीच एक हड़ताली समानता है: कारक विश्लेषण। कारक विश्लेषण में, आप मॉडल मानते हैं:
x | z ∼ एन( डब्ल्यू जेड + μ , σ2मैं) , Z ~ एन ( 0 , आई)
दोनों मॉडल (एफए और डिकोडर) यह मानते हैं कि अव्यक्त चर पर अवलोकन योग्य चर का सशर्त वितरण गौसियन है, और यह कि स्वयं मानक गाऊसी हैं। अंतर यह है कि डिकोडर यह नहीं मानता है कि का मतलब रैखिक है in , और न ही यह मानता है कि मानक विचलन एक स्थिर वेक्टर है। इसके विपरीत, यह उन्हें जटिल nonlinear कार्यों के रूप में प्रदर्शित करता है । इस संबंध में, इसे नॉनलेयर फैक्टर एनालिसिस के रूप में देखा जा सकता है। यहाँ देखेंएक्सzzp ( x | z )zzएफए और VAE के बीच इस संबंध की एक व्यावहारिक चर्चा के लिए। चूंकि एक आइसोट्रोपिक सहसंयोजक मैट्रिक्स के साथ एफए केवल पीपीसीए है, इसलिए यह अच्छी तरह से ज्ञात परिणाम से भी जुड़ा है कि एक रैखिक ऑटोकेनोडर पीसीए में कम हो जाता है।
चलो डिकोडर पर वापस जाते हैं: हम कैसे सीखते हैं ? सहज रूप से हम अव्यक्त चर जो प्रशिक्षण सेट में उत्पन्न करने की संभावना को अधिकतम करते हैं । दूसरे शब्दों में, हम डेटा को देखते हुए, के पश्चगामी संभाव्यता वितरण की गणना करना चाहते हैं :φzएक्समैंडीnz
p ( z | x ) = pφ(x|z)p(z)p(x)
हम पर पहले एक मान लेते हैं, और हम बायसियन निष्कर्ष में सामान्य अंक के साथ छोड़ देते हैं कि कंप्यूटिंग ( सबूत ) कठिन है ( एक बहुआयामी अभिन्न)। और क्या है, चूँकि यहाँ अज्ञात है, हम वैसे भी इसकी गणना नहीं कर सकते। वैरिएशन आविष्कार को दर्ज करें, जो टूल वैरिएनिक ऑटोकेनोडर्स को उनका नाम देता है।N(0,I)zपी ( एक्स )μ ( z ; φ )μ ( z ; ϕ )
VAE मॉडल के लिए भिन्नता संबंधी आविष्कार
विभिन्नता आविष्कार बहुत जटिल मॉडल के लिए अनुमानित बेइज़ियन आविष्कार करने के लिए एक उपकरण है। यह एक अत्यधिक जटिल उपकरण नहीं है, लेकिन मेरा जवाब पहले से ही बहुत लंबा है और मैं VI के विस्तृत विवरण में नहीं जाऊंगा। यदि आप जिज्ञासु हैं, तो आप इस उत्तर और उसके संदर्भों पर एक नज़र डाल सकते हैं:
/stats//a/270569/58675
यह कहना पर्याप्त है कि VI , वितरण एक पैरामीट्रिक परिवार में लिए एक सन्निकटन की तलाश में है , जहां, जैसा कि ऊपर उल्लेख किया गया है, परिवार के पैरामीटर हैं। हम उन मापदंडों की तलाश करते हैं, जो हमारे लक्ष्य वितरण और बीच कुल्बैक-लीब्लर डाइवर्जेंस को कम करते हैं :p ( z | x )क्ष( z | x , λ )λp ( z | x )क्ष( z | x , λ )
मिनटλD [p( z | x )| | क्ष( z | x , λ ) ]
दोबारा, हम इसे सीधे कम नहीं कर सकते क्योंकि कुल्बैक-लीब्लर डाइवर्जेंस की परिभाषा में साक्ष्य शामिल हैं। ELBO (साक्ष्य कम बोउंड) का परिचय और कुछ बीजीय जोड़तोड़ के बाद, हम अंत में प्राप्त करते हैं:
एएल बी ओ ( λ ) = ईक्ष( z | x , λ )[ लॉग करेंp ( x | z ) ] - D [ ( q( z | x , λ ) | | पी ( z ) ]
चूंकि ELBO साक्ष्य पर एक निचली सीमा है (उपरोक्त लिंक देखें), ELBO को अधिकतम करना दिए गए डेटा की संभावना को अधिकतम करने के बराबर नहीं है (दिए गए सभी के बाद, VI एक अनुमानित बायेसियन अनुमान का एक उपकरण है ), लेकिन यह सही दिशा में जाता है।λ
निष्कर्ष निकालने के लिए, हमें पैरामीट्रिक परिवार निर्दिष्ट करने की आवश्यकता है । अधिकांश वीएई में हम एक बहुभिन्नरूपी, असंबद्ध गौसियन वितरण चुनते हैंक्ष( z | x , λ )
क्ष( z | x , λ ) = एन( Z | μ ( एक्स ) , σ2( x ) I)
यह वही विकल्प है जिसे हमने , हालांकि हमने एक अलग पैरामीट्रिक परिवार चुना है। पहले की तरह, हम एक तंत्रिका नेटवर्क मॉडल को पेश करके इन जटिल nonlinear कार्यों का अनुमान लगा सकते हैं। चूंकि यह मॉडल इनपुट छवियों को स्वीकार करता है और अव्यक्त चर के वितरण के मापदंडों को लौटाता है जिसे हम इसे एनकोडर नेटवर्क कहते हैं। पहले की तरह, हम एक तंत्रिका नेटवर्क मॉडल को पेश करके इन जटिल nonlinear कार्यों का अनुमान लगा सकते हैं। चूंकि यह मॉडल इनपुट छवियों को स्वीकार करता है और अव्यक्त चर के वितरण के मापदंडों को लौटाता है जिसे हम इसे एनकोडर नेटवर्क कहते हैं।p ( x | z )
एनकोडर नेटवर्क
इसे इनवेंशन नेटवर्क भी कहा जाता है , यह केवल प्रशिक्षण के समय में उपयोग किया जाता है।
जैसा कि ऊपर उल्लेख किया गया है, एन्कोडर को अनुमानित और , इस प्रकार यदि हमारे पास, 24 अव्यक्त चर, का आउटपुट होता है। एनकोडर एक वेक्टर है। एनकोडर में वजन (और पक्षपात) । सीखने के लिए , हम अंत में ELBO लिख सकते हैं पैरामीटर और के संदर्भ में एनकोडर और डिकोडर नेटवर्क, साथ ही साथ प्रशिक्षण सेट अंक:μ ( x )σ ( x )घ= 48θθθφ
एएल बी ओ ( θ , φ ) = Σमैंएक्षθ( z | xमैं, λ )[ लॉग करेंपीφ( x)मैं| z ) ] - D [ ( qθ( z | xमैं, λ ) | | पी ( z ) ]
हम अंत में निष्कर्ष निकाल सकते हैं। ELBO के विपरीत, और फ़ंक्शन के रूप में, VAE के नुकसान फ़ंक्शन के रूप में उपयोग किया जाता है। हम इस नुकसान को कम करने के लिए, अर्थात, ELBO को अधिकतम करने के लिए SGD का उपयोग करते हैं। चूंकि ELBO साक्ष्य पर एक कम बाध्य है, इसलिए यह साक्ष्य को अधिकतम करने की दिशा में जाता है, और इस प्रकार नई छवियां उत्पन्न करता है जो प्रशिक्षण सेट में उन लोगों के समान हैं। ELBO में पहला शब्द प्रशिक्षण सेट बिंदुओं की अपेक्षित नकारात्मक प्रवेश-संभावना है, इस प्रकार यह डिकोडर को छवियों का उत्पादन करने के लिए प्रोत्साहित करता है जो प्रशिक्षण वाले लोगों के समान हैं। दूसरे शब्द की व्याख्या एक रेगुलराइज़र के रूप में की जा सकती है: यह एनकोडर को अव्यक्त चरों के लिए वितरण उत्पन्न करने के लिए प्रोत्साहित करता है जोθφp ( z ) = एन( 0 , आई)क्ष θ ( z | एक्स , λ ) पी ( z | एक्स , λ )। लेकिन पहले प्रायिकता मॉडल को शुरू करने से, हम समझ गए कि पूरी अभिव्यक्ति कहाँ से आती है: लगभग पश्च और मॉडल पश्च । 2क्षθ( z | x , λ )p ( z | x , λ )
एक बार जब हमने को अधिकतम करके और , तो हम एनकोडर को फेंक सकते हैं। अब से, नई छवियां उत्पन्न करने के लिए बस नमूना और इसे डिकोडर के माध्यम से प्रचारित करें। डिकोडर आउटपुट प्रशिक्षण सेट में उन लोगों के समान चित्र होंगे।θφएएल बी ओ ( θ , φ )z ∼ एन( 0 , आई)
सन्दर्भ और आगे पढ़ना
1 यह धारणा कड़ाई से आवश्यक नहीं है, हालांकि यह VAE के हमारे विवरण को सरल करता है। हालाँकि, अनुप्रयोगों के आधार पर, आप लिए एक अलग वितरण मान सकते हैं । उदाहरण के लिए, यदि द्विआधारी चर का एक वेक्टर है, तो एक गाऊसी कोई मतलब नहीं है, और एक बहुभिन्नरूपी बर्नोली को ग्रहण किया जा सकता है।पीφ( x | z )एक्सपी
2 ELBO अभिव्यक्ति, अपने गणितीय लालित्य के साथ, VAE चिकित्सकों के लिए दर्द के दो प्रमुख स्रोतों को छुपाती है। एक का औसत शब्द । इसके लिए प्रभावी रूप से एक अपेक्षा की गणना करने की आवश्यकता होती है, जिसमें से कई नमूने लेने की आवश्यकता होती हैएक्षθ( z |xमैं, λ )[लॉग करेंपीφ(x)मैं| z ) ]क्षθ( z | xमैं, λ )। शामिल तंत्रिका नेटवर्क के आकार, और SGD एल्गोरिथ्म की कम अभिसरण दर को देखते हुए, प्रत्येक पुनरावृत्ति पर कई यादृच्छिक नमूने खींचने के लिए (वास्तव में, प्रत्येक मिनीबैच के लिए, जो और भी बदतर है) बहुत समय लेने वाली है। VAE उपयोगकर्ता एकल ((!) यादृच्छिक नमूने के साथ उस अपेक्षा की गणना करके इस समस्या को बहुत ही व्यावहारिक रूप से हल करते हैं। दूसरा मुद्दा यह है कि दो तंत्रिका नेटवर्क (एनकोडर और डिकोडर) को बैकप्रोपैजेशन एल्गोरिदम के साथ प्रशिक्षित करने के लिए, मुझे एनकोडर से डिकोडर तक आगे के प्रसार में शामिल सभी चरणों को अलग करने में सक्षम होने की आवश्यकता है। चूंकि डिकोडर नियतात्मक नहीं है (इसके उत्पादन का मूल्यांकन करने के लिए एक बहुभिन्नरूपी गाऊसी से ड्राइंग की आवश्यकता होती है), यह पूछने का कोई मतलब नहीं है कि क्या यह एक अलग वास्तुकला है। इसका समाधान reparametrization ट्रिक है ।