मंगल डिजिटल टेक्नोलॉजीज में इंटर्नशिप। हमने एमएंडएम में गहन शिक्षा कैसे लागू की



सभी को नमस्कार!

वार्षिक रूप से, लगभग 200 छात्र और स्नातक नेतृत्व कार्यक्रम में प्रशिक्षु या प्रतिभागियों के रूप में रूस में मंगल ग्रह से जुड़ते हैं। दमित्री कोरझिमनोव ने इस गर्मी में मार्स आईटी हब में इंटर्नशिप पूरी की। हमारे ब्लॉग में, दिमित्री एक इंटर्नशिप के दौरान उन्होंने एक परियोजना के बारे में बात की।


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

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

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

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

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

बड़ी कंपनियों ने अपनी कॉर्पोरेट पहचान को बनाए रखने पर गंभीरता से ध्यान दिया, जिसने मेरी परियोजना में भूमिका निभाई। एक दिशानिर्देश या संदर्भ बिंदु के रूप में, जो दुनिया भर के कारखानों में कागज पर मुद्रित किया जाएगा, एक चक्र "एम" अक्षर के साथ चुना गया था जो कंपनी की विशेषता है।

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

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

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

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

तेज़ आर-सीएनएन का नतीजा



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

अंतिम परिणाम परिवर्तन के साथ



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

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

मंगल पर एक इंटर्नशिप अब खुला है, आप अधिक जान सकते हैं और साइट पर आवेदन कर सकते हैं।

Source: https://habr.com/ru/post/hi476266/


All Articles