पीढ़ी से परे GANs: 7 वैकल्पिक उपयोग के मामले

https://sigmoidal.io/beginners-review-of-gan-architectures/

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

BigGAN से नमूने: https://openreview.net/pdf?id=B1xsqj09Fm

2014 से 2018 तक फेस जनरेशन की प्रगति भी उल्लेखनीय है:

मैं इन परिणामों से बहुत उत्साहित हूं, लेकिन अगर वे वास्तव में उपयोगी और मोटे तौर पर लागू होते हैं, तो मेरे आंतरिक संदेह पर हमेशा संदेह होता है। मैं अपने फेसबुक नोट में यह प्रश्न पहले से ही खोल रहा था:

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

आरएनएन के साथ खेल स्तर की पीढ़ी

इस लेख में मैं 7 वैकल्पिक उपयोग के मामले प्रस्तुत करता हूं। उनमें से कुछ के साथ मैं पहले से ही व्यक्तिगत रूप से काम कर चुका हूं और उनकी उपयोगिता की पुष्टि कर सकता हूं, कुछ अन्य शोध में हैं, लेकिन इसका मतलब यह नहीं है कि वे कोशिश करने के लायक नहीं हैं। सृजन के लिए जरूरी नहीं कि सामान्य मॉडल का उपयोग करने के इन सभी उदाहरणों को विभिन्न क्षेत्रों में और अलग-अलग डेटा के लिए लागू किया जा सकता है, क्योंकि हमारा मुख्य लक्ष्य कुछ यथार्थवादी नहीं होगा, बल्कि नए कार्यों के लिए तंत्रिका नेटवर्क के आंतरिक ज्ञान का दोहन करना होगा।

1. डेटा वृद्धि

हो सकता है कि सबसे स्पष्ट एप्लिकेशन हमारे डेटा को नए डेटा उत्पन्न करने के लिए एक मॉडल को प्रशिक्षित करने के लिए हमारे डेटासेट को बढ़ाने के लिए हो सकता है। यदि इस वृद्धि ने वास्तव में कुछ मदद की है तो हम कैसे जांच करेंगे? खैर, दो मुख्य रणनीतियाँ हैं: हम अपने मॉडल को "नकली" डेटा पर प्रशिक्षित कर सकते हैं और जाँच सकते हैं कि यह वास्तविक नमूनों पर कितना अच्छा प्रदर्शन करता है। और इसके विपरीत: हम अपने मॉडल को कुछ वर्गीकरण कार्य करने के लिए वास्तविक डेटा पर प्रशिक्षित करते हैं और केवल यह जांचने के बाद कि यह उत्पन्न डेटा पर कितना अच्छा प्रदर्शन करता है (जीएएन प्रशंसक यहां स्थापना स्कोर को पहचान सकते हैं)। यदि यह दोनों मामलों में अच्छी तरह से काम करता है - आप अपने वास्तविक डेटा में जेनेरिक मॉडल से नमूने जोड़ने और इसे फिर से वापस लेने के लिए स्वतंत्र महसूस कर सकते हैं - आपको प्रदर्शन के लाभ की उम्मीद करनी चाहिए। इस दृष्टिकोण को और अधिक शक्तिशाली और लचीला बनाने के लिए, एप्लिकेशन # 6 की जांच करें।

NVIDIA ने कार्रवाई में इस दृष्टिकोण का अद्भुत उदाहरण दिखाया: उन्होंने विभिन्न रोगों के साथ चिकित्सा मस्तिष्क सीटी छवियों के डेटासेट को बढ़ाने के लिए GANs का उपयोग किया और दिखाया कि केवल क्लासिक डेटा वृद्धि का उपयोग करके वर्गीकरण प्रदर्शन ने 78.6% संवेदनशीलता और 88.4% विशिष्टता प्राप्त की। सिंथेटिक डेटा वृद्धि को जोड़कर परिणाम 85.7% संवेदनशीलता और 92.4% विशिष्टता तक बढ़ गए।

https://arxiv.org/pdf/1803.01229.pdf

2. गोपनीयता संरक्षण

बहुत सारी कंपनियों का डेटा गुप्त हो सकता है (जैसे वित्तीय डेटा जो पैसा बनाता है), गोपनीय या संवेदनशील (चिकित्सा डेटा जिसमें रोगियों का निदान होता है)। लेकिन कभी-कभी हमें इसे सलाहकारों या शोधकर्ताओं जैसे तीसरे पक्ष के साथ साझा करने की आवश्यकता होती है। यदि हम अपने डेटा के बारे में सामान्य विचार साझा करना चाहते हैं, जिसमें उन वस्तुओं के सबसे महत्वपूर्ण पैटर्न, विवरण और आकार शामिल हैं जिनका उपयोग हम अन्य मॉडलों के साथ साझा करने के लिए अपने डेटा के उदाहरणों के लिए पिछले पैराग्राफ में सीधे जेनेरिक मॉडल का उपयोग कर सकते हैं। इस तरह हमने कोई सटीक गोपनीय डेटा साझा नहीं किया, बस कुछ ऐसा दिखता है जो वास्तव में ऐसा लगता है।

अधिक कठिन मामला तब है जब हम गुप्त रूप से डेटा साझा करना चाहते हैं। बेशक, हमारे पास अलग-अलग एन्क्रिप्शन योजनाएं हैं, जैसे होमोमोर्फिक एन्क्रिप्शन, लेकिन वे 10 जीबी कोड में 1 एमबी जानकारी छिपाने की तरह कमियां जानते हैं। 2016 में Google ने एन्क्रिप्शन समस्या के लिए GAN प्रतिस्पर्धी ढांचे का उपयोग करने पर एक नया शोध पथ खोला, जहां दो नेटवर्क को कोड बनाने और इसे क्रैक करने में प्रतिस्पर्धा करनी थी:

https://towardsdatascience.com/adversarial-neural-cryptography-can-solve-the-biggest-friction-point-in-modern-ai-cc13b337f969

लेकिन सबसे अच्छा बिंदु किसी अन्य क्षेत्र में प्राप्त कोड या "एआई" चर्चा की दक्षता नहीं है। हमें याद रखना चाहिए कि तंत्रिका नेटवर्क द्वारा प्राप्त किए गए अभ्यावेदन में अक्सर इनपुट डेटा के बारे में सबसे अधिक उपयोगी जानकारी होती है (उनमें से कुछ को सीधे ऑटोकेनोडर्स जैसी जानकारी प्राप्त करने के लिए प्रशिक्षित किया जाता है) और इस संपीड़ित डेटा से हम अभी भी वर्गीकरण / प्रतिगमन / प्रतिरूपण कर सकते हैं। या जो हम चाहते हैं। यदि हम "संपीड़ित" को "एन्क्रिप्टेड" से बदलते हैं, तो विचार स्पष्ट है: डेटासेट के बारे में कुछ दिखाए बिना तीसरे पक्ष के साथ डेटा साझा करने का यह अद्भुत तरीका है। यह अज्ञात या नकली नमूनों की पीढ़ी से बहुत मजबूत है और अगली बड़ी चीज हो सकती है (ब्लॉकचेन का उपयोग करने के साथ, जैसे कि पहले से ही नुमेरई करता है)

3. विसंगति का पता लगाना

वैरिएबल ऑटोएन्कोडर (VAE) या GAN जैसे मुख्य जेनेरिक मॉडल दो भागों से मिलकर बने होते हैं। VAE में एनकोडर और डिकोडर होते हैं, जहां पहले एक मूल रूप से वितरण को मॉडल करता है और दूसरा इससे पुनर्निर्माण करता है। GAN में जेनरेटर और डिस्क्रिमिनेटर होते हैं, जहां पहला मॉडल वितरण और दूसरा जज यदि यह ट्रेन के डेटा के करीब है। जैसा कि हम देख सकते हैं, वे कुछ हद तक समान हैं - मॉडलिंग और जजिंग पार्ट है (VAE में हम पुनर्निर्माण को किसी तरह का निर्णय मान सकते हैं)। डेटा वितरण सीखने के लिए मॉडलिंग भाग। जजिंग पार्ट का क्या होगा यदि हम इसे कुछ नमूना देंगे जो प्रशिक्षण वितरण से नहीं है? अच्छी तरह से प्रशिक्षित जीएएन भेदभाव के मामले में हमें 0 बताएंगे, और वीएई की पुनर्निर्माण त्रुटि प्रशिक्षण डेटा पर औसत एक से अधिक होगी। यहाँ यह आता है: हमारे अनसुना विसंगति डिटेक्टर, आसानी से प्रशिक्षित और मूल्यांकन। और हम इसे कुछ स्टेरॉयड के साथ फ़ीड कर सकते हैं जैसे सांख्यिकीय दूरी यदि हम चाहते हैं (Wasserstein GAN)। इस पत्र में आप विसंगति का पता लगाने के लिए और यहां एक ऑटोएन्कोडर के उपयोग के लिए GAN का उदाहरण पा सकते हैं। मैं केरस में लिखी गई श्रृंखला के लिए एक ऑटोकेन्डर आधारित विसंगति डिटेक्टर के अपने किसी न किसी स्केच को भी जोड़ता हूं:

4. विवेकशील मॉडलिंग

सभी गहरी सीख जो वास्तव में करता है, वह इनपुट डेटा को कुछ ऐसे स्थान पर मैप कर रहा है, जहां यह एसवीएम या लॉजिस्टिक रिग्रेशन जैसे सरल गणितीय मॉडल द्वारा अधिक आसान वियोज्य या व्याख्या योग्य है। जेनेरिक मॉडल भी अपनी स्वयं की मैपिंग करते हैं, चलो VAEs से शुरू करते हैं। Autoencoders इनपुट नमूना को कुछ सार्थक अव्यक्त स्थान में मैप करता है और मूल रूप से हम कुछ मॉडल को सीधे इसके ऊपर प्रशिक्षित कर सकते हैं। क्या इसका कोई अर्थ बनता है? क्या यह केवल एनकोडर परतों का उपयोग करने से अलग है और एक मॉडल को सीधे कुछ वर्गीकरण करने के लिए प्रशिक्षित करता है? यह वास्तव में है। ऑटोएन्कोडर की अव्यक्त जगह जटिल गैर-रेखीय आयाम में कमी है और परिवर्तनशील ऑटोकेनोडर के मामले में भी एक बहुभिन्नरूपी वितरण है, जो कुछ यादृच्छिक आरंभीकरण की तुलना में एक भेदभावपूर्ण मॉडल को प्रशिक्षित करने के लिए बेहतर शुरुआत हो सकती है।

GAN अन्य कार्यों के लिए उपयोग करना थोड़ा अधिक कठिन है। वे यादृच्छिक बीज से नमूने उत्पन्न करने के लिए डिज़ाइन किए गए हैं और किसी भी इनपुट की अपेक्षा नहीं करते हैं। लेकिन हम अभी भी उन्हें कम से कम दो तरीकों से क्लासिफायर के रूप में शोषण कर सकते हैं। पहले से ही, पहले से ही शोध किया गया है, भेदभाव करने वाले को अलग-अलग वर्गों में उत्पन्न नमूने के वर्गीकरण के साथ-साथ यह बताने के लिए कि क्या यह वास्तविक है या नकली है, का लाभ उठा रहा है। हम प्राप्त किए गए क्लासिफायर से बेहतर नियमित होने की उम्मीद कर सकते हैं (क्योंकि इसमें इनपुट डेटा के विभिन्न प्रकार के शोर और गड़बड़ी देखी गई है) और आउटलेर / विसंगतियों के लिए अतिरिक्त कक्षा है:

https://towardsdatascience.com/semi-supervised-learning-with-gans-9f3cb128c5e

दूसरा बेयर्स प्रमेय के साथ वर्गीकरण करने के लिए गलत तरीके से भूल गया है, जहां हम p (x | c_k) के आधार पर p (c_k | x) मॉडल करते हैं (वास्तव में क्या GAN करता है!) और priors p (x), p (ck)। यहाँ मुख्य सवाल यह है कि GAN वास्तव में डेटा वितरण सीखते हैं?, और कुछ हालिया अध्ययनों में इस पर चर्चा की जा रही है।

5. डोमेन अनुकूलन

यह मेरे लिए सबसे शक्तिशाली है। व्यवहार में हमारे पास मॉडल को प्रशिक्षित करने और उन्हें वास्तविक दुनिया के वातावरण में चलाने के लिए लगभग समान डेटा स्रोत नहीं है। कंप्यूटर दृष्टि में विभिन्न प्रकाश की स्थिति, कैमरा सेटिंग्स या मौसम भी बहुत सटीक मॉडल को बेकार कर सकते हैं। एनएलपी / भाषण विश्लेषण में कठबोली या उच्चारण "व्याकरणिक रूप से सही" भाषा पर प्रशिक्षित आपके मॉडल के प्रदर्शन को बर्बाद कर सकता है। सिग्नल प्रोसेसिंग में संभवत: आपके पास मॉडल और उत्पादन को प्रशिक्षित करने के लिए डेटा कैप्चर करने के लिए पूरी तरह से अलग डिवाइस हैं। लेकिन हम यह भी नोटिस कर सकते हैं कि दोनों डेटा "प्रकार" एक दूसरे के समान हैं। और हम जानते हैं कि मशीन लर्निंग मॉडल एक स्थिति से दूसरी सामग्री की मैपिंग करते हुए मुख्य सामग्री को संरक्षित करते हैं, लेकिन विवरण बदलते रहते हैं। हां, मैं अब स्टाइल ट्रांसफर के बारे में ले रहा हूं, लेकिन कम रचनात्मक उद्देश्यों के लिए।

https://ml4a.github.io/ml4a/style_transfer/

उदाहरण के लिए, यदि आप किसी ऐसे अनुप्रयोग से काम कर रहे हैं जो कुछ प्रकार के सीसीटीवी कैमरों पर काम करने वाला है, लेकिन आपने अपने मॉडल को उच्च रिज़ॉल्यूशन के चित्रों पर प्रशिक्षित किया है, तो आप GANs का उपयोग प्री-नॉइज़िंग और उन्हें बढ़ाने के साथ छवियों को प्रीप्रोसेस करने के लिए कर सकते हैं। अधिक कट्टरपंथी उदाहरण मैं सिग्नल प्रोसेसिंग क्षेत्र से प्रदान कर सकता हूं: मोबाइल फोन से एक्सीलरोमीटर डेटा से संबंधित बहुत सारे डेटासेट हैं जो विभिन्न लोगों की गतिविधियों का वर्णन करते हैं। लेकिन क्या होगा अगर आप कलाई पर फोन डेटा पर प्रशिक्षित अपने मॉडल को लागू करना चाहते हैं? गण विभिन्न प्रकार के आंदोलनों का अनुवाद करने में आपकी सहायता करने का प्रयास कर सकते हैं। सामान्य तौर पर, जेनेरिक मॉडल जो पीढ़ी को एक शोर से नहीं करते हैं, लेकिन कुछ पूर्वनिर्धारित आप डोमेन अनुकूलन, कोवरियन शिफ्ट और डेटा में अंतर से संबंधित अन्य समस्याओं के साथ मदद कर सकते हैं।

6. डेटा हेरफेर

हमने पिछले पैराग्राफ में स्टाइल ट्रांसफर के बारे में बात की थी। मैं वास्तव में इसे पसंद नहीं करता, यह तथ्य है कि यह मानचित्रण फ़ंक्शन है जो पूरे इनपुट पर काम करता है और इसे सभी को बदलता है। क्या होगा अगर मैं सिर्फ कुछ फोटो पर नाक बदलना चाहता हूं? या कार का रंग बदलना? या कुछ शब्दों को पूरी तरह से बदलने के बिना एक भाषण में बदलें? यदि हम ऐसा करना चाहते हैं, तो हम पहले ही मान लेते हैं, कि हमारी वस्तु को कारकों के कुछ सीमित सेट के साथ वर्णित किया जा सकता है, उदाहरण के लिए, एक चेहरा आँखों, नाक, बाल, होंठ आदि का एक संयोजन है और इन कारकों की अपनी विशेषताएं हैं (रंग , आकार आदि)। क्या होगा अगर हम कुछ के साथ एक तस्वीर के साथ हमारे पिक्सल को मैप कर सकते हैं ... जहां हम इन कारकों को समायोजित कर सकते हैं और नाक को बड़ा या छोटा कर सकते हैं? कुछ गणितीय अवधारणाएं हैं जो इसे अनुमति देती हैं: कई गुना परिकल्पना और असंतुष्ट प्रतिनिधित्व। हमारे लिए अच्छी खबर यह है कि ऑटोएन्कोडर्स और, शायद, गण हमें इस तरह से मॉडल वितरण की अनुमति देते हैं, इसलिए यह इन कारकों का मिश्रण है।

https://houxianxu.github.io/assets/project/dfcvae

7. प्रतिकूल प्रशिक्षण

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

https://blog.openai.com/adversarial-example-research/

विवरण में गोताखोरी किए बिना इसका मतलब है कि हमारे पास अभी भी दो-खिलाड़ी का खेल है: प्रतिकूल मॉडल (जो बस कुछ एप्सिलॉन के साथ इनपुट गड़बड़ी करता है) जिसे इसके प्रभाव को अधिकतम करने की आवश्यकता है और एक वर्गीकरण मॉडल है जिसे इसके नुकसान को कम करने की आवश्यकता है। एक GAN की तरह बहुत कुछ दिखता है, लेकिन विभिन्न उद्देश्यों के लिए: प्रतिकूल आक्रमणों के लिए एक मॉडल को अधिक स्थिर बनाते हैं और कुछ प्रकार के स्मार्ट डेटा वृद्धि और नियमितीकरण के कारण इसके प्रदर्शन में सुधार करते हैं।

टेकअवे

इस लेख में हमने कई उदाहरण देखे हैं कि कैसे GAN और कुछ अन्य जेनेरेटिव मॉडल का उपयोग किसी अन्य चित्र के लिए किया जा सकता है, अच्छी छवियां, धुन या लघु ग्रंथ बनाने के बजाय। बेशक, उनका मुख्य दीर्घकालिक लक्ष्य सही स्थितियों से वातानुकूलित वास्तविक दुनिया की वस्तुओं को पैदा करना होगा, लेकिन आज हम उनकी मौजूदा एआई पाइपलाइनों में सुधार करने, हमारे डेटा को सुरक्षित करने, विसंगतियों को खोजने या अधिक के लिए अनुकूल होने के लिए मॉडलिंग के वितरण और सीखने के उपयोगी अभ्यावेदन का उपयोग कर सकते हैं। वास्तविक दुनिया के मामले। मुझे आशा है कि आप उन्हें उपयोगी पाएंगे और अपनी परियोजनाओं में लागू करेंगे। बने रहें!

अनुलेख
एआई लेखों के लिए फेसबुक में भी मेरा अनुसरण करें जो कि मध्यम, Instagram के लिए व्यक्तिगत सामान और लिंक्डिन के लिए बहुत कम हैं!