Transfer Learning | نقل التعلم العميق بين نماذج تعلم الآلة

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



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

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

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




في الخطوة ١-٣ يتم تدريب النموذج أ على بيانات عامة حيث يتم تحديث أوزان الشبكة العصبونية لتتعلم التصنيفات المتعددة من مجموعة البيانات في الخطوة الأولى. البيانات في المربع ٥ تمثل البيانات المحدودة الغير كافية لتدريب نموذج كامل. نقوم في الخطوة ٤ بنقل بعض الأوزان من الشبكة أ كمعلومات مبدئية قبل تدريب النموذج الجديد. في الخطوات ٥-٨ يتم تدريب "بعض" اجزاء الشبكة العصبونية على البيانات الجديدة بينما نجمّد باقي الأوزان المستخرجة من الشبكة أ في ٦. نحصل في النهاية على نموذج ب تم "نقل" بعض من المعلومات إليه من نموذج أ، وتم تدريب الجزء الآخر على المعلومات المحدودة.

تسمى هذه الطريقة لتدريب النماذج بنقل التعلم "Transfer Learning" بين نماذج تعلم الآلة. هناك طريقتين لاستخدام نقل التعلم. الطريقة الأولى تكون بنقل النموذج العام كاملاً وإضافة طبقات "layers" جديدة وتدريبها على البيانات المحدودة. الطريقة الثانية تكون بنقل جزء من النموذج العام وتجميد الأوزان الخاصة به وتدريب الجزء المتبقي من النموذج باستخدام البيانات المحدودة. يمكن بعدها إعادة ضبط "fine-tuning" الأجزاء المنقولة من النموذج عن طريق خفض معدل التعلم "learning rate" وتدريب النموذج كاملاً (شاملاً الأجزاء المنقولة) على البيانات المحدودة.

يمكن زيارة الرابط التالي للاستزادة ولمثال عملي بلغة بايثون.

Comments