أفضل نهج لمشروع التعلم الآلي الشامل [2022]
نشرت: 2021-01-01إن التعلم الآلي يسير بخطى سريعة وكان موضع خلاف لفترة طويلة جدًا من الزمن. جعلت بعض الخوارزميات والبنى الرائعة في هذا المجال من الممكن تطبيق مفهوم التعلم الآلي في العالم العملي والحي.
لم يعد مجرد فكرة للبحث وانتشر بعمق في مجالات التطبيق المفيدة. واليوم ، أكثر من أي وقت مضى ، هناك حاجة لإتقان فن خط الأنابيب الشامل لمشاريع التعلم الآلي.
هناك اهتمام متزايد بالتعلم الآلي لكثير من الناس وهناك قدر هائل من الموارد المتاحة التي يمكن أن تساعدك على فهم أساسيات تعلم الآلة والذكاء الاصطناعي. تأخذك العديد من الدورات التدريبية من تعلم بعض المفاهيم الأساسية إلى بناء بعض النماذج الحديثة.
ولكن هل هذا كل شيء؟ هل نتعلم حقًا كيفية الوصول إلى البيانات وهل نرى حقًا كيفية تنظيف البيانات حتى يتمكن نموذج ML الخاص بنا من استخراج ميزات مفيدة منها؟ وماذا عن جزء النشر؟ هناك الكثير من الأسئلة في الأسطر المتشابهة والتي تظل بلا إجابة في أذهاننا بعد أن نكمل مثل هذه الدورات والمناهج الدراسية.
تنشأ هذه المشكلة بسبب سوء فهم خط أنابيب التعلم الآلي الكامل من البداية إلى النهاية لأي مشروع. في هذه المقالة ، سوف نمر بأحد خطوط الأنابيب هذه لفهم ما يجب القيام به بالضبط من أجل الحصول على نتائج أفضل في سيناريو الحياة الواقعية لأي مشروع ML.
من أفضل الكتب التي تظهر هذا هو التعلم الآلي العملي باستخدام Scikit-Learn و Keras و TensorFlow من تأليف Aurelien Geron.

يمكن تقسيم خط الأنابيب هذا من طرف إلى طرف إلى بضع خطوات لفهم أفضل ، وهي:
- فهم بيان المشكلة
- الحصول على البيانات المطلوبة
- فهم البيانات
- تنظيف البيانات
- اختيار أفضل نموذج للتدريب
- صقل المعلمات الفائقة
- تقديم النتائج
- نشر النظام وصيانته
لفهم خط أنابيب أي مشروع حقيقي لتعلم الآلة بشكل أفضل ، سنستخدم المثال الشائع لمشكلة توقع أسعار California House. سنناقش جميع النقاط المذكورة أعلاه فيما يتعلق ببيان المشكلة هذا. قد تكون هناك بعض التغييرات الطفيفة لمشاريع مختلفة ولكن الهدف بشكل عام يبقى كما هو.
جدول المحتويات
فهم بيان المشكلة
من أجل بناء حل جيد ، يحتاج المرء إلى فهم بيان المشكلة بوضوح شديد. من المحتمل أن ينتهي بك الأمر إلى بناء نموذج التعلم الآلي والتدريب عليه ، لكن مجالات التطبيق الواقعية تحتاج إلى أكثر بكثير من مجرد النماذج. يجب أن تتطابق مخرجات النموذج مع ما يحتاجه المستخدم النهائي بالضبط.
بالنسبة لهذا المثال بالذات ، حصلنا على مجموعة بيانات لجميع المقاييس في كاليفورنيا مثل السكان والدخل وأسعار المنازل وغيرها. الناتج المطلوب من النموذج هو أنه يجب أن يكون قادرًا على التنبؤ بسعر المنزل نظرًا لسماته الأخرى مثل الموقع والسكان والدخل وغيرها.
السبب المهم لهذه الخطوة هو فهم بالضبط ما يجب القيام به ونوع الحل المطلوب بالضبط. هذا هو المكان الذي يتم فيه إجراء العصف الذهني الرئيسي لكيفية التعامل مع بيان المشكلة.
قراءة: أفكار مشروع التعلم الآلي للمبتدئين
الحصول على البيانات المطلوبة
بمجرد أن تفهم بيان المشكلة بوضوح وقررت المضي قدمًا في نهج التعلم الآلي لحل المشكلة ، يجب أن تبدأ في البحث عن البيانات ذات الصلة. تعد البيانات أهم عنصر في أي مشروع من مشاريع التعلم الآلي ، لذا يجب عليك البحث بعناية عن بيانات الجودة وتحديدها فقط. يعتمد الأداء النهائي لنماذج ML على البيانات التي تم استخدامها أثناء التدريب.
هناك العديد من المصادر للعثور على البيانات التي يمكن أن تساعد في فهم توزيع البيانات في أمثلة من الحياة الواقعية أيضًا. على سبيل المثال ، يمكننا أخذ مجموعة بيانات توقع أسعار المنازل في كاليفورنيا من Kaggle. هذه البيانات بتنسيق CSV ولذا سنستخدم مكتبة Pandas لتحميل مجموعة البيانات.
فهم البيانات
من الجوانب المهمة جدًا في حل ML أن تكون قادرًا على فهم البيانات التي تعمل بها. وهذا يمكننا من اختيار الخوارزميات أو النماذج المعمارية الأنسب للمشروع. قبل البدء في إلقاء نظرة على البيانات بالتفصيل ، من الممارسات الجيدة تقسيم مجموعة البيانات أولاً إلى مجموعات تدريب واختبار. هذا يحافظ على مجموعة الاختبار دون تغيير ، وبالتالي يقلل من فرص التخصيص لمجموعة الاختبار. من خلال القيام بذلك ، فإنك تقضي على تحيز التطفل على البيانات من النموذج.
هناك طرق مختلفة لتقسيم مجموعات البيانات إلى مجموعات التدريب والاختبار هذه. واحدة من هذه هي تقسيمها بقيمة مئوية مضمنة. 90٪ تدريب و 10٪ اختبار قيمة شائعة في معظم الحالات.
بعد الانقسام ، سيكون عليك تصور مجموعة القطار بعمق لفهم البيانات. تتضمن مجموعة البيانات الحالية نقاط الطول والعرض ، وبالتالي ، من المفيد جدًا استخدام مخطط التشتت للنظر في الكثافة وفقًا للمواقع.
يُعد العثور على الارتباط بين سمتين في مجموعة البيانات مفيدًا لفهم السمات الأكثر ارتباطًا بالسمة المطلوبة. في هذه الحالة ، نحتاج إلى معرفة السمة الأكثر ارتباطًا بأسعار المنازل في مجموعة البيانات. يمكن القيام بذلك بسهولة في Scikit-Learn باستخدام طريقة corr (). تقوم بإرجاع قيمة لكل سمة فيما يتعلق بسمة أخرى. لذلك إذا كنت بحاجة إلى رؤية العلاقات فيما يتعلق بأسعار المنازل ، فهذه هي الطريقة التي يمكنك القيام بها:
corr_matrix [“median_house_value”]. sort_values (تصاعدي = خطأ)
متوسط_بيت_القيمة 1.000000متوسط الدخل 0.687170total_rooms 0.135231السكن_الوسيط_السكن 0.114220الأسر 0.064702مجموع غرف النوم 0.047865السكان -0.026699.000خط الطول -0.047279خط العرض -0.142826
هنا ، من الواضح أن متوسط الدخل يرتبط ارتباطًا مباشرًا بقيمة المنزل ومن ناحية أخرى ترتبط قيمة خط العرض به بشكل غير مباشر.
أخيرًا ، يمكنك أيضًا محاولة القيام ببعض هندسة الميزات من خلال دمج بعض السمات معًا. على سبيل المثال ، يمكن أن يكون إجمالي room_per_household إعلاميًا أكثر بكثير من إجمالي الغرف أو قيم الأسرة بشكل فردي.
تنظيف البيانات
في هذه الخطوة ، تقوم بإعداد البيانات لمشروع "التعلم الآلي". إنها الخطوة الأكثر أهمية والأكثر استهلاكا للوقت في خط الأنابيب بأكمله. يعتمد أداء النموذج إلى حد كبير على مدى جودة إعداد البيانات. عادة ، من الممارسات الجيدة كتابة وظائف لهذا الغرض لأنها ستسمح لك باستخدام هذه الوظائف عند الحاجة ويمكن استخدام نفس الوظائف في خط الإنتاج لإعداد البيانات الجديدة للتنبؤات.
إحدى أكثر المشكلات التي تواجه البيانات الحقيقية هي القيم المفقودة لبعض الإدخالات في مجموعة البيانات. هناك عدة طرق للتعامل معها. يمكنك حذف السمة بالكامل مباشرةً ولكن هذا ليس جيدًا جدًا للنموذج. يمكنك التخلص من الصف الذي يحتوي على قيمة واحدة مفقودة. هناك طريقة أخرى تُستخدم في الغالب وهي تعيين القيمة المفقودة على قيمة أخرى مثل الصفر أو المتوسط الحسابي للعمود بأكمله إذا كانت قيمة رقمية.
بالنسبة للقيم الفئوية ، من الأفضل تمثيلها بالأرقام وترميزها في ترميز واحد ساخن بحيث يسهل على النموذج العمل عليه. يوفر Scikit-Learn أيضًا فئة OneHotEncoder حتى نتمكن من تحويل القيم الفئوية بسهولة إلى متجهات واحدة ساخنة.

الشيء الآخر الذي يجب عليك الاهتمام به هو تحجيم الميزة. قد تكون هناك بعض السمات التي تكون نطاقات قيمتها شديدة للغاية. لذلك من الأفضل توسيع نطاقها إلى مقياس قياسي بحيث يمكن للنموذج العمل بسهولة مع هذه القيم وأداء أفضل.
اقرأ أيضًا عن: راتب مهندس تعلم الآلة في الهند
اختيار أفضل نموذج للتدريب
بعد الانتهاء من تنظيف البيانات وهندسة الميزات ، تصبح الخطوة التالية سهلة للغاية. الآن ، كل ما عليك فعله هو تدريب بعض النماذج الواعدة على البيانات ومعرفة النموذج الذي يعطي أفضل التنبؤات. هناك عدة طرق تساعدنا في اختيار أفضل طراز.
مثالنا على توقع أسعار المنازل في كاليفورنيا يمثل مشكلة انحدار. هذا يعني أنه يتعين علينا توقع قيمة من مجموعة من الأرقام والتي هي ، في هذه الحالة ، سعر المنزل.
الخطوة الأولى هنا هي تدريب بعض النماذج واختبارها على مجموعة التحقق من الصحة. يجب ألا تستخدم مجموعة الاختبار هنا حيث سيؤدي ذلك إلى زيادة التجهيز في مجموعة الاختبار وفي النهاية سيكون للنموذج تنظيم منخفض للغاية. من هذه النماذج ، يجب اختيار النموذج الذي يتمتع بدقة تدريب جيدة ودقة تحقق من الصحة في معظم الأوقات. قد يعتمد أيضًا على حالة الاستخدام حيث تتطلب بعض المهام تكوينات مختلفة عن غيرها.
نظرًا لأننا قمنا بالفعل بتنظيف البيانات ووظائف المعالجة المسبقة جاهزة ، فمن السهل جدًا تدريب نماذج مختلفة في ثلاثة إلى أربعة أسطر من التعليمات البرمجية باستخدام بعض الأطر مثل Scikit-Learn أو Keras. في Scikit-Learn ، لدينا أيضًا خيار التحقق المتقاطع الذي يساعد كثيرًا في العثور على معلمات تشعبية جيدة لنماذج مثل أشجار القرار.
صقل المعلمات الفائقة
بعد وضع بعض النماذج في القائمة المختصرة ، هناك حاجة إلى ضبط المعلمات الفائقة لإطلاق العنان لإمكاناتها الحقيقية. هناك طرق عديدة لتحقيق ذلك أيضًا. أحدها أنه يمكنك تغيير المعلمات الفائقة يدويًا وتدريب النماذج مرارًا وتكرارًا حتى تحصل على نتيجة مرضية. هنا يمكنك أن ترى بوضوح المشكلة المتمثلة في أنه لا يمكنك التحقق من أكبر عدد ممكن من التوليفات مثل المهام الآلية. إذن هنا يأتي في بعض الطرق الجيدة لأتمتة هذه الأشياء.
Grid Search هي ميزة رائعة تقدمها Scikit-Learn في شكل فئة GridSearchCV حيث تقوم بالتحقق المتبادل من تلقاء نفسها وتكتشف القيم المثالية للمعلمات الفائقة للحصول على نتائج أفضل. كل ما يتعين علينا القيام به هو ذكر المعلمات الفائقة التي يجب أن تجربها. إنها ميزة بسيطة لكنها قوية للغاية.
البحث العشوائي هو نهج آخر يمكن استخدامه لغرض مماثل. يعمل Grid Search بشكل جيد عندما يكون هناك مساحة صغيرة من المعلمات الفائقة ليتم تجربتها ولكن عندما يكون هناك عدد كبير من المعلمات الفائقة ، فمن الأفضل استخدام RandomizedSearchCV. يحاول استخدام معلمات تشعبية عشوائية ويخرج بأفضل القيم التي شهدها طوال الوقت.
أخيرًا وليس آخرًا ، هو نهج تعلم المجموعة . هنا يمكننا استخدام نماذج متعددة لإعطاء تنبؤاتهم الخاصة وفي النهاية ، يمكننا اختيار التنبؤ النهائي لمتوسط الكل. هذه طريقة واعدة للغاية وتفوز بالعديد من المسابقات على Kaggle.
بعد ضبط جميع المعلمات التشعبية للنموذج النهائي ، يمكنك بعد ذلك استخدام النموذج لعمل تنبؤات على مجموعة الاختبار. هنا يمكننا تقييم مدى جودة أداء النموذج في مجموعة الاختبار. تذكر أنه لا يجب عليك ضبط نموذجك بعد ذلك لزيادة الدقة في مجموعة الاختبار حيث سيؤدي ذلك إلى زيادة التجهيز على عينات مجموعة الاختبار.
تقديم النتائج
بمجرد اختيار أفضل نموذج وإجراء التقييم ، هناك حاجة لعرض النتائج بشكل صحيح. التصور هو المفتاح لإنشاء مشاريع أفضل للتعلم الآلي حيث يتعلق الأمر كله بالبيانات وفهم الأنماط الكامنة وراءها. يمكن أن تبدو النتائج الرقمية الأولية جيدة للأشخاص المطلعين بالفعل على هذا المجال ولكن من المهم جدًا تصورها على الرسوم البيانية والمخططات لأنها تجعل المشروع جذابًا ويمكن للجميع الحصول على صورة واضحة لما يحدث بالفعل في حلنا.
نشر النظام وصيانته
يصل معظم المتعلمين إلى هذه المرحلة من خط الأنابيب ويواجهون مشكلات هائلة أثناء محاولة نشر المشروع للتطبيق في سيناريو واقعي. من السهل جدًا إنشاء وتدريب النماذج في Jupyter Notebook ولكن الجزء المهم هو حفظ النموذج بنجاح ثم استخدامه في بيئة حية.
واحدة من أكثر المشاكل شيوعًا التي يواجهها مهندسو ML هي وجود اختلاف في البيانات التي يتم تلقيها مباشرة والبيانات التي قاموا بتدريب النموذج عليها. هنا يمكننا استخدام وظائف المعالجة المسبقة التي أنشأناها أثناء إنشاء خط الأنابيب لتدريب نماذجنا.
هناك نوعان من نماذج التعلم الآلي التي يمكن نشرها: نموذج عبر الإنترنت ونموذج غير متصل بالإنترنت. النموذج عبر الإنترنت هو النموذج الذي يستمر في التعلم من البيانات التي يتلقاها في الوقت الفعلي. لا تتعلم النماذج غير المتصلة بالإنترنت من العينات الجديدة ويجب تحديثها وصيانتها بشكل صحيح إذا كان هناك تغيير في نوع البيانات التي تتلقاها. لذلك يجب أن تكون هناك صيانة مناسبة لكلا النوعين من النماذج.
أثناء نشر نماذج التعلم الآلي ، يجب أن يتم تغليفها في نظام أساسي حتى يتمكن المستخدمون من التفاعل معها بسهولة. الخيارات واسعة ، يمكننا تغليفها في تطبيق ويب وتطبيق android و Restful API وغير ذلك الكثير. تعد المعرفة الأساسية لبناء مثل هذه التطبيقات أو واجهات برمجة التطبيقات نقطة إضافية ضخمة. يجب أن تكون قادرًا على نشر تطبيقات NodeJS أو Python على الخدمات السحابية مثل Google Cloud Platforms أو Amazon Web Services أو Microsoft Azure.

إذا لم تكن مرتاحًا لبعض أطر العمل مثل Django أو Flask ، فيمكنك تجربة Streamlit الذي يسمح لك بنشر كود Python في شكل تطبيق ويب في بضعة أسطر من التعليمات البرمجية الإضافية. هناك العديد من هذه المكتبات والأطر التي يمكن استكشافها.
خاتمة
لاختتام هذه المقالة بأكملها ، أود أن أقول إن مشاريع التعلم الآلي مختلفة تمامًا عن المشاريع التقليدية الأخرى من حيث خط الأنابيب ، وإذا تمكنت من إتقان خط الأنابيب هذا ، فسيصبح كل شيء آخر أسهل بكثير.
بعض أهم خطوات هذا المسار من النهاية إلى النهاية والتي يميل العديد من المبتدئين إلى إهمالها هي تنظيف البيانات ونشر النموذج. إذا تم الاهتمام بهذه الخطوات ، فسيكون باقي الجزء مثل أي مشروع آخر.
يساعدك اتباع هذه الخطوات ووجود مجموعة خط أنابيب للمشاريع في الحصول على رؤية واضحة حول المهام ، ويصبح تصحيح المشكلات أكثر قابلية للإدارة. لذا أقترح عليك متابعة هذه الخطوات ومحاولة تنفيذ مشروع التعلم الآلي الشامل الخاص بك باستخدام قائمة التحقق هذه. اختر بيان المشكلة ، وابحث عن مجموعة البيانات ، وانتقل للاستمتاع بمشروعك!
إذا كنت مهتمًا بمعرفة المزيد حول التعلم الآلي ، فراجع دبلوم PG في IIIT-B & upGrad في التعلم الآلي والذكاء الاصطناعي المصمم للمهنيين العاملين ويقدم أكثر من 450 ساعة من التدريب الصارم ، وأكثر من 30 دراسة حالة ومهمة ، IIIT- حالة الخريجين B ، أكثر من 5 مشاريع تتويجا عملية ومساعدة وظيفية مع أفضل الشركات.
ما هو التعلم الآلي أو ML؟
يشار إلى قدرة النظام على تعلم مهمة ما دون أن تتم برمجته بشكل صريح من البيانات المقدمة باسم التعلم الآلي. يركز هذا المجال على تطوير برامج الكمبيوتر التي يمكنها الوصول إلى البيانات والتعلم بمفردها. إنه حقل فرعي من موضوع الذكاء الاصطناعي الواسع (AI). يتم تنفيذ التعلم الآلي في جميع القطاعات تقريبًا لزيادة الإنتاجية والتسويق والمبيعات وسعادة العملاء وأرباح الشركات. كان العديد من خبراء تكنولوجيا المعلومات مهتمين بهذا الأمر ، وهم يفكرون في تغيير المهن.
ما هي مشاريع ML من طرف إلى طرف؟
تتضمن مشاريع التعلم الآلي الشامل خطوات مثل إعداد البيانات ، وتدريب نموذج عليها ، ونشر هذا النموذج. يتكون من خطوط الأنابيب وهي طرق كتابة الكود وأتمتة عملية العمل. تؤدي خطوط الأنابيب هذه ، عند تجميعها بشكل صحيح ، إلى تشكيل مشروع تعلم آلي ناجح. إن فهم بيان المشكلة ، والحصول على البيانات المناسبة ، وفهم البيانات ، وتنظيف البيانات ، واختيار النموذج الأمثل للتدريب ، والضبط الدقيق للمعلمات الفائقة ، وتقديم النتائج ليست سوى بعض المراحل المعنية.
ما هي المعلمات الفائقة في التعلم الآلي؟
المعلمة الفائقة هي معلمة في التعلم الآلي تُستخدم قيمتها للتأثير على عملية التعلم. يمكن تصنيفها إلى جزأين ، معلمات تشعبية نموذجية وخوارزمية معلمات تشعبية. لا يمكن افتراض نموذج Hyperparameters أثناء تقديم الجهاز لمجموعة التدريب لأنها توجه إلى مهمة اختيار النموذج. في المقابل ، لا تؤثر المعلمات الفائقة للخوارزمية على أداء النموذج ولكنها تؤثر على سرعة وجودة عملية التعلم. تتطلب تقنيات التدريب النموذجية المختلفة معلمات تشعبية مختلفة ، ولكن هناك بعض الخوارزميات الأساسية التي لا تحتاج إلى أي معلمات تشعبية.