تنفيذ Pytorch للشبكات السيامية والشبكات الثلاثية للتعلم.
الشبكات السيامية والشبكات الثلاثي مفيدة لتعلم التعيينات من الصورة إلى مساحة إقليدية مدمجة حيث تتوافق المسافات مع مقياس التشابه [2]. يمكن استخدام التضمينات المدربة بهذه الطريقة كمتجهات ميزات للتصنيف أو مهام التعلم القليلة.
يتطلب pytorch 0.4 مع torchvision 0.2.1
ل Pytorch 0.3 التوافق الخروج tag torch-0.3.1
سنقوم بتدريب التضمينات على مجموعة بيانات MNIST. تم إجراء تجارب في دفتر Jupyter.
سنذهب من خلال التعلم التضمينات الخاضعة للإشراف باستخدام وظائف خسارة مختلفة على مجموعة بيانات MNIST. هذا فقط لأغراض التصور ، وبالتالي سنستخدم التضمينات ثنائية الأبعاد التي ليست الخيار الأفضل في الممارسة.
لكل تجربة يتم استخدام شبكة التضمين نفسها (32 Conv 5x5 -> Prelu -> MaxPool 2x2 -> 64 Conv 5x5 -> Prelu -> Maxpool 2x2 -> كثيف 256 -> Prelu -> كثيف 256 -> Prelu -> الكثافة 2) ونحن لا نجري أي عملية بحث هائلة.
نضيف طبقة متصلة بالكامل مع عدد الفئات وتدريب الشبكة للتصنيف باستخدام softmax و enropy. تتدرب الشبكة إلى دقة 99 ٪ تقريبًا. نستخرج ثنائي الأبعاد من الطبقة قبل الأخيرة:
مجموعة القطار:

مجموعة الاختبار:

على الرغم من أن التضمينات تبدو قابلة للفصل (وهو ما قمنا بتدريبه عليها) ، إلا أنه ليس لديهم خصائص مترية جيدة. قد لا تكون الخيار الأفضل كواصف لفصول جديدة.
الآن سنقوم بتدريب شبكة Siamese التي تلتقط زوجًا من الصور وتدرب على التضمين بحيث يتم تقليل المسافة بينهما إذا كانت من نفس الفصل وهي أكبر من بعض قيمة الهامش إذا كانت تمثل فئات مختلفة. سنقلل من وظيفة فقدان التباين [1]:

Siamesemnist فئة العينات عشوائيا أزواج إيجابية وسلبية يتم تغذيتها بعد ذلك إلى شبكة سيامي.
بعد 20 عصرًا من التدريب ، هنا هي التضمينات التي نحصل عليها لمجموعة التدريب:

مجموعة الاختبار:

يتم تجميع التضمينات المستفادة بشكل أفضل بكثير داخل الفصل.
سنقوم بتدريب شبكة ثلاثية ، والتي تأخذ مرساة ، ومرساة إيجابية (من نفس الفئة مثل مرساة) وسلبية (من فئة مختلفة عن المرساة). الهدف من ذلك هو تعلم التضمينات بحيث يكون المرساة أقرب إلى المثال الإيجابي مما هو عليه على المثال السلبي من خلال بعض قيمة الهامش.
المصدر: شروف ، فلوريان ، ديمتري كالينيتشينكو ، وجيمس فيلبين. FaceNet: تضمين موحد للتعرف على الوجه والتجميع. CVPR 2015.
خسارة ثلاثية : 
TripletMnist فئة عينات مثال إيجابي وسلبي لكل مرساة ممكنة.
بعد 20 عصرًا من التدريب ، هنا هي التضمينات التي نحصل عليها لمجموعة التدريب:

مجموعة الاختبار:

إن التضمينات المستفادة ليست قريبة من بعضها البعض داخل الفصل كما في حالة شبكة سيامي ، ولكن هذا ليس ما قمنا بتحسينه من أجله. أردنا أن تكون التضمينات أقرب إلى التضمينات الأخرى من نفس الفصل من الفصول الأخرى ويمكننا أن نرى ذلك هو المكان الذي سيذهب إليه التدريب.
هناك بعض المشاكل مع الشبكات السيامية والشبكات الثلاثية:
للتعامل مع هذه المشكلات بكفاءة ، سنقوم بتغذية شبكة بمزارع مصغرة قياسية كما فعلنا للتصنيف. ستكون وظيفة الخسارة مسؤولة عن اختيار الأزواج الصلبة والثلاثي داخل الدفعة الصغيرة. إذا قمنا بتغذية الشبكة بـ 16 صورة لكل 10 فئات ، فيمكننا معالجة ما يصل إلى 159*160/2 = 12720 زوجًا و 10*16*15/2*(9*16) = 172800 ثلاث توابل ، مقارنة بـ 80 زوجًا و 53 ثلاثة توائم في التنفيذ السابق.
عادةً ما تكون أفضل فكرة لمعالجة جميع الأزواج أو الثلاثيات الممكنة داخل دفعة صغيرة. يمكننا العثور على بعض الاستراتيجيات حول كيفية اختيار ثلاثة توائم في [2] و [3].
سنقوم بتغذية شبكة مع مزارع صغيرة ، كما فعلنا لشبكة التصنيف. هذه المرة سنستخدم دفعة خاصة من سيقوم بتجربة n_classes و n_samples داخل كل فئة ، مما يؤدي إلى دفعات صغيرة من حجم n_classes*n_samples .
لكل دفعة صغيرة سيتم اختيار أزواج إيجابية وسلبية باستخدام ملصقات متوفرة.
MNIST هي مجموعة بيانات سهلة إلى حد ما ، وكانت التضمينات من الأزواج التي تم اختيارها عشوائيًا جيدًا بالفعل ، ولا نرى الكثير من التحسن هنا.
التضمينات القطار:

اختبار التضمينات:

سنقوم بتغذية شبكة مع مكامن صغيرة مثل اختيار الزوج عبر الإنترنت. هناك اثنين من الاستراتيجيات التي يمكننا استخدامها للاختيار الثلاثي المعطى الملصقات والتضمينات المتوقعة:
يجب اختيار استراتيجية الاختيار الثلاثي بعناية. قد تؤدي الإستراتيجية السيئة إلى تدريب غير فعال أو ، والأسوأ من ذلك ، أن تنهار (جميع التضمينات التي تنتهي بها نفس القيم).
إليك ما حصلنا عليه مع سلبيات صعبة عشوائية لكل زوج إيجابي.
مجموعة التدريب:

مجموعة الاختبار:

أجريت تجارب مماثلة لمجموعة بيانات الموضة حيث تكون مزايا التعدين السلبي عبر الإنترنت أكثر وضوحًا قليلاً. تم استخدام نفس بنية الشبكة بالضبط مع تضمينات ثنائية الأبعاد فقط ، والتي ربما لا تكون معقدة بما يكفي لتعلم التضمينات الجيدة. يجب أن تستفيد مجموعات البيانات الأكثر تعقيدًا ذات فصول العدد الأعداد أكثر من التعدين عبر الإنترنت.

شبكة سيامي مع أزواج مختارة عشوائيا

خسارة متناقضة عبر الإنترنت مع التعدين السلبي

شبكة ثلاثية مع ثلاثة توائم عشوائية

خسارة ثلاثية عبر الإنترنت مع التعدين السلبي

[1] Raia Hadsell ، Sumit Chopra ، Yann Lecun ، الحد من الأبعاد عن طريق تعلم رسم الخرائط الثابت ، CVPR 2006
[2] شروف ، فلوريان ، ديمتري كالينيتشينكو ، وجيمس فيلبين. FaceNet: تضمين موحد للتعرف على الوجه والتجميع. CVPR 2015
[3] ألكساندر هيرمانز ، لوكاس باير ، باستيان ليبي ، دفاعًا عن الخسارة الثلاثية لإعادة تحديد الشخص ، 2017
[4] براندون آموس ، بارتوز لودويتشوك ، ماهاديف ساتيانارايانان ، Openface: مكتبة التعرف على الوجه للأغراض العامة مع تطبيقات الهاتف المحمول ، 2016
[5] يي صن ، Xiaogang Wang ، Xiaouou Tang ، تمثيل وجه التعلم العميق عن طريق تحديد هوية المفصل ، NIPS 2014