عامر ابراهيم نشر 7 سبتمبر 2021 أرسل تقرير نشر 7 سبتمبر 2021 (معدل) ألاحظ دوماً أنه يتم ضبط عدد ال hidden units على 128 في طبقات LSTM و GRU لماذا؟ أي num_units=128 ؟ أعلم أنها وحدات معالجة البيانات لكن إلى ماذا يشير عددها؟ تم التعديل في 7 سبتمبر 2021 بواسطة عامر ابراهيم 1 اقتباس
1 Ali Haidar Ahmad نشر 7 سبتمبر 2021 أرسل تقرير نشر 7 سبتمبر 2021 الكلام التالي ينطبق على عدد الوحدات في بقية أنواع الطبقات أيضاً مثل Dense وغيرها في كيراس وتنسرفلو.. num_units هو عدد يشير إلى ال "Learning capacity" أي قدرة الشبكة على التعلم وهي تعكس عدد ال "learned parameters" ضمن الطبقة أي عدد المعلمات التي سيتم تدريبها لمعالجة بياناتك. إن num_units يندرج تحت مفهوم ال Hyperparameters أي المعاملات العليا للنموذج، أي يجب أن تقوم بضبطها من خلال التجريب، أي ليس هناك قاعدة ثابتة لاختيار قيمتها لكن هناك نقاط يجب وضعها بعين الاعتبار عند تحديد قيمتها وهي: زيادة عددها يعطي الشبكة قدرة أكبر على التعلم من نماذج بيانات أكبر و أكثر تعقيداً (تعطي النموذج قدرة أكبر على التعلم من البيانات-يمكنك تخيل الأمر على أنه حجم ذاكرتها فكلما زاد حجمها زادت قدرتها على التعلم-). لكن زيادة عددها قد يجعل النموذج يتجه إلى حالة ال Oveffitting لذا يجب أن تكون حذراً وأن لتجعل حجمها يتناسب مع حجم المشكلة (عدد ال features للعينات وعدد العينات أي حجم الداتاسيت بشكل عام ومدى تعقيدها). تقليل عددها يجعل الشبكة أضعف وأقل قدرة على التعلم من البيانات. وبالتالي قد يتجه النموذج إلى حالة Underfitting. لذا يجب الموازنة بين الأمرين السابقين أي عملية Trade-off بينهما. أما بالنسبة للعدد 128 فهذا ليس رقماً ثابتاً كما أوضحت لك هو Hyperparameter لكن في كثير من الأحيان يكون ملائم. كما تجدر الإشارة إلى أن عدد ال num_units يفضل دوماً أن يتم أخذه من العلاقة 2 أس n أي: 16- 32-64-128-256-512.... لأن هذه الأرقام تسرع عمليات الحساب لأن المعالج يفضلها. 1 اقتباس
1 ريم المهدي نشر 8 سبتمبر 2021 أرسل تقرير نشر 8 سبتمبر 2021 بالاضافة لما شرحه @Ali Haidar Ahmad فإن عدد الطبقات و عدد الوحدات فيها يعتمد بصورة مباشرة على المدخلات و المجال الذي تريد تطبيق شبكة LSTM, GRU, RNN فيه. العدد الأمثل للوحدات hidden units هو أن تكون أقل من العدد المدخل، في حال كان لديك عدد كبير من المدخلات يمكن إستخدام عدد أكبر من hidden units و لكن في بعض الأحيان فقط 2 تكفى. لاحظ شكل LSTM موضحة: هنا ترمز num_units لعدد الوحدات الخفية في الشبكة، وهي تعني المدخل لكل خلية في الشبكة عبارة عن حجم الدفعة batch_size مضروب في عدد الوحدات num_units. العدد 128 ليس قيمة ثابتة، لكن بصورة عامة يمكن أن تبدأ من الطبقة الأولى و تضع فيها عدد وح\ات قريب من عدد المدخلات و يمكنك زيادة العدد و نقصانه تدريجياً حسب القيمة المطلوبة في الخرج. اقتباس
السؤال
عامر ابراهيم
ألاحظ دوماً أنه يتم ضبط عدد ال hidden units على 128 في طبقات LSTM و GRU لماذا؟ أي num_units=128 ؟ أعلم أنها وحدات معالجة البيانات لكن إلى ماذا يشير عددها؟
تم التعديل في بواسطة عامر ابراهيم2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.