نهج Kaggle للسيرة الذاتية في همز: لا يمكنك تنفيذ لخفض

من بين تاريخ العلماء ، هناك العديد من holivars ، واحد منهم يتعلق تعلم الآلة التنافسية. هل يُظهر نجاح Kaggle حقًا قدرة الأخصائي على حل مهام العمل المعتادة؟ قام Arseny arseny_info ( قائد فريق البحث والتطوير @ WANNABY ، Kaggle Master ، لاحقًا في A. ) و Arthur n01z3 (رئيس مجموعة Computer Vision @ X5 Retail ، Kaggle Grandmaster ، لاحقًا في N. ) بتوسيع نطاق holivar إلى مستوى جديد: بدلاً من مناقشة أخرى في أخذوا الميكروفونات في غرفة الدردشة وعقدوا مناقشة عامة في الاجتماع ، الذي وُلد على أساسه هذا المقال.

المقاييس ، حبات ، المتصدرين


ج:
أود أن أبدأ بالحجة المتوقعة أن Kaggle لا تعلم أهم شيء في عمل تاريخ العالم النموذجي - بيان المشكلة. تحتوي المهمة التي تم تعيينها بشكل صحيح بالفعل على نصف الحل ، وغالبًا ما يكون هذا النصف هو الأكثر صعوبة ، وتشفير نموذج ما وتدريبه سيكون أسهل كثيرًا. تقدم Kaggle مهمة من عالم مثالي - البيانات جاهزة ، والقياس جاهز ، خذ وتدريب.

من المستغرب ، حتى مع هذا ، تنشأ مشاكل. ليس من الصعب العثور على العديد من الأمثلة عندما يتم الخلط بين "kagglers" عندما يرون مقياسًا غير مألوف / غير مفهوم.

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

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

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



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

في السابق ، حتى النجاحات المعتدلة في مسابقات "الصورة" (على سبيل المثال ، الميدالية البرونزية ، أي الحصول على أعلى 10٪ من التصنيف النهائي) أظهرت أن الشخص قادر على شيء ما - كان عليك على الأقل كتابة خط أنابيب عادي من البداية إلى النهاية ، منع الأخطاء الحرجة. الآن تم تخفيض قيمة هذه النجاحات: تعمل Kaggle على تعزيز نظامها الأساسي باستخدام القوة والرئيسية ، مما يقلل من عتبة الدخول ويسمح لك بإجراء تجربة بطريقة ما دون إدراك ما.



N:
لم يتم نقل الميدالية البرونزية. هذا هو مستوى "لقد أطلقت شيء هناك ، وتعلمت". إنها ليست سيئة للغاية. إن خفض مستوى المدخلات بسبب النوى ووجود وحدات معالجة الرسومات فيها يخلق المنافسة ويزيد من مستوى المعرفة العام العالي. إذا كان من الممكن قبل عام الحصول على الذهب باستخدام vanilla Unet ، فلا يمكنك الآن الاستغناء عن 5+ تعديلات وحيل. وهذه الحيل لا تعمل فقط على Kaggle ، ولكن أيضًا بعدها. على سبيل المثال ، في aerial-Inria ، خرج رجالنا من ods.ai عن أقدامهم وأظهروا أحدث ما في الأمر ببساطة من خلال خطوط تجزئة قوية تم تطويرها بواسطة Kaggle. هذا يدل على قابلية تطبيق هذه الأساليب في العمل الحقيقي.



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

N:
لكن المقاييس مهمة إلى حد ما. أنها تظهر أداء موضوعي للخوارزمية. بدون خوارزميات ذات مقاييس أعلى من عتبة قابلة للاستخدام ، يستحيل إنشاء خدمات قائمة على ML.

ج:
ولكن فقط إذا كانت تعكس بصدق حالة المنتج ، وهذا ليس هو الحال دائمًا. يحدث أنك تحتاج إلى سحب المقياس إلى الحد الأدنى للنظافة الصحية ، ولا تتوافق تحسينات أخرى للقياس "الفني" مع تحسينات المنتج (لا يلاحظ المستخدم +0.01 IoU) ، يتم فقد العلاقة بين المقياس وإحساس المستخدم.

بالإضافة إلى ذلك ، فإن أساليب kaggle الكلاسيكية لزيادة القياس غير قابلة للتطبيق في العمل العادي. لا حاجة للبحث عن "الوجوه" ، ولا داعي لإعادة إنتاج الترميز وإيجاد الإجابات الصحيحة عن طريق تجزئة الملفات.



التحقق من صحة موثوقة ومجموعات من نماذج جريئة


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

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



ج:
يمكن أن يكون مفهوم "النموذج المفرد البسيط" في اجتماع Kaggle وبيئة الإنتاج مختلفًا تمامًا. ضمن إطار المسابقة ، ستكون هذه بنية واحدة مدربة على 5/10 أضعاف ، مع جهاز تشفير انتشار ، في الوقت الذي يمكنك فيه توقع زيادة وقت الاختبار. وفقًا لمعايير المنافسة ، هذا حل بسيط حقًا.

لكن الإنتاج غالبًا ما يحتاج إلى حلول أسهل بكثير ، خاصة عندما يتعلق الأمر بالتطبيقات المحمولة أو إنترنت الأشياء. على سبيل المثال ، في حالتي ، تشغل Kaggle-model عادةً أكثر من 100 ميغا بايت ، وفي عمل النموذج لا يتم اعتبارها في الغالب أكثر من بضع ميغا بايت ؛ هناك فجوة مماثلة في متطلبات معدل الاستدلال.

N:
ومع ذلك ، إذا كان التاريخ الذي يعرف فيه العالم كيفية تدريب شبكة ثقيلة ، فإن كل التقنيات نفسها مناسبة أيضًا لتدريب نماذج خفيفة الوزن. في التقريب الأول ، يمكنك أن تأخذ مجرد نسخة مماثلة شبكة أسهل أو المحمول من نفس الهندسة المعمارية. تكميم المقاييس والتقليم بما يتجاوز اختصاص Kagglers - لا شك هنا. ولكن هذه هي بالفعل مهارات محددة للغاية ، والتي هي بعيدة كل البعد عن الحاجة الملحة دائما في همز.

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

ج:
التداخل الزائف مفيد ، لكن في المسابقات لا يتم استخدامه لحياة جيدة - فقط لأنه من المستحيل تغيير حجم البيانات. البيانات التي تم الحصول عليها باستخدام التعتيم الزائف ، على الرغم من تحسين القياس ، ليست مفيدة مثل إعادة تحديد البيانات المفقودة يدويًا.



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

في الممارسة العملية ، من المفيد جدًا العثور على تلك العينات التي تتسبب في إنتاج الشبكة لتوقعات غير مؤكدة وإعادة حجمها. يتطلب الكثير من العمل اليدوي ، لكن التأثير يستحق العناء.

عن جمال الكود والعمل الجماعي


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



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

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

لكن Kaggle يعلم العمل الجماعي. ولا شيء يوحد الناس كقضية مشتركة ، وهو هدف مشترك مفهوم. يمكنك محاولة التنافس مع مجموعة من الأشخاص المختلفين والمشاركة وتطوير المهارات اللينة.



ج:
الفرق على غرار Kaggle هي أيضا مختلفة جدا. من الجيد أن يكون هناك بالفعل نوع من الفصل بين المهام من خلال الأدوار والتفاعل البناء ، وكل شخص يساهم. ومع ذلك ، فإن الفرق التي يصنع فيها الجميع كرة الوحل الكبيرة الخاصة به ، وفي الأيام الأخيرة من المسابقة ، كل هذا مختلط بشكل محموم ، كما يكفي ، وهذا لا يعلم أي شيء جيدًا - تطوير برامج حقيقي (بما في ذلك علم البيانات) لم تفعل لفترة طويلة جدا.

ملخص


لنلخص.

مما لا شك فيه ، أن المشاركة في المسابقات تمنح مكافآت مفيدة في العمل اليومي: أولاً وقبل كل شيء ، إنها القدرة على التكرار بسرعة ، والضغط على كل شيء من البيانات في إطار المقياس وعدم التردد في استخدام الأساليب الحديثة.

من ناحية أخرى ، غالبًا ما يؤدي إساءة استخدام نهج Kaggle إلى رمز غير قابل للقراءة دون المستوى الأمثل ، وأولويات عمل مشكوك فيها ، وقليلًا من التباين.

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

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


All Articles