1. مقدمة

تاريخ آخر تعديل: 2022-03-28
تعلُّم الآلة
تتطوّر تكنولوجيا تعلُّم الآلة بسرعة فائقة. يتم إصدار أبحاث وإمكانات جديدة كل يوم، ما يتيح حالات استخدام لم تكن ممكنة من قبل.
عادةً ما ينتج عن هذه الإصدارات نموذج. يمكن فهم النماذج على أنّها معادلات رياضية طويلة جدًا، وعند إدخال بيانات (مثل صورة) إليها، تعرض نتيجة (مثل تصنيف).
- ماذا لو أردت استخدام أحد هذه النماذج الجديدة مع بياناتك؟
- كيف يمكن الاستفادة من هذه النماذج المتطوّرة في حالة الاستخدام أو في تطبيقك؟
سيرشدك هذا الدرس التطبيقي حول الترميز إلى كيفية تخصيص نماذج تعلُّم الآلة لبياناتك بسهولة.
تتضمّن عملية إنشاء نماذج تعلُّم الآلة وتدريبها العديد من التحديات، منها:
- يستغرق وقتًا طويلاً.
- تستهلك كميات كبيرة من البيانات.
- أن يكون لديك خبرة في مجالات مثل الرياضيات والإحصاء
- تتطلّب موارد كثيرة: قد يستغرق تدريب بعض النماذج عدة أيام.
يستغرق إنشاء تصاميم نماذج جديدة الكثير من الوقت، وقد يتطلّب العديد من التجارب وسنوات من الخبرة. ولكن ماذا لو كان بإمكانك الاستفادة من كل هذه المعرفة واستخدامها في بياناتك الخاصة من خلال تخصيص أحدث الأبحاث لمشكلتك؟ يمكن تحقيق ذلك باستخدام أسلوب يُعرف باسم التعلم النقلي.
في هذا الدرس التطبيقي حول الترميز، ستتعرّف على كيفية إجراء عملية التعلّم القائم على نقل المهام وسبب نجاحها وحالات استخدامها.
ما ستتعلمه
- مفهوم التعلّم النقلي ومتى يجب استخدامه
- كيفية استخدام ميزة "التعلم النّقلي"
- كيفية ضبط النماذج بدقة
- كيفية استخدام أداة TensorFlow Lite Model Maker
- كيفية استخدام TensorFlow Hub
المتطلبات
- يتم تنفيذ جميع الرموز البرمجية باستخدام Google Colaboratory، لذا لن تحتاج إلى تثبيت أي شيء على جهازك. كل ما تحتاج إليه هو الوصول إلى الإنترنت وحساب Google لتسجيل الدخول إلى Colab.
- معرفة أساسية بمنصة TensorFlow وواجهة برمجة التطبيقات Keras
- الإلمام بلغة Python
إذا لم تكن لديك معرفة أساسية بـ TensorFlow أو تعلُّم الآلة، سيظل بإمكانك التعرّف على "التعلُّم النقلي". اقرأ الخطوة التالية "ما هو التعلّم النقلي" للتعرّف على النظرية الكامنة وراء هذه التقنية، ثم انتقِل إلى "التعلّم النقلي باستخدام Model Maker". إذا أردت التعرّف على العملية بتفصيل أكبر، ستجد ذلك في الأقسام حول "التعلم النقلي" باستخدام TensorFlow Hub.
2. ما هو التعلّم القائم على نقل المهام؟
النموذج المدرَّب مسبقًا هو شبكة محفوظة تم تدريبها سابقًا على مجموعة بيانات كبيرة، وعادةً ما يكون ذلك في مهمة تصنيف صور واسعة النطاق. يمكنك إما استخدام النموذج المدرَّب مسبقًا كما هو، أو استخدام التعلّم القائم على نقل المهام لتخصيص هذا النموذج لمهمة معيّنة.
تعتمد فكرة التعلّم القائم على نقل المهام لتصنيف الصور على أنّه إذا تم تدريب نموذج على مجموعة بيانات كبيرة وعامة بما يكفي، سيصبح هذا النموذج نموذجًا عامًا فعالاً للعالم المرئي. يمكنك بعد ذلك الاستفادة من خرائط الميزات التي تم التعرّف عليها بدون الحاجة إلى البدء من الصفر من خلال تدريب نموذج كبير على مجموعة بيانات كبيرة.
هناك طريقتان لتخصيص نموذج تعلُّم آلي
- استخراج الميزات: استخدِم التمثيلات التي تعلّمتها شبكة سابقة لاستخراج ميزات مهمة من عيّنات جديدة. ما عليك سوى إضافة مصنّف جديد يتم تدريبه من البداية، وذلك فوق النموذج المدرَّب مسبقًا حتى تتمكّن من إعادة استخدام خرائط الميزات التي تم تعلّمها سابقًا لمجموعة البيانات. لست بحاجة إلى (إعادة) تدريب النموذج بأكمله. تحتوي شبكة الالتفاف الأساسية على ميزات مفيدة بشكل عام لتصنيف الصور. ومع ذلك، فإنّ جزء التصنيف النهائي من النموذج المُدرَّب مسبقًا يكون خاصًا بمهمة التصنيف الأصلية، وبالتالي خاصًا بمجموعة الفئات التي تم تدريب النموذج عليها.
- الضبط الدقيق: إلغاء تجميد بعض الطبقات العليا من قاعدة النموذج المجمَّد وتدريب كلّ من طبقات المصنّف المُضافة حديثًا والطبقات الأخيرة من النموذج الأساسي بشكلٍ مشترك يتيح لنا ذلك "تحسين" تمثيلات الميزات ذات الترتيب الأعلى في النموذج الأساسي لجعلها أكثر صلة بالمهمة المحدّدة.
تكون عملية تدريب استخراج الميزات أسرع، ولكن يمكنك تحقيق نتائج أفضل باستخدام ميزة "الضبط الدقيق".
ستجرّب كلتا الطريقتَين (استخراج الميزات والضبط الدقيق) باستخدام طريقتَين مختلفتَين لتنفيذ عملية التعلّم النّقلي:
- تنفّذ مكتبة TensorFlow Lite Model Maker تلقائيًا معظم عمليات إنشاء مسار البيانات والنموذج، ما يجعل العملية أسهل بكثير. ويمكن أيضًا تصدير النموذج الناتج بسهولة لاستخدامه على الأجهزة الجوّالة وفي المتصفّح.
- تستفيد نماذج TensorFlow Hub من المستودع الضخم لنماذج تعلُّم الآلة المتوفّرة على TensorFlow Hub. يساهم الباحثون والمنتدى في تطوير هذه النماذج، ما يتيح توفير أحدث النماذج بشكل أسرع وبمجموعة أكبر.
3- التعلّم القائم على نقل المهام باستخدام Model Maker
بعد أن تعرّفت على فكرة "التعلم النّقلي"، لنبدأ باستخدام مكتبة TensorFlow Lite Model Maker، وهي أداة تساعد في تنفيذ ذلك بطريقة سهلة.
مكتبة TensorFlow Lite Model Maker هي مكتبة مفتوحة المصدر تسهّل عملية التعلّم القائم على نقل المهام وتجعلها أكثر سهولة للمطوّرين غير المتخصّصين في تعلُّم الآلة، مثل مطوّري تطبيقات الأجهزة الجوّالة والويب.
ترشدك ورقة ملاحظات Colab إلى الخطوات التالية:
- حمِّل البيانات.
- تقسيم البيانات
- إنشاء النموذج وتدريبه
- قيِّم النموذج.
- صدِّر النموذج.
بعد هذه الخطوة، يمكنك البدء في إجراء عملية نقل التعلّم باستخدام بياناتك الخاصة باتّباع العملية نفسها تمامًا.
Colaboratory
بعد ذلك، لننتقل إلى Google Colab لتدريب النموذج المخصّص.
يستغرق الأمر حوالي 15 دقيقة لمراجعة الشرح وفهم أساسيات دفتر الملاحظات.
الإيجابيات:
- طريقة سهلة لتخصيص النماذج
- لا حاجة إلى فهم TensorFlow أو Keras API.
- أداة مفتوحة المصدر يمكن تغييرها إذا كان المستخدم بحاجة إلى شيء محدّد لم يتم تنفيذه بعد.
- تصدير النموذج مباشرةً لتنفيذه على الأجهزة الجوّالة أو المتصفّحات
السلبيات
- خيارات إعداد أقل من إنشاء المسار الكامل والنموذج بنفسك، كما هو الحال مع الطريقتَين السابقتَين
- حتى عند اختيار النموذج الأساسي، لا يمكن استخدام جميع النماذج كنموذج أساسي.
- غير مناسبة لكميات كبيرة من البيانات حيث يكون مسار نقل البيانات أكثر تعقيدًا.
4. العثور على نموذج على TensorFlow Hub
في نهاية هذا القسم، سيكون بإمكانك:
- يمكنك العثور على نماذج لتعلُّم الآلة على TensorFlow Hub.
- التعرّف على المجموعات
- التعرّف على الأنواع المختلفة من النماذج
لتنفيذ عملية نقل التعلّم، عليك البدء بأمرين:
- البيانات، مثل الصور من المواضيع التي تريد التعرّف عليها
- نموذج أساسي يمكنك تخصيصه ليناسب بياناتك
يعتمد جزء البيانات عادةً على النشاط التجاري، ولكن أسهل طريقة هي التقاط الكثير من الصور لما تريد التعرّف عليه. ماذا عن النموذج الأساسي؟ أين يمكن العثور على هذه الأجهزة؟ هنا يأتي دور TensorFlow Hub.
TensorFlow Hub هو مستودع النماذج الذي يلبّي احتياجاتك من نماذج TensorFlow.
يمكنك البحث عن مستندات الآلاف من النماذج وقراءتها، وهي متاحة لك للاستخدام، والعديد منها جاهز لعملية "نقل التعلّم" و"الضبط الدقيق".
البحث عن نموذج
لنبدأ أولاً بإجراء بحث بسيط عن النماذج التي يمكن استخدامها على TensorFlow Hub والتي يمكنك استخدامها في الرمز لاحقًا.
الخطوة 1: في المتصفّح، افتح الموقع الإلكتروني tfhub.dev.

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

يمكنك أيضًا البحث عن اسم نموذج باستخدام الفلتر على اليمين لعرض Image feature vectors فقط.

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

انتقِل إلى أسفل الشاشة وانقر على MobileNet V3. يمكن استخدام أي من متجهات الميزات.

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

في الوقت الحالي، كل ما تحتاجه هو عنوان URL في أعلى الصفحة. هذا هو معرّف النموذج والطريقة التي يمكنك من خلالها الوصول بسهولة إلى نموذج من مكتبة TensorFlow Hub.
5- التعلّم القائم على نقل المهام باستخدام TensorFlow Hub
بعد اختيار نموذج لاستخدامه، لنخصّصه من خلال تحميله باستخدام طريقة KerasLayer من مكتبة TensorFlow Hub.
تحمّل هذه الطريقة نموذجًا بطريقة يمكن استخدامها كطبقة على النموذج، ما يتيح لك إنشاء النموذج حول هذه الطبقة.
في السابق، عندما تعلّمت كيفية استخدام أداة Model Maker، كانت جميع التفاصيل الداخلية مخفية عنك لتسهيل فهمها. لا، بل ستتمكّن من الاطّلاع على ما تفعله أداة Model Maker في الخلفية.
Colaboratory
بعد ذلك، لننتقل إلى Google Colab لتدريب النموذج المخصّص.
يستغرق استعراض الشرح وفهم أساسيات دفتر الملاحظات حوالي 20 دقيقة.
الإيجابيات:
- آلاف النماذج المتاحة التي ساهم بها الباحثون والمجتمع، والتي تم تدريبها على مجموعة متنوعة من مجموعات البيانات
- نماذج لجميع المهام، مثل الرؤية والنص والصوت
- سهولة تجربة نماذج مختلفة مشابهة قد يتطلّب تغيير النموذج الأساسي تغيير سلسلة واحدة فقط.
السلبيات
- لا يزال يتطلّب بعض الخبرة في TensorFlow/Keras لاستخدام النماذج.
إذا أردت التعمّق أكثر، يمكنك أيضًا إجراء التعلم النقولي باستخدام تطبيق Keras. هذه العملية مشابهة جدًا لاستخدام TensorFlow Hub، ولكن مع واجهات برمجة تطبيقات TensorFlow الأساسية فقط.
6. تهانينا
تهانينا، لقد تعرّفت على مفهوم "التعلّم النّقلي" وكيفية تطبيقه على بياناتك.
في هذا الدرس التطبيقي حول الترميز، تعلّمت كيفية تخصيص نماذج تعلُّم الآلة لتناسب بياناتك باستخدام تقنية تُعرف باسم "التعلّم القائم على نقل المهام".
جرّبت نوعَين من التعلّم النقلي:
- استخدام أداة مثل TensorFlow Lite Model Maker
- استخدام "متّجه الميزات" من TensorFlow Hub
لكل من الخيارَين مزايا وعيوب، والعديد من الإعدادات الممكنة لتلبية احتياجاتك الخاصة
لقد تعلّمت أيضًا أنّه يمكنك المضي قدمًا قليلاً وتحسين النماذج من خلال تعديل أوزانها بشكل أكبر لتناسب بياناتك بشكل أفضل.
يمكن لكلا الخيارَين إجراء تعديلات دقيقة على النماذج.
لا يقتصر استخدام ميزتَي "نقل التعلّم" و"الضبط الدقيق" على النماذج المرتبطة بالصور فقط. بما أنّ الفكرة هي استخدام تمثيل تم تعلّمه لمجال معيّن من أجل التوافق مع مجموعة البيانات، يمكن أيضًا استخدام هذه الطريقة مع مجالات النصوص والصوت.
الخطوات التالية
- جرِّبها باستخدام بياناتك.
- شارِكنا ما تصنعه وأشِر إلى TensorFlow على وسائل التواصل الاجتماعي في مشاريعك.
مزيد من المعلومات
- لمزيد من المعلومات عن الضبط الدقيق لنماذج State of the Art، مثل BERT، يمكنك الاطّلاع على الضبط الدقيق لنموذج BERT.
- لمزيد من المعلومات حول ميزة "التعلّم القائم على نقل المهام" لنماذج الصوت، يُرجى الاطّلاع على التعلّم القائم على نقل المهام باستخدام YAMNet لتصنيف الأصوات المحيطة.