Xlera8

मशीन लर्निंग के लिए डिफ्यूजन मॉडल का परिचय

यह आलेख मूलतः पर प्रकाशित हुआ था विधानसभाएआई और लेखक की अनुमति से TOPBOTS पर पुनः प्रकाशित किया गया.

प्रसार मॉडल उत्पादक मॉडल हैं जो पिछले कई वर्षों में और अच्छे कारणों से महत्वपूर्ण लोकप्रियता प्राप्त कर रहे हैं। 2020 के दशक में जारी किए गए मुट्ठी भर सेमिनल पेपर अकेला दुनिया को दिखाया है कि डिफ्यूजन मॉडल क्या करने में सक्षम हैं, जैसे कि GANs को हराना[6] छवि संश्लेषण पर। हाल ही में, चिकित्सकों ने में उपयोग किए गए डिफ्यूजन मॉडल को देखा होगा दाल-ई 2, OpenAI का इमेज जनरेशन मॉडल पिछले महीने जारी किया गया था।

DALL-E 2 द्वारा उत्पन्न विभिन्न छवियां (स्रोत).

डिफ्यूजन मॉडल द्वारा सफलता की हालिया लहर को देखते हुए, कई मशीन लर्निंग प्रैक्टिशनर्स निश्चित रूप से अपने आंतरिक कामकाज में रुचि रखते हैं। इस लेख में, हम जांच करेंगे प्रसार मॉडल के लिए सैद्धांतिक नींव, और फिर प्रदर्शित करें कि a . के साथ चित्र कैसे उत्पन्न करें PyTorch में डिफ्यूजन मॉडल. चलो गोता लगाएँ!

यदि यह गहन शैक्षिक सामग्री आपके लिए उपयोगी है, हमारी एआई मेलिंग सूची की सदस्यता लें जब हम नई सामग्री जारी करते हैं तो सतर्क रहें। 

प्रसार मॉडल - परिचय

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

शोर से छवियों को उत्पन्न करने के लिए प्रसार मॉडल का उपयोग किया जा सकता है (से अनुकूलित स्रोत)

अधिक विशेष रूप से, एक डिफ्यूजन मॉडल एक अव्यक्त चर मॉडल है जो एक निश्चित मार्कोव श्रृंखला का उपयोग करके अव्यक्त स्थान पर मैप करता है। अनुमानित पश्च q(x .) प्राप्त करने के लिए यह श्रृंखला धीरे-धीरे डेटा में शोर जोड़ती है1: टी|x0), जहां एक्स1,…,एक्सT x . के समान विमीयता वाले अव्यक्त चर हैं0. नीचे दिए गए आंकड़े में, हम ऐसी मार्कोव श्रृंखला देखते हैं जो छवि डेटा के लिए प्रकट होती है।

अंततः, छवि स्पर्शोन्मुख रूप से शुद्ध गाऊसी शोर में बदल जाती है।  लक्ष्य एक प्रसार मॉडल को प्रशिक्षित करना सीखना है उल्टा प्रक्रिया - यानी प्रशिक्षण पीθ(xटी-1|xt) इस श्रृंखला के साथ पीछे की ओर चलकर, हम नया डेटा उत्पन्न कर सकते हैं।

प्रसार मॉडल के लाभ

जैसा कि ऊपर उल्लेख किया गया है, हाल के वर्षों में प्रसार मॉडल में अनुसंधान में विस्फोट हुआ है। गैर-संतुलन ऊष्मप्रवैगिकी से प्रेरित[1], प्रसार मॉडल वर्तमान में उत्पादन करते हैं अत्याधुनिक छवि गुणवत्ता, जिसके उदाहरण नीचे देखे जा सकते हैं:

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

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

प्रसार मॉडल - एक गहरा गोता

जैसा कि ऊपर उल्लेख किया गया है, एक डिफ्यूजन मॉडल में शामिल हैं a आगे की प्रक्रिया (या प्रसार प्रक्रिया), जिसमें एक डेटाम (आमतौर पर एक छवि) उत्तरोत्तर शोर होता है, और a रिवर्स प्रक्रिया (या रिवर्स प्रसार प्रक्रिया), जिसमें शोर लक्ष्य वितरण से वापस नमूने में बदल जाता है।

शोर स्तर पर्याप्त रूप से कम होने पर आगे की प्रक्रिया में नमूना श्रृंखला संक्रमण सशर्त गाऊसी पर सेट किया जा सकता है। इस तथ्य को मार्कोव धारणा के साथ जोड़कर आगे की प्रक्रिया का एक सरल मानकीकरण होता है:

गणितीय नोट

हम डेटा को दूषित करने के बारे में बात कर रहे हैं जोड़ने गाऊसी शोर, लेकिन यह पहली बार में स्पष्ट नहीं हो सकता है कि हम यह जोड़ कहां कर रहे हैं। उपरोक्त समीकरण के अनुसार, श्रृंखला के प्रत्येक चरण में हम केवल एक गाऊसी वितरण से नमूना ले रहे हैं जिसका माध्य श्रृंखला में पिछला मान (अर्थात छवि) है।

ये दोनों कथन समतुल्य हैं। वह है

यह समझने के लिए कि क्यों, हम जोर देकर संकेतन के थोड़े से दुरुपयोग का उपयोग करेंगे

जहां अंतिम निहितार्थ यादृच्छिक चर के योग और उनके वितरण के संकल्प के बीच गणितीय तुल्यता से उपजा है - देखें यह विकिपीडिया पृष्ठ देखें।

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

जहां β1,…,βT एक भिन्नता अनुसूची है (या तो सीखा या निश्चित) जो, यदि अच्छा व्यवहार किया जाता है, निश्चित करता है की xT पर्याप्त रूप से बड़े टी के लिए लगभग एक आइसोट्रोपिक गाऊसी है।

मार्कोव की धारणा को देखते हुए, अव्यक्त चर का संयुक्त वितरण गाऊसी सशर्त श्रृंखला संक्रमण का उत्पाद है (से संशोधित) स्रोत).

जैसा कि पहले उल्लेख किया गया है, प्रसार मॉडल का "जादू" आता है रिवर्स प्रक्रिया. प्रशिक्षण के दौरान, मॉडल नया डेटा उत्पन्न करने के लिए इस प्रसार प्रक्रिया को उलटना सीखता है। शुद्ध गाऊसी शोर से शुरू करना p(xT):=एन(एक्सT,0,I) मॉडल संयुक्त वितरण सीखता है pθ(x0: टी) जैसा

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

प्रशिक्षण

एक प्रसार मॉडल द्वारा प्रशिक्षित किया जाता है रिवर्स मार्कोव ट्रांज़िशन ढूंढना जो प्रशिक्षण डेटा की संभावना को अधिकतम करता है। व्यवहार में, समान रूप से प्रशिक्षण में नकारात्मक लॉग संभावना पर परिवर्तनशील ऊपरी सीमा को कम करना शामिल है।

संकेतन विवरण

ध्यान दें कि एलवी एल बी तकनीकी रूप से एक है ऊपरी बाउंड (ईएलबीओ का नकारात्मक) जिसे हम कम करने की कोशिश कर रहे हैं, लेकिन हम इसे एल के रूप में संदर्भित करते हैंवी एल बी साहित्य के साथ संगति के लिए।

हम L . को फिर से लिखना चाहते हैंवी एल बी के अनुसार कुलबैक-लीब्लर (केएल) विचलन। केएल डायवर्जेंस एक असममित सांख्यिकीय दूरी माप है कि एक संभाव्यता वितरण कितना है P एक संदर्भ वितरण से अलग है Q. हम L . बनाने में रुचि रखते हैंवी एल बी केएल विचलन के संदर्भ में क्योंकि हमारी मार्कोव श्रृंखला में संक्रमण वितरण गॉसियन हैं, और गाऊसी के बीच केएल विचलन का एक बंद रूप है।

केएल विचलन क्या है?

निरंतर वितरण के लिए केएल विचलन का गणितीय रूप है

डबल बार इंगित करते हैं कि फ़ंक्शन अपने तर्कों के संबंध में सममित नहीं है।

नीचे आप भिन्न वितरण का KL विचलन देख सकते हैं P (नीला) एक संदर्भ वितरण से Q (लाल)। हरा वक्र उपरोक्त केएल विचलन के लिए परिभाषा में अभिन्न के भीतर कार्य को इंगित करता है, और वक्र के नीचे का कुल क्षेत्र केएल विचलन के मूल्य का प्रतिनिधित्व करता है P से Q किसी भी क्षण, एक मान जो संख्यात्मक रूप से भी प्रदर्शित होता है।

ढलाई एलवीएलबी केएल डायवर्जेंस के संदर्भ में

जैसा कि पहले उल्लेख किया गया है, यह संभव है [1] L . को फिर से लिखने के लिएवी एल बी केएल विचलन के संदर्भ में लगभग पूरी तरह से:

जहां

व्युत्पत्ति विवरण

वेरिएबल बाउंड बराबर है

हमारी मार्कोव धारणा को देखते हुए वितरणों को उनकी परिभाषाओं से प्रतिस्थापित करते हुए, हम प्राप्त करते हैं

हम व्यंजक को लॉग के योग में बदलने के लिए लॉग नियमों का उपयोग करते हैं, और फिर हम पहले पद को निकालते हैं

बेयस प्रमेय और हमारी मार्कोव धारणा का उपयोग करते हुए, यह अभिव्यक्ति बन जाती है

फिर हम लॉग नियमों का उपयोग करके मध्य पद को विभाजित करते हैं

दूसरे पद को अलग करते हुए, हम देखते हैं

इसे L . के लिए हमारे समीकरण में वापस प्लग करनावी एल बी, हमारे पास है

लॉग नियमों का उपयोग करते हुए, हम पुनर्व्यवस्थित करते हैं

d8

इसके बाद, हम किन्हीं दो वितरणों के लिए KL विचलन के लिए निम्नलिखित तुल्यता पर ध्यान देते हैं:

अंत में, इस तुल्यता को पिछले व्यंजक पर लागू करते हुए, हम इस पर पहुंचते हैं

आगे की प्रक्रिया को कंडीशनिंग करना x . पर पश्चवर्ती0 ली मेंटी-1 एक ट्रैक्टेबल रूप में परिणाम जो की ओर जाता है सभी केएल विचलन गाऊसी के बीच तुलना की जा रही है। इसका मतलब यह है कि विचलन की गणना मोंटे कार्लो के अनुमानों के बजाय बंद-रूप अभिव्यक्तियों के साथ की जा सकती है[3].

मॉडल विकल्प

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

रिवर्स प्रोसेस के लिए, हम गॉसियन डिस्ट्रीब्यूशन पैरामीटराइजेशन/मॉडल आर्किटेक्चर को चुनते हैं। ध्यान दें लचीलेपन की उच्च डिग्री प्रसार मॉडल वहन करते हैं - the केवल हमारे आर्किटेक्चर पर आवश्यकता यह है कि इसके इनपुट और आउटपुट में समान आयाम हों।

हम इन विकल्पों के विवरण को नीचे और अधिक विस्तार से जानेंगे।

आगे की प्रक्रिया और एलT

जैसा कि ऊपर उल्लेख किया गया है, आगे की प्रक्रिया के संबंध में, हमें विचरण अनुसूची को परिभाषित करना चाहिए। विशेष रूप से, हम उन्हें सेट करते हैं समय पर निर्भर स्थिरांक, इस तथ्य की अनदेखी करते हुए कि उन्हें सीखा जा सकता है। उदाहरण के लिए[3], β . से एक रैखिक अनुसूची1= 10-4 को βT=0.2 इस्तेमाल किया जा सकता है, या शायद एक ज्यामितीय श्रृंखला।

चुने गए विशेष मूल्यों के बावजूद, तथ्य यह है कि विचरण अनुसूची निश्चित परिणाम है LT सीखने योग्य मानकों के हमारे सेट के संबंध में निरंतर बनना, जहां तक ​​​​प्रशिक्षण का संबंध है, हमें इसे अनदेखा करने की इजाजत देता है।

रिवर्स प्रोसेस और एल1:टी−1

अब हम विपरीत प्रक्रिया को परिभाषित करने के लिए आवश्यक विकल्पों पर चर्चा करते हैं। ऊपर से याद करें कि हमने रिवर्स मार्कोव ट्रांज़िशन को गॉसियन के रूप में परिभाषित किया है:

अब हमें μ . के कार्यात्मक रूपों को परिभाषित करना होगाθ याθ. जबकि . को पैरामीटर करने के अधिक जटिल तरीके हैंθ[5], हम बस सेट

यही है, हम मानते हैं कि बहुभिन्नरूपी गाऊसी समान विचरण के साथ स्वतंत्र गाऊसी का एक उत्पाद है, एक विचरण मान जो समय के साथ बदल सकता है। हम इन वेरिएंस को हमारे फॉरवर्ड प्रोसेस वेरिएंस शेड्यूल के बराबर सेट करें।

. के इस नए सूत्रीकरण को देखते हुएθ, हमारे पास है

जो हमें बदलने की अनुमति देता है

सेवा मेरे

जहां अंतर में पहला पद x . का एक रैखिक संयोजन हैt और x0 जो विचरण अनुसूची पर निर्भर करता है βt. इस फ़ंक्शन का सटीक रूप हमारे उद्देश्यों के लिए प्रासंगिक नहीं है, लेकिन यह पाया जा सकता है [3].

उपरोक्त अनुपात का महत्व यह है कि μ . का सबसे सीधा मानकीकरणθ बस प्रसार पश्च माध्य की भविष्यवाणी करता है। महत्वपूर्ण रूप से, के लेखक [3] वास्तव में पाया कि प्रशिक्षण μθ भविष्यवाणी करने के लिए शोर किसी भी समय पर घटक बेहतर परिणाम देता है। विशेष रूप से, चलो

जहां

यह निम्नलिखित वैकल्पिक हानि फ़ंक्शन की ओर जाता है:, जिसके लेखक [3] अधिक स्थिर प्रशिक्षण और बेहतर परिणाम प्राप्त करने के लिए पाया गया:

के लेखक [3] लैंग्विन गतिकी पर आधारित स्कोर-मिलान जनरेटिव मॉडल के लिए डिफ्यूजन मॉडल के इस फॉर्मूलेशन के कनेक्शन को भी नोट करें। वास्तव में, ऐसा प्रतीत होता है कि प्रसार मॉडल और स्कोर-आधारित मॉडल एक ही सिक्के के दो पहलू हो सकते हैं, तरंग-आधारित क्वांटम यांत्रिकी के स्वतंत्र और समवर्ती विकास के समान और मैट्रिक्स-आधारित क्वांटम यांत्रिकी एक ही घटना के दो समकक्ष योगों का खुलासा करते हैं।[2].

नेटवर्क आर्किटेक्चर

जबकि हमारा सरलीकृत नुकसान फ़ंक्शन एक मॉडल को प्रशिक्षित करना चाहता हैθ, हमने अभी तक इस मॉडल की वास्तुकला को परिभाषित नहीं किया है। ध्यान दें कि केवल मॉडल के लिए आवश्यकता यह है कि इसकी इनपुट और आउटपुट आयामीता समान हो।

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

रिवर्स प्रोसेस डिकोडर और एल0

रिवर्स प्रक्रिया के पथ में निरंतर सशर्त गाऊसी वितरण के तहत कई परिवर्तन होते हैं। रिवर्स प्रक्रिया के अंत में, याद रखें कि हम एक का उत्पादन करने की कोशिश कर रहे हैं की छवि, जो पूर्णांक पिक्सेल मानों से बना है। इसलिए, हमें प्राप्त करने का एक तरीका तैयार करना चाहिए असतत (लॉग) संभावना सभी पिक्सेल में प्रत्येक संभावित पिक्सेल मान के लिए।

जिस तरह से यह किया जाता है वह रिवर्स डिफ्यूजन चेन में अंतिम संक्रमण को a . पर सेट करके होता है स्वतंत्र असतत डिकोडर. किसी दी गई छवि की संभावना निर्धारित करने के लिए x0 दिया गया x1, हम पहले डेटा आयामों के बीच स्वतंत्रता लागू करते हैं:

जहां डी डेटा और सुपरस्क्रिप्ट की आयामीता है i एक निर्देशांक के निष्कर्षण को इंगित करता है। लक्ष्य अब यह निर्धारित करना है कि किसी दिए गए पिक्सेल के लिए प्रत्येक पूर्णांक मान कितना संभावित है दी समय टी = 1 पर थोड़ी शोर वाली छवि में संबंधित पिक्सेल के लिए संभावित मानों में वितरण:

जहां t=1 के लिए पिक्सेल वितरण निम्न बहुभिन्नरूपी गाऊसी से प्राप्त होता है, जिसका विकर्ण सहप्रसरण मैट्रिक्स हमें वितरण को अविभाज्य गाऊसी के उत्पाद में विभाजित करने की अनुमति देता है, डेटा के प्रत्येक आयाम के लिए एक:

हम मानते हैं कि छवियों में 0,1,…,255 में पूर्णांक होते हैं (जैसा कि मानक RGB चित्र करते हैं) जिन्हें रैखिक रूप से [−1,1] तक बढ़ाया गया है। फिर हम वास्तविक रेखा को छोटे "बाल्टी" में तोड़ते हैं, जहां, किसी दिए गए स्केल किए गए पिक्सेल मान के लिए x, उस श्रेणी के लिए बकेट [x−1/255, x+1/255] है। पिक्सेल मान की प्रायिकता x, x . में संबंधित पिक्सेल के अविभाज्य गाऊसी वितरण को देखते हुए1, है बाल्टी के भीतर उस अविभाजित गाऊसी वितरण के अंतर्गत क्षेत्र x.

नीचे आप इनमें से प्रत्येक बकेट के लिए माध्य -0 गाऊसी के लिए उनकी संभावनाओं के साथ क्षेत्र देख सकते हैं, जो इस संदर्भ में, 255/2 (आधी चमक) के औसत पिक्सेल मान के साथ वितरण से मेल खाती है। लाल वक्र एक विशिष्ट पिक्सेल के वितरण का प्रतिनिधित्व करता है t = 1 छवि, और क्षेत्र में संबंधित पिक्सेल मान की संभावना देते हैं t = 0 छवि।

तकनीकी नोट

कुल संभाव्यता को बनाए रखने के लिए पहली और अंतिम बकेट -inf और +inf तक फैली हुई है।

एक दिया गया t = 0 प्रत्येक पिक्सेल के लिए पिक्सेल मान, p . का मानθ(x0|x1) बस उनका उत्पाद है। इस प्रक्रिया को संक्षेप में निम्नलिखित समीकरण द्वारा समझाया गया है:

जहां

और

p . के लिए इस समीकरण को देखते हुएθ(x0|x1), हम L . के अंतिम पद की गणना कर सकते हैंवी एल बी जिसे केएल विचलन के रूप में तैयार नहीं किया गया है:

अंतिम उद्देश्य

जैसा कि पिछले खंड में उल्लेख किया गया है, के लेखक [3] ने पाया कि किसी निश्चित समय पर किसी छवि के शोर घटक की भविष्यवाणी करने से सर्वोत्तम परिणाम प्राप्त होते हैं। अंततः, वे निम्नलिखित उद्देश्य का उपयोग करते हैं:

इसलिए हमारे डिफ्यूजन मॉडल के लिए प्रशिक्षण और नमूनाकरण एल्गोरिदम को संक्षेप में नीचे दिए गए चित्र में कैद किया जा सकता है:

प्रसार मॉडल सिद्धांत सारांश

इस खंड में हमने प्रसार मॉडल के सिद्धांत में एक विस्तृत गोता लगाया। गणितीय विवरणों में फंसना आसान हो सकता है, इसलिए हम नीचे इस खंड में सबसे महत्वपूर्ण बिंदुओं पर ध्यान देते हैं ताकि हम खुद को विहंगम दृष्टिकोण से उन्मुख रख सकें:

  1. हमारे डिफ्यूजन मॉडल को एक के रूप में परिचालित किया गया है मार्कोव चेन, जिसका अर्थ है कि हमारे गुप्त चर x1,…,एक्सT केवल पिछले (या निम्नलिखित) टाइमस्टेप पर निर्भर करता है।
  2. RSI संक्रमण वितरण मार्कोव श्रृंखला में हैं गाऊसी, जहां आगे की प्रक्रिया के लिए एक विचरण अनुसूची की आवश्यकता होती है, और रिवर्स प्रक्रिया मापदंडों को सीखा जाता है।
  3. प्रसार प्रक्रिया सुनिश्चित करती है कि xT is असम्बद्ध रूप से एक आइसोट्रोपिक गाऊसी के रूप में वितरित किया गया पर्याप्त रूप से बड़े टी.
  4. हमारे मामले में, विचरण कार्यक्रम तय किया गया थाहै, लेकिन इसे सीखा भी जा सकता है। निश्चित अनुसूचियों के लिए, एक ज्यामितीय प्रगति के बाद एक रैखिक प्रगति की तुलना में बेहतर परिणाम मिल सकते हैं। किसी भी मामले में, श्रृंखला में समय के साथ भिन्नताएं आम तौर पर बढ़ रही हैं (यानी β .)ij मैं के लिए
  5. प्रसार मॉडल हैं अत्यधिक लचीला और अनुमति दें कोई आर्किटेक्चर जिसका इनपुट और आउटपुट डायमेंशन इस्तेमाल करने के लिए समान है। कई कार्यान्वयन उपयोग करते हैं यू-नेट-जैसा आर्किटेक्चर।
  6. RSI प्रशिक्षण उद्देश्य प्रशिक्षण डेटा की संभावना को अधिकतम करना है। यह मॉडल मापदंडों को ट्यूनिंग के रूप में प्रकट होता है डेटा के नकारात्मक लॉग संभावना के परिवर्तनशील ऊपरी सीमा को कम करें.
  7. वस्तुनिष्ठ फलन के लगभग सभी पदों को इस प्रकार डाला जा सकता है केएल डायवर्जेंस हमारी मार्कोव धारणा के परिणामस्वरूप। ये मान गणना करने योग्य बनें यह देखते हुए कि हम गॉसियन का उपयोग कर रहे हैं, इसलिए मोंटे कार्लो सन्निकटन करने की आवश्यकता को छोड़ रहे हैं।
  8. अंत में, एक का उपयोग कर सरलीकृत प्रशिक्षण उद्देश्य एक फ़ंक्शन को प्रशिक्षित करने के लिए जो किसी दिए गए अव्यक्त चर के शोर घटक की भविष्यवाणी करता है, सर्वोत्तम और सबसे स्थिर परिणाम देता है।
  9. असतत डिकोडर रिवर्स डिफ्यूजन प्रक्रिया में अंतिम चरण के रूप में पिक्सेल मानों में लॉग संभावना प्राप्त करने के लिए उपयोग किया जाता है।

हमारे दिमाग में डिफ्यूजन मॉडल के इस उच्च-स्तरीय अवलोकन के साथ, आइए देखें कि PyTorch में डिफ्यूजन मॉडल का उपयोग कैसे करें।

PyTorch में प्रसार मॉडल

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

pip install denoising_diffusion_pytorch

न्यूनतम उदाहरण

एक मॉडल को प्रशिक्षित करने और चित्र बनाने के लिए, हम पहले आवश्यक पैकेज आयात करते हैं:

import torch
from denoising_diffusion_pytorch import Unet, GaussianDiffusion

इसके बाद, हम अपने नेटवर्क आर्किटेक्चर को परिभाषित करते हैं, इस मामले में एक यू-नेट।  dim पैरामीटर पहले डाउन-सैंपलिंग से पहले फीचर मैप्स की संख्या निर्दिष्ट करता है, और dim_mults पैरामीटर इस मान और क्रमिक डाउन-सैंपलिंग के लिए गुणक प्रदान करता है:

model = Unet(
 dim = 64,
 dim_mults = (1, 2, 4, 8)
)

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

diffusion = GaussianDiffusion(
 model,
 image_size = 128,
 timesteps = 1000, # number of steps
 loss_type = 'l1' # L1 or L2
)

अब जबकि डिफ्यूजन मॉडल को परिभाषित किया गया है, यह प्रशिक्षण का समय है। हम प्रशिक्षित करने के लिए यादृच्छिक डेटा उत्पन्न करते हैं, और फिर सामान्य तरीके से डिफ्यूजन मॉडल को प्रशिक्षित करते हैं:

training_images = torch.randn(8, 3, 128, 128)
loss = diffusion(training_images)
loss.backward()

एक बार मॉडल को प्रशिक्षित करने के बाद, हम अंत में का उपयोग करके चित्र उत्पन्न कर सकते हैं sample() की विधि diffusion वस्तु। यहां हम 4 छवियां उत्पन्न करते हैं, जो केवल शोर हैं क्योंकि हमारा प्रशिक्षण डेटा यादृच्छिक था:

sampled_images = diffusion.sample(batch_size = 4)

कस्टम डेटा पर प्रशिक्षण

RSI denoising-diffusion-pytorch पैकेज आपको एक विशिष्ट डेटासेट पर प्रसार मॉडल को प्रशिक्षित करने की भी अनुमति देता है। बस को बदलें 'path/to/your/images' में डेटासेट निर्देशिका पथ के साथ स्ट्रिंग Trainer() नीचे वस्तु, और बदलें image_size उचित मूल्य के लिए। उसके बाद, मॉडल को प्रशिक्षित करने के लिए बस कोड चलाएँ, और फिर पहले की तरह नमूना लें। ध्यान दें कि उपयोग करने के लिए PyTorch को CUDA सक्षम के साथ संकलित किया जाना चाहिए Trainer वर्ग:

from denoising_diffusion_pytorch import Unet, GaussianDiffusion, Trainer
model = Unet(
 dim = 64,
 dim_mults = (1, 2, 4, 8)
).cuda()
diffusion = GaussianDiffusion(
 model,
 image_size = 128,
 timesteps = 1000, # number of steps
 loss_type = 'l1' # L1 or L2
).cuda()
trainer = Trainer(
 diffusion,
 'path/to/your/images',
 train_batch_size = 32,
 train_lr = 2e-5,
 train_num_steps = 700000, # total training steps
 gradient_accumulate_every = 2, # gradient accumulation steps
 ema_decay = 0.995, # exponential moving average decay
 amp = True # turn on mixed precision
)
trainer.train()

नीचे आप बहुभिन्नरूपी गाऊसी शोर से एमएनआईएसटी अंकों में रिवर्स डिफ्यूजन के समान प्रगतिशील निरूपण देख सकते हैं:

अंतिम शब्द

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

संदर्भ

[1] गैर-संतुलन ऊष्मप्रवैगिकी का उपयोग करके डीप अनसुपरवाइज्ड लर्निंग

[2] डेटा वितरण के ग्रेडिएंट का अनुमान लगाकर जनरेटिव मॉडलिंग

[3] डिनोइज़िंग डिफ्यूजन प्रोबेबिलिस्टिक मॉडल

[4] प्रशिक्षण स्कोर-आधारित जनरेटिव मॉडल के लिए बेहतर तकनीकें

[5] बेहतर Denoising प्रसार संभाव्य मॉडल

[6] छवि संश्लेषण पर प्रसार मॉडल ने GAN को हराया

[7] ग्लाइड: टेक्स्ट-गाइडेड डिफ्यूजन मॉडल के साथ फोटोरिअलिस्टिक इमेज जनरेशन और एडिटिंग की ओर

[8] CLIP अव्यक्तों के साथ पदानुक्रमित पाठ-सशर्त छवि निर्माण

इस लेख का आनंद लें? अधिक AI अनुसंधान अपडेट के लिए साइन अप करें।

जब हम इस तरह के और अधिक सारांश लेख जारी करते हैं तो हम आपको बताएंगे।

इस वर्ष के ईयू-स्टार्टअप शिखर सम्मेलन में हमारे पैनल चर्चा "स्टार्टअप बनाम नीति: स्टार्टअप पारिस्थितिकी तंत्र को कैसे बढ़ावा दें" के वक्ताओं से मिलें | ईयू-स्टार्टअप

हमारे साथ चैट करें

नमस्ते! मैं आपकी कैसे मदद कर सकता हूँ?