نموذج انحدار دقيق وسريع يعتمد على أساس رياضي متين.
يمثل الكود تنفيذ نموذج الانحدار Kolmogorov-Arnold وطريقتين لتحديد النموذج. وقد اكتسب هذا النهج مؤخرًا شعبية تحت اسم "KAN: Kolmogorov-Arnold Networks".
الكود مكتوب في MATLAB.
الكود هو نتيجة المشروع التعاوني بيني وبين أندرو بولار الذي تم إجراؤه في 2019-2023. تم نشر المفهوم الأساسي لهذا النهج في المرجع. 1 في عام 2021. أحدث ورقتنا، المرجع. 2 نُشرت كطبعة أولية في مايو 2023 (الإصدار الأول)، وتحتوي على الصيغة الأكثر عمومية لهذا النهج. المرجع المحدث. 2 تم نشره كمطبعة أولية في يونيو 2024 (الإصدار الثاني) يتضمن أيضًا حلًا يعتمد على البيانات للمعادلات التفاضلية الجزئية.
النقاط الرئيسية في الكود هي:
يقوم البرنامج النصي الرئيسي mainTriang
بتشغيل الكود. في البرنامج النصي، تحدد علامة modelMethod
نوع النموذج (الخطوط أو الخطي متعدد التعريف) وطريقة تقدير المعلمة (GN أو NK). أحدث إضافة هي طريقة NK المتسارعة (انظر المرجع 2 ، القسم الخاص بالتوازي/الاتجاه). في وظائف بناء النموذج، تقوم العلامة printProgr
بتبديل النسخة المطبوعة للتقدم في نافذة الأوامر.
يقوم الكود ببناء النموذج log(RMSE)
كدالة لعدد التمريرات عبر البيانات. يتكون النموذج من مصفوفتين مع المعلمات: fnB
و fnT
.
يمكن استخدام النموذج الذي تم الحصول عليه للتنبؤ بمجموعة بيانات جديدة. بالنسبة للنسخة المخددة من النموذج،
y = modelKA_basisC( x, xmin, xmax, ymin, ymax, fnB, fnT );
يجب تنفيذه، حيث x
هي بيانات الإدخال بنفس التنسيق كما في البرنامج النصي mainTriang
و y
ستكون بيانات الإخراج المتوقعة. بالنسبة للنسخة الخطية المتعددة للنموذج، فإن الوظيفة التي تقوم بالتنبؤ هي modelKA_linear
(له نفس التنسيق الموضح أعلاه).
المثال الحسابي عبارة عن مجموعة بيانات تركيبية - لكل سجل، المدخلات هي إحداثيات ثلاث نقاط في ثنائية الأبعاد والمخرجات هي مساحة المثلث الذي يتكون من النقاط. النقاط تنتمي إلى مربع الوحدة. يستغرق المثال الافتراضي حوالي 14 ثانية على جهاز كمبيوتر محمول مزود بمعالج Intel Core i5 من الجيل الحادي عشر.
هناك ثلاثة برامج نصية مع اختبارات الوحدات: testBasis
للتحقق من مشتقات الوظائف الأساسية، testDeriv
للتحقق من مشتقات مخرجات النموذج بواسطة المدخلات والمعلمات، و testSpline
لمقارنة الشرائح المنفذة مع شرائح MATLAB المضمنة .
يتم تنفيذ الحل المبني على البيانات للمعادلات التفاضلية الجزئية بشكل منفصل في البرنامج النصي solvePDE_NK
. المثال الحسابي هو PDE من الدرجة الثانية؛ وترد التفاصيل في المرجع. 2 ، الإصدار المحدث اعتبارًا من يونيو 2024. يستغرق المثال الافتراضي حوالي 15 ثانية على جهاز كمبيوتر محمول مزود بمعالج Intel Core i5 من الجيل الحادي عشر.
يقوم البرنامج النصي mainMIT
بتشغيل نفس المثال كما هو الحال في تطبيق Python الأخير من قبل باحثين آخرين (الرابط في الملف). يتم إضافته فقط لإعادة إنتاج أحدث النتائج المعيارية الواردة في المرجع. 2 .
تم تطوير الكود بواسطة الدكتور مايكل بولوكتوف (جامعة دندي، قسم العلوم الرياضية والفيزياء الحاسوبية).
يود المؤلف أن يشيد بالمساعدة الكبيرة التي قدمها الدكتور أندرو بولار، الذي ساهم بالتساوي في مشروع البحث ويحافظ على تطبيقات منفصلة للنهج في C# وC++ على صفحته على GitHub.
A. القطبية وM. Poluektov، المهندس. تطبيق. عارف. إنتل. ، 99:104137، 2021، الرابط. ↩
M. Poluektov و A. Polar، arXiv:2305.08194، 2023، الرابط. ↩ ↩ 2 ↩ 3 ↩ 4 ↩ 5