0Pricing
Learn AI with Python · درس

مفاهيم واستراتيجيات التعلم بالنقل

استخراج الميزات مقابل الضبط الدقيق، والطبقات المجمدة، ومتى يفيد التعلم بالنقل

مفاهيم واستراتيجيات التعلم بالنقل درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ما التعلم بالنقل؟

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

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

أساس ImageNet

تُدرَّب معظم نماذج الرؤية المدرّبة مسبقًا على ImageNet، التي تضم تقريبًا 1.4 مليون صورة موزعة على 1000 فئة.

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

لماذا تنتقل السمات المبكرة

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

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

الاستراتيجية 1: استخراج السمات

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

استخدموا هذه الطريقة عندما تكون مجموعة البيانات صغيرة ومشابهة لـ ImageNet. فهي سريعة وتقاوم فرط التخصيص لأن عدد المعلمات القابلة للتدريب قليل.

base.trainable = False

model = Sequential([
    base,                      # frozen ImageNet features
    GlobalAveragePooling2D(),
    Dense(num_classes, activation="softmax")  # only this trains
])

الاستراتيجية 2: الضبط الدقيق

يُلغي الضبط الدقيق تجميد الطبقات العليا من النموذج الأساسي ويعيد تدريبها مع الرأس، مما يتيح للشبكة تكييف سماتها عالية المستوى مع بياناتكم المحددة.

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

استخراج السمات مقابل الضبط الدقيق

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

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

متطلبات حجم البيانات

يحدد مقدار البيانات المتوفرة لديكم الاستراتيجية المناسبة:

  • بضع مئات من الصور: استخراج السمات فقط، مع تجميد كل شيء.
  • بضعة آلاف من الصور: استخراج السمات، ثم إجراء ضبط دقيق للطبقات العليا القليلة.
  • عشرات الآلاف أو أكثر: إجراء ضبط دقيق لأجزاء أكبر من النموذج الأساسي، وربما للشبكة بأكملها.

كلما قلت البيانات، جمّدوا عددًا أكبر من الطبقات، لأن تقليل عدد المعلمات القابلة للتدريب يقلل خطر فرط التخصيص.

استبدال رأس التصنيف

تنتج نماذج ImageNet عددًا قدره 1000 فئة. ومن المحتمل أن يكون لمهمتكم عدد مختلف، لذا أزيلوا الرأس العلوي الأصلي باستخدام include_top=False وأضيفوا رأسًا خاصًا بكم بالحجم الموافق لعدد الفئات.

from tensorflow.keras import layers, Model

x = base.output
x = layers.GlobalAveragePooling2D()(x)
x = layers.Dropout(0.2)(x)
outputs = layers.Dense(5, activation="softmax")(x)  # 5 custom classes
model = Model(base.input, outputs)

يجب أن تتطابق المعالجة المسبقة

يتوقع كل نوع من النماذج المدرّبة مسبقًا أن تكون المدخلات مُقاسة بالطريقة نفسها التي استُخدمت أثناء تدريبها على ImageNet. لذلك يُعد استخدام preprocess_input المطابق أمرًا ضروريًا، وإلا انهارت الدقة.

from tensorflow.keras.applications.resnet50 import preprocess_input

# Scale pixels exactly as ResNet50 expects
x = preprocess_input(raw_image_batch)

الانضباط في معدل التعلم

يُعد معدل التعلم العادي، مثل 1e-3، مناسبًا أثناء استخراج السمات، لأن الرأس الجديد وحده هو الذي يتدرب.

أما أثناء الضبط الدقيق، فيجب خفضه إلى قيمة صغيرة جدًا مثل 1e-5. فالتحديثات الكبيرة قد تمحو أوزان ImageNet التي جرى تعلمها بعناية، وهو تأثير يُسمى النسيان الكارثي.

سير العمل المعتاد

  1. حمّلوا نموذجًا أساسيًا مدرّبًا مسبقًا باستخدام include_top=False.
  2. جمّدوه ودرّبوا رأسًا جديدًا، وهذا هو استخراج السمات.
  3. ألغوا تجميد الطبقات العليا وأعيدوا تدريبها بمعدل تعلم صغير جدًا، وهذا هو الضبط الدقيق.
  4. قيّموا النموذج وحوّلوه للنشر.

يحقق هذا النهج المرحلي دقة قوية حتى مع مجموعات البيانات محدودة الحجم.

اختبار سريع

اختبروا فهمكم لاستراتيجيات التعلم بالنقل.

مراجعة

تعلّمتم أن التعلم بالنقل يعيد استخدام السمات المدرّبة مسبقًا على ImageNet، التي تضم 1.4 مليون صورة و1000 فئة. ويجمّد استخراج السمات النموذج الأساسي لمجموعات البيانات الصغيرة أو المتشابهة، بينما يلغي الضبط الدقيق تجميد الطبقات العليا باستخدام معدل تعلم صغير جدًا للبيانات الأكبر أو المختلفة.

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

الأسئلة الشائعة

هل درس «مفاهيم واستراتيجيات التعلم بالنقل» مجاني؟

نعم — نص درس «مفاهيم واستراتيجيات التعلم بالنقل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «مفاهيم واستراتيجيات التعلم بالنقل»؟

استخراج الميزات مقابل الضبط الدقيق، والطبقات المجمدة، ومتى يفيد التعلم بالنقل تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «مفاهيم واستراتيجيات التعلم بالنقل»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مفاهيم واستراتيجيات التعلم بالنقل
  2. استخدام VGG16 وResNet50 كنموذجين أساسيين
  3. الضبط الدقيق: إلغاء تجميد الطبقات وإعادة تدريبها
  4. ‏MobileNet وEfficientNet للنشر على الأجهزة الطرفية
← العودة إلى Learn AI with Python