تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

آنچه در این مقاله می‌خوانید

هر آنچه که باید در مورد یادگیری چند مرحله‌ای بدانید


۱۳ شهریور ۱۴۰۴

موفقیت مدل‌های یادگیری عمیق در وظایف بینایی رایانه‌ای مانند طبقه‌بندی تصاویر، تقسیم‌بندی معنایی، و تشخیص اشیاء، عمدتاً به بهره‌برداری از حجم عظیمی از داده‌های برچسب‌دار برای آموزش شبکه‌ها نسبت داده می‌شود که این روش به عنوان یادگیری نظارت‌شده شناخته می‌شود. با وجود اینکه در عصر فناوری اطلاعات، حجم زیادی از داده‌های بدون ساختار در دسترس است، اما داده‌های برچسب‌دار همچنان چالش‌برانگیز و دشوار به دست می‌آیند.

برچسب‌گذاری داده‌ها بخش عمده‌ای از زمان اختصاص‌یافته به یک پروژه یادگیری ماشین در بینایی رایانه را به خود اختصاص می‌دهد و به همین دلیل، فرآیندی پرهزینه است. علاوه بر این، در حوزه‌هایی مانند مراقبت‌های بهداشتی، تنها متخصصان پزشکی مانند پزشکان می‌توانند داده‌ها را دسته‌بندی کنند برای مثال، به دو تصویر زیر از سیتولوژی گردن رحم نگاه کنید: آیا می‌توانید با قاطعیت بگویید کدام یک سرطانی است؟

با هوش مصنوعی لیارا، دسترسی سریع و پایدار به API هوش مصنوعی داشته باشید.
✅ ارائه API هوش مصنوعی✅ ادغام آسان با سرویس‌ها و اپلیکیشن‌ها✅ مقیاس‌پذیری و امنیت بالا
خرید و راه‌اندازی سرویس هوش مصنوعی

همچنین، لیارا از جمله نخستین سرویس‌های میزبانی ابری ایرانی است که در زمینه ارائه خدمات مرتبط با هوش مصنوعی پیشتاز محسوب می‌شود. برای اطلاعات بیشتر، مستندات سرویس هوش مصنوعی لیارا را مشاهده کنید.

آنچه در ادامه خواهید خواند:

اکثر متخصصان پزشکی آموزش‌ندیده پاسخ را نمی‌دانند: (a) سرطانی است، در حالی که (b) خوش‌خیم است. بنابراین، برچسب‌گذاری داده‌ها در چنین سناریوهایی دشوارتر است. در بهترین حالت، تنها تعداد انگشت‌شماری نمونه برچسب‌دار داریم که برای آموزش مدل‌های یادگیری نظارت‌شده کافی نیست.

علاوه بر این، داده‌های جدید ممکن است به صورت تدریجی در طول زمان در دسترس قرار گیرند، مانند داده‌های مربوط به گونه جدیدی از پرندگان که اخیراً شناسایی شده است. آموزش یک شبکه عصبی عمیق روی مجموعه داده بزرگ، مصرف انرژی محاسباتی زیادی دارد (برای مثال، ResNet-200 حدود سه هفته روی ۸ GPU زمان برد). بنابراین، آموزش مجدد مدل برای تطبیق با داده‌های جدید در اکثر سناریوها غیرعملی است.

اینجاست که مفهوم نسبتاً جدید یادگیری با تعداد نمونه‌های کم (Few-Shot Learning) وارد می‌شود.

نکات کلیدی:

یادگیری با تعداد نمونه‌های کم (FSL) یک پارادایم متا-یادگیری است که به مدل پیش‌آموزش‌دیده اجازه می‌دهد تا با استفاده از تنها تعداد انگشت‌شماری مثال، به کلاس‌های جدید سازگار شود و از دانش پیشین برای تعمیم فراتر از آنچه در آموزش اولیه دیده، بهره ببرد. سناریوهای FSL اغلب به عنوان مشکلات N-way K-shot توصیف می‌شوند، به این معنا که مدل باید N کلاس جدید را با استفاده از تنها K مثال از هر کدام تمایز دهد، و از تکنیک‌هایی مانند متا-یادگیری یا یادگیری مبتنی بر شباهت برای تعمیم مؤثر از چنین داده‌های محدودی استفاده می‌کند. این رویکرد به موقعیت‌هایی می‌پردازد که جمع‌آوری مجموعه داده‌های بزرگ برچسب‌دار غیرعملی است، مانند تشخیص پزشکی یا شناسایی اشیاء نادر، و به سیستم‌های هوش مصنوعی اجازه می‌دهد تا از داده‌های بسیار کم، به شیوه‌ای که شبیه به توانایی انسان در شناخت مفاهیم جدید از چند مثال است، یاد بگیرند.

پیش‌نیازها

برای همراهی با این مقاله، به یک GPU قدرتمند NVIDIA مانند H100 یا A100-80G، تجربه با کدهای Python، و درک مبتدی از یادگیری عمیق نیاز دارید. فرض می‌کنیم همه خوانندگان به ماشین‌های کافی قدرتمند دسترسی دارند تا کدهای ارائه‌شده را اجرا کنند. GPUهای کمتر قدرتمند نیز قابل استفاده هستند، اما نتایج ممکن است زمان بیشتری ببرد.

اگر به GPU دسترسی ندارید، پیشنهاد می‌کنیم از طریق ابر به آن دسترسی پیدا کنید. با ثبت‌نام در حساب DigitalOcean و ایجاد یک Droplet GPU، از ماشین‌های مجازی GPU بر اساس تقاضا شروع کنید.

اگر در حال ایجاد یک Droplet GPU در DigitalOcean هستید، آموزش زیر را برای شکستن کامل تمام مراحل راه‌اندازی Droplet، SSH به Droplet از ماشین محلی، و راه‌اندازی یک Jupyter Notebook قابل دسترسی با Visual Studio Code و مرورگر باز کنید.

برای دستورالعمل‌های شروع با کد Python، پیشنهاد می‌کنیم این راهنمای مبتدی را برای تنظیم سیستم و آماده‌سازی برای اجرای آموزش‌های مبتدی امتحان کنید.

یادگیری با تعداد نمونه‌های کم چیست؟

یادگیری با تعداد نمونه‌های کم (FSL) یک چارچوب یادگیری ماشین است که به مدل پیش‌آموزش‌دیده اجازه می‌دهد تا به دسته‌بندی‌های جدید داده (که مدل پیش‌آموزش‌دیده در آموزش ندیده) با استفاده از تنها چند نمونه برچسب‌دار در هر کلاس تعمیم دهد. این زیر پارادایم متا-یادگیری قرار می‌گیرد (متا-یادگیری به معنای یادگیری برای یادگیری است).

گرافیک یادگیری با تعداد نمونه‌های کم

ما انسان‌ها می‌توانیم کلاس‌های جدید داده را به راحتی با استفاده از تنها چند مثال و با بهره‌برداری از دانش پیشین خود شناسایی کنیم. FSL هدفش تقلید از همین است. این متا-یادگیری نامیده می‌شود و با یک مثال بهتر درک می‌شود.

فرض کنید برای اولین بار به یک باغ‌وحش عجیب‌وغریب رفته‌اید و پرنده‌ای را می‌بینید که قبلاً ندیده‌اید. حالا، سه کارت به شما داده شده که هر کدام دو تصویر از گونه‌های مختلف پرندگان دارند. با دیدن تصاویر روی کارت‌ها برای هر گونه و پرنده در باغ‌وحش، می‌توانید گونه پرنده را به راحتی استنباط کنید، با استفاده از اطلاعاتی مانند رنگ پرها، طول دم، و غیره. اینجا، شما خودتان گونه پرنده را با استفاده از اطلاعات پشتیبان یاد گرفته‌اید. این چیزی است که متا-یادگیری سعی در تقلید آن دارد.

اصطلاحات مهم مرتبط با یادگیری با تعداد نمونه‌های کم

بیایید چند اصطلاح رایج در ادبیات FSL را بحث کنیم که به بحث‌های بعدی کمک می‌کند.

مجموعه پشتیبان (Support Set): مجموعه پشتیبان شامل چند نمونه برچسب‌دار در هر دسته جدید داده است که مدل پیش‌آموزش‌دیده از آن برای تعمیم به این کلاس‌های جدید استفاده می‌کند.

مجموعه پرس‌وجو (Query Set): مجموعه پرس‌وجو شامل نمونه‌هایی از دسته‌های جدید و قدیمی داده است که مدل باید با استفاده از دانش پیشین و اطلاعات کسب‌شده از مجموعه پشتیبان به آنها تعمیم دهد.

طرح یادگیری N-way K-shot: این عبارت رایج در ادبیات FSL است که اساساً مسئله یادگیری با تعداد نمونه‌های کم را توصیف می‌کند که مدل با آن روبرو است. N-way نشان‌دهنده این است که N تعداد دسته جدید وجود دارد که مدل پیش‌آموزش‌دیده باید به آنها تعمیم دهد. مقدار بالاتر N به معنای وظیفه دشوارتر است. K-shot تعداد نمونه‌های برچسب‌دار موجود در مجموعه پشتیبان برای هر یک از N کلاس جدید را تعریف می‌کند. وظیفه یادگیری با تعداد نمونه‌های کم با مقادیر پایین‌تر K دشوارتر می‌شود (یعنی دقت پایین‌تر) زیرا اطلاعات پشتیبان کمتری برای استنباط در دسترس است.

مقادیر K معمولاً در محدوده یک تا پنج هستند. وظایف K=1 به نام یادگیری یک‌شوتی شناخته می‌شوند زیرا به طور خاص دشوار هستند. ما بعداً در این مقاله آنها را بحث می‌کنیم. K=0 نیز ممکن است که به آن یادگیری صفر‌شوتی می‌گویند. یادگیری صفر‌شوتی کاملاً متفاوت از سایر رویکردهای یادگیری با تعداد نمونه‌های کم است (زیرا به پارادایم یادگیری بدون نظارت تعلق دارد). بنابراین، در این مقاله به آن نمی‌پردازیم.

چرا یادگیری با تعداد نمونه‌های کم؟

روش‌های یادگیری نظارت‌شده سنتی از مقادیر زیادی داده برچسب‌دار برای آموزش استفاده می‌کنند. علاوه بر این، مجموعه تست شامل نمونه‌های داده‌ای است که نه تنها به همان دسته‌های مجموعه آموزش تعلق دارند، بلکه باید از توزیع آماری مشابهی نیز بیایند. برای مثال، مجموعه داده‌ای که از تصاویر گرفته‌شده با گوشی موبایل ایجاد شده، از نظر آماری متفاوت از مجموعه داده‌ای است که از تصاویر گرفته‌شده با دوربین DSLR پیشرفته ایجاد شده. این به عنوان تغییر دامنه شناخته می‌شود.

یادگیری با تعداد نمونه‌های کم مشکلات فوق را به روش‌های زیر کاهش می‌دهد:

نیاز به حجم زیاد داده‌های برچسب‌دار پرهزینه برای آموزش مدل حذف می‌شود زیرا، همان‌طور که نام نشان می‌دهد، هدف تعمیم با استفاده از تنها چند نمونه برچسب‌دار است. از آنجایی که مدل پیش‌آموزش‌دیده (یکی که روی مجموعه داده گسترده، مانند ImageNet، آموزش دیده) به دسته‌های جدید داده گسترش می‌یابد، نیازی به آموزش مجدد مدل از صفر نیست که انرژی محاسباتی زیادی صرفه‌جویی می‌کند. با استفاده از FSL، مدل‌ها می‌توانند درباره دسته‌های نادر داده با قرارگیری در معرض اطلاعات پیشین محدود یاد بگیرند. برای مثال، داده‌های مربوط به گونه‌های در معرض خطر یا تازه‌شناسایی‌شده حیوانات/گیاهان کمیاب است و این برای آموزش مدل FSL کافی خواهد بود. حتی اگر مدل با توزیع آماری متفاوت داده پیش‌آموزش دیده باشد، می‌تواند به دامنه‌های دیگر داده گسترش یابد، به شرطی که داده‌های مجموعه پشتیبان و پرس‌وجو همخوان باشند.

یادگیری با تعداد نمونه‌های کم چگونه کار می‌کند؟

هدف اصلی در چارچوب‌های سنتی FSL یادگیری یک تابع شباهت است که می‌تواند شباهت‌های بین کلاس‌ها در مجموعه‌های پشتیبان و پرس‌وجو را نقشه‌برداری کند. توابع شباهت معمولاً یک مقدار احتمال برای شباهت خروجی می‌دهند.

تصویر اندازه‌گیری شباهت

برای مثال، در تصویر زیر، یک تابع شباهت کامل باید مقدار ۱.۰ را هنگام مقایسه دو تصویر از گربه‌ها (I1 و I2) خروجی دهد. برای دو مورد دیگر، جایی که تصاویر گربه با تصویر یک اوزلوت مقایسه می‌شوند، خروجی شباهت باید ۰.۰ باشد. با این حال، این سناریوی ایده‌آل است. در واقعیت، مقادیر ممکن است ۰.۹۵ برای I1 و I2 و مقدار کوچکی بیشتر از ۰ برای دو مورد دیگر (مانند ۰.۰۲ و ۰.۰۳) باشد.

تصویر یادگیری با تعداد نمونه‌های کم و مجموعه پشتیبان

حالا، از یک مجموعه داده برچسب‌دار بزرگ برای آموزش پارامترهای چنین تابع شباهتی استفاده می‌کنیم. مجموعه آموزش مورد استفاده برای پیش‌آموزش مدل عمیق به صورت نظارت‌شده می‌تواند برای این منظور استفاده شود. پس از آموزش پارامترهای تابع شباهت، می‌توان از آن در فاز یادگیری با تعداد نمونه‌های کم برای تعیین احتمالات شباهت روی مجموعه پرس‌وجو با استفاده از اطلاعات مجموعه پشتیبان استفاده کرد. سپس، برای هر نمونه مجموعه پرس‌وجو، کلاسی با بالاترین شباهت از مجموعه پشتیبان به عنوان پیش‌بینی برچسب کلاس توسط مدل FSL استنباط می‌شود. یک مثال چنین چیزی در بالا نشان داده شده است.

شبکه‌های سیامی

در ادبیات یادگیری با تعداد نمونه‌های کم، توابع شباهت لزوماً توابع نیستند. آنها می‌توانند، و معمولاً هستند، شبکه‌های عصبی: یکی از محبوب‌ترین مثال‌ها شبکه سیامی است. نام از این واقعیت گرفته شده که دوقلوهای سیامی فیزیکی به هم متصل هستند. برخلاف شبکه‌های عصبی سنتی که یک شاخه ورودی و یک شاخه خروجی دارند، شبکه سیامی دو یا سه شاخه ورودی (بر اساس روش آموزش) و یک شاخه خروجی دارد.

دو روش برای آموزش شبکه سیامی وجود دارد که در ادامه بحث می‌کنیم:

روش-۱: شباهت جفتی

در این روش، شبکه سیامی دو ورودی همراه با برچسب‌های مربوطه (با استفاده از مجموعه آموزش مورد استفاده برای استخراج‌کننده ویژگی پیش‌آموزش‌دیده) دریافت می‌کند. اینجا، ابتدا یک نمونه از مجموعه داده به صورت تصادفی انتخاب می‌کنیم (فرض کنید تصویر یک سگ را انتخاب می‌کنیم). سپس، دوباره یک نمونه به صورت تصادفی از مجموعه داده انتخاب می‌کنیم. اگر نمونه دوم به همان کلاس نمونه اول تعلق داشته باشد، یعنی اگر تصویر دوم دوباره از سگ باشد، برچسب 1.0 را به عنوان حقیقت زمینی برای شبکه سیامی اختصاص می‌دهیم. برای تمام کلاس‌های دیگر، برچسب 0.0 به عنوان حقیقت زمینی اختصاص داده می‌شود.

تصویر شباهت جفتی

بنابراین، این شبکه اساساً یک معیار تطبیق شباهت را از طریق مثال‌های برچسب‌دار یاد می‌گیرد. این با استفاده از یک مثال در بالا نشان داده شده است. تصاویر ابتدا جداگانه از استخراج‌کننده ویژگی پیش‌آموزش‌دیده (معمولاً یک شبکه عصبی کانولوشنی) عبور داده می‌شوند تا نمایندگی‌های مربوطه‌شان به دست آید. سپس دو نمایندگی به دست آمده ترکیب شده و از لایه‌های متراکم و تابع فعال‌سازی سیگموئید عبور داده می‌شوند تا امتیاز شباهت به دست آید. ما قبلاً می‌دانیم که نمونه‌ها به همان کلاس تعلق دارند یا نه، بنابراین این اطلاعات به عنوان امتیاز شباهت حقیقت زمینی برای محاسبه تلفات و محاسبه پس‌پراگیشن استفاده می‌شود.

در Python 3، شباهت کسینوسی بین دو نمونه می‌تواند با استفاده از کد زیر محاسبه شود:

import torch
import torch.nn as nn

input1 = torch.randn(100, 128)
input2 = torch.randn(100, 128)
cos = nn.CosineSimilarity(dim=1, eps=1e-6)
output = cos(input1, input2)

برای دریافت تصاویر و اطلاعات مربوطه در مورد اینکه آیا به همان کلاس تعلق دارند یا نه، مجموعه داده سفارشی زیر باید در Python 3 پیاده‌سازی شود:

import random
from PIL import Image
import torchvision
import torchvision.datasets as datasets
import torchvision.transforms as transforms
from torch.utils.data import DataLoader, Dataset
import torchvision.utils
import torch
import torch.nn as nn

class SiameseDataset(Dataset):
    def __init__(self,folder,transform=None):
        self.folder = folder        #type: torchvision.datasets.ImageFolder
        self.transform = transform  #type: torchvision.transforms

    def __getitem__(self,index):
        #Random image set as anchor
        image0_tuple = random.choice(self.folder.imgs)

        random_val = random.randint(0,1) 
        if random_val: #If random_val = 1, output a positive class sample
            while True:
                #Find "positive" Image
                image1_tuple = random.choice(self.folder.imgs) 
                if image0_tuple[1] == image1_tuple[1]:
                    break
        else: #If random_val = 0, output a negative class sample
            while True:
                #Find "negative" Image
                image1_tuple = random.choice(self.folder.imgs) 
                if image0_tuple[1] != image1_tuple[1]:
                    break

        image0 = Image.open(image0_tuple[0])
        image1 = Image.open(image1_tuple[0])

        image0 = image0.convert("L")
        image1 = image1.convert("L")

        if self.transform is not None:
            image0 = self.transform(image0)
            image1 = self.transform(image1)

        #Return the two images along with the information of whether they belong to the same class
        return image0, image1, int(random_val)

    def __len__(self):
        return len(self.folder.imgs)

روش۲: تلفات سه‌تایی

این روش بر اساس معیار تلفات سه‌تایی است و می‌تواند به عنوان روش ۱ در نظر گرفته شود، اگرچه استراتژی آموزش اینجا متفاوت است. ابتدا، یک نمونه داده از مجموعه داده (مجموعه آموزش) به صورت تصادفی انتخاب می‌کنیم که آن را نمونه لنگر می‌نامیم. سپس، دو نمونه داده دیگر انتخاب می‌کنیمیکی از همان کلاس نمونه لنگر، به نام نمونه مثبت، و دیگری از کلاس متفاوت با لنگر، به نام نمونه منفی.

پس از انتخاب این سه نمونه، آنها از همان شبکه عصبی عبور داده می‌شوند تا نمایندگی‌های مربوطه‌شان در فضای جاسازی به دست آید. سپس، فاصله L2 نرمال‌شده بین نمایندگی‌های لنگر و نمونه مثبت (فرض کنید d+) و فاصله L2 نرمال‌شده بین لنگر و جاسازی نمونه منفی (فرض کنید d-) را محاسبه می‌کنیم. این پارامترها به ما اجازه می‌دهند تا یک تابع تلفات را تعریف کنیم که باید کمینه شود، همان‌طور که در زیر نشان داده شده است.

تصویر روش تلفات سه‌تایی شبکه سیامی

نمای کلی از روش تلفات سه‌تایی آموزش شبکه سیامی. تصویر توسط نویسنده

اینجا، >0 یک حاشیه است که جلوگیری می‌کند از برابر بودن دو عبارت تابع max. هدف اینجا این است که نمایندگی‌های لنگر و نمونه‌های منفی را تا حد ممکن در فضای جاسازی دور کند در حالی که نمایندگی‌های لنگر و نمونه‌های مثبت را تا حد ممکن نزدیک کند، همان‌طور که در زیر نشان داده شده است.

تصویر فضای جاسازی

مثالی از اینکه چگونه نمایندگی‌های نمونه‌های داده در فضای جاسازی هم‌تراز می‌شوند. تصویر توسط نویسنده

با استفاده از PyTorch، تلفات سه‌تایی می‌تواند به راحتی مانند زیر پیاده‌سازی شود (با استفاده از مثالی از نمونه‌های لنگر، مثبت، و منفی تصادفی):

import torch
import torch.nn as nn

triplet_loss = nn.TripletMarginLoss(margin=1.0, p=2)
anchor = torch.randn(100, 128, requires_grad=True)
positive = torch.randn(100, 128, requires_grad=True)
negative = torch.randn(100, 128, requires_grad=True)
output = triplet_loss(anchor, positive, negative)
output.backward()

برای تولید نمونه‌های لنگر، مثبت، و منفی از یک مجموعه داده تصویر با استفاده از PyTorch، کلاس مجموعه داده سفارشی زیر باید نوشته شود:

import random
from PIL import Image
import torchvision
import torchvision.datasets as datasets
import torchvision.transforms as transforms
from torch.utils.data import DataLoader, Dataset
import torchvision.utils
import torch
import torch.nn as nn

class SiameseDataset(Dataset):
    def __init__(self,folder,transform=None):
        self.folder = folder        #type: torchvision.datasets.ImageFolder
        self.transform = transform  #type: torchvision.transforms

    def __getitem__(self,index):
        #Random image set as anchor
        anchor_tuple = random.choice(self.folder.imgs)

        while True:
            #Find "positive" Image
            positive_tuple = random.choice(self.folder.imgs) 
            if anchor_tuple[1] == positive_tuple[1]:
                break

        while True:
            #Find "negative" Image
            negative_tuple = random.choice(self.folder.imgs) 
            if anchor_tuple[1] != negative_tuple[1]:
                break

        anchor = Image.open(anchor_tuple[0])
        positive = Image.open(positive_tuple[0])
        negative = Image.open(negative_tuple[0])

        anchor = anchor.convert("L")
        positive = positive.convert("L")
        negative = negative.convert("L")

        if self.transform is not None:
            anchor = self.transform(anchor)
            positive = self.transform(positive)
            negative = self.transform(negative)

        return anchor, positive, negative

    def __len__(self):
        return len(self.folder.imgs)

کد فوق می‌تواند به راحتی در یک نوت‌بوک پیاده‌سازی شود. کافی است یک نوت‌بوک باز کنید و از کد ارائه‌شده در این مخزن GitHub استفاده کنید.

رویکردهای یادگیری با تعداد نمونه‌های کم

رویکردهای یادگیری با تعداد نمونه‌های کم را می‌توان به طور گسترده به چهار دسته طبقه‌بندی کرد که در ادامه بحث می‌کنیم:

<$>[info] اطلاعات: قدرت هوش مصنوعی و یادگیری ماشین را با Dropletهای GPU DigitalOcean تجربه کنید. از GPUهای NVIDIA H100 برای شتاب‌دهی به بارهای کاری AI/ML، پروژه‌های یادگیری عمیق، و وظایف محاسباتی با کارایی بالا با راه‌حل‌های ابری ساده، انعطاف‌پذیر، و مقرون‌به‌صرفه بهره ببرید.

امروز ثبت‌نام کنید تا به Dropletهای GPU دسترسی پیدا کنید و پروژه‌های AI خود را بر اساس تقاضا بدون شکستن بانک مقیاس دهید. <$>

سطح داده

رویکردهای FSL سطح داده مفهوم ساده‌ای دارند. اگر آموزش مدل FSL به دلیل کمبود داده آموزش (و برای جلوگیری از بیش‌برازش یا کم‌برازش) متوقف شود، می‌توان داده بیشتری اضافه کرد که ممکن است ساختارمند باشد یا نه. یعنی، فرض کنید دو نمونه برچسب‌دار در هر کلاس در مجموعه پشتیبان داریم که ممکن است کافی نباشد، بنابراین می‌توانیم نمونه‌ها را با استفاده از تکنیک‌های مختلف افزایش دهیم.

اگرچه افزایش داده اطلاعات کاملاً جدیدی ارائه نمی‌دهد، اما همچنان می‌تواند برای آموزش FSL مفید باشد. روش دیگر می‌تواند اضافه کردن داده‌های بدون برچسب به مجموعه پشتیبان باشد، که مسئله FSL را نیمه‌نظارت‌شده می‌کند. مدل FSL می‌تواند حتی از داده‌های بدون ساختار برای جمع‌آوری اطلاعات بیشتر استفاده کند، که ثابت شده عملکرد یادگیری با تعداد نمونه‌های کم را بهبود می‌بخشد.

روش‌های دیگر نیز هدف استفاده از شبکه‌های generative (مانند مدل‌های GAN) برای سنتز داده‌های کاملاً جدید از توزیع داده موجود را دارند. با این حال، برای رویکردهای مبتنی بر GAN، حجم زیادی داده آموزش برچسب‌دار برای آموزش پارامترهای مدل اول لازم است قبل از اینکه بتوان از آن برای تولید نمونه‌های جدید با استفاده از چند نمونه مجموعه پشتیبان استفاده کرد.

سطح پارامتر

در FSL، در دسترس بودن نمونه‌ها محدود است؛ بنابراین، بیش‌برازش رایج است زیرا نمونه‌ها فضاهای گسترده و با بعد بالا دارند. رویکردهای FSL سطح پارامتر شامل استفاده از متا-یادگیری است که بهره‌برداری از پارامترهای مدل را کنترل می‌کند تا هوشمندانه استنباط کند کدام ویژگی‌ها برای وظیفه فعلی مهم هستند.

روش‌های FSL که فضای پارامتر را محدود می‌کنند و از تکنیک‌های منظم‌سازی استفاده می‌کنند، زیر دسته سطح پارامتر قرار می‌گیرند. مدل‌ها آموزش داده می‌شوند تا مسیر بهینه در فضای پارامتر برای ارائه پیش‌بینی‌های هدفمند پیدا کنند.

سطح متریک

رویکردهای FSL سطح متریک هدف یادگیری یک تابع فاصله بین نقاط داده را دارند. ویژگی‌ها از تصاویر استخراج می‌شوند و فاصله بین تصاویر در فضای جاسازی محاسبه می‌شود. این تابع فاصله می‌تواند فاصله اقلیدسی، فاصله Earth Mover، فاصله مبتنی بر شباهت کسینوسی، و غیره باشد. این چیزی است که ما در بحث شبکه‌های سیامی پوشش دادیم.

چنین رویکردهایی به تابع فاصله اجازه می‌دهند پارامترهایش را با استفاده از داده مجموعه آموزش که برای آموزش مدل استخراج‌کننده ویژگی استفاده شده، تنظیم کند. سپس، تابع فاصله استنباط‌هایی بر اساس امتیازهای شباهت (چقدر نمونه‌ها در فضای جاسازی نزدیک هستند) بین مجموعه‌های پشتیبان و پرس‌وجو می‌کشد.

متا-یادگیری مبتنی بر گرادیان

رویکردهای متا-یادگیری مبتنی بر گرادیان از دو یادگیرنده استفاده می‌کنند یک مدل معلم (یادگیرنده پایه) و یک مدل دانش‌آموز (متا-یادگیرنده) با استفاده از تقطیر دانش. مدل معلم مدل دانش‌آموز را از طریق فضای پارامتر با بعد بالا هدایت می‌کند.

با استفاده از اطلاعات مجموعه پشتیبان، مدل معلم ابتدا آموزش داده می‌شود تا پیش‌بینی‌هایی روی نمونه‌های مجموعه پرس‌وجو انجام دهد. تلفات طبقه‌بندی به دست آمده از مدل معلم سپس برای آموزش مدل دانش‌آموز استفاده می‌شود و آن را در وظیفه طبقه‌بندی ماهر می‌کند.

یادگیری یک‌شوتی

همان‌طور که بحث تا این نقطه پیشنهاد می‌کند، یادگیری یک‌شوتی وظیفه‌ای است که مجموعه پشتیبان تنها یک نمونه داده در هر کلاس دارد. می‌توانید تصور کنید که وظیفه با اطلاعات پشتیبان کمتر پیچیده‌تر است. فناوری تشخیص چهره مورد استفاده در گوشی‌های هوشمند مدرن از یادگیری یک‌شوتی استفاده می‌کند.

یکی از چنین مثال‌هایی رویکرد یادگیری یک‌شوتی تقسیم‌بندی معنایی است که توسط Shaban و همکاران کاوش شده است. نویسندگان یک رویکرد نوین دوشاخه‌ای پیشنهاد می‌کنند، جایی که شاخه اول تصویر برچسب‌دار را به عنوان ورودی می‌گیرد و یک وکتور از پارامترها را به عنوان خروجی تولید می‌کند. شاخه دوم این پارامترها و همچنین یک تصویر جدید را به عنوان ورودی می‌گیرد و ماسک تقسیم‌بندی تصویر برای کلاس جدید را به عنوان خروجی تولید می‌کند. دیاگرام معماری آنها در زیر نشان داده شده است.

یادگیری یک‌شوتی

برخلاف رویکرد تنظیم دقیق برای یادگیری یک‌شوتی، که ممکن است نیاز به تکرارهای زیادی برای یادگیری پارامترها برای شبکه تقسیم‌بندی داشته باشد، شاخه اول این شبکه پارامترها را در یک عبور روبه‌جلو محاسبه می‌کند. این چندین مزیت دارد: ۱) عبور روبه‌جلو تک باعث سریع بودن روش پیشنهادی می‌شود؛ ۲) رویکرد برای یادگیری یک‌شوتی کاملاً دیفرانسیل‌پذیر است و اجازه می‌دهد شاخه با شاخه تقسیم‌بندی شبکه به طور مشترک آموزش داده شود؛ ۳) در نهایت، تعداد پارامترها مستقل از اندازه تصویر است، بنابراین روش یک‌شوتی مشکلی در مقیاس‌پذیری ندارد.

کاربردهای یادگیری با تعداد نمونه‌های کم

یادگیری با تعداد نمونه‌های کم به طور گسترده در چندین زمینه در ادبیات یادگیری عمیق استفاده شده، از وظایف بینایی رایانه مانند طبقه‌بندی تصاویر و تشخیص اشیاء تا سنجش از دور، پردازش زبان طبیعی، و غیره. بیایید آنها را به طور مختصر در این بخش بحث کنیم.

طبقه‌بندی تصاویر

یادگیری با تعداد نمونه‌های کم به طور گسترده در طبقه‌بندی تصاویر استفاده شده، که برخی مثال‌های آن را قبلاً کاوش کردیم.

در مقاله DeepEMD، Zhang و همکاران یک روش نوین برای طبقه‌بندی تصاویر با تعداد نمونه‌های کم معرفی کردند. آنها پیشنهاد می‌کنند مقایسه نمایندگی‌های پیچیده و ساختارمند با بررسی اجزای اساسی‌شان. چالش عدم نظارت تطبیقی در آموزش و این واقعیت است که نه همه عناصر در یک ساختار ممکن است همتای مستقیم در دیگری داشته باشند. برای حل این مسائل، محققان طبقه‌بندی با تعداد نمونه‌های کم را به عنوان مسئله تطبیق بهینه قاب می‌کنند. آنها پیشنهاد می‌کنند از هزینه تطبیق بهینه بین دو ساختار به عنوان اندازه‌گیری شباهت‌شان استفاده شود.

تصویر طبقه‌بندی تصاویر

منبع: مقاله

با توجه به نمایندگی‌های ویژگی تولیدشده توسط دو تصویر، نویسندگان از فاصله Earth Mover’s (EMD) برای محاسبه شباهت ساختاری‌شان استفاده می‌کنند. EMD متریکی برای محاسبه فاصله بین نمایندگی‌های ساختاری است که ابتدا برای بازیابی تصاویر پیشنهاد شده. با توجه به فاصله بین تمام جفت‌های عناصر، EMD می‌تواند جریان‌های تطبیق بهینه بین دو ساختار را که حداقل هزینه دارند، به دست آورد. همچنین می‌تواند به عنوان حداقل هزینه برای بازسازی یک نمایندگی ساختار با دیگری تفسیر شود.

تشخیص اشیاء

تشخیص اشیاء یک مشکل بینایی رایانه است که شامل شناسایی و مکان‌یابی اشیاء در یک تصویر یا توالی ویدئو است. یک تصویر ممکن است شامل بسیاری از اشیاء باشد، بنابراین متفاوت از وظایف ساده طبقه‌بندی تصاویر است، جایی که کل تصویر یک برچسب کلاس دریافت می‌کند.

این مقاله تشخیص اشیاء با تعداد نمونه‌های کم افزایشی مدل Open-ended Centre nEt (ONCE) را برای حل مشکل تشخیص اشیاء با تعداد نمونه‌های کم افزایشی پیشنهاد می‌کند. نویسندگان استراتژی انتقال دانش مبتنی بر ویژگی را می‌گیرند و مدل قبلی به نام CentreNet را به اجزای کلاس-عمومی و کلاس-خاص تجزیه می‌کنند تا یادگیری با تعداد نمونه‌های کم افزایشی را فعال کنند. به طور خاص، ONCE ابتدا از داده‌های آموزش کلاس پایه فراوان برای آموزش یک استخراج‌کننده ویژگی کلاس-عمومی استفاده می‌کند. این به دنبال متا-یادگیری، یک تولیدکننده کد کلاس-خاص با وظایف یادگیری با تعداد نمونه‌های کم شبیه‌سازی‌شده است. پس از آموزش، با توجه به تعداد انگشت‌شماری تصویر از یک کلاس شیء نوین، تولیدکننده کد کلاس متا-آموزش‌دیده به طور ظریف به تشخیص‌گر ONCE اجازه می‌دهد تا کلاس نوین را به صورت افزایشی در یک روش خوراک-روبه‌جلو کارآمد در مرحله متا-تست (ثبت کلاس نوین) یاد بگیرد.

تصویر تشخیص اشیاء

تقسیم‌بندی معنایی

تقسیم‌بندی معنایی وظیفه‌ای است که هر پیکسل در یک تصویر به یک کلاس اختصاص داده می‌شود، یا یک یا چند شیء، یا پس‌زمینه. یادگیری با تعداد نمونه‌های کم برای انجام تقسیم‌بندی معنایی باینری و چندبرچسبی در ادبیات استفاده شده است.

Liu و همکاران در مقاله‌شان یک چارچوب نوین مبتنی بر پروتوتایپ نیمه‌نظارت‌شده برای تقسیم‌بندی معنایی با تعداد نمونه‌های کم پیشنهاد کردند، جایی که ایده اصلی غنی‌سازی نمایندگی‌های پروتوتایپ کلاس‌های معنایی در دو جهت است. اول، آنها نمایندگی پروتوتایپ کلی معمول را به مجموعه کوچکی از پروتوتایپ‌های آگاه از بخش تجزیه می‌کنند، که قادر به گرفتن ویژگی‌های متنوع و دانه‌ریز شیء است و پوشش فضایی بهتری در مناطق شیء معنایی فراهم می‌کند. علاوه بر این، نویسندگان مجموعه‌ای از تصاویر بدون برچسب را به مجموعه پشتیبان‌شان اضافه می‌کنند تا پروتوتایپ‌های آگاه از بخش بتوانند از هر دو منبع داده برچسب‌دار و بدون برچسب یاد بگیرند. این به آنها اجازه می‌دهد تا فراتر از مجموعه پشتیبان کوچک محدود بروند و تنوع درون‌کلاسی در ویژگی‌های شیء را بهتر مدل کنند. نمای کلی مدل‌شان در زیر نشان داده شده است.

تصویر تقسیم‌بندی معنایی

منبع: مقاله

رباتیک

حوزه رباتیک نیز از رویکردهای یادگیری با تعداد نمونه‌های کم برای تقلید توانایی انسان‌ها در تعمیم وظایف با استفاده از تنها چند نمایش استفاده کرده است.

در تلاش برای کاهش تعداد آزمایش‌های درگیر در یادگیری، Wu و همکاران الگوریتمی برای حل سوال چگونه در تقلید پیشنهاد کردند. نویسندگان یک مدل محاسباتی نوین برای یادگیری برنامه‌ریزی مسیر توسط تقلید معرفی می‌کنند، که از ایده اساسی در سازگاری برنامهحضور نقاط ویژگی در هر دو نمایش و موقعیت داده‌شده برای تولید مسیر حرکت برای سناریوی جدید استفاده می‌کند.

پردازش زبان طبیعی

یادگیری با تعداد نمونه‌های کم اخیراً در وظایف پردازش زبان طبیعی نیز محبوب شده، جایی که برچسب‌ها برای پردازش زبان ذاتاً دشوار به دست می‌آیند.

برای مثال، Yu و همکاران یک چالش طبقه‌بندی متن را با استفاده از رویکرد یادگیری با تعداد نمونه‌های کم مبتنی بر یادگیری متریک حل می‌کنند. روش آنها شامل یک متا-یادگیرنده است که چندین متریک را انتخاب و ترکیب می‌کند که برای وظیفه هدف با بهره‌برداری از خوشه‌بندی وظیفه در متا-آموزش تنظیم شده است. با تقسیم وظایف متا-آموزش به خوشه‌ها، رویکرد اطمینان می‌دهد که وظایف درون هر خوشه نزدیک به هم هستند، که منجر به انتقال دانش مؤثرتر و عملکرد بهتر روی وظایف جدید با داده محدود می‌شود.

تصویر پردازش زبان طبیعی

سپس، درون هر خوشه، نویسندگان یک تابع جاسازی عمیق را به عنوان متریک آموزش می‌دهند. این اطمینان می‌دهد که متریک مشترک تنها در وظایف درون همان خوشه به اشتراک گذاشته می‌شود. علاوه بر این، در متا-تست، هر وظیفه FSL هدف به یک متریک خاص وظیفه اختصاص داده می‌شود، که ترکیبی خطی از متریک‌های تعریف‌شده توسط خوشه‌های مختلف است. به این ترتیب، وظایف متنوع با تعداد نمونه‌های کم می‌توانند متریک‌های مختلف را از تجربه یادگیری قبلی استخراج کنند.

سؤالات متداول

در ادامه به سوالاتی که امکان دارد در این زمینه برای شما بدون پاسخ بماند، جواب‌های کوتاه اما مفیدی داده‌ایم که با استفاده از آن می‌توانید به سوال خود پاسخ صحیحی را بدهید.

یادگیری با تعداد نمونه‌های کم چگونه در کاربردهای مراقبت‌های بهداشتی در سال ۲۰۲۵ کار می‌کند؟

پ: یادگیری با تعداد نمونه‌های کم در مراقبت‌های بهداشتی ۲۰۲۵ روی کاربردهای تصویربرداری پزشکی تمرکز دارد جایی که سرعت تحلیل اسکن را افزایش می‌دهد و به تشخیص بیماری‌های نادر با داده آموزش محدود کمک می‌کند. این فناوری با آموزش مدل‌ها روی داده‌های پزشکی عمومی گسترده کار می‌کند، سپس آنها را با استفاده از تنها ۱-۵ مثال به شرایط خاص سازگار می‌کند. کاربردهای کلیدی شامل تشخیص بیماری‌های نادر، تقسیم‌بندی تصاویر پزشکی برای شرایط غیرمعمول، و توصیه‌های درمانی شخصی‌سازی‌شده است. مؤسسات مراقبت‌های بهداشتی از کاهش هزینه‌های جمع‌آوری داده و استقرار سریع‌تر ابزارهای تشخیصی AI برای شرایط پزشکی تخصصی بهره می‌برند.

بهترین الگوریتم‌های یادگیری با تعداد نمونه‌های کم برای بینایی رایانه در ۲۰۲۵ کدامند؟

پ: الگوریتم‌های پیشرو یادگیری با تعداد نمونه‌های کم برای بینایی رایانه در ۲۰۲۵ شامل شبکه‌های پروتوتایپی برای طبقه‌بندی مبتنی بر شباهت، متا-یادگیری مستقل از مدل (MAML) برای سازگاری سریع، و شبکه‌های رابطه برای یادگیری روابط اشیاء است. تکنیک‌های پیشرفته متا-یادگیری، مدل‌های generative، و یادگیری انتقال را ترکیب می‌کنند تا عملکرد برتر به دست آورند. ترانسفورمرهای بینایی سازگارشده برای سناریوهای با تعداد نمونه‌های کم و رویکردهای یادگیری کنتراستی مانند SimCLR نیز نتایج قوی نشان می‌دهند. این الگوریتم‌ها در کاربردهایی که نیاز به سازگاری سریع با دسته‌های بصری جدید با مثال‌های آموزش حداقل دارند، برتر هستند.

یادگیری با تعداد نمونه‌های کم در مقابل یادگیری صفر‌شوتی: کدام برای کاربردهای تجاری بهتر است؟

پ: یادگیری با تعداد نمونه‌های کم AI را روی تنها تعداد انگشت‌شماری مثال (معمولاً یک تا پنج) آموزش می‌دهد، در حالی که یادگیری صفر‌شوتی نیاز به هیچ مثالی از وظیفه هدف ندارد. برای کاربردهای تجاری، یادگیری با تعداد نمونه‌های کم معمولاً دقت و قابلیت اطمینان بالاتری ارائه می‌دهد زیرا از برخی مثال‌های برچسب‌دار استفاده می‌کند. یادگیری صفر‌شوتی انعطاف‌پذیری بیشتری برای دسته‌های کاملاً جدید ارائه می‌دهد اما با دقت پایین‌تر. یادگیری با تعداد نمونه‌های کم را برای فرآیندهای تجاری حیاتی که نیاز به دقت بالا دارند انتخاب کنید، و یادگیری صفر‌شوتی را برای پروتوتایپینگ سریع یا مدیریت دسته‌های کاملاً ناشناخته. هر دو تکنیک نیاز به مجموعه داده را نسبت به یادگیری ماشین سنتی به طور قابل توجهی کاهش می‌دهند.

چگونه یادگیری با تعداد نمونه‌های کم را برای تحلیل تصاویر پزشکی پیاده‌سازی کنیم؟

پ: پیاده‌سازی یادگیری با تعداد نمونه‌های کم برای تحلیل تصاویر پزشکی شامل چندین گام کلیدی است: اول، یک مدل پشتیبان را روی مجموعه داده‌های پزشکی عمومی بزرگ مانند ImageNet یا RadImageNet پیش‌آموزش دهید. دوم، یک چارچوب یادگیری با تعداد نمونه‌های کم با استفاده از تکنیک‌هایی مانند شبکه‌های پروتوتایپی یا MAML طراحی کنید. سوم، مجموعه داده پزشکی هدف‌تان را با ۱-۵ مثال برچسب‌دار در هر شرط آماده کنید. چهارم، مدل را با استفاده از آموزش episodic تنظیم کنید جایی که هر episode سناریوی با تعداد نمونه‌های کم را شبیه‌سازی می‌کند. در نهایت، روی موارد پزشکی نگه‌داشته‌شده اعتبار دهید تا تعمیم را اطمینان دهید. چارچوب‌های محبوب شامل PyTorch با کتابخانه‌های تخصصی یادگیری با تعداد نمونه‌های کم و ابزارکیت‌های تصویربرداری پزشکی است.

کدام صنایع بیشترین سود را از یادگیری با تعداد نمونه‌های کم در ۲۰۲۵ می‌برند؟

پ: یادگیری با تعداد نمونه‌های کم نشان‌دهنده تغییر به سمت کاربردهای ML همه‌کاره است که همراه با نیازهای متغیر تکامل می‌یابند. صنایع کلیدی که در ۲۰۲۵ سود می‌برند شامل مراقبت‌های بهداشتی (تشخیص بیماری‌های نادر، تصویربرداری پزشکی)، تولید (کنترل کیفیت برای محصولات جدید)، تجارت الکترونیک (دسته‌بندی محصولات)، کشاورزی (شناسایی بیماری‌های محصول)، امنیت (شناسایی افراد با نمونه‌های محدود)، و خودرو (ادراک خودروهای خودران برای موارد حاشیه‌ای) است. این صنایع از کاهش هزینه‌های جمع‌آوری داده، استقرار سریع‌تر مدل، و توانایی مدیریت سناریوهای نادر اما حیاتی که یادگیری ماشین سنتی با آنها مشکل دارد، سود می‌برند.

جمع بندی

یادگیری عمیق به انتخاب پیش‌فرض برای حل وظایف پیچیده بینایی رایانه و تشخیص الگو تبدیل شده است. با این حال، نیاز به حجم زیاد داده‌های آموزش برچسب‌دار و هزینه محاسباتی برای آموزش معماری‌های عمیق، پیشرفت چنین وظایفی را مانع می‌شود.

یادگیری با تعداد نمونه‌های کم راه‌حلی برای این مشکل است که اجازه می‌دهد مدل‌های عمیق پیش‌آموزش‌دیده به داده‌های نوین با تنها چند مثال برچسب‌دار و بدون آموزش مجدد گسترش یابند. به دلیل عملکرد قابل اعتمادشان، وظایفی مانند طبقه‌بندی و تقسیم‌بندی تصاویر، تشخیص اشیاء، پردازش زبان طبیعی، و غیره، افزایش استفاده از معماری‌های FSL را دیده‌اند.

تحقیق روی مدل‌های FSL بهتر همچنان فعالانه پیگیری می‌شود تا آنها را به اندازه یا حتی بهتر از رویکردهای یادگیری کاملاً نظارت‌شده دقیق کند. مشکلاتی مانند یادگیری یک‌شوتی یا صفر‌شوتی که به طور قابل توجهی پیچیده‌تر هستند، به طور گسترده مطالعه می‌شوند تا شکاف بین AI و یادگیرندگان انسانی را پر کنند.

به اشتراک بگذارید

برچسب‌ها: