سلام
این چیزی که شما دنبالش هستید، به عنوان one-shot learning و zero-shot learning روش کار شده
توی one shot، شما مثلا همون یه تصویر گربه رو دارید و بعدا در نظر دارید که با همون یه دونه، گربه ها رو تشخیص بدید
و توی zero shot خیلی جاها همون یه نمونه رو هم ندارید.
توصیه میکنم مقالات مرتبط با این موضوعات رو بخونید چون تنوع های زیادی دارن و متاسفانه خیلی جاها خیلی هم متمرکز در موردشون حرف زده نشده
برای One-shot learning برای نمونه این مقاله ها خوبن، به خصوص برای کار شما که image recognition هست:
Siamese Neural Networks for One-shot Image Recognition
https://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf
One-shot Learning with Memory-Augmented Neural Networks
https://arxiv.org/pdf/1605.06065.pdf
توی بحث one shot learning، شبکه های حافظه دار یا شبکه های wide هم خیلی مورد توجه هستن. نمونه شبکه های حافظه دار رو توی لینک های بالا گذاشتم که ماله deepmind بود، اما برای بحث شبکه های wide، یه سرچی در مورد عبارت wide and deep learning بکنید اطلاعات بیشتری دستگیرتون میشه
برای Zero-Shot هم برای نمونه این مقالات رو ببینید که به نسبت هم جدید هستن
Zero-Shot Learning - The Good, the Bad and the Ugly
https://arxiv.org/abs/1703.04394
برای شروع بحث one shot learning هم از مدلهای ساده مثل شبکه های siamese استفاده کنید و اگه لازم شد کم کم به سمت شبکه هایی مثل NTM برید چون تیون کردن و آموزشش خیلی(خیلی!) به هایپرپارامترها وابستس و به خصوص اگه تجربه های اولتون با شبکه های دیپ باشه ممکنه اذیت بشید
حتی بدون شبکه های اختصاصی، مثلا با knn و این جور چیزا هم میشه one shot learning انجام داد. یعنی مثلا بردارهای ویژگی رو ذخیره کنید و بعدا با knn هر بردار جدید رو با چیزایی که ذخیره کردید مقایسه کنید. توی هر کاری بهتره ساده ترین کار ممکن رو انجام بدید تا یه baseline اولیه برای خودتون داشته باشید
اینم که گفتم بعضی جاها به طور پراکنده راجع به بحث one shot یا zero shot بحث شده، نمونش توی این مقاله در مورد distillation ه
Distilling the Knowledge in a Neural Network
https://arxiv.org/pdf/1503.02531.pdf
بحث distillation چیزیه که توی خیلی از مقالات به اسم teacher student هم مطرح میشه و شما یه شبکه معمولا خیلی قوی آموزش میدید و بعدش خروجی این شبکه رو برای آموزش یه شبکه کوچیکتر استفاده میکنید
حالا آزمایشی که اینجا کردن اینطوری بوده که یه شبکه روی mnist آموزش دادن، بعد از خروجی این شبکه و خوده training set که توش مثلا عدد 3 حذف شده استفاده کردن برای آموزش یه شبکه دیگه
شبکه جدید با اینکه تا حالا عدد 3 رو ندیده بوده اما می تونه با دقت خوبی عدد 3 رو هم تشخیص بده
این دقیقا zero shot learning خالص نیست اما حداقل اگه می خواید توی این زمینه کار کنید بهتره که این موارد رو هم بدونید
==========================
چندتا لینک برای توضیح بیشتر:
https://sorenbouma.github.io/blog/oneshot
https://github.com/MLWave/extremely-simple-one-shot-learning
https://www.coursera.org/learn/convolutional-neural-networks/lecture/gjckG/one-shot-learning