تخصيص نماذج التعلم الآلي: الطريقة السهلة

1. مقدمة

2a934d0e86f14118.png

تاريخ آخر تعديل: 28/03/2022

تعلُّم الآلة

يتطور التعلم الآلي بسرعة كبيرة. ويتم إطلاق أبحاث وإمكانيات جديدة كل يوم لتمكين حالات الاستخدام التي لم تكن متاحة من قبل.

عادة ما يكون لهذه الإصدارات نموذج نتيجة. يمكن فهم النماذج على أنها معادلات رياضية طويلة جدًا تؤدي مدخلاً (مثل: صورة) إلى الحصول على نتيجة (مثل التصنيف)

  • ماذا لو كنت تريد استخدام أحد هذه النماذج الجديدة مع بياناتك الخاصة؟
  • كيف يمكنك الاستفادة من نماذج "الأحدث" هذه في حالة استخدامك أو في تطبيقك؟

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

يواجه إنشاء نماذج تعلُّم الآلة وتدريبها العديد من التحديات:

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

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

في هذا الدرس التطبيقي حول الترميز، ستتعرّف على كيفية تنفيذ عملية Transfer Learning والغرض من تنفيذها وحالات استخدامها.

المعلومات التي ستطّلع عليها

  • تعريف عملية Transfer Learning ومتى يتم استخدامها.
  • كيفية استخدام ميزة "نقل التعلُّم"
  • كيفية ضبط النماذج
  • كيفية استخدام أداة إنشاء النماذج TensorFlow Lite.
  • كيفية استخدام TensorFlow Hub

المتطلبات

  • يتم تنفيذ جميع الرموز البرمجية باستخدام Google Colaboratory، لذلك لن تحتاج إلى تثبيت أي برامج على جهازك. تحتاج فقط إلى الاتصال بالإنترنت وحساب على Google لتسجيل الدخول إلى Colab.
  • معرفة أساسية بمنصة TensorFlow وKeras API
  • معرفة لغة بايثون.

إذا لم تكن لديك معرفة أساسية بـ TensorFlow أو تعلُّم الآلة، لا يزال بإمكانك الاطّلاع على معلومات حول ميزة Transfer Learning. الاطّلاع على الخطوة التالية "ما المقصود بتعلم النقل؟" للنظرية الكامنة وراء التقنية ثم تابع إلى "نقل التعلم باستخدام مصمم النماذج". لمزيد من التفاصيل حول هذه العملية، يمكنك الاطّلاع عليها في الأقسام الخاصة بعملية "نقل التعلُّم" باستخدام TensorFlow Hub.

2. ما هو تعلُّم النقل؟

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

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

هناك طريقتان لتخصيص نموذج تعلُّم الآلة

  • استخراج الميزات: استخدِم التمثيلات التي تعرّفت عليها شبكة سابقة لاستخراج الميزات المهمة من النماذج الجديدة. يمكنك ببساطة إضافة مصنِّف جديد، تم تدريبه من البداية، إلى جانب النموذج المدرَّب مسبقًا بحيث يمكنك إعادة استخدام خرائط الميزات التي تم تعلمها سابقًا في مجموعة البيانات. ولا تحتاج إلى إعادة تدريب النموذج بالكامل. تحتوي الشبكة الالتفافية الأساسية بالفعل على ميزات مفيدة بشكل عام لتصنيف الصور. ورغم ذلك، فإن الجزء الأخير من التصنيف في النموذج المدرّب مسبقًا يكون خاصًا بمهمة التصنيف الأصلية، وبالتالي فهو خاص بمجموعة الفئات التي تم تطبيق النموذج عليها.
  • الضبط الدقيق: عليك إلغاء تجميد بعض الطبقات العليا من قاعدة النموذج المجمّد والتدريب بشكل مشترك على كلّ من طبقات المصنِّف المُضافة حديثًا والطبقات الأخيرة من النموذج الأساسي. يتيح لنا ذلك "التوليف الدقيق" تمثيلات الميزات الأعلى ترتيبًا في النموذج الأساسي لجعلها أكثر صلة بالمهمة المحددة.

يمكنك تدريب ميزات استخراج الميزات بسرعة أكبر، ولكن يمكنك تحقيق نتائج أفضل من خلال ميزة التوليف الدقيق.

ستجرّب كلاً من (استخراج الميزات والضبط الدقيق) باستخدام طريقتين مختلفتين لإجراء تعلم النقل:

  • تُنفّذ مكتبة أداة تصميم النماذج TensorFlow Lite تلقائيًا معظم مسار إنشاء البيانات والنماذج، ما يجعل هذه العملية أسهل بكثير. ويمكن أيضًا تصدير النموذج الناتج بسهولة لاستخدامه على الأجهزة الجوّالة والمتصفحات.
  • تستفيد نماذج TensorFlow Hub من المستودع الواسع لنماذج تعلُّم الآلة المتوفّرة على TensorFlow Hub. يساهم الباحثون والمجتمع في هذه النماذج في جعل النماذج الحديثة متاحة بشكل أسرع وبمجموعة أكبر.

3- نقل التعلّم باستخدام مصمم النماذج

الآن بعد أن تعرّفت على فكرة تطبيق Transfer Learning، لنبدأ في استخدام مكتبة 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.

صورة لصفحة tfhub.dev الرئيسية

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

يمكن متجهات الميزات تحويل الصور إلى تمثيل رقمي في الفراغ N (حيث إن N هو عدد أبعاد طبقة إخراج النموذج).

على TFHub، يمكنك البحث تحديدًا عن Feature Vectors من خلال النقر على بطاقة معيّنة.

صورة لصفحة tfhub.dev تحتوي على مربع يبرز مهمة متجه الميزة

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

هذه صورة لصفحة البحث من tfhub.dev بعد اختيار مهمة متجه الميزات في الصفحة الرئيسية.

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

هذه صفحة مجموعة الصور من tfhub.dev

انتقِل إلى الأسفل واختَر MobileNet V3. سيعمل أي من متجهات الخصائص.

هذه صفحة مجموعة الصور من tfhub.dev تم الانتقال إليها بعض الشيء من الصفحة السابقة.

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

صفحة تفاصيل نموذج متّجه لميزة mobilenetV3

الآن، كل ما تحتاجه هو عنوان URL في الأعلى. هذا هو الاسم المعرِّف للنموذج والطريقة التي يمكنك من خلالها الوصول بسهولة إلى أحد النماذج من مكتبة TensorFlow Hub.

5- نقل التعلّم باستخدام TensorFlow Hub

والآن وبعد أن اخترت نموذجًا لاستخدامه، يمكنك تخصيصه من خلال تحميله باستخدام طريقة KerasLayer من مكتبة TensorFlow Hub.

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

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

Colaboratory

لننتقل بعد ذلك إلى Google Colab لتدريب النموذج المخصَّص.

يستغرِق الاطّلاع على الشرح وفهم أساسيات الدفتر 20 دقيقة تقريبًا.

الإيجابيات:

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

السلبيات

  • لا تزال بحاجة إلى بعض الخبرة في TensorFlow/Keras لاستخدام النماذج.

إذا كنت تريد التعمق أكثر، يمكنك أيضًا إجراء نقل التعلّم باستخدام تطبيق Keras. هذه عملية مشابهة إلى حدّ كبير لاستخدام TensorFlow Hub، ولكنّها لا تتضمّن سوى واجهات برمجة تطبيقات TensorFlow الأساسية.

6- تهانينا

تهانينا، لقد تعلمت ما هو Transfer Learning وكيفية تطبيقه على بياناتك!

في هذا الدرس التطبيقي حول الترميز، تعلّمت كيفية تخصيص نماذج تعلُّم الآلة لبياناتك الخاصة باستخدام أسلوب يُعرف باسم "نقل التعلّم".

لقد جرّبت نموذجَين من "نقل التعلّم إلى المحتوى":

  • استخدام أداة مثل TensorFlow Lite model Maker
  • استخدام متجه الميزات من TensorFlow Hub

ولكل من الخيارين مزاياه وعيوبه، والعديد من التكوينات الممكنة لاحتياجاتك الخاصة

لقد تعلمت أيضًا أنه يمكنك التقدم قليلاً وضبط النماذج عن طريق تعديل أوزانها قليلاً لتناسب بياناتك بشكل أفضل.

يمكن لكلا الخيارين ضبط النماذج بدقة.

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

الخطوات التالية

  • جرِّب ذلك باستخدام بياناتك الخاصة.
  • شارِكنا المحتوى الذي تصنعه وأضِف إشارات إلى TensorFlow على وسائل التواصل الاجتماعي ضِمن مشاريعك.

مزيد من المعلومات

هل لديك سؤال؟