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

طوال هذا الوقت عملت كباحث ، ولم يكن لهذا علاقة بال ML أو حتى البرمجة. يوضح هذا مدى انخفاض عتبة الدخول إلى التعلم الآلي ، ومدى السرعة التي يمكنك تطويرها في ذلك. علاوة على ذلك ، في منطقة 2013 ، دعاني أصدقائي إلى شركة ناشئة كانت تعمل في ML. وخلال 2-3 سنوات ، درست البرمجة و ML في نفس الوقت. كان تقدمي بطيئًا إلى حد ما - لقد درست المواد ، وتعمقت فيها ، لكنها لم تكن بالسرعة التي تحدث بها الآن. بالنسبة لي ، تغير كل شيء عندما بدأت المشاركة في مسابقات ML. المسابقة الأولى كانت من Avito حول تصنيف السيارات. لم أكن أعرف حقًا كيف أشارك فيه ، لكني تمكنت من الحصول على المركز الثالث. مباشرة بعد ذلك ، بدأت منافسة أخرى مخصصة بالفعل لتصنيف الإعلانات. كانت هناك صور ، نص ، وصف ، سعر - كانت منافسة معقدة. في ذلك ، احتلت المركز الأول ، وبعد ذلك تلقيت على الفور عرضًا وأخذوني إلى Avito. ثم لم يكن هناك منصب صغير ، تم نقلي على الفور من الوسط - بدون خبرة ذات صلة تقريبًا.
علاوة على ذلك ، عندما كنت أعمل بالفعل في Avito ، بدأت في المشاركة في المسابقات في Kaggle وفي حوالي عام تلقيت أساتذة كبار. الآن أنا في المركز 58 في الترتيب العام. هذا هو ملفي الشخصي. بعد أن عملت في Avito لمدة عام ونصف ، انتقلت إلى Dbrain ، وأنا الآن مديرًا لعلوم البيانات ، وأنسق عمل سبعة من علماء البيانات. كل شيء استخدمته في عملي تعلمت من المسابقات. لذلك ، أعتقد أن هذا موضوع رائع للغاية ، وبكل طريقة ممكنة أدعو للمشاركة في المسابقات والتطوير.

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

لماذا هو الكثير من المرح؟ من أين المشاعر الإيجابية؟ الفكرة هي أنه عندما ترسل إرسالًا وهي أفضل قليلاً من السابقة ، يقولون - لقد قمت بتحسين المقياس ، إنه رائع. أنت تتسلق لوحة الصدارة. على النقيض من ذلك ، إذا لم تفعل شيئًا ولم ترسل مشاركات ، فأنت تنزل. ويسبب ردود فعل: تشعر بالرضا عندما تتقدم والعكس صحيح. هذه آلية رائعة تستغل ، على ما يبدو ، Kaggle فقط. ونقطة أخرى: Kaggle يستغل نفس آلية التبعية مثل ماكينات القمار و Tinder. أنت لا تعرف ما إذا كان ما ترسله أفضل أم أسوأ. يؤدي هذا إلى توقع نتيجة غير معروفة لك. وبالتالي ، فإن Kaggle يسبب إدمانًا كبيرًا ، ولكنه بناء للغاية: تقوم بتطوير ومحاولة تحسين قرارك.
كيف تحصل على الجرعة الأولى؟ تحتاج للدخول إلى قسم الألباب. يضعون بعض قطع خط الأنابيب أو الحل الكامل. سؤال منفصل هو لماذا يفعل الناس ذلك. قضى الرجل وقتًا في التطور - ما الفائدة من طرحه علنًا؟ يمكنهم الاستفادة وتجاوز المؤلف.
الفكرة هي ، أولاً ، عدم وضع أفضل الحلول. كقاعدة ، هذه الحلول ليست مثالية من وجهة نظر نماذج التدريب ، فهي لا تحتوي على جميع الفروق الدقيقة ، ولكن هناك خط أنابيب كامل من البداية إلى النهاية بحيث لا تحل المهام الروتينية المتعلقة بمعالجة البيانات ، ومعالجة ما بعد ، وإرسال المجموعة ، إلخ. وهذا يخفض عتبة الدخول لجذب الداخلين الجدد. عليك أن تفهم أن مجتمع علماء البيانات منفتح للغاية للمناقشة ، وبشكل عام ، إيجابي للغاية. لم أر هذا في المجتمع العلمي. الدافع الرئيسي هو أن يأتي الأشخاص الجدد بأفكار جديدة. هذا يطور مناقشة للمشكلة والمنافسة ويسمح للمجتمع بأكمله بالتطور.
إذا اتخذت قرار شخص آخر ، وأطلقته ، وبدأت في التدريب ، فإن الشيء التالي الذي أوصي به بشدة هو النظر في البيانات. نصيحة عادية ، لكنك لن تصدق عدد الأشخاص من الأعلى الذين لا يستخدمونها. لفهم سبب أهمية ذلك ، أنصحك بمشاهدة تقرير يوجين نيزيبيتسكي. يتحدث عن
الوجوه في مسابقات الأفلام وعن
الوجه في إيرباص ، والتي يمكن رؤيتها ببساطة من خلال النظر إلى البيانات. هذا لا يستغرق الكثير من الوقت ويساعد على فهم المشكلة. وكانت الوجوه في الصور تدور حول حقيقة أنه على منصات مختلفة وفي مسابقات مختلفة كان من الممكن الحصول على إجابات اختبار من القطار. أي أنه لا يمكنك تدريب أي نموذج ، ولكن مجرد إلقاء نظرة على البيانات وفهم كيف يمكنك جمع الإجابات للاختبار - جزئيًا أو كليًا. هذه عادة مهمة ليس فقط في المسابقات ، ولكن أيضًا في الممارسة الواقعية ، عندما تعمل مع علماء البيانات. في الحياة الواقعية ، على الأرجح ، سيتم صياغة المهمة بشكل سيئ. أنت لا تصيغه ، لكنك تحتاج إلى فهم جوهره وجوهر البيانات. إن عادة النظر إلى البيانات مهمة جدًا ، وقضاء بعض الوقت في ذلك.
بعد ذلك تحتاج إلى فهم ما هي المهمة. إذا نظرت إلى البيانات وفهمت الهدف ... أنت ، إذا فهمت بشكل صحيح ، في الغالب ، من Fiztekh. يجب أن يكون لديك بعض التفكير النقدي الذي يطرحك على السؤال: لماذا فعل الأشخاص الذين صمموا المسابقة كل شيء بشكل صحيح؟ لماذا لا تغير ، على سبيل المثال ، المقياس المستهدف ، وتبحث عن شيء آخر ، وتجمع الأشياء الصحيحة من المقياس الجديد؟ في رأيي ، الآن بعد أن هناك مجموعة من البرامج التعليمية ورمز الآخرين ، فإن التنبؤ بالعلف ليس مشكلة. لتدريب نموذج ، لتدريب شبكة عصبية مهمة بسيطة للغاية ، يمكن الوصول إليها من قبل دائرة واسعة جدا من الناس. ولكن من المهم أن تفهم ما هو هدفك وما تتوقعه وكيفية تجميع المقياس المستهدف. إذا كنت تتوقع شيئًا غير ذي صلة في الواقع الموضوعي ، فإن النموذج ببساطة لا يتعلم وستحصل على سرعة سيئة للغاية.
أمثلة. كانت هناك منافسة جرت في Topcoder Konica-Minolta.

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

أليكسي بوسلايف في المركز الثالث ، أخذ الشبكة العصبية السيامية بمدخلين بحيث تعلم هؤلاء الرؤساء السياميون بعض التحولات فيما يتعلق بهذه الصورة المشوهة. بعد ذلك ، قام بدمج هذه الميزات ، وكان لديه مجموعة من اللفات ، وحصل على نوع من التنبؤ. لتسوية هذا غير قادر في البيانات ، قام بتجميع شبكة معقدة إلى حد ما. على سبيل المثال ، لم أقم بتدريب شبكة سيامية مطلقًا ، لم يكن علي فعل ذلك. لقد فعلها ، إنه رائع جدا ، حصل على المركز الثالث. في المقام الأول كان Evgeny (nrzb.) ، الذي قام بتغيير حجم الصورة ببساطة. رأى هذا كقاعدة في البيانات ، لأنه نظر إليها ، وقام بتغيير حجم الصور ، ودرب الفانيليا UNet. هذه شبكة عصبية بسيطة للغاية ، إنها فقط في الكتاب المدرسي ، في المقالات. يوضح هذا أنه إذا نظرت إلى البيانات واخترت الهدف الصحيح ، يمكنك أن تكون في القمة مع حل بسيط.
انتهى بي الأمر إلى المركز الثاني ، لأنني صديق لـ Zhenya ، بعد ذلك أساءت الرموز العليا لسبب ما ولم تأخذني إلى فريق Kaggle. لكنهم رائعون جدًا ، احتل توبكودر المركز 5-6 ، وهذا (NRZB.) وفيكتور دورنوف. احتل الكسندر Buslaev المركز الثالث. تعاونوا أيضًا وأظهروا الفصل في مسابقة كانت في Kaggle. هذا أيضًا مثال على حل جميل للغاية ، عندما لم يقم الرجال بتطوير بنية رهيبة فحسب ، بل اختاروا الهدف الصحيح.

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

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

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

سيرجي كوليسنيكوف هو زميلي الذي يعمل في Dbrain ، وهو يعمل على تطوير مثل هذا الشيء لفترة طويلة. في البداية دعاها PyTorch Common ، ثم دعا بروميثيوس ، والآن يطلق عليه اسم كاتاليست. على الأرجح ، في الأسبوع سيكون الاسم مختلفًا ، ولكن الرابط سيكون للاسم التالي ، اتبع الرابط "كاتاليست".
الفكرة هي أن سيرجي طور نوعًا من الليب ، وهو عبارة عن قطار. ويحتوي الإصدار الحالي على جميع الخصائص التي وصفتها تقريبًا. لا تزال هناك مجموعة من الأمثلة حول كيفية القيام بالتصنيف والتجزئة ومجموعة من الأشياء الرائعة الأخرى التي طورها.
فيما يلي قائمة بالميزات التي يتم تطويرها. يمكنك أن تأخذ هذا lib والبدء في استخدامه لتدريب الخوارزميات الخاصة بك ، والشبكات العصبية الخاصة بك في المسابقة التي تجري حاليا. أوصي الجميع بفعل ذلك.
في المقابل ، هناك FastAI آخر ، تم إصداره مؤخرًا الإصدار 1.0 ، ولكن هناك رمز مثير للاشمئزاز ولا شيء واضح.
يمكنك إتقانها ، وسوف تمنحك بعض النمو ، ولكن نظرًا لحقيقة أنها مكتوبة بشكل سيء للغاية من حيث التعليمات البرمجية ، فلديها تدفقها الخاص من حيث كيفية كتابتها. بدءًا من نقطة ما ، لن تفهم ما يحدث. لذلك ، لا أوصي FastAI ، أوصي باستخدام أي "محفز".

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

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

على الأرجح ، لقد تعلمت تشغيل رمز شخص آخر. آمل حقًا أن تكون قد طورت عادة البحث في البيانات. لقد فهمت المشكلة ، وتعلمت إجراء التجارب ، ولديك نوع من الحلول الخاصة بك ، والآن يمكنك تصميمها في شكل مشروع. إذا نظرت بشكل تجريدي ، فهي تشبه إلى حد كبير العمل العادي في بعض شركات تكنولوجيا المعلومات. إذا خضت منافسة وأظهرت نتيجة جيدة ، فهذه نقطة قوية في السيرة الذاتية ، على الأقل بالنسبة لي. - 20-25, Dbrain. . , public kernel, . , , , .
, , , , Datascience Bowl, , . Kaggle , , .
, , , ?

«», . . , , , .

— . , «» , , , , . — , , .
, , , , . , , . - , , , .
, , — . , . , «» , . «» — , .

, — . , - . , — , . , , , . — importance XGBoost . , , . . , . , . , .
إذا كانت الشركات لا ترغب في المشاركة ، ولا تريد التنظيم ، فلديها فقط بعض المهام ذات الصلة ، وبعد ذلك ، كقاعدة عامة ، بعد المنافسة ، ينشر الأشخاص مراجعات لقراراتهم وحتى رمزًا. وإذا كانت لديك مهمة ذات صلة متشابهة للغاية ، فيمكنك حينئذٍ البدء والحصول على بعض البداية الساخنة في شكل مراجعة للأدب ، ومراجعة الحلول من الأعلى.
كمثال ، دورة Coursera عن كيفية الفوز بالمسابقات. على - موقع ML-التدريب و المواد المستنفدة للأوزون chatik للمناقشة. لدي كل شيء.