موضوع مقاله: تابع هزینه تریپلت | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # تابع هزینه تریپلت | مقدمه: تابع هزینه تریپلت (انگلیسی: Triplet loss)، نیز یکی از توابع هزینه محبوب در این نوع یادگیری‌ها محسوب می‌شود و موفقیت زیادی در بسیاری از وظایف بینایی رایانه‌ای مانند بازیابی تصویر، تشخیص هویت افراد، تشخیص چهره و غیره داشته است. | ## بخش 1: تابع هزینه تریپلت | این تابع هزینه به دلیل عملکرد خوب در مسائلی که با تعداد برچسب بالا و تعداد کم نمونه های آموزشی هر کلاس روبرو هستیم، محبوب شده است. در روش‌های مرسوم طبقه‌بندی، تعداد پارامترها به صورت خطی همراه با تعداد برچسب‌ها افزایش پیدا می‌کند و آموزش یک تابع سافت‌مکس برای میلیون‌ها برچسب کاری انجام نشدنی است. یک شبکه عصبی که در آن از تابع هزینه تریپلت، استفاده شده باشد، می‌تواند با یادگیری یک بردار ویژگی فشرده عملکرد بسیار خوبی در مسائل چند کلاسه همچون بازیابی تصویر داشته باشد. آن‌ها این معیار را به گونه‌ای آموزش دادند که k نزدیکترین داده‌های در همسایگی هم، همگی متعلق به یک کلاس باشند و در حداقل فاصله از هم قرار بگیرند و داده‌های کلاس‌های متفاوت در حداکثر فاصله از آن‌ها قرار بگیرند. این تابع هزینه، مستقیماً یک شبکه عصبی پیچشی عمیق را بهینه‌سازی می‌کند و بردارهای ویژگی را به گونه‌ای تولید می‌کند که تصاویر مشابه با یک تصویر نمونه (انگلیسی: Anchor sample)، در فاصله کمی از آن قرار بگیرد. برای مثال در یک مسئله تشخیص چهره، هویت هر فرد موجود در مجموعه آموزشی، به عنوان یک کلاس در نظر گرفته می‌شود و شبکه برای طبقه‌بندی و تشخیص صحیح تصاویر هر کلاس آموزش می‌بیند. برای مثال اگر از یک شبکه عصبی برای طبقه‌بندی یک مسئله با سه کلاس سگ و گربه و اسب استفاده کنید،در صورت آموزش صحیح شبکه، با دادن تصویر یک سگ به آن، مقدار احتمال مربوط به کلاس سگ (کلاس صحیح) می‌بایست بیشترین مقدار را داشته باشد. ایراد شبکه‌های عصبی عمیق، نیاز آن‌ها به نمونه‌های آموزشی بسیار زیاد برای یادگیری است و پروسه یادگیری و تست مدل، زمانبر است. همچنین در صورت اضافه شدن کلاس جدید، همه این پروسه باید از ابتدا دوباره انجام شود. فرض کنید شما قصد طراحی سیستم تشخیص چهره یک شرکت بزرگ با ۱۰۰۰ کارمند را برعهده دارید. در چنین مسئله‌ای، شما نهایتاً به ۱۰ تصویر از هر یک از کارمندان دسترسی دارید و تعداد کارمندان(کلاس‌ها) تغییر میکند. با توجه به تعداد کم داده‌ها و تعداد زیاد و متنوع کلاس‌ها، شبکه‌های عمیق نمی‌توانند راه حل خوبی برای این مسئله باشند.[1] از طرفی ما انسان‌ها قابلیتی به نام یادگیری با یکبار دیدن (انگلیسی: One-shot learning) داریم؛ مثلاً تنها با یکبار دیدن چهره یک نفر می‌توانیم چهره او را در ملاقات‌های بعدی نیز تشخیص دهیم. در هوش مصنوعی، طبقه‌بندی مبتنی بر این یادگیری تنها به یک نمونه آموزشی از هر کلاس احتیاج دارد. توابع هزینه رتبه‌بندی کننده اسامی مختلفی دارند ولی کار همه آن‌ها شبیه به همدیگر است. | ## بخش 2: تابع هزینه تریپلت | این تابع هزینه، با تولید نمایش‌های قدرتمند و قابل استناد از داده‌ها، کارایی خودش را در وظایف مختلف ثابت کرده است.[1] در توابع هزینه رتبه‌بندی کننده: ۱. از یک معیار فاصله مانند فاصله اقلیدسی یا فاصله کسینوسی برای بررسی فاصله میان تصاویر استفاده می‌شود. در گام پایانی، استخراج‌کننده‌های ویژگی باید طوری آموزش ببیند که برای تصاویر شبیه بهم، بردارهای ویژگی مشابه و برای تصاویر غیرمشابه بردارهایی متفاوت و با فاصله بیشتر تولید کنند. توجه کنید که مقدار این بردارها برای ما اهمیتی ندارد و تنها فاصله میان آن‌ها حائز اهمیت است. فاصله میان تصویر نمونه و جفت تصاویر مثبت و منفی، هر کدام تبدیل به بردارهایی مجزا می‌شود. معماری این شبکه، مسئله را به یک مسئله طبقه بندی ۲ کلاسه تبدیل می‌کند که هدف در آن، تصمیم گیری در خصوص این است که کدام یک از تصاویر x+ و x- به کلاس مشابه با x تعلق دارد. به صورت کلی، هدف یادگیری یک بردار ویژگی معیار است که مشخص کند کدام تصویر به x نزدیک‌تر است. به عنوان مقایسه‌گر نیز یک تابع سافت‌مکس در خروجی هر یک از مقایسه‌گرهای شباهت تعبیه می‌شود. مشابه با شبکه‌های عصبی پیچشی سنتی، در آموزش آن‌ها از یک الگوریتم بهینه‌سازی نیز استفاده می‌شود. [2] معماری‌های محبوب برای طراحی این شبکه‌ها از معماری‌های مختلفی استفاده می‌شود. ساختارهای شبکه عمیق‌تر می‌توانند نگاشت‌های ویژگی با اطلاعات معنایی بیشتری را استخراج کنند. در این فرمول، x1 و x از یک کلاس خواهند بود و x و x2 به کلاس‌های مختلفی تعلق خواهند داشت و معمولاً مثال‌های پیچیده و دشوار را به عنوان جفت کنار هم قرار می‌دهند. تمرکز ما روی یادگرفتن تابع شباهت برحسب یکی از معیارهای فاصله مانند اقلیدسی، کسینوسی و... برای تریپلت‌هایی که تشخیص تصاویر مشابه و غیر مشابه ساده باشد: d(ra,rn)> d(ra,rp) + m نمونه منفی از قبل در فاصله مناسبی نسبت به تصویر اصلی قرار دارد. | ## بخش 3: تابع هزینه تریپلت | برای تریپلت‌هایی که تشخیص تصاویر مشابه و غیر مشابه دشوار باشد: d(ra,rn) <d(ra,rp) + m نمونه منفی بسیار شبیه به تصویر اصلی است و نسبت به نمونه مثبت، در فاصله نزدیک‌تری به تصویر نمونه قرار دارد. مقدار تابع هزینه مثبت خواهد بود ولی مقدار آن بیشتر از حداقل فاصله بین دو بردار نخواهد شد. در فرمول بالا، dap و dan فاصله اقلیدسی بین جفت‌های نمونه-مثبت و نمونه-منفی هستند. در فرمول بالا یک زیرنگاشت صفر برای برای f، d و m نوشته شده که به ترتیب بردار ویژگی، فاصله دو بردار و حداقل فاصله تصویر نمونه و تصویر منفی اولیه را نشان می‌دهد. یادگیری مثال‌های دشوار از پیمایش مثال‌های دشوار، به دفعات در آموزش شبکه‌های عمیق استفاده شده است. در آموزش شبکه، از دشوارترین مثال‌های مثبت و منفی برای ایجاد تریپلت‌ها استفاده می‌شود. این روش‌ها می‌توانند به صورت محلی یا سراسری عمل کنند؛ یعنی نمونه‌ها یا از کل مجموعه داده و یا از هر دسته انتخاب شوند.[3] اساسی‌ترین بخش در آموزش تابع هزینه تریپلت، نمونه‌برداری دقیق و ایجاد سه‌تایی‌ها است. یک سه‌تایی از بخش‌های زیر تشکیل شده است: · یک تصویر نمونه xa · یک نمونه مثبت xp · یک نمونه منفی xn تابع هزینه تریپلت، به دنبال یادگیری یک بردار ویژگی است تا در فضای ویژگی، بردار تصویر نمونه به نمونه مثبت نزدیکتر باشد تا نمونه منفی. در فرمول بالا x1 و x از یک کلاس خواهند بود و x و x2 به کلاس‌های مختلفی تعلق خواهند داشت و معمولاً نمونه‌های پیچیده و دشوار را به عنوان جفت کنار هم قرار می‌دهیم. تمرکز ما روی یادگرفتن تابع شباهت برحسب یکی از معیارهای فاصله مانند اقلیدسی، کسینوسی و... الگوریتم طبقه‌بندی که برای کلاس‌بندی نمونه‌های قبلی آموزش دیده است، با ورود هر شخص جدید به پایگاه داده شبکه باید دوباره آموزش ببیند. اگر این مساله به جای مساله طبقه‌بندی، به صورت یک مساله‌ی یادگیری شباهت مطرح شود، دیگر نیازی به آموزش‌های مجدد همه شبکه نخواهد بود. در این جا، شبکه با استفاده از تابع هزینه مقایسه‌ای(انگلیسی: contrastive loss)، طوری آموزش دیده است که اگر تصویر متعلق به فرد شناخته شده‌ای باشد، یک فاصله‌ی کوچک را به عنوان خروجی بدهد و اگر تصویر متعلق به فرد ناشناسی باشد، این فاصله‌ی خروجی بزرگ باشد. | ## جمع‌بندی | البته اگر بخواهیم در خروجی نزدیک‌ترین تصویر به تصویر داده شده داده شود، باید علاوه بر محاسبه شباهت، قادر به رتبه‌بندی تصاویر نیز باشد و برای این کار می‌توان از یک تریپلت استفاده کرد.[4] مقایسه و تعمیم‌ها در کارهای مرتبط به بینایی رایانه، مانند بازشناسایی، باور غالب این است که تابع هزینه تریپلت، نسبت به توابع هزینه دیگر که از یادگیری متریک به صورت جداگانه استفاده می‌کنند، ارزش کمتری دارد.