الهدف من هذا المستودع هو احتواء رمز نظيف وقابل للقراءة والاختبار لإعادة إنتاج أبحاث التعلم القليلة.
هذا المشروع مكتوب في Python 3.6 و Pytorch ويفترض أن لديك وحدة معالجة الرسومات.
شاهد هذه المقالات المتوسطة لمزيد من المعلومات
المدرجة في requirements.txt . تثبيت مع pip install -r requirements.txt .
قم بتحرير متغير DATA_PATH في config.py إلى الموقع حيث تقوم بتخزين مجموعات بيانات Omniglot و Miniimagenet.
بعد الحصول على البيانات وتشغيل نصوص الإعداد يجب أن تبدو بنية المجلد الخاصة بك
DATA_PATH/
Omniglot/
images_background/
images_evaluation/
miniImageNet/
images_background/
images_evaluation/
مجموعة البيانات Omniglot . تنزيل من https://github.com/brendenlake/omniglot/tree/master/python ، ضع الملفات المستخرجة في DATA_PATH/Omniglot_Raw وقم بتشغيل scripts/prepare_omniglot.py
مجموعة بيانات Miniimagenet . قم بتنزيل الملفات من https://drive.google.com/file/d/0b3irx3uqnobmq1flnxjszudywee/view ، مكان في data/miniImageNet/images وتشغيل scripts/prepare_mini_imagenet.py
بعد إضافة مجموعات البيانات قم بتشغيل pytest في دليل الجذر لتشغيل جميع الاختبارات.
experiments/experiments.txt

قم بتشغيل experiments/proto_nets.py لتكاثر النتائج من الشبكات البروتينية لتعلم القليل من اللقطة (Snell et al).
الحجج
| Omniglot | ||||
|---|---|---|---|---|
| K-Way | 5 | 5 | 20 | 20 |
| n-Shot | 1 | 5 | 1 | 5 |
| المنشورة | 98.8 | 99.7 | 96.0 | 98.9 |
| هذا الريبو | 98.2 | 99.4 | 95.8 | 98.6 |
| miniimagenet | ||
|---|---|---|
| K-Way | 5 | 5 |
| n-Shot | 1 | 5 |
| المنشورة | 49.4 | 68.2 |
| هذا الريبو | 48.0 | 66.2 |
مصنف أقرب جيران قابل للتمييز.

قم بتشغيل experiments/matching_nets.py لإعادة إنتاج النتائج من مطابقة الشبكات لتعلم طلقة واحدة (Vinyals et al).
الحجج
واجهت مشكلة في إعادة إنتاج نتائج هذه الورقة باستخدام مقياس مسافة جيب التمام حيث وجدت أن التقارب بطيئة ونهائية يعتمد على التهيئة العشوائية. ومع ذلك ، تمكنت من إعادة إنتاج (وتجاوزها قليلاً) نتائج هذه الورقة باستخدام مقياس المسافة L2.
| Omniglot | ||||
|---|---|---|---|---|
| K-Way | 5 | 5 | 20 | 20 |
| n-Shot | 1 | 5 | 1 | 5 |
| تم النشر (جيب التمام) | 98.1 | 98.9 | 93.8 | 98.5 |
| هذا الريبو (جيب التمام) | 92.0 | 93.2 | 75.6 | 77.8 |
| هذا الريبو (L2) | 98.3 | 99.8 | 92.8 | 97.8 |
| miniimagenet | ||
|---|---|---|
| K-Way | 5 | 5 |
| n-Shot | 1 | 5 |
| تم النشر (جيب التمام ، FCE) | 44.2 | 57.0 |
| هذا الريبو (جيب التمام ، FCE) | 42.8 | 53.6 |
| هذا الريبو (L2) | 46.0 | 58.4 |

لقد استخدمت Max Pooling بدلاً من الملاحقات المرتجلة من أجل أن تكون متسقة مع الأوراق الأخرى. استغرقت تجارب Miniimagenet باستخدام MAML من الدرجة الثانية على مدار يوم واحد للركض.
قم بتشغيل experiments/maml.py لتكاثر النتائج من التعلم التلوي العازلة النموذجية (Finn et al).
الحجج
NB: بالنسبة لـ MAML N و K و Q يتم إصلاحها بين القطار والاختبار. قد تحتاج إلى ضبط حجم مكيفات التعريف لتناسب وحدة معالجة الرسومات الخاصة بك. 2nd Order Maml يستخدم الكثير من الذاكرة.
| Omniglot | ||||
|---|---|---|---|---|
| K-Way | 5 | 5 | 20 | 20 |
| n-Shot | 1 | 5 | 1 | 5 |
| المنشورة | 98.7 | 99.9 | 95.8 | 98.9 |
| هذا الريبو (1) | 95.5 | 99.5 | 92.2 | 97.7 |
| هذا الريبو (2) | 98.1 | 99.8 | 91.6 | 95.9 |
| miniimagenet | ||
|---|---|---|
| K-Way | 5 | 5 |
| n-Shot | 1 | 5 |
| المنشورة | 48.1 | 63.2 |
| هذا الريبو (1) | 46.4 | 63.3 |
| هذا الريبو (2) | 47.5 | 64.7 |
يشير الرقم بين قوسين إلى MAML من الطلب الأول أو الثاني.