Please reload

التدوينات الحديثة

بقلم ماثيو مايو

 

 

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

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

 

يُشكّل تحضير البيانات 80% من تعلم الآلة، لذلك...

لقد نُوقش إلى حد كبير أن إعداد البيانات يستغرق وقتًا غير متناسب في مهمة التعلم الآلي. أو، على الأقل، ما يبدو أنه مقدار وقت غير متناسب.

 

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

 

 

مصدر الصورة

 

 

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

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

 

للحصول على مزيد من المعلومات العملية حول إعداد البيانات، إليك بعض الأماكن للبدء بها:

(سبعة خطوات لإتقان تحضير البيانات مع بايثون)

(تدفق التعلم الالي في بايثون من الصفر الجزء الأول: إعداد البيانات)

 

2- قيمة خط الأساس للأداء

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

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

لا يعد التخمين العشوائي الاستراتيجية الأفضل لخط الأساس؛ بدلاً من ذلك، توجد طرق مقبولة لتحديد دقة خط الأساس للمقارنة. يوفر سكيت ليرن ( Scikit-learn)، على سبيل المثال، سلسلة من المصنفات الأساسية في فئته ديمي كلاسيفر (DummyClassifier):

  • يولد stratified (الطبقية)تنبؤات عشوائية عن طريق مراعاة مجموعات التوزيع.

  • يتنبأ most_frequent (الأكثر شيوعًا) دائما بالتصنيف الأكثر شيوعا في مجموعة التدريب.

  • يتنبأ prior (السابق) دائما بالمجموعة التي تعمل على زيادة المجموعة السابقة (مثل most_frequent) وتظهر predict_proba (تنبأ) المجموعة السابقة.

  • يولد uniform (التوحيد) التنبؤات موحدة عشوائيا.

  • يتنبأ constant (ثابت) دائما بتصنيف ثابت يقدمه المستخدم.

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

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

التحقق: ما بعد التدريب والاختبار

 

عندما نبني نماذج التعلم الآلي، نقوم بتدريبهم باستخدام بيانات التدريب. عندما نختبر النماذج الناتجة، نستخدم بيانات الاختبار. فأين يأتي التحقق من الصحة؟

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

  • يتم استخداممجموعة التدريب لتدريب نموذج معين.

  • يتم استخداممجموعة التحقق من الصحة للاختيار بين النماذج (على سبيل المثال، هل تعمل الغابة العشوائية أو الشبكة العصبية بشكل أفضل لمشكلتك؟ هل تريد غابة عشوائية تحتوي على 40 شجرة أو 50 شجرة؟)

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

 

 

 مصدر الصورة

 

 

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

تمتلك Kaggle حاليًا منافسة للتنبؤ بالمبيعات في سلسلة متاجر البقالة الأكوادورية. تبدأ "بيانات التدريب" الخاصة بـ Kaggle من 1 يناير 2013 إلى 15 أغسطس 2017، وتمتد بيانات الاختبار من 16 أغسطس 2017 إلى 31 أغسطس 2017. ويتمثل النهج الجيد  في استخدام 1 أغسطس - 15 أغسطس 2017 بوصفها مجموعة التحقق الخاصة بك، وجميع البيانات السابقة كمجموعة التدريب الخاصة بك.

 

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

 

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

عندما تكون التقسيمات العشوائية مجدية، ربما لا يدعم برنامج (سيكيت لرن) عملية train_validate_test_split

ولكن يمكنك الاستفادة من مكتبات بايثون القياسية لإنشاء مكتبتك الخاصة، مثل الموجودة هنا.

 

4-  يوجد الكثير ليتم تجميعه أكثر من مجموعة من الأشجار

 

يمكن أن يمثل اختيار الخوارزمية تحديًا للمستجدين في مجال التعلم الآلي. في كثير من الأحيان عند بناء المصنفات، وخاصة للمبتدئين، يتم اعتماد نهج لحل المشكلات التي تعتبر حالات فردية من الخوارزميات الفردية.

 

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

 

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

 

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

 

تعبئة أو تجميع ( البوت ستراب bootstrap)

 

التعزيز يشبه التعبئة، ولكن مع تعديل مفهومي واحد. فبدلاً من تعيين وزن متساوٍ للنماذج، يعين التعزيز أوزان متفاوتة للمصنفات، ويستمد النتيجته النهائية على أساس التصويت المرجح.

 

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

 

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

 

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

 

للحصول على بعض التفاصيل الإضافية، اقرأ هذه المقدمة إلى مجموعة المتعلمين. ويمكنك قراءة المزيد عن تنفيذ مجموعات في (البايثون) في هذا البرنامج التعليمي الشامل.

 

5- (قوقل كولاب Google Colab )؟

 

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

 

يتم تكوين (كولابرتوري Colaboratory) مسبقًا مع عدد من مكتبات (البايثون Python) الأكثر شيوعًا، ويمكن تثبيت المزيد داخل المكتبات نفسها بفضل إدارة الحزم المدعومة. على سبيل المثال: يتم شمل (تنسر فلو TensorFlow)، ولا يتم شمل (كَرس Keras)، ولكن تثبيت (كَرس) عبر النقطة يستغرق بضع ثوان.

 

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

 

المصدر

Share on Facebook
Share on Twitter
Please reload

تابعنا
ابحث بالتاق
Please reload

الارشيف
  • Black Instagram Icon
  • Black Twitter Icon

Riyadh, Saudi Arabia

  • Black Instagram Icon
  • Black Twitter Icon

الرياض، المملكة العربية السعودية