الوصف
يقدم مستودع GitHub هذا، `karpathy/pytorch-made`، تطبيقًا موجزًا لـ MADE (Masked Autoencoder Density Estimation) باستخدام PyTorch. المفهوم الأساسي وراء MADE هو تحويل جهاز تشفير تلقائي قياسي إلى نموذج كثافة ذاتية الانحدار. يتم تحقيق ذلك عن طريق إخفاء الاتصالات بشكل استراتيجي داخل شبكة متعددة الطبقات (MLP) وترتيب أبعاد الإدخال. بشكل حاسم، يضمن النموذج أن كل بُعد إخراج يعتمد فقط على أبعاد الإدخال التي تظهر في وقت سابق في الترتيب المحدد.
على غرار النماذج الذاتية الانحدار الأخرى مثل char-rnn و pixel cnns، يسهل MADE تقييم احتمالية فعال للغاية، ويتطلب فقط تمريرة أمامية واحدة عبر الشبكة. ومع ذلك، فإن عملية أخذ عينات من نقاط بيانات جديدة خطية بالنسبة لعدد الأبعاد. لوحظ أن تطبيق الورقة الأصلية، على الرغم من وظيفته، كان مطولًا ويعتمد على Theano. يهدف إصدار PyTorch هذا إلى البساطة والوضوح، مع وجود المنطق الأساسي في حوالي 150 سطرًا من التعليمات البرمجية.
يتضمن المستودع أمثلة توضح كيفية استخدام نموذج MADE، خاصة مع مجموعة بيانات binarized MNIST. يمكن للمستخدمين إعادة إنتاج النتائج من الورقة الأصلية، مثل تدريب شبكة MLP ذات طبقة واحدة لتحقيق خسارة إنتروبيا متقاطعة ثنائية تبلغ 94.5. توضح الأمثلة أيضًا كيفية تدريب مجموعات نماذج أكبر، والاستفادة من مشاركة الأوزان داخل شبكة MLP واحدة ومتوسط التنبؤات في وقت الاختبار لتحسين الأداء، وتحقيق خسارة اختبار تبلغ 79.3 مع 10 ترتيبات.
الفئة الأساسية، `MADE`، مطبقة في `made.py` وترث من `nn.Module` الخاص بـ PyTorch، مما يجعل من السهل دمجها في هياكل الشبكات العصبية الأكبر. تتضمن عملية الإنشاء تحديد أبعاد الإدخال والإخراج، وأحجام الطبقات المخفية، وعدد الأقنعة المراد استخدامها. معلمة بُعد الإخراج مرنة، وتسمح بتوزيعات إخراج مختلفة مثل التنبؤات الغاوسية أو softmax المصنفة. الحالة الأبسط، كما هو موضح مع التنبؤات الثنائية لـ MNIST، تستخدم معلمة إخراج واحدة لكل بُعد إدخال.
أبرز ملامح PyTorch MADE
تطبيق تقدير كثافة المُشفّر التلقائي المُقنّع (MADE)
مبني باستخدام PyTorch لسهولة التكامل
يمكّن نمذجة الكثافة الذاتية الانحدار
تقييم احتمالية فعال عبر تمريرة أمامية واحدة
تعقيد أخذ عينات خطي بالنسبة للأبعاد
يتضمن أمثلة لمجموعة بيانات binarized MNIST
يدعم تدريب مجموعات النماذج
طبقة إخراج مرنة لتوزيعات مختلفة
قاعدة تعليمات برمجية موجزة (حوالي 150 سطرًا للمنطق الأساسي)
إخفاء اتصالات MLP للنمذجة الذاتية الانحدار
ترتيب أبعاد الإدخال للتبعيات الشرطية
البدء مع PyTorch MADE
الوصول إلى النموذج: استنساخ مستودع GitHub.
إعداد البيئة: تثبيت PyTorch والتبعيات الأخرى.
التكامل عبر API: إنشاء مثيل لفئة `MADE` من `made.py`.
تكوين النموذج: تحديد أبعاد الإدخال/الإخراج، والطبقات المخفية، وعدد الأقنعة.
تدريب النموذج: استخدام البرنامج النصي `run.py` مع مجموعة البيانات والمعلمات المحددة.
تقييم الاحتمالية: إجراء تمريرة أمامية واحدة.
أخذ عينات من البيانات: تنفيذ عملية أخذ العينات بشكل خطي مع الأبعاد.
حالات استخدام PyTorch MADE
- تقدير الكثافة
- النمذجة الذاتية الانحدار
- توليد الصور
- النمذجة الاحتمالية
- أبحاث التعلم الآلي
- ضغط البيانات






