جديد: تصور PBA والتعزيزات المطبقة باستخدام دفتر الملاحظات pba.ipynb
!
الآن مع دعم بايثون 3.
التعزيز المعتمد على السكان (PBA) هو خوارزمية تتعلم بسرعة وكفاءة وظائف زيادة البيانات لتدريب الشبكة العصبية. يطابق PBA أحدث النتائج على CIFAR مع حوسبة أقل بألف مرة، مما يمكّن الباحثين والممارسين من تعلم سياسات التعزيز الجديدة بشكل فعال باستخدام وحدة معالجة الرسومات لمحطة عمل واحدة.
يحتوي هذا المستودع على كود للعمل "التعزيز على أساس السكان: التعلم الفعال لجداول التعزيز" (http://arxiv.org/abs/1905.05393) في TensorFlow وPython. ويشمل تدريب النماذج على جداول التعزيز المبلغ عنها واكتشاف جداول سياسة التعزيز الجديدة.
انظر أدناه للحصول على تصور لاستراتيجية التعزيز لدينا.
الكود يدعم بايثون 2 و 3.
pip install -r requirements.txt
bash datasets/cifar10.sh
bash datasets/cifar100.sh
مجموعة البيانات | نموذج | خطأ في الاختبار (%) |
---|---|---|
سيفار-10 | واسعة ResNet-28-10 | 2.58 |
اهتز اهتز (26 2x32d) | 2.54 | |
اهتز اهتز (26 2 × 96 د) | 2.03 | |
اهتز اهتز (26 2x112d) | 2.03 | |
بيراميد نت + شيك دروب | 1.46 | |
تم تخفيض CIFAR-10 | واسعة ResNet-28-10 | 12.82 |
اهتز اهتز (26 2 × 96 د) | 10.64 | |
سيفار-100 | واسعة ResNet-28-10 | 16.73 |
اهتز اهتز (26 2 × 96 د) | 15.31 | |
بيراميد نت + شيك دروب | 10.94 | |
SVHN | واسعة ResNet-28-10 | 1.18 |
اهتز اهتز (26 2 × 96 د) | 1.13 | |
انخفاض SVHN | واسعة ResNet-28-10 | 7.83 |
اهتز اهتز (26 2 × 96 د) | 6.46 |
توجد البرامج النصية لإعادة إنتاج النتائج في scripts/table_*.sh
. وسيطة واحدة، اسم النموذج، مطلوبة لجميع البرامج النصية. الخيارات المتاحة هي تلك المذكورة لكل مجموعة بيانات في الجدول 2 من الورقة، من بين الاختيارات: wrn_28_10, ss_32, ss_96, ss_112, pyramid_net
. توجد أيضًا معلمات Hyperparamaters داخل كل ملف نصي.
على سبيل المثال، لإعادة إنتاج نتائج CIFAR-10 على Wide-ResNet-28-10:
bash scripts/table_1_cifar10.sh wrn_28_10
لإعادة إنتاج نتائج SVHN المخفضة على Shake-Shake (26 2x96d):
bash scripts/table_4_svhn.sh rsvhn_ss_96
المكان الجيد للبدء هو SVHN المخفض على Wide-ResNet-28-10 والذي يمكن أن يكتمل في أقل من 10 دقائق على وحدة معالجة الرسوميات Titan XP التي تصل إلى دقة اختبار تزيد عن 91%.
قد يتطلب تشغيل النماذج الأكبر حجمًا على 1800 فترة عدة أيام من التدريب. على سبيل المثال، تستغرق عملية CIFAR-10 PyramidNet+ShakeDrop حوالي 9 أيام على وحدة معالجة الرسوميات Tesla V100.
قم بتشغيل بحث PBA على Wide-ResNet-40-2 باستخدام الملف scripts/search.sh
. وسيطة واحدة، اسم مجموعة البيانات، مطلوبة. الاختيارات هي rsvhn
أو rcifar10
.
تم تحديد حجم جزئي لوحدة معالجة الرسومات (GPU) لبدء تجارب متعددة على نفس وحدة معالجة الرسومات (GPU). يستغرق SVHN المخفض حوالي ساعة على وحدة معالجة الرسومات Titan XP، ويستغرق CIFAR-10 المخفض حوالي 5 ساعات.
CUDA_VISIBLE_DEVICES=0 bash scripts/search.sh rsvhn
يمكن استرجاع الجداول الناتجة المستخدمة في البحث من دليل نتائج Ray، ويمكن تحويل ملفات السجل إلى جداول سياسة باستخدام وظيفة parse_log()
في pba/utils.py
. على سبيل المثال، تم تقسيم جدول السياسة الذي تم تعلمه في CIFAR-10 المخفض على مدى 200 حقبة إلى قيم الاحتمالية والحجم (يتم دمج القيمتين لكل عملية زيادة) ويتم عرضهما أدناه:
احتمالية المعلمات الفائقة مع مرور الوقت | حجم المعلمات الفائقة مع مرور الوقت |
---|---|
إذا كنت تستخدم PBA في بحثك، يرجى الاستشهاد بما يلي:
@inproceedings{ho2019pba,
title = {Population Based Augmentation: Efficient Learning of Augmentation Policy Schedules},
author = {Daniel Ho and
Eric Liang and
Ion Stoica and
Pieter Abbeel and
Xi Chen
},
booktitle = {ICML},
year = {2019}
}