أنت في مقابلة مهندس تعلم آلي في تسلا. المحاور: نحتاج إلى نشر شبكة عصبية على أجهزة الحافة الخاصة بالمركبة، لكنها لا تناسب الذاكرة. كيف ستتعامل مع هذا؟ أنت: سأستخدم تقطير المعرفة لتدريب نموذج أصغر. انتهت المقابلة. إليك ما فاتك:
تقطير المعرفة يحتاج إلى أسابيع من الحوسبة، لأنك في الأساس تدرب نموذجا جديدا. لكن الحل موجود بالفعل داخل شبكتك المدربة. معظم الخلايا العصبية هي ثقل ثقيل - تستهلك الذاكرة لكنها بالكاد تساهم في التوقعات. دعونا نرى كيف نتعرف عليهم!
فيما يلي الخطوات: الخطوة 1) تدريب الشبكة العصبية كالمعتاد. الخطوة 2) قم بتمرير مجموعة التحقق من الصحة من خلال الشبكة المدربة ، ولكل خلية عصبية في الطبقات المخفية ، احسب: - متوسط التنشيط - تباين عمليات التنشيط (إذا كان من الممكن أن تكون عمليات التنشيط -ve) تحقق من هذا👇
الخطوة 3) تقليم الخلايا العصبية التي لها متوسط وتباين تنشيط قريب من الصفر نظرا لأن لها تأثيرا ضئيلا على ناتج النموذج. من الناحية المثالية، ارسم الأداء عبر العديد من عتبات التقليم لتحديد النموذج الذي يناسب مقايضات حجمك مقابل الدقة. تحقق من هذا 👇
دعونا نلقي نظرة على الكود. نبدأ بتحديد شبكة عصبية بسيطة وتدريبها. نظرا لأننا سنحسب التنشيط على مستوى الخلايا العصبية لاحقا للتقليم ، فإننا نعيد جميع عمليات التنشيط الوسيطة في التمريرة الأمامية. تحقق من هذا👇
بعد ذلك ، نحدد قائمتين بثلاثة عناصر: - سيقوم المرء بتخزين متوسط التنشيط - سيقوم آخر بتخزين مطور الأمراض المنقولة بالاتصال الجنسي من التنشيط نقوم بتمرير مجموعة التحقق من الصحة من خلال نموذجنا لحساب هذه الإحصائيات لكل طبقة مخفية. تحقق من هذا 👇
في هذه المرحلة ، دعنا ننشئ مخطط توزيع لإحصائيات مستوى الخلايا العصبية التي أنشأناها أعلاه. كما هو موضح أدناه ، فإن متوسط عمليات تنشيط معظم الخلايا العصبية وتطوير الأمراض المنقولة بالاتصال الجنسي يتم توزيعه بشكل كبير حول قيم قريبة من الصفر. دعونا نحاول تقليمها بعد ذلك.
للتقليم ، نكرر قائمة من العتبات و: - قم بإنشاء شبكة جديدة ونقل الأوزان التي تتجاوز الحد الأدنى. - تقييم الشبكة الجديدة وحساب إجمالي المعلمات. - إلحاق النتائج بقائمة. تحقق من هذا 👇
يقارن هذا الجدول دقة النموذج المشذب وتقليل حجمه عبر عدة عتبات بالنسبة للنموذج الأصلي. عند المتوسط = 0.1 و std-dev = 0.4: - تنخفض دقة النموذج بنسبة 0.08٪. - يقل حجم النموذج بنسبة 62٪. هذا انخفاض كبير. تحقق من هذا 👇
هذه نتيجة أخرى مثيرة للاهتمام. عند المتوسط = 0.5 و std-dev = 1: - تنخفض دقة النموذج بنسبة 0.5٪. - ينخفض حجم النموذج بنسبة 74٪. لذلك بشكل أساسي ، نحصل على أداء مماثل تقريبا ل 1/4 من المعلمات. تحقق من هذا 👇
بالطبع ، هناك مقايضة بين الدقة والحجم. عندما نقوم بتقليل الحجم ، تنخفض دقته (تحقق من الفيديو). ولكن في معظم الحالات ، لا تكون الدقة هي المقياس الوحيد الذي نقوم بتحسينه. بدلا من ذلك ، تعد العديد من المقاييس التشغيلية مثل الكفاءة والذاكرة وما إلى ذلك من العوامل الرئيسية.
‏‎329‏