तंत्रिका नेटवर्क चित्र बनाता है। ओस्टाग्राम: एक तंत्रिका नेटवर्क-आधारित सेवा जो तस्वीरों और गहनों को कलात्मक कृतियों में जोड़ती है

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

बुकमार्क करने के लिए

इस तथ्य के बावजूद कि ओस्टाग्राम दिसंबर में लॉन्च हुआ, इसने अप्रैल के मध्य में सामाजिक नेटवर्क में तेजी से लोकप्रियता हासिल करना शुरू कर दिया। वहीं, 19 अप्रैल तक VKontakte पर प्रोजेक्ट में एक हजार से भी कम लोग थे।

सेवा का उपयोग करने के लिए, आपको दो छवियां तैयार करने की आवश्यकता होती है: एक तस्वीर जिसे संसाधित करने की आवश्यकता होती है, और मूल तस्वीर पर ओवरले करने के लिए शैली के उदाहरण के साथ एक तस्वीर।

सेवा का एक नि: शुल्क संस्करण है: यह छवि के सबसे लंबे किनारे के साथ 600 पिक्सेल तक के न्यूनतम रिज़ॉल्यूशन में एक छवि बनाता है। उपयोगकर्ता को फोटो में फ़िल्टर लगाने के केवल एक पुनरावृत्ति का परिणाम प्राप्त होता है।

दो भुगतान किए गए संस्करण हैं: प्रीमियम सबसे लंबी तरफ 700 पिक्सेल तक की छवि बनाता है और छवि के लिए तंत्रिका नेटवर्क प्रसंस्करण के 600 पुनरावृत्तियों को लागू करता है (अधिक पुनरावृत्तियों, अधिक दिलचस्प और गहन प्रसंस्करण)। ऐसी एक तस्वीर की कीमत 50 रूबल होगी।

एचडी संस्करण में, आप पुनरावृत्तियों की संख्या को समायोजित कर सकते हैं: 100 की लागत 50 रूबल और 1000 - 250 रूबल होगी। इस मामले में, छवि में सबसे लंबी तरफ 1200 पिक्सेल तक का रिज़ॉल्यूशन होगा, और इसका उपयोग कैनवास पर छपाई के लिए किया जा सकता है: ओस्टाग्राम 1800 रूबल से डिलीवरी के साथ यह सेवा प्रदान करता है।

फरवरी में, ओस्टाग्राम के प्रतिनिधि "विकसित पूंजीवाद वाले देशों से" उपयोगकर्ताओं से छवि प्रसंस्करण के अनुरोध को स्वीकार नहीं करेंगे, लेकिन फिर दुनिया भर के VKontakte उपयोगकर्ताओं के लिए फोटो प्रसंस्करण तक पहुंच प्राप्त करेंगे। गिटहब पर प्रकाशित ओस्टाग्राम कोड को देखते हुए, इसे निज़नी नोवगोरोड के 30 वर्षीय निवासी सर्गेई मोरुगिन द्वारा विकसित किया गया था।

टीजे ने संपर्क किया वाणिज्यिक निर्देशकपरियोजना, एंड्री द्वारा शुरू की गई। उनके अनुसार, ओस्टाग्राम इंस्टापेंटिंग से पहले दिखाई दिया, लेकिन विपार्ट नामक एक समान परियोजना से प्रेरित था।

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

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

परियोजना के दर्शक एक दिन में लगभग एक हजार लोग हैं, लेकिन कुछ दिनों में यह विदेशी मीडिया से संक्रमण के कारण 40 हजार लोगों तक पहुंच गया, जिन्होंने घरेलू लोगों से पहले ही इस परियोजना पर ध्यान दिया था (ओस्टाग्राम ने यूरोपीय डीजे के साथ सहयोग करने में भी कामयाबी हासिल की थी)। रात में, जब ट्रैफ़िक कम होता है, इमेज प्रोसेसिंग में 5 मिनट लग सकते हैं, और दिन में एक घंटे तक का समय लग सकता है।

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

आज तक, पेबैक की संभावनाएं सशर्त हैं। यदि प्रत्येक उपयोगकर्ता प्रसंस्करण के लिए 10 रूबल का भुगतान करता है, तो शायद वह भुगतान करेगा। […]

हमारे देश में मुद्रीकरण करना बहुत मुश्किल है: हमारे लोग एक सप्ताह इंतजार करने को तैयार हैं, लेकिन वे इसके लिए एक पैसा नहीं देंगे। यूरोपीय इसके अधिक अनुकूल हैं - तेजी के लिए भुगतान करने, गुणवत्ता में सुधार करने के मामले में - इसलिए उन्मुखीकरण उस बाजार में जाता है।

एंड्री, ओस्टाग्राम प्रतिनिधि

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

सेवा कार्य के उदाहरण

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

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


कनवॉल्यूशनल नेटवर्क को विज़ुअलाइज़ करना और समझना (28 नवंबर 2013)

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

रिवर्स रेलू

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

वर्ग ZeilerBackprop (संशोधित बैकप्रॉप): डीईएफ़ ग्रेड (स्वयं, इनपुट्स, आउट_ग्रैड्स): (inp,) = इनपुट्स (grd,) = out_grads #return (grd * (grd> 0).astype(inp.dtype),) # स्पष्ट रूप से सुधारें वापसी (self.nonlinearity (grd),) # दी गई nonlinearity का उपयोग करें

उलटा रूपांतरण

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


स्ट्राइड होने पर कनवॉल्यूशन = 1

स्ट्राइड होने पर कनवॉल्यूशन = 1 उलटा संस्करण

स्ट्राइड होने पर कनवॉल्यूशन = 2

स्ट्राइड होने पर कनवॉल्यूशन = 2 उलटा संस्करण

रिवर्स पूलिंग

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



परिणाम

विज़ुअलाइज़ेशन एल्गोरिथ्म अत्यंत सरल है:

  1. एक सीधा पास बनाओ।
  2. उस परत का चयन करें जिसमें हम रुचि रखते हैं।
  3. एक या अधिक न्यूरॉन्स की सक्रियता को ठीक करें और बाकी को रीसेट करें।
  4. एक अनुमान लगाओ।

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


फ़ीचर विज़ुअलाइज़ेशन


यहाँ deconvnet का उपयोग करके सक्रियणों के विज़ुअलाइज़ेशन का एक उदाहरण दिया गया है, आज यह परिणाम पहले से ही ऐसा दिखता है, लेकिन तब यह एक सफलता थी।


deconvnet का उपयोग करते हुए सामर्थ्य मानचित्र

डीप इनसाइड कन्वोल्यूशनल नेटवर्क्स: विज़ुअलाइज़िंग इमेज क्लासिफिकेशन मॉडल्स एंड सैलिएन्सी मैप्स (19 अप्रैल 2014)

यह लेख दृढ़ तंत्रिका नेटवर्क में निहित ज्ञान विज़ुअलाइज़ेशन विधियों के अध्ययन के लिए समर्पित है। लेखक ग्रेडिएंट डिसेंट के आधार पर दो विज़ुअलाइज़ेशन विधियों का प्रस्ताव करते हैं।

क्लास मॉडल विज़ुअलाइज़ेशन

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



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


def compile_saliency_function(net): """ इनपुट छवियों के दिए गए मिनीबैच के लिए सामर्थ्य मानचित्रों और अनुमानित कक्षाओं की गणना करने के लिए एक फ़ंक्शन को संकलित करता है। """ inp = net["input"].input_var outp = lasagne.layers.get_output(net) ["fc8"], नियतात्मक = सही) max_outp = T.max (आउटप, अक्ष = 1) सामर्थ्य = theano.grad (max_outp.sum (), wrt = inp) max_class = T.argmax (आउटप, अक्ष = 1) वापसी थीनो.फंक्शन (, )

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

  1. प्रारंभिक छवि को शून्य से प्रारंभ करें।
  2. इस छवि से व्युत्पन्न के मूल्य की गणना करें।
  3. व्युत्पन्न से परिणामी छवि को जोड़कर छवि को बदलें।
  4. चरण 2 पर लौटें या लूप से बाहर निकलें।

परिणामी छवियां हैं:




लेकिन क्या होगा यदि आप पहली छवि को वास्तविक फोटो के साथ आरंभ करते हैं और उसी प्रक्रिया को शुरू करते हैं? लेकिन प्रत्येक पुनरावृत्ति पर हम एक यादृच्छिक वर्ग का चयन करेंगे, बाकी को शून्य पर सेट करेंगे और व्युत्पन्न के मूल्य की गणना करेंगे, तब हमें ऐसा गहरा सपना मिलेगा।


सावधानी 60 एमबी


इतने कुत्ते के चेहरे और आंखें क्यों हैं? यह सरल है: 1000 वर्गों में से छवि जाल में लगभग 200 कुत्ते हैं, उनकी आँखें हैं। और भी बहुत सी कक्षाएं जहां सिर्फ लोग हैं।

वर्ग लवणता निष्कर्षण

यदि इस प्रक्रिया को एक वास्तविक फोटो के साथ आरंभ किया जाता है, पहले पुनरावृत्ति के बाद बंद कर दिया जाता है और व्युत्पन्न के मूल्य को चित्रित किया जाता है, तो हमें ऐसी छवि मिलेगी, जिसे मूल में जोड़कर, हम चयनित वर्ग के सक्रियण मूल्य को बढ़ा देंगे।


डेरिवेटिव का उपयोग करते हुए सामर्थ्य मानचित्र


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

सादगी के लिए प्रयास: सभी दृढ़ नेट (13 अप्रैल 2015)

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




क्लास गाइडेडबैकप्रॉप (संशोधितबैकप्रॉप): डीईएफ़ ग्रेड (सेल्फ, इनपुट्स, आउट_ग्रैड्स): (इनप,) = इनपुट्स (जीआरडी,) = आउट_ग्रैड्स डीटाइप = इनपी.डीटाइप रिटर्न (जीआरडी * (आईएनपी> 0)। astype (डीटाइप) * (जीआरडी) > 0).astype(dtype),)

तब आपको पूरी तरह से साफ और व्याख्यात्मक छवि मिलती है।


गाइडेड बैकप्रॉपेगेशन का उपयोग करते हुए सामर्थ्य मानचित्र

गहरे जाना

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


आइए VGG-19 नेटवर्क पर निम्नलिखित प्रयोग करके देखें:



रूपा1_2

हाँ, आप लगभग कुछ भी नहीं देखते हैं, क्योंकि। ग्रहणशील क्षेत्र बहुत छोटा है, यह क्रमशः दूसरा कनवल्शन 3x3 है, कुल क्षेत्रफल 5x5 है। लेकिन ज़ूम इन करने पर, हम देखते हैं कि फीचर सिर्फ एक ग्रेडिएंट डिटेक्टर है।




conv3_3


conv4_3


conv5_3


पूल5


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


रूपा1_1


conv2_2


conv4_3


आप कई छवियों और .

कलात्मक शैली का एक तंत्रिका एल्गोरिदम (2 सितंबर 2015)

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

सामग्री हानि

जैसा कि पहले ही उल्लेख किया गया है, तंत्रिका नेटवर्क की प्रत्येक परत किसी न किसी आयाम के त्रि-आयामी टेन्सर का निर्माण करती है।




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



इस आलेख के साथ प्रयोग करने के लिए, आप इस जादुई लैपटॉप का उपयोग कर सकते हैं, जहां गणना होती है (जीपीयू और सीपीयू दोनों पर)। GPU का उपयोग तंत्रिका नेटवर्क की सुविधाओं और लागत फ़ंक्शन के मूल्य की गणना करने के लिए किया जाता है। थीनो एक ऐसा फ़ंक्शन उत्पन्न करता है जो उद्देश्य फ़ंक्शन के ढाल की गणना कर सकता है eval_gradइनपुट छवि द्वारा एक्स. इसके बाद इसे lbfgs में डाला जाता है और पुनरावृत्ति प्रक्रिया शुरू होती है।


# एक शोर छवि के साथ आरंभ करें। उत्पन्न_छवि। = xs.append(x0) # रेंज (8) में i के लिए समय-समय पर परिणाम सहेजना, अनुकूलित करें: प्रिंट (i) scipy.optimize.fmin_l_bfgs_b(eval_loss, x0.flatten(), fprime=eval_grad, maxfun=40) x0 = generate_image.get_value().astype("float64") xs.append(x0)

यदि हम इस तरह के फ़ंक्शन का अनुकूलन करते हैं, तो हम जल्दी से लक्ष्य के समान एक छवि प्राप्त करेंगे। अब हम सफेद शोर से छवियों को फिर से बना सकते हैं जो कुछ सामग्री छवि की तरह दिखती हैं।


सामग्री हानि: conv4_2



अनुकूलन प्रक्रिया




परिणामी छवि की दो विशेषताओं पर ध्यान देना आसान है:

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

शुरुआती परतों को जोड़ने से रंगों के साथ स्थिति तुरंत ठीक हो जाती है।


सामग्री हानि: conv1_1, conv2_1, conv4_2


उम्मीद है कि अब तक आपको यह महसूस हो गया होगा कि सफेद शोर वाली छवि पर जो कुछ भी फिर से खींचा जाता है, उस पर आपका नियंत्रण है।

शैली का नुकसान

और अब हम सबसे दिलचस्प हो गए हैं: हम शैली को कैसे व्यक्त कर सकते हैं? शैली क्या है? जाहिर है, शैली वह नहीं है जिसे हमने सामग्री हानि में अनुकूलित किया है, क्योंकि इसमें सुविधाओं की स्थानिक स्थिति के बारे में बहुत सारी जानकारी है। इसलिए पहली बात यह है कि किसी तरह इस जानकारी को प्रत्येक परत पर प्राप्त विचारों से हटा दें।


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




फिर Style Loss को निम्नानुसार दर्ज किया जाता है, जहां एसशैली के साथ कुछ छवि है:



क्या हम विन्सेंट के लिए प्रयास करें? सिद्धांत रूप में, हमें कुछ अपेक्षित मिलता है - वान गाग की शैली में शोर, सुविधाओं की स्थानिक व्यवस्था के बारे में जानकारी पूरी तरह से खो गई है।


विंसेंट




क्या होगा अगर हम स्टाइल इमेज के बजाय फोटो लगाएं? आपको पहले से ही परिचित विशेषताएं, परिचित रंग मिलते हैं, लेकिन स्थानिक स्थिति पूरी तरह से खो जाती है।


स्टाइल लॉस के साथ फोटो


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




सरल शैली का नुकसान

संयुक्त घाटा

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



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


# नुकसान समारोह हानियों को परिभाषित करें = # सामग्री हानि नुकसान। (0.2e6 * Style_loss(art_features, gen_features, "conv2_1")) loss.append(0.2e6 * style_loss(art_features, gen_features, "conv3_1")) loss.append(0.2e6 * Style_loss(art_features, gen_features, "conv4_1") ) loss.append(0.2e6 * Style_loss(art_features, gen_features, "conv5_1")) # टोटल वेरिएशन पेनल्टी लॉस। एपेंड (0.1e-7 * टोटल_वेरिएशन_लॉस (जेनरेट_इमेज)) टोटल_लॉस = सम (लॉस)

अंतिम मॉडल को निम्नलिखित रूप में प्रस्तुत किया जा सकता है।




और यहाँ वान गाग के घरों का परिणाम है।



प्रक्रिया को नियंत्रित करने का प्रयास करें

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




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


सुविधाओं के रंग और आकार में हेरफेर करने का एक उदाहरण


और आप तुरंत एक साधारण छवि को शैली के रूप में ले सकते हैं



परिणाम








और यहाँ एक वीडियो है, लेकिन केवल सही बनावट के साथ

बनावट नेटवर्क: बनावट और शैलीबद्ध छवियों का फ़ीड-फॉरवर्ड संश्लेषण (10 मार्च 2016)

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




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



रीयल-टाइम स्टाइल ट्रांसफर और सुपर-रिज़ॉल्यूशन के लिए अवधारणात्मक नुकसान (27 मार्च 2016)

जैसा कि नाम से पता चलता है, लेखक, जो एक जनरेटिंग नेटवर्क के विचार के साथ केवल 17 दिनों की देरी से थे, छवियों के रिज़ॉल्यूशन को बढ़ाने में व्यस्त थे। ऐसा लगता है कि वे नवीनतम इमेजनेट पर अवशिष्ट शिक्षण की सफलता से प्रेरित हैं।




तदनुसार अवशिष्ट ब्लॉक और रूपांतरण ब्लॉक।



इस प्रकार, अब स्टाइल नियंत्रण के अलावा, हमारे हाथों में एक तेज़ जनरेटर भी है (इन दो लेखों के लिए धन्यवाद, एक छवि के लिए पीढ़ी का समय एमएस के दसियों में मापा जाता है)।

समापन

हमने पहले वीडियो स्टाइलिंग एप्लिकेशन के लिए एक और स्टाइलिंग एप्लिकेशन बनाने के लिए शुरुआती बिंदु के रूप में समीक्षा किए गए लेखों और लेखकों के कोड की जानकारी का उपयोग किया:



ऐसा कुछ उत्पन्न करें।


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

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

सबसे पहले, परियोजना को एक खुले स्रोत के रूप में रखा गया था, और फिर उसी सिद्धांत पर बनाई गई ऑनलाइन सेवाएं इंटरनेट पर दिखाई दीं। सबसे सुविधाजनक और लोकप्रिय में से एक डीप ड्रीम जेनरेटर है: यहां एक छोटी तस्वीर को संसाधित करने में केवल 15 सेकंड लगते हैं (पहले, उपयोगकर्ताओं को एक घंटे से अधिक इंतजार करना पड़ता था)।

तंत्रिका नेटवर्क ऐसी छवियां बनाना कैसे सीखते हैं? और वैसे, उन्हें ऐसा क्यों कहा जाता है?

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

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

    आप एक सरलीकृत तंत्रिका नेटवर्क मॉडल के साथ प्रयोग कर सकते हैं और इसके सिद्धांतों को बेहतर ढंग से समझ सकते हैं।

    YouTube के पास सुबोध हस्त-चित्रों की एक श्रृंखला भी है रोलर्सतंत्रिका नेटवर्क कैसे काम करते हैं इसके बारे में।

एक अन्य लोकप्रिय सेवा ड्रीम्सस्कोप है, जो न केवल कुत्तों के बारे में सपने देख सकती है, बल्कि विभिन्न पेंटिंग शैलियों की नकल भी कर सकती है। यहां इमेज प्रोसेसिंग भी बहुत सरल और तेज (लगभग 30 सेकंड) है।

जाहिरा तौर पर, सेवा का एल्गोरिथम हिस्सा तंत्रिका शैली कार्यक्रम का एक संशोधन है, जिसकी चर्चा हम पहले ही कर चुके हैं।

हाल ही में, एक कार्यक्रम सामने आया है जो वास्तविक रूप से काले और सफेद चित्रों को चित्रित करता है। पिछले संस्करणों में, इसी तरह के कार्यक्रमों ने अपना काम बहुत कम किया था, और अगर कम से कम 20% लोग वास्तविक तस्वीर और कंप्यूटर-रंग वाले के बीच अंतर नहीं बता पाए तो इसे एक बड़ी उपलब्धि माना गया।

इसके अलावा, यहां कलराइजेशन में केवल 1 मिनट का समय लगता है।

उसी विकास कंपनी ने एक ऐसी सेवा भी शुरू की जो चित्रों में पहचान करती है अलग - अलग प्रकारवस्तुओं।

ये सेवाएं केवल मजेदार मनोरंजन की तरह लग सकती हैं, लेकिन वास्तव में, सब कुछ कहीं अधिक दिलचस्प है। नई प्रौद्योगिकियां मानव कलाकारों के अभ्यास में प्रवेश करती हैं और कला की हमारी समझ को बदलती हैं। शायद जल्द ही लोगों को रचनात्मकता के क्षेत्र में मशीनों से मुकाबला करना होगा।

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


ऊपर