تدريب في شركة Mars Digital Technologies. كيف طبقنا التعلم العميق في عمليات الاندماج والشراء



مرحبا بالجميع!

سنويًا ، ينضم حوالي 200 طالب وخريج إلى المريخ في روسيا كمتدربين أو مشاركين في برنامج القيادة. ديمتري كورزيمانوف ، أكمل تدريبًا في مركز مارس لتكنولوجيا المعلومات هذا الصيف. في مدونتنا ، يتحدث ديمتري عن مشروع عمل فيه خلال فترة تدريب.


هناك عدد كبير من الشركات التي تقدم دورات تدريبية للطلاب ابتداء من السنة الثالثة. لذلك ، مثل كثيرين من زملائي الذين تخرجوا من السنة الثالثة ، شرعت في العثور على فترة تدريب للصيف. في mechmath جامعة موسكو الحكومية ، يفضل الطلاب تكنولوجيا المعلومات والخدمات المصرفية ، وهو أمر غير مفاجئ ، بالنظر إلى وجود قدر لا بأس به من المشاكل الرياضية هناك وهناك. فكرت في التدريب في شركات مختلفة واخترت المريخ ، حيث كنت مهتمًا بفرصة العمل في مشاريع تكنولوجيا المعلومات في الإنتاج الحقيقي. بالإضافة إلى ذلك ، Mars هي شركة عالمية ، مما يعني أن العمل كان متقدمًا في فريق من جميع أنحاء العالم.

بعد اجتياز الاختبارات الفنية واللفظية ، وكذلك مقابلة مع معلم في المستقبل ، أرسلوا لي عرضًا ، وفي الحقيقة ، أصبحت متدربة في فريق تقنيات الجيل التالي. يتكون هذا القسم من 5 أشخاص من جميع أنحاء العالم ويشارك في المقام الأول في إدخال تقنيات التعلم الآلي في مختلف دورات الإنتاج والمبيعات للشركة.

بصراحة ، لست أستاذًا في خوارزميات التعلم الآلي ، وفي وقت التدريب ، لم أكن أفهم تمامًا ما سأفعله وكيف يمكنني تنفيذ المشاريع. نعم ، كان لدي خلفية رياضية جيدة وحتى أنني أعرف ما هي الغابة العشوائية ، ولكن هذا هو المكان الذي انتهت معرفتي فيه. من بين أشياء أخرى ، في المريخ هناك عدد كبير من المهام المتعلقة برؤية الكمبيوتر ، وفريقنا يحلها بنجاح. اتضح أنه خلال الأسبوعين الأولين من التدريب ، اكتشفت كيف تعمل الشبكات العصبية ، وماهية OpenCV ، والمقاييس الموجودة ، وكيفية العمل مع PyTorch و TensorFlow ، والعديد من الأشياء الأخرى. كان رأسي على قدم وساق في نهاية كل يوم ، لأنه كان لا بد من استيعاب المعلومات بكميات ضخمة ، وكانت أفكار بعض الخوارزميات غير تافهة تمامًا. لحسن الحظ ، يوجد في الوقت الحالي الكثير من الموارد المفيدة حقًا مثل Neurohive و Medium ونفس Habr (أعرب عن امتناني العميق لكل من يكتب مقالات حول موضوع التعلم الآلي هنا ، بدونك ، فإن الانغماس في الموضوع سيكون مهمة أكثر صعوبة بكثير). بفضل هذه الموارد ، يمكنك دراسة موضوع معين بسرعة عالية إلى حد ما. كورسيرا ، التي ما زلت أشاهد المحاضرات عليها ، لا تقف جانباً.

بعد أن بحثت في بعض الأسس الأساسية للتعلم العميق والتقن قليلاً ، عرضت علي المشاركة في المشروع. كان علينا تنفيذ برنامج يقيس الأشياء في صورة. بالطبع ، السؤال الذي يطرح نفسه: لماذا تحتاج شركة FMCG إلى ذلك؟ ومع ذلك ، فإن الجواب بسيط للغاية: الحفاظ على إحصاءات عن حجم المواد الخام والمنتجات في المصنع. على سبيل المثال ، تنتج Mars عمليات M & M ، وأعتقد أن العديد منهم جربوا M & M مع الفول السوداني. ومع ذلك ، حتى لا تكون كل حلوى كبيرة جدًا وليست صغيرة جدًا ، يجب أن يكون الفول السوداني أيضًا بحجم معين.

كما تعلم ، لا يوجد شيء مثالي في العالم وتأتي الأطراف إلى المصنع بجودة مختلفة تمامًا. لذلك ، يتعين على الشخص الخاص أن يقوم يدويًا (!) بإجراء اختيار من مجموعة من المكسرات وتجميع إحصائيات عليها. وبطبيعة الحال ، في مرحلة ما ، أدركت الشركة أن العملية كانت غير فعالة إلى حد ما وأنه سيكون من الجيد تشغيلها آليا. المهمة في الواقع بسيطة للغاية وكل ما هو مطلوب هو تعليم النموذج للعثور على المكسرات أو الكائنات الأخرى ، على سبيل المثال ، على ورقة بحجم A4 ، وأيضًا معلم ذو حجم معروف مطبوع عليه ، حيث ستذهب وحدات البكسل إلى وحدات حقيقية. يبدو تافهاً إلى حد ما ، ولكن في الواقع ، تبدأ الصعوبات عادة في الظهور. تلقيت تعليمات للمشاركة في تنفيذ الجزء المتعلق بالاعتراف بهذه العلامة المميزة وترجمة البكسل إلى ملليمترات.

تولي الشركات الكبيرة اهتمامًا جادًا للحفاظ على هويتها المؤسسية ، والتي لعبت دورًا في مشروعي. كدليل أو نقطة مرجعية ، والتي سيتم طباعتها على الورق في المصانع في جميع أنحاء العالم ، تم اختيار دائرة بالحرف "M" الذي يتميز به الشركة.

لحل مشكلتي ، بدأت على الفور في البحث عن أمثلة جيدة لتنفيذ الشبكات العصبية التلافيفية التي يمكن أن تجد بسرعة وبشكل واضح كائنات في الصورة. بعد مراجعة الخيارات المختلفة ، قمت باختيار أحد تطبيقات Faster R-CNN ودرست قدراتها وهندستها. كانت الخطوة التالية هي تدريب النموذج ؛ ولهذا ، تم إنشاء حوالي مائة صورة مع موقع عشوائي لنقطة مرجعية ، وبالتالي ، مربع يصفه. في هذه المرحلة ، ساعدتني حزمة reportlab كثيراً. هذه مجموعة من الأدوات المصممة خصيصًا لإنشاء مستندات بترتيب مخصص للكائنات عليها.

من أجل زيادة الحجم ، تم اختيار حزمة albumentations ، وقدراتها رائعة جدًا. على جيثب يمكنك قراءة المزيد عنها ، بما في ذلك مقارنة مع المكتبات البديلة. حاولت أن أجعل التحولات متنوعة بقدر الإمكان حتى لا يتبقى ما يسمى "الصناديق السوداء". يتحول ، والتكبير ، وتغيير التباين ، إضافة الضوضاء وغيرها من التقنيات القياسية. لسوء الحظ ، حدثت مشكلة في أداة Rotate ، والتي كانت ضرورية بالنسبة لي ، لأنه لم يقدم أي شخص ضمانًا بالاتجاه الصحيح للحرف M في الصورة ، وكان ينبغي أن يكون النموذج قادراً على التعرف على خيارات مختلفة لموضعه.

بغض النظر عن كيفية محاولة العثور على الخطأ ، فإن الوظيفة من حزمة albumentations استمرت في إجراء تحويلات مربعات غير صحيحة ، مما أدى إلى إزاحتها في المفتاح الخطأ. كنتيجة لذلك ، قررت استخدام حزمة imgaug الكلاسيكية ، والتي لم أواجه أي مشكلة معها.

بعد تدريب الشبكة في عدة عصور ، أصبحت مهتمًا بالنتيجة التي سوف ينتجها النموذج على أمثلة حقيقية. بعد أن قمت بطباعة ورقة مع الإشارة إليها والتقاط بعض الصور ، بدأت في اختبار الشبكة العصبية. ونعم ، لقد تعلمت حقًا كيف تجد ما تحتاجه ، لكنها فعلت ذلك بعيدًا عن الكمال. كانت تلك الحدود التي أظهرتها الشبكة غير دقيقة للغاية بالنسبة للقياس عالي الجودة للكائنات ، وهنا بدأت عملية إعداد المعلمات غير السارة إلى حد ما في البحث عن التكوين المثالي. لقد غيرت خطوة التعلم ، وحاولت تغيير بنية الشبكة ، والانتهاء من ذلك ، وتغيير إعدادات التعزيز ، ولكن متوسط ​​IoU لم يرتفع فوق 0.85.

نتيجة أسرع R-CNN



للأسف ، لعبت قلة خبرتي خدعة علي. بعد أن لم أكن منشغلاً بالبحث عن أدوات أكثر بساطة ، كنت حريصة جدًا على تجربة الشبكة العصبية ، لكن بغض النظر عن الطريقة التي حاولت بها ، فإنها لم تعطي نتيجة مقبولة. في هذه العملية ، اتضح أن الإنتاج ببساطة لم يستخدم الطابعات الملونة ، وبدا كل جهودي تبدو بلا جدوى. ولكن بعد ذلك أخبرني زميلي أنه يمكنك استخدام الدائرة السوداء المعتادة وتحويل Hough من حزمة OpenCV لاكتشافها. يمكنني استخدام نفس الحل البسيط للإصدار الأولي ، ومع ذلك ، لم أكن أولي الاهتمام الواجب للأدوات الكلاسيكية لرؤية الكمبيوتر. بعد أن لعبت قليلاً مع المعلمات ، حصلت أخيرًا على ما أريد ، وتم حل المشكلة. والخطوة التالية هي إنشاء واجهة برمجة تطبيقات باستخدام حزمة Flask وإطلاق البرنامج على خادم Azure ، لكن هذه قصة مختلفة تمامًا.

النتيجة النهائية مع التحول هوغ



بالإضافة إلى مهام رؤية الكمبيوتر ، تواجه الشركة مهام من مجالات أخرى من التعلم الآلي - من معالجة التغريدات إلى مراقبة التصور لمنتج معين ، إلى تطوير البرامج التي تساعد الأطباء البيطريين على علاج الحيوانات بشكل أكثر كفاءة. ما كان مفاجأة سارة بالنسبة لي هو الجزء البحثي من العمل. غالبًا ما تبدو المهام بسيطة جدًا ، ولكن لا يُعرف كيف تجد حلها عالي الجودة. للقيام بذلك ، عليك أن تدرس المقالات والأساليب الحالية في مجال التعلم الآلي. على سبيل المثال ، كان علي أن أفهم طرق بايزي للتعلم الآلي ، والتي تحظى بشعبية كبيرة في حل المشاكل الطبية. بفضل هذا ، تمكنت من دراسة المقالات الطبية التي تصف تطبيق هذه الأساليب ومساعدة الفريق على اختيار ناقل التطوير الصحيح.

في الوقت الحالي ، أكمل تدريبي. منذ العام الدراسي الجديد قادم ، في سبتمبر انتقلت إلى العمل بدوام جزئي ، وهي ليست مشكلة. بالإضافة إلى ذلك ، لدى الشركة الفرصة للعمل من المنزل ، وكما اتضح ، فإن هذه الممارسة شائعة جدًا هنا. يعمل فريقنا الآن على إكمال المشروع الذي وصفته في المقالة ، وينتقل إلى مشروع جديد يتعلق برؤية الكمبيوتر. هناك العديد من المهام ، وكلها مختلفة تمامًا ، لذا لن تشعر بالملل.

التدريب الداخلي في المريخ مفتوح الآن ، يمكنك معرفة المزيد والتقديم في: الموقع .

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


All Articles