المقدمة
تتناول هذه المقالة كيفية عقدنا مع شركة Samaraneftekhimproekt التابعة لـ Rosneft وجامعة Kazan Federal Hackathon لثلاث مدن في سبتمبر 2020 ، حيث قمنا بدعوة الطلاب لحل المشكلة الكلاسيكية للارتباط الزلزالي لعكس الآفاق. هذه هي التحديات التي يواجهها المتخصصون في مجال رصد الزلازل حول العالم بشكل يومي. بالنسبة للمشاركين ، قرروا تقديم المشكلة على أنها "مشكلة إيجاد المسار الأمثل" حتى لا يخيفوا الطلاب بكلمات فظيعة. سنخبرك في المقالة بالمزيد عن المشكلة ونحلل الحلول الممتعة للمشاركين. سيكون مثيرًا لكل من النمذجة الرياضية التطبيقية والتعلم الآلي ومحللي البيانات.
الجزء التنظيمي
أخبرنا تفاصيل شيقة عن تنظيم هاكاثون عبر الإنترنت في ثلاث مدن في مقال على vc.ru - النفط والهاكاثون . الماراثون لا يقتصر فقط على الجري .
سنذكر فقط أننا اخترنا خدمة Discord للتنسيق عبر الإنترنت وسنترك رابطًا لقواعد الهاكاثون (رابط على موقع Boosters ).
صياغة المشكلة
في الاستكشاف الزلزالي ، هناك مفهوم "أفق الانعكاس الزلزالي" - هذه موجة منعكسة مستقرة من حيث الديناميكيات ومنطقة الانتشار ، والتي تتوافق مع حدود جيولوجية معينة. معالجة البيانات الزلزالية الميدانية بشكل صحيح والتعرف على الآفاق الزلزالية (يقول خبراء التنقيب الزلزالي - "تفسير") الآفاق الزلزالية ، من الممكن تحديد عمق حدوثها بدقة تتراوح من 5 إلى 10 أمتار. بعد تحديد الأعماق ، من الممكن ، مع الجيولوجيين ، ربط هذه الآفاق بالمقياس الزمني الجيولوجي (المقياس الجغرافي الزمني - ويكيبيديا ) والتعرف على نظرائهم الأصغر. ثم قرر - بين أي آفاق يمكن أن تكمن فيها مصائد النفط ، وكيف يبدو الشكل الهيكلي للحقل ، وما إلى ذلك.
المقاطع الرأسية للمكعب الزلزالي وآفاق الانعكاس الزلزالي المعترف بها من
الناحية العملية ، يتم تحديد الآفاق طبقة تلو الأخرى على المقاطع الزلزالية للمكعب الزلزالي - سواء يدويًا ، باستخدام مجموعة (يقول خبراء الزلازل - "الغوص") عدد كبير من النقاط المرجعية ، وباستخدام إجراءات البحث الآلي وشبه الآلية ... بالطبع ، هناك طلب كبير على حل عالي الجودة لمشكلة تفسير الآفاق الزلزالية باستخدام البرامج ويمكن أن يقلل بشكل كبير من الوقت الذي يقضيه متخصصو التنقيب عن الزلازل.
في الوقت نفسه ، دراسة المصادر ( آفاق المربعات الصغرى مع المنحدرات المحلية والارتباطات متعددة الشبكات ، تضمين شكل الموجة: الانتقاء التلقائي للأفق مع التعلم العميق غير الخاضع للإشراف) يوضح أن الخوارزميات والحلول المطورة تستند إلى عدد صغير من الأساليب الرياضية ، لذلك قررنا محاولة جذب الطلاب بوعيهم الذي لم يخيم عليه البحث العلمي بعد وتقديم هذه المشكلة لهم في شكل مشكلة إيجاد المسار الأمثل على سطح معقد.
نتيجة لذلك ، تمت صياغة المشكلة على النحو التالي: بناء مسار للحركة على سطح معقد يمر عبر نقاط معينة وتلبية شروط حد أدنى من وظيفة معينة اعتمادًا على طول المسار وزواياه (التدرجات).
مثال على جزء من القسم الزلزالي الأصلي لبناء الأفق. الخط الأخضر هو الجزء المعروف مسبقًا ، والخط الأحمر هو الجزء المطلوب.
كان على المشاركين في المسابقة إيجاد حل خلال 12 ساعة من شأنه أن يسمح لهم بالاستمرار على طول المسار الأمثل في الجزء المخفي من مجموعة البيانات. كانت هناك 20 محاولة للتحقق من الحل ؛ وفاز المشارك بأقل قيمة مترية.
وصف البيانات التفصيلي
, :
, – 2 .
-, hor_2 L1. L2 L1. . , , .
- . , [x,y] z(x,y) .
- (x,y) L1 L2. x, hor_1, …, hor_4.
- L2 4 (1, 2, 3, 4), L1 – 3 (1, 3, 4). 2- L1 (40%). 60% .
, – 2 .
-, hor_2 L1. L2 L1. . , , .
خلال المسابقة ، تم بناء الترتيب بناءً على القيم المترية في الجزء العام من بيانات الاختبار. بعد نهاية المسابقة ، تمت إعادة حساب القيمة المترية في الجزء الخاص ، وتم تحديث الترتيب. يعد هذا أمرًا مهمًا من أجل الحصول على حلول مستدامة ، أي ليست مصممة فقط للبيانات العامة ، ولكن أيضًا قادرة على عرض نتيجة قابلة للمقارنة على البيانات الخاصة. اتضح أن هذا لم يتم سدى ، وبعد التقييم النهائي للجودة ، تغير الترتيب.
لتحديد النتائج التي تم الحصول عليها ، تم استخدام المقياس التالي:
حيث:
N هو بُعد الأفق المطلوب ؛
- إحداثيات الأفق التي تم الحصول عليها باستخدام الخوارزمية ، ؛
- إحداثيات الأفق المرجعي ؛
- قيم خريطة السطح عند النقطة ذات الإحداثيات i ، yi ؛
، حيث الارتفاع هو أقصى قيمة ممكنة للإحداثي y لخريطة السطح ؛
حيث max (z) هي أكبر قيمة لخريطة السطح.
تنفيذ متري في بايثون
def score(true, submission, all_data):
#true – pandas.Dataframe ;
#submission - pandas.Dataframe ,
#;
#all_data - numpy.ndarray
all_data = all_data.astype('float64')
#
max_z = abs(all_data).max()
#
y_pred = submission.loc[idx.index.values].y.values.astype('int')
#
y_true = true.y.astype(int)
#
z_pred = all_data[true.index.values.astype(int), y_pred.astype(int)]
#
z_true = all_data[true.index.values, y_true]
#
y_err = ((y_pred - y_true)/3000)** 2
z_err = ((z_pred - z_true)/max_z) ** 2
#
total_err = np.sqrt(np.sum(y_err + z_err))
return total_err
ما هي الأساليب التي استخدمتها الفرق
تم اختيار المشكلة في البداية بحيث يمكن حلها بعدة طرق: مباشرة ومعكوسة (الطرق الرياضية التقليدية وطرق التعلم الآلي ، على التوالي).
من وجهة نظر التعلم الآلي ، يمكن حل المشكلة بطريقتين:
1) بناء الانحدار
باستخدام أزواج النقاط المعروفة () ، يمكنك إنشاء مخطط عن طريق تقليل دالة الخسارة L. - وصف إرشادي للنقطة الأولى.
على سبيل المثال، أو
يمكن أن تكون وظيفة الخسارة إما دالة الخطأ الأولية من بيان المشكلة ، أو دالة أبسط ، على سبيل المثال ، الانحراف المعياري للمسارات المنشأة والأصلية:
العديد من أساليب تعلم آلة شعبية يمكن استخدامها لبناء الخرائط و : بدءا من الانحدار متعدد الحدود، عبور غابة عشوائية، والشبكات العصبية العميقة.
اتخذت العديد من الفرق هذا النهج باستخدامشبكة عصبية تلافيفية أو متصلة بالكامل ، وكشبكة عصبية f أو عمليات جاوس.
2) التجزئة الدلالية
مثال على التجزئة الدلالية
يمكن حل المشكلة الأصلية كمشكلة رؤية الكمبيوتر. تعتبر النقاط (س ، ص) بمثابة بكسل للصورة ، حيث تكون الصورة بأكملها هي مجموعة البيانات بأكملها ، و "سطوع" البكسل (س ، ص) هو قيمة z (س ، ص). لإنشاء مسار ، تحتاج إلى تعيين إحدى الفئات لكل بكسل - 0 أو 1. جزء الصورة الموجود أسفل المسار أو يتضمنه ينتمي إلى الفئة 0 ، والباقي - إلى الفئة 1. الحل المنزلي لمثل هذه المشكلة هو شبكة عصبية تلافيفية بالكامل U-Net ، على إدخال يتلقى قطعة (رقعة) من الصورة الأصلية ويخرج مصفوفة من نفس الحجم ، تتكون من الأصفار والآحاد ، مما يشير إلى فئات وحدات البكسل المقابلة.
بالإضافة إلى تقنيات التعلم العميق ، يمكنك أيضًا استخدام رؤية الكمبيوتر الكلاسيكية وتقنيات معالجة الصور مثل Flood fill لتجزئة الصورة. تم إجراء ذلك من قبل أحد المشاركين ، وبالتالي تمت معالجة الصورة مسبقًا لمزيد من تطبيق الخوارزميات للعثور على أقصر مسار.
من وجهة نظر الطرق الرياضية الكلاسيكية ، فإن المشكلة المقترحة هي مشكلة تحسين كلاسيكية ، وقد لاحظنا محاولات لحلها من خلال مجموعات الطرق التالية:
- , ;
. y , y, . - , ;
. - , .
, .
أولاً ، دعنا نحلل قرارات المشاركين.
طرق التعلم الآلي: كان
أحد الحلول عبارة عن شبكة عصبية تلافيفية ذاتية الارتداد تنتج رقمًا حقيقيًا - قيمة المسارللخطوة الأولى. تم تغذية بقع 32 × 32 بكسل للصورة الأصلية لإدخال الشبكة العصبية. كوظيفةلاستخراج الميزات ، تم استخدام الشبكة العصبية التلافيفية سابقة التدريب ResNet34. تم دمج تمثيل الميزة الذي حصلت عليه هذه الشبكة العصبية مع قيم هذا المسار من الخطوات الـ 32 السابقة. للتنبؤ بـ 32 خطوة أخرى ، تم استخدام تنبؤات الشبكة العصبية السابقة كقيم أفق سابقة. تم تدريب الشبكة العصبية من خلال تعديل نزول التدرج العشوائي لآدم مع انخفاض أسي في خطوة المحسن أثناء تدريبها. للتدريب ، تم تقليل متوسط الانحراف المطلق (أعطت التجارب مع الانحراف المعياري نتائج أسوأ). لتجنب فرط التخصيص ، تم استخدام Dropout ، أي التصفير العشوائي لجزء من الخلايا العصبية. استغرق تدريب الشبكة العصبية حوالي 10 دقائق ، و 20 تمريرة كاملة عبر مجموعة البيانات بأكملها و 720 خطوة للمحسن.
حل تم الحصول عليه باستخدام شبكة عصبية تلافيفية. الخط الأحمر هو المسار الحقيقي ، والخط الأزرق هو الخط الذي يستقبله المشارك.
يستغرق توقع الشبكة العصبية حوالي دقيقة واحدة على وحدة المعالجة المركزية AMD Threadripper 2950x ووحدة معالجة الرسومات Nvidia GTX 1080 Ti.
نتيجة الشبكة العصبية (متري) هي 5.71 في الترتيب العام. تم إجراء تجارب أيضًا مع استبدال الشبكة العصبية التلافيفية بشبكة متكررة ، لكن نتيجتها كانت أسوأ. نتيجة لذلك ، تم استخدام الطرق الكلاسيكية للرياضيات الحسابية كحل نهائي.
بالإضافة إلى الحلول النهائية ، تبادل المشاركون أيضًا أفكارهم التي لم يتمكنوا من تنفيذها بسبب الإطار الزمني الضيق للمنافسة والتعقيد الحسابي لأفكارهم. حاول بعضهم تطبيق الشبكات العصبية ، ولكن بعد قضاء معظم وقتهم ، تحولوا إلى خوارزميات أبسط وأكثر كفاءة أو حتى إلى استخدام القوة الغاشمة والقواعد ، والتي أعطت في النهاية أفضل نتيجة وأدت إلى الحصول على جوائز.
أيضًا ، يعتمد عدد من الحلول المثيرة للاهتمام على المعرفة من التخصصات الأخرى: على سبيل المثال ، رؤية الكمبيوتر الكلاسيكية ومعالجة الصور ، ونظرية الرسم البياني ، وتحليل السلاسل الزمنية. حتى أن أحد الفرق طرح المشكلة من حيث التعلم المعزز الذي ربما تكون قد سمعت به ، وتوصل إلى حل ، لكن للأسف لم يكن لديه الوقت لتنفيذه.
الطرق الرياضية الكلاسيكية:
أحد الحلول التي تم الحصول عليها بالطريقة القصوى المحلية. الخط الأحمر هو المسار الحقيقي ، والخط الأزرق هو الخط الذي يستقبله المشارك.
لهذه الطريقة ، تم استخدام حد أقصى محلي كأقصى حد. تم تحديد المسار الذي بناه المشاركون باللون الأزرق ، والأفق المطلوب باللون الأحمر. يتم توفير وصف مفصل أدناه.
،
،
،
أين:
- أقصى قيمة ممكنة للإحداثي y لخريطة السطح ؛
- حجم نافذة البحث.
يتم تنفيذ الطريقة في بايثون. كان وقت التشغيل حوالي 0.103 ثانية ، F (y ، z) = 1.57 ،= 100.
الخلاصة: الطريقة بسيطة بما يكفي للتنفيذ ، ولا يتجاوز وقت التشغيل 0.1 ثانية.
أحد الحلول التي حصل عليها الطرف العالمي. الخط الأحمر هو المسار الحقيقي ، والخط الأزرق هو الخط الذي يستقبله المشارك.
دعنا ننتقل إلى المجموعة التالية. كما كان من قبل ، في هذه الطريقة ، تم استخدام الحد الأقصى كمتطرف.
،
،
،
حيث:
الارتفاع هو أقصى قيمة ممكنة للإحداثي y لخريطة السطح ؛
- حجم نافذة البحث.
يتم تنفيذ الطريقة في بايثون. كان وقت التشغيل حوالي 0.19 ثانية ، F (y ، z) = 1.97 ،= 9 ، = 21.
الخلاصة: الطريقة بسيطة بما يكفي للتنفيذ ، ولا يتجاوز وقت التشغيل 0.2 ثانية.
أحد الحلول التجريبية. الخط الأحمر هو المسار الحقيقي ، والخط الأزرق هو الخط الذي يستقبله المشارك.
لنفكر في المجموعة الأخيرة من الطرق. كما ذكرنا سابقًا ، التنسيق التالييتم البحث عنه بالحد الأدنى من الوظائف داخل نافذة البحث المحددة.
فيما يلي إحدى الوظائف التي اقترحتها الفرق. من الناحية الرياضية ، يبدو الأمر كما يلي:
،
،
أين:
- أقصى قيمة ممكنة للإحداثي y لخريطة السطح ؛
- المعامل المسؤول عن تأثير الخطأ في y على قيمة الوظيفة ؛
- حجم نافذة البحث ؛
هي أعلى قيمة لخريطة السطح.
تم تنفيذ الطريقة في بايثون. كان وقت التشغيل حوالي 0.12 ثانية ، F (y ، z) = 1.58 ،= 50 ، = 15000.7.
الخلاصة: لا يتجاوز وقت تشغيل الطريقة 0.15 ثانية.
أظهرت أساليب المجموعات الثلاث نتائج متشابهة إلى حد ما على مجموعة بيانات معينة. تم الحصول على أصغر قيمة مترية (1.57) بطريقة تعتمد على البحث عن القيم القصوى المحلية لقيم السطح داخل نافذة بحث معينة.
الجزء الأخير
لسوء الحظ ، بحلول نهاية الهاكاثون ،
أردنا الجمع بين مساهمين من مجالين: الرياضيات الحاسوبية والتعلم الآلي. اعتاد البعض على العمل مع بيانات غير منظمة ذات طبيعة غير معروفة ، بينما اعتاد البعض الآخر على دراسة العمليات الفيزيائية وبناء النماذج الرياضية على أساسها. لزيادة تنوع الأفكار والحلول ، وصفنا بإيجاز كيف تم الحصول على البيانات. هذا هو أحد الأسباب التي جعلت الحل القائم على الطرق العددية البسيطة يعطي أفضل النتائج. والسبب الثاني هو أنه بالنسبة إلى هاكاثون الطلاب ، لم نعد بيانات "معقدة" جدًا ذات حجم صغير ، لذا فإن طرق التعلم الآلي الحديثة التي تستغرق وقتًا طويلاً تخسر بدائل أبسط.
نعتقد أن هذا درس ممتاز سيساعد المشاركين على تحديد المشاكل بشكل صحيح واختيار أفضل الطرق لحلها. من المهم أن تتذكر أنه يجب عليك أولاً تجربة حل بسيط ، ما يسمى بخط الأساس ، ربما سيسمح لك بتحقيق هدفك في وقت قصير.
اقترح المشاركون في Hackathon خوارزمياتهم الخاصة لإيجاد المسار الأمثل في مجموعة البيانات الضخمة فيما يتعلق بمشكلة التفسير الحركي الزلزالي التلقائي ، والتي يتم حلها حاليًا كجزء من تطوير برامج الشركات في مجال الجيولوجيا وعلم الزلازل. سوف تجد تطبيقات الخوارزميات الأكثر تنافسية تطبيقاتها في تطوير وتنفيذ وحدات البرامج لأنظمة البرامج هذه.
سنكون سعداء لرؤيتك في نهائي ماراثون مسابقة تكنولوجيا المعلومات ، الذي سيقام في 28 نوفمبر عبر الإنترنت. يتضمن البرنامج: مكافأة الفائزين في المسابقة ، وتقديم الإصدار الأول من تطبيق الهاتف المحمول للتقييم السريع لجودة مادة الدعم. وفي إطار هذا الحدث ، سيتم تنظيم حلقات نقاش حول موضوعات الساعة "إدارة مشروع البيانات و DS" و "رؤية الكمبيوتر". سيشارك ممثلو رئيس قسم علوم البيانات Alfa و CDO Megafon و Huawei ورئيس CV X5 وآخرون حالات مثيرة للاهتمام.لا تفوت كل المتعة ( ماراثون مسابقة تكنولوجيا المعلومات 2020 - Rosneft ).