كيفية اختيار أفضل وحدة معالجة الرسومات (GPU) بسهولة لإعباء العمل الذكي
المقدمة إلى وحدات معالجة الرسومات (GPU) للعمل الذكي
أ. أهمية وحدات معالجة الرسومات في التعلّم العميق
أصبحت وحدات معالجة الرسومات (GPU) جزءًا أساسيًا في مجال التعلّم العميق والذكاء الاصطناعي. تعتبر الهندسة المعمارية عالية التوازي لوحدات معالجة الرسومات، التي تم تصميمها في الأصل لإنتاج رسومات فعالة، مناسبة بشكل استثنائي للمهام المتطلبة للحساب عالي التعقيد في التعلّم العميق، مثل عمليات المصفوفات والتحويلات والحسابات الأخرى المتعلقة بالأشكال العم سيومية.
بالمقارنة مع وحدات المعالجة المركزية (CPUs) التقليدية، يمكن لوحدات معالجة الرسومات (GPUs) تنفيذ هذه العمليات بشكل أسرع بكثير، مما يؤدي إلى تحسينات كبيرة في التدريب والتحقق من صحة نماذج التعلّم العميق. هذه العملية تعد أمرًا بالغ الأهمية لتطوير النماذج المعقدة، واستكشاف قواعد البيانات الكبيرة، ونشر أنظمة الذكاء الاصطناعي في التطبيقات في الوقت الحقيقي.
ب. مزايا وحدات معالجة الرسومات مقارنةً بوحدات المعالجة المركزية لمهام الذكاء الاصطناعي وتعلّم الآلة
المزايا الرئيسية لاستخدام وحدات معالجة الرسومات (GPUs) على وحدات المعالجة المركزية (CPUs) في مهام الذكاء الاصطناعي وتعلّم الآلة هي:
-
قدرات المعالجة الموازية: تم تصميم وحدات معالجة الرسومات (GPUs) بتوزيع معماري عالي التوازي، مما يتيح وجود آلاف من النوى الأصغر والأكثر كفاءة مقارنة بالنوى الأقل والأكثر قوة الموجودة في وحدات المعالجة المركزية. تتيح هذه القوة في المعالجة الموازية لوحدات معالجة الرسومات تفوقها في الحسابات قابلة للتوازي المطلوبة في التعلّم العميق، مثل ضرب المصفوفات والتحويلات.
-
عرض نطاق الذاكرة الأعلى: تزود وحدات معالجة الرسومات (GPUs) بذاكرة عالية السرعة مخصصة تُعرف باسم "ذاكرة الوصول العشوائي للفيديو" (VRAM)، والتي توفر نطاق ذاكرة أعلى بشكل كبير مقارنة بذاكرة النظام المستخدمة في وحدات المعالجة المركزية (CPUs). يعد هذا الوصول المحسن للذاكرة أمرًا بالغ الأهمية لكميات كبيرة من البيانات والنتائج الوسيطة المشاركة في أعباء العمل في التعلّم العميق.
-
تسريع عمليات الأشكال المعينة: يتم تصميم وحدات معالجة الرسومات الحديثة، مثل محار الأشكال Tensor Cores من NVIDIA والمحارات المصفوفاتية Matrix Cores من AMD، بوجود وحدات أجهزة متخصصة يمكن تسريع العمليات المتعلقة بالمصفوفات، وهي أساسية للعديد من خوارزميات التعلّم العميق. يمكن أن توفر هذه الأمثلة المتخصصة على مستوى الأجهزة تحسينات تصل إلى عدة مرات في الأداء لهذه الأنواع من الحسابات.
-
كفاءة الطاقة: يمكن أن تحقق وحدات معالجة الرسومات (GPUs)، مع هندستها الموازية والأجهزة المتخصصة، أداءً أعلى لكل واط مقارنة بوحدات المعالجة المركزية (CPUs) لمهام الذكاء الاصطناعي وتعلّم الآلة. وهذا ما يجعلها ملائمة بشكل خاص للبيئات التي تعاني من قيود الطاقة، مثل الأجهزة الحوّافة وأنظمة المضمنة.
-
البيئة ودعم البرامج: قد قامت مجتمعات التعلّم العميق والذكاء الاصطناعي بتحسين ودمج حوسبة وحدات معالجة الرسومات بشكل شامل في أطر عملها ومكتباتها، مثل TensorFlow وPyTorch وCUDA. تعزز هذه البيئة البرمجية القوية وسلاسل الأدوات مزايا استخدام وحدات معالجة الرسومات لهذه الأعباء.
لقد جعلت هذه المزايا من وحدات معالجة الرسومات (GPUs) عنصرًا لا غنى عنه في مجال التعلّم العميق، مما يتيح للباحثين والمطورين تدريب نماذج أكبر وأعقد، وتسريع تطوير تطبيقات الذكاء الاصطناعي، ونشرها في سيناريوهات الحياة الواقعية بأداء وكفاءة محسّنين.
فهم أرشيتكتورة وحدة معالجة الرسومات (GPU)
أ. مكونات وحدة معالجة الرسومات (GPU) وأدوارها
1. وحدة معالجة الرسومات (GPU)
تعد وحدة معالجة الرسومات (GPU) المكون الأساسي لبطاقة الرسومات، وتعمل على معالجة الرسومات والمهام الحسابية بشكل متوازٍ. تتكون من عدد كبير من النوى الأصغر والأكثر كفاءة، التي يمكنها تنفيذ خيوط متعددة في وقت واحد، مما يتيح لوحدة معالجة الرسومات أن تفوق في المعالجة الموازية العالية الكفاءة المطلوبة في التعلّم العميق.
2. الذاكرة (VRAM)
تزود وحدات معالجة الرسومات بذاكرة عالية السرعة ومخصصة، تعرف بذاكرة الوصول العشوائي للفيديو (VRAM). تم تحسين هذه الذاكرة لمتطلبات نطاق الذاكرة العالية للعروض الرسومية والتحميلات الحسابية، وتوفر سرعات وصول أسرع بشكل كبير مقارنة بذاكرة النظام المستخدمة في وحدات المعالجة المركزية (CPUs).
3. واجهة الحافلة (PCI-E)
تربط واجهة الحافلة، والتي غالبًا ما تكون فتحة توصيل متطورة لعنصر مكون محاور المكونات الطرفية اكسبرس الفرعية (PCI-E)، وحدة معالجة الرسومات باللوحة الأم وبقية نظام الكمبيوتر. تتيح حافلة PCIe نقل البيانات بسرعة عالية بين وحدة معالجة الرسومات ووحدة المعالجة المركزية (CPU)، فضلاً عن الوصول إلى ذاكرة النظام.
4. مزود الطاقة
تحتاج وحدات معالجة الرسومات، خاصة النماذج ذات الأداء العالي، إلى كمية كبيرة من الطاقة للتشغيل. يضمن مزود الطاقة، سواء مدمجًا في بطاقة الرسومات أو مقدمًا من إمداد الطاقة للنظام، أن يتم تزويد وحدة معالجة الرسومات ومكوناتها المرتبطة بالطاقة الكهربائية اللازمة.
ب. مقارنة بين أرشيتكتورة وحدة معالجة الرسومات وأرشيتكتورة وحدة المعالجة المركزية
1. SIMD (تعليمة واحدة، بيانات متعددة) مقابل MIMD (تعليمات متعددة، بيانات متعددة)
تم تصميم وحدات المعالجة المركزية بناءً على بنية MIMD (تعليمات متعددة، بيانات متعددة)، حيث يمكن لكل نواة تنفيذ تعليمات مختلفة على بيانات مختلفة في نفس الوقت. بالمقابل، تتبع وحدات معالجة الرسومات نموذج SIMD (تعليمة واحدة، بيانات متعددة)، حيث يتم تنفيذ تعليمة واحدة عبر عناصر بيانات متعددة بشكل متوازٍ.
2. قدرات المعالجة الموازية
تسمح أرشيتكتورة SIMD لوحدات معالجة الرسومات، مع وجود عدد كبير من النوى، بمعالجة موازية فعالة لنفس التعليمة عبر عناصر البيانات المتعددة. يعود هذا بالفائدة بشكل خاص لأنواع العمليات الشائعة في التعلّم العميق، مثل ضرب المصفوفات والتحويلات.
3. وصول الذاكرة وعرض النطاق الترددي
تم تصميم وحدات معالجة الرسومات بتركيز على وصول الذاكرة عالي النطاق، مع ذاكرة الفيديو المخصصة (VRAM) التي توفر سرعة وصول أسرع بشكل كبير للذاكرة مقارنة بذاكرة النظام المستخدمة في وحدات المعالجة المركزية. يعد هذا النظام الذاكرة أمرًا بالغ الأهمية لكميات كبيرة من البيانات والنتائج الوسيطة المشاركة في أعباء العمل في التعلّم العميق.
المواصفات والقياسات المهمة لوحدات معالجة الرسومات (GPU)
أ. قوة الحساب
1. FLOPS (العمليات العائمة النقطية في الثانية)
يعد FLOPS مقياسًا يستخدم عادة لقياس القوة الحسابية النقية لوحدة معالجة الرسومات (GPU). يمثل عدد العمليات العائمة التي يمكن لوحدة معالجة الرسومات أداءها في الثانية، وهو عامل مهم في أداء نماذج التعلّم العميق.
2. FLOPS للأشكال المعتمدة على الأشكال (لأعباء الذكاء الاصطناعي وتعلّم الآلة)
بالإضافة إلى مقياس FLOPS القياسي، غالبًا ما تُوفِر وحدات معالجة الرسومات الحديثة مقياسًا خاصًا بـ "FLOPS للأشكال المعتمدة على الأشكال"، والذي يقيس أداء العمليات المعتمدة على الأشكال مهمة لأعباء الذكاء الاصطناعي وتعلّم الآلة. يعكس هذا المقياس التسريع الذي توفره وحدات الأجهزة المتخصصة، مثل محار الأشكال Tensor Cores من NVIDIA ومحارات المصفوفات Matrix Cores من AMD.
ب. الذاكرة
1. سعة VRAM
كمية ذاكرة VRAM المتاحة على وحدة معالجة الرسومات (GPU) هي أمر لا بد منه، حيث قد تتطلب نماذج التعلّم العميق كميات كبيرة من الذاكرة لتخزين معلمات النموذج والتنشيطات والنتائج الوسيطة أثناء التدريب والتحقق من صحة البيانات.
2. عرض النطاق الترددي للذاكرة
يحدد عرض نطاق الذاكرة لوحدة معالجة الرسومات، المقاس بالجيجابايت في الثانية، معدل نقل البيانات بين VRAM والنظام. يعد هذا عاملاً حاسمًا في أداء أعباء العمل في التعلّم العميق، التي تنطوي في كثير من الأحيان على كميات كبيرة من حركة البيانات.
ج. المواصفات الأخرى المهمة
1. أرشيتكتورة وحدة معالجة الرسومات (مثل NVIDIA Ampere و AMD RDNA)
تؤثر أرشيتكتورة وحدة معالجة الرسومات الأساسية، مثل أمبير من NVIDIA أو RDNA من AMD، بشكل كبير على أداء وقدرات وحدة معالجة الرسومات في مهام الذكاء الاصطناعي وتعلّم الآلة. تقدم كل أرشيتكتورة ميزات وتحسينات أجهزة جديدة قد تؤثر على مدى ملاءمة وحدة معالجة الرسومات لأعباء العمل المختلفة.
2. محارات الأشكال / وحدات معالجة الأشكال (TPUs)
الوحدات المتخصصة للأجهزة مثل محارات الأشكال Tensor Cores من NVIDIA ومحارات المصفوفات Matrix Cores من AMD، يتم تصميمها لتسريع العمليات المعتمدة على الأشكال التي توجد بشكل شائع في خوارزميات التعلّم العميق. يمكن أن يؤثر عدد وقدرات هذه الوحدات بشكل كبير على أداء وحدة معالجة الرسومات لمهام الذكاء الاصطناعي وتعلّم الآلة.
3. استهلاك الطاقة وقدرة التصميم الحراري (TDP)
استهلاك الطاقة وقدرة التصميم الحراري (TDP) لوحدة معالجة الرسومات هما عاملان مهمان، خاصة للتطبيقات ذات القيود على الطاقة والتبريد، مثل الأجهزة الحوافة أو مراكز البيانات. يمكن أن تكون الوحدات المعالجة المركزية الكفوءة من حيث استهلاك الطاقة حاسمة للنشرات ذات الميزانيات الطاقية المحدودة أو إمكانيات التبريد المحدودة.
أفضل وحدات معالجة الرسومات (GPU) للذكاء الاصطناعي والتعلّم العميق
أ. وحدات معالجة الرسومات (GPU) من NVIDIA
1. أرشيتكتورة أمبير من NVIDIA (سلسلة RTX 30)
- RTX 3090، RTX 3080، RTX 3070
- محارات الأشكال، تتبع الأشعة، و DLSS
تعتبر أرشيتكتورة أمبير من NVIDIA، الممثلة بوحدات معالجة الرسومات لسلسلة RTX 30، الجيل الأحدث من وحدات المعالجة الرسومية المستهلكة ومستوى الاحتراف. تتميز هذه الوحدات بتحسينات كبيرة في الأداء بخصوص الذكاء الاصطناعي وتعلّم الآلة، مع محارات الأشكال المحسّنة وزيادة عرض النطاق الترددي للذاكرة ودعم الميزات المتقدمة مثل تتبع الأشعة وتقنية DLSS (تعزيز تحديد الجودة عن طريق التعلم العميق).
2. أرشيتكتورة فولتا من NVIDIA (تايتن V، تسلا V100)
- التركيز على أعباء الذكاء الاصطناعي وتعلّم الآلة
- محارات الأشكال لعمليات المصفوفات المسرَّعة
تم تصميم أرشيتكتورة فولتا من NVIDIA، كما هو مثالي بوحدات المعالجة الرسومية تيتان V وتسلا V100، بالأحمال العمل في الذكاء الاصطناعي وتعلّم الآلة في الاعتبار. لقد قدمت هذه الوحدات المعالجة المركزية محارات الأشكال التي توفر عمليات المصفوفات المسرَّعة على مستوى الأجهزة، وهي أمر حاسم للخوارزميات التعلّم العميق.
3. أرشيتكتورة تورينغ من NVIDIA (سلسلة RTX 20)
- RTX 2080 Ti، RTX 2080، RTX 2070
- تتبع الأشعة وميزات مدعومة بالذكاء الاصطناعي
جلبت أرشيتكتورة تورينغ من NVIDIA، الممثلة بوحدات معالجة الرسومات لسلسلة RTX 20، تحسينات كبيرة في الأداء للألعاب وإمكانيات الذكاء الاصطناعي. قدمت هذه الوحدات ميزات مثل تتبع الأشعة وتحسينات الرسومات المدعومة بالذكاء الاصطناعي، بالإضافة إلى تحسين الأداء لأعباء العمل في التعلّم العميق.
ب. وحدات معالجة الرسومات (GPU) من AMD
1. أرشيتكتورة RDNA 2 من AMD (سلسلة RX 6000)
- RX 6800 XT، RX 6800، RX 6900 XT
- أداء تنافسي لأعباء الذكاء الاصطناعي وتعلّم الآلة
أظهرت أرشيتكتورة RDNA 2 من AMD، التي تدعم سلسلة RX 6000 من وحدات المعالجة الرسومية، أداءًا مبهرًا لأعباء الذكاء الاصطناعي وتعلّم الآلة، مما يوفر منافسة قوية لمنتجات NVIDIA في هذا المجال.
2. أرشيتكتورة فيغا من AMD (راديون فيغا 64، راديون فيغا 56)
- مستهدفة لكل من أعباء الألعاب وأعباء الذكاء الاصطناعي وتعلّم الآلة
تم تصميم بنية AMD Vega لتلبية احتياجات الألعاب ومهام الذكاء الاصطناعي وتعلم الآلة، وهي توفر نهجًا متوازنًا للأداء والقدرات.
C. مقارنة بين بطاقات NVIDIA و AMD
1. مؤشرات الأداء لمهام الذكاء الاصطناعي وتعلم الآلة
عند المقارنة بين بطاقات NVIDIA و AMD لمهام الذكاء الاصطناعي وتعلم الآلة، من المهم أخذ مؤشرات الأداء وسيناريوهات الاستخدام العملية في الاعتبار. لكل من البائعين نقاط قوة وضعفه، والاختيار يعتمد في كثير من الأحيان على متطلبات عبء العمل للتعلم العميق.
2. كفاءة الطاقة واعتبارات حرارية
الكفاءة الطاقوية وإدارة الحرارة هي عوامل حاسمة، خاصة عند النشر في مراكز البيانات أو الأجهزة الحافة. لقد قامت كل من NVIDIA و AMD بتحقيق تقدم في تحسين كفاءة الطاقة وخواص الحرارة لبنيات بطاقاتهم الحديثة.
3. النظام البيئي للبرمجيات والدعم
النظام البيئي للبرمجيات والدعم للأطر الشبكية وأدوات التعلم العميق هو عامل مهم عند اختيار بين بطاقات NVIDIA و AMD. منصة NVIDIA CUDA لديها نظام بيئي أكثر نضجًا وشمولية، بينما توفر ROCm لـ AMD خيارًا متزايدًا للدعم مفتوح المصدر ومتعدد المنصات.
V. العوامل التي يجب مراعاتها عند اختيار GPU للذكاء الاصطناعي
A. عبء العمل والتطبيق المستهدف
1. معالجة الصور/الفيديو
2. معالجة اللغة الطبيعية (NLP)
3. التعلم المعزز
4. النماذج الإنتاجية (GANs، VAEs)
يجب أن يتوجه اختيار بطاقة الرسومات وفقًا لمتطلبات العبء العمل والتطبيق المحدد. قد تستفيد مهام تعلم الآلة العميقة المختلفة من القدرات والتحسينات المميزة في بنى مختلفة لبطاقات الرسومات.
B. متطلبات الأداء
1. سرعة التحقق
2. معدل تدريب
بناءً على ما إذا كان التركيز على التحقق السريع أو التدريب الفعال، يجب تخصيص اختيار بطاقة الرسومات لتلبية متطلبات الأداء لحالة الاستخدام المستهدفة.
C. الطاقة والقيود الحرارية
1. مراكز البيانات مقابل الأجهزة المضمنة/الحافة
2. حلول التبريد
استهلاك الطاقة وإدارة الحرارة هما عاملان حاسمان، خاصة عند النشر في بيئات محدودة مثل مراكز البيانات أو الأجهزة المضمنة. يجب أن يتوافق اختيار بطاقة الرسومات مع الميزانية الطاقوية المتاحة وقدرات التبريد.
D. البرمجيات ودعم النظام البيئي
1. CUDA مقابل ROCm (AMD)
2. أطر التعلم العميق (TensorFlow و PyTorch، وما إلى ذلك)
3. النماذج التي تم تدريبها مسبقًا والتعلم النقلي
يمكن أن يؤثر النظام البيئي للبرمجيات بشكل كبير، بما في ذلك توفر دعم CUDA أو ROCm، بالإضافة إلى التكامل مع أطر التعلم العميق الشهيرة والوصول إلى النماذج التي تم تدريبها مسبقًا، على تطوير ونشر تطبيقات الذكاء الاصطناعي وتعلم الآلة.
شبكات التعلم العميق المتراكبة (CNNs)
شبكات التعلم العميق المتراكبة (CNNs) هي نوع من بنيات التعلم العميق تتناسب بشكل خاص مع معالجة وتحليل بيانات الصور. على عكس الشبكات العصبية التقليدية التي تعمل على إدخال ثنائي الأبعاد، تم تصميم شبكات التعلم العميق المتراكبة لاستغلال العلاقات المكانية والمحلية ضمن صورة.
المكونات الأساسية لبنية شبكة التعلم العميق المتراكبة هي:
-
الطبقات التكرارية: تطبق هذه الطبقات مجموعة من الفلاتر (أو النوى) القابلة للتعلم على صورة الإدخال، مستخلصة ميزات ونماذج مهمة. يتم استخدام الفلاتر لعمل الطبقات عبر العرض والارتفاع للإدخال، مكوِّنة خريطة سمات تلتقط العلاقات المكانية في البيانات.
-
طبقات التجميع: تنفذ هذه الطبقات عملية التجميع وتقليل الأبعاد المكانية لخرائط السمات في حين الحفاظ على الميزات الأكثر أهمية. يساعد ذلك في تقليل عدد المعاملات وتعقيد النموذج الحسابي.
-
الطبقات متصلة بالكامل: تشبه هذه الطبقات الطبقات الخفية في الشبكة العصبية التقليدية، وتُستخدَم لإجراء التوقعات أو التصنيفات النهائية بناءً على الميزات المستخرجة.
فيما يلي مثال لكيفية بناء نموذج CNN بسيط باستخدام مكتبتي TensorFlow و Keras:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# حدد نموذج CNN
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dense(10, activation='softmax'))
# كوّن النموذج
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
في هذا المثال، نحدد نموذج CNN يحتوي على ثلاث طبقات تكرارية، يتبع كل منها طبقة تجميع قصوى. تشمل الطبقات النهائية عملية تمهيد الناتج وطبقتين متصلتين بالكامل، إحداهما طبقة بـ 64 وحدة وReLU الفعّالة، والطبقة الناتجة بـ 10 وحدات ووظيفة تفعيل softmax (لمشكلة التصنيف المتعدد بـ 10 فئات).
ثم نقوم بتحرير النموذج باستخدام محسن Adam ووظيفة خسارة cross-entropy التصنيفية، وهي الأكثر استخدامًا لمهام التصنيف متعددة الفئات.
شبكات التعلم العميق الباقية (RNNs)
شبكات التعلم العميق الباقية (RNNs) هي نوع من بنيات التعلم العميق التي تناسب معالجة البيانات التسلسلية مثل النصوص والأصوات وسلاسل الزمن. على عكس الشبكات العصبية الأمامية، التي تعمل على معالجة المدخلات بشكل مستقل، تمتلك شبكات التعلم العميق الباقية القدرة على الاحتفاظ بـ "ذاكرة" للمدخلات السابقة، مما يسمح لها بالتقاط التبعيات الزمنية في البيانات.
المكونات الرئيسية لبنية شبكة التعلم العميق الباقية هي:
-
طبقات التكرار: تقوم هذه الطبقات بمعالجة سلسلة الإدخال عنصرًا واحدًا في كل مرة، وتحتفظ بحالة مخفية تمرر من خطوة زمنية إلى الأخرى. يتيح هذا للنموذج تعلم الأنماط والتبعيات داخل السلسلة.
-
وظائف التنشيط: عادةً ما تستخدم شبكات التعلم العميق الباقية وظائف التنشيط مثل تانجينت فهمية (tanh) أو ReLU لإدخال اللاخطية والتحكم في تدفق المعلومات في الشبكة.
-
الطبقات الناتجة: تستخدم الطبقات النهائية في نموذج RNN لإجراء التوقعات أو النواتج المرغوبة بناءً على التجسيمات المكتسبة.
فيما يلي مثال لكيفية بناء نموذج RNN بسيط باستخدام TensorFlow و Keras:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import SimpleRNN, Dense
# حدد نموذج RNN
model = Sequential()
model.add(SimpleRNN(64, input_shape=(None, 10)))
model.add(Dense(1, activation='sigmoid'))
# كوّن النموذج
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
في هذا المثال، نحدد نموذج RNN بطبقة SimpleRNN
واحدة تحتوي على 64 وحدة. يتم تعيين شكل الإدخال إلى (None، 10)
، مما يعني أن النموذج يمكنه قبول سلاسل طولها قابل للتغيير، حيث يحتوي كل عنصر دخل على 10 ميزة.
الطبقة النهائية هي طبقة كثيفة ذات وحدة واحدة وتفعيل سيغمويد، والتي يمكن استخدامها لمهام التصنيف ثنائي الفئات.
ثم نقوم بتحرير النموذج باستخدام محسن Adam ووظيفة الخسارة binary cross-entropy، وهي شائعة الاستخدام لمشاكل التصنيف ثنائي الفئات.
الذاكرة القصيرة الطويلة (LSTMs) ووحدات التكرار ذات الأبواب (GRUs)
على الرغم من أن الشبكات العصبية الباقية الأساسية يمكن أن تكون فعالة لبعض المهام، إلا أنها قد تعاني من مشاكل مثل الانحسار أو انفجار التدرجات، مما يجعل من الصعب تدريبها بشكل فعال. للتعامل مع هذه التحديات، تم تطوير بنيات RNN متقدمة أكثر، مثل الذاكرة القصيرة الطويلة (LSTMs) ووحدات التكرار ذات الأبواب (GRUs).
الذاكرة القصيرة الطويلة (LSTMs) هي نوع من شبكات RNN تستخدم هيكل خلية أكثر تعقيدًا لالتقاط التبعيات طويلة الأجل في البيانات. تقدم LSTMs مفهوم "أبواب" تتحكم في تدفق المعلومات داخل وخارج حالة الخلية، مما يتيح للنموذج تذكر المعلومات ونسيانها انتقائيًا حسب الحاجة.
وحدات التكرار ذات الأبواب (GRUs) هي نوع مماثل من شبكات RNN المتقدمة تستخدم أيضًا آليات أبواب للتحكم في تدفق المعلومات. تتميز وحدات GRUs ببنية أبسط مقارنة بـ LSTMs وعدد أقل من المعاملات، مما يمكن أن يجعلها أسرع في التدريب وأقل عرضة للتدرج.
فيما يلي مثال لكيفية بناء نموذج LSTM باستخدام TensorFlow و Keras:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
# حدد نموذج LSTM
model = Sequential()
model.add(LSTM(64, input_shape=(None, 10)))
model.add(Dense(1, activation='sigmoid'))
# كوّن النموذج
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
في هذا المثال، نحدد نموذج LSTM بوحدات 64. تم تعيين شكل الإدخال إلى (None، 10)
، مما يعني أن النموذج يمكنه قبول سلاسل طولها قابل للتغيير، حيث يحتوي كل عنصر دخل على 10 ميزة.
الطبقة النهائية هي طبقة كثيفة ذات وحدة واحدة وتفعيل سيغمويد، والتي يمكن استخدامها لمهام التصنيف ثنائي الفئات.
ثم نقوم بتحرير النموذج باستخدام محسن Adam ووظيفة الخسارة binary cross-entropy، مشابهة لمثال RNN.
التعلم النقلي
التعلم النقلي هو تقنية قوية في التعلم العميق تتضمن استخدام نموذج مدرب مسبقًا كنقطة انطلاق لمهمة جديدة، بدلاً من تدريب نموذج من البداية. يمكن أن يكون ذلك مفيدًا بشكل خاص عندما يكون لديك كمية محدودة من البيانات لمشكلتك المحددة، حيث يتيح لك الاستفادة من الميزات والتمثيلات المكتسبة من خلال النموذج المدرب مسبقًا.
إحدى الأساليب المشتركة للتعلم النقلي هي استخدام نموذج مدرب مسبقًا كمستخلص للميزات، حيث تقوم بإزالة الطبقة الأخيرة للتصنيف واستخدام التنشيطات من الطبقات الأوائل كإدخال لنموذج جديد. يمكن تدريب هذا النموذج الجديد على المهمة الخاصة بك، عادةً باستخدام مجموعة بيانات أصغر وعدد أقل من عمليات التدريب.
فيما يلي مثال لكيفية استخدام التعلم النقلي مع نموذج VGG16 المدرب مسبقًا لتصنيف الصور:
from tensorflow.keras.applications.vgg16 import VGG16
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.models import Model
# قم بتحميل نموذج VGG16 مُدرّبًا مسبقًا (بدون الطبقة العلوية)
base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
# اجعل طبقات النموذج الأساسية غير قابلة للتدريب
for layer in base_model.layers:
layer.trainable = False
# أضف طبقات جديدة على أعلى النموذج الأساسي
x = base_model.output
x = Flatten()(x)
x = Dense(128, activation='relu')(x)
x = Dense(10, activation='softmax')(x)
# قم بتعريف النموذج النهائي
model = Model(inputs=base_model.input, outputs=x)
# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
في هذا المثال، نقوم أولاً بتحميل نموذج VGG16 مُدرّبًا مسبقًا، مع استبعاد الطبقة النهائية للتصنيف. ثم نجمد طبقات النموذج الأساسية، مما يعني أن وزنها لن يتم تحديثه أثناء التدريب.
بعد ذلك، نقوم بإضافة طبقات جديدة على أعلى النموذج الأساسي، بما في ذلك طبقة لتسطيح البيانات، طبقة مكتظة بـ 128 وحدة ووظيفة تنشيط ReLU، وطبقة مكتظة نهائية بعشر وحدات ووظيفة تنشيط softmax (لمشكلة تصنيف متعددة الفئات بعشر فئات).
أخيرًا، نعرف النموذج النهائي عن طريق ربط الإدخال الخاص بالنموذج الأساسي بالطبقات الجديدة، ونقوم بتجميع النموذج بمحدد Adam ودالة خسارة الانحدار الطبقي المتعدد ومقاييس الأداء.
تتيح لنا هذه الطريقة استخدام تمثيلات السمات التي تم تعلمها بواسطة نموذج VGG16 المُدرّب مسبقًا، والذي تم تدريبه على مجموعة بيانات كبيرة (ImageNet)، وضبط النموذج لمهمة التصنيف الخاصة بنا باستخدام مجموعة بيانات أصغر.
الاستنتاج
في هذا البرنامج التعليمي، استكشفنا عدة أساسيات في الهندسة العميقة وتقنياتها، بما في ذلك الشبكات العصبية التكرارية (CNNs)، والشبكات العصبية التكرارية (RNNs)، والذاكرة الطويلة الأجل (LSTMs)، ووحدات الذاكرة التكرارية المعتمدة على البوابات (GRUs)، ونقل التعلم.
تعتبر CNNs مناسبة تمامًا لمعالجة وتحليل البيانات الصورية، بفضل قدرتها على التقاط العلاقات المكانية والمحلية داخل الإدخال. من ناحية أخرى، صُمّمت RNNs للتعامل مع البيانات التسلسلية، مثل النص أو سلاسل الزمن، من خلال الحفاظ على "ذاكرة" الإدخالات السابقة.
للتغلب على التحديات التي يواجهها RNNs الأساسية، تم تطوير الهندسات المتقدمة مثل LSTMs و GRUs، التي تستخدم آليات البوابات للتحكم في تدفق المعلومات والتقاط الاعتماديات طويلة المدى.
أخيرًا، استكشفنا مفهوم نقل التعلم، الذي يسمح لنا بالاستفادة من الميزات والتمثيلات التي تم تعلمها بواسطة النماذج المدرّبة مسبقًا للتعامل مع مهام جديدة، حتى مع توفر بيانات محدودة.
أثناء متابعتك لرحلتك في التعلم العميق، أشجعك على تجربة هذه التقنيات، واستكشاف هياكل مختلفة وتطبيقات مختلفة، وتوسيع معرفتك باستمرار. فمجال التعلم العميق يتطور بسرعة، وهناك فرص لا حصر لها لدفع حدود الإمكانات.