ویرگول
ورودثبت نام
حامد قاسمی
حامد قاسمی
خواندن ۹ دقیقه·۲ سال پیش

مروری بر مقاله Multi-Similarity Loss with General Pair Weighting for Deep Metric Learning

حرف و نوآوری مقاله چیست ؟

مقاله دو حرف مهم میزند :‌

· یک رابطه و ساختار کلی برای تمامی Loss های موجود ارایه می کند که میتوانید همه Loss ها را از یک دریچه ببینیم و نگاهی واحد به همه آنها داشته باشیم و آنها را با یکدیگر مقایسه کنیم.

· با استفاده از همین نگاه واحد و معرفی سه معیار شباهت در مورد جفت های انتخاب شده در Deep Metric Learning به معرفی Multi Similarity Loss می پردازد و نشان می دهد که چگونه این Loss نتایج را تا حد زیادی بهبود می بخشد.

معرفی General Pair Weighting (GPW)

در این بخش قصد بر آن است که یک رابطه کلی برای تابع Loss بدست آورده شود که بتوانیم تمامی Loss های ارایه شده تاکنون را از دریچه همین رابطه کلی ببینیم. اما قصه از چه قرار است ؟‌

با فرض آن که xi یک بردار در فضای d بعدی است و ما m داده داریم بنابراین ماتریس نمونه های ما یک ماتریس است و به صورت کلی C کلاس مختلف نیز داریم که داده ها می توانند متعلق به این C کلاس باشند. حال را فاصله بردار و در نظر بگیریم که این دو بردار در واقع بردارهای embedding خروجی شبکه عصبی هستند و اگر ما m داده داشته باشیم میتوانیم یک ماتریس S با ابعاد m در m تعریف کنیم که تمامی فواصل بردارها را در دل خود دارد.

در Deep Metric Learning از آنجا که به دنبال نزدیک کردن یا دور کردن جفت های همسان یا ناهمسان هستیم میتوانیم تابع Loss را به فرم بنویسیم که S همان فاصله بین جفت ها و y لیبل مربوط به هرکدام است. به عنوان مثال میتوانیم Contrastive Loss را به همین شکل بنویسیم :‌

حال اگر از L نسبت به تتا مشتق بگیریم طبق قاعده ضرب زنجیره ای خواهیم داشت :

حال با انتگرال گیری از طرفین به رابطه زیر خواهیم رسید :‌

که این تابع F تغییرات کمی نسبت به تابع L دارد و حتی در نسخه های قبلی مقاله نیز به جای F از خود L استفاده می شد که در نسخه نهایی آن تابع F جایگزین آن شده است که البته صحیح تر نیز است. حال رابطه بالا را برای جفت های همسان و نا همسان تجزیه میکند و با فرض مثبت بودن مشتق L برای جفت های نا همسان و منفی بودن آن برای جفت های همسان می توان رابطه زیر را نوشت :‌

ساختار رابطه بالا بسیار جالب است. در واقع در این ساختار برای زوج های همسان و نا همسان یک وزن در نظر گرفته شده است و رابطه نهایی بر حسب این وزن ها می باشد که وزن های زوج ها به صورت کلی می توانند متفاوت باشند تا اثرگذاری متفاوتی در Loss نهایی داشته باشند. در ادامه مقاله ۴ تابع Loss معروف را مورد بررسی قرار میدهد و با مشتق گیری از آنها وزن های مربوط به زوج های همسان و نا همسان برای هر کدام از این Loss را محاسبه می کند و به کمک آن می تواند این توابع Loss را با یکدیگر مقایسه کند.

1- تابع Contrastive Loss :‌

مقاله تابع Contrastive را به صورت زیر تعریف می کند :

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

حال برای زوج های مثبت (که بخش دوم تابع فعال می گردد) مشتق را نسبت به Sij محاسبه کنیم به عدد یک میرسیم که وزن مربوط به زوج های مثبت یک در نظر گرفته می شود. همچنین برای زوج های منفی و وقتی که است با مشتق گیری مجدد به همین ضریب یک خواهیم رسید. به عبارت دیگر تابع Contrastive یک حالت خاص از GPW است که در بالا معرفی شد و در آن برای زوج های مثبت و منفی وزن دهی یکسانی در نظر گرفته شده است.

2- تابع Triplet Loss :‌

در Triplet Loss تلاش می شود تا بردارهای Embedding طوری یادگرفته شود که در آن مقدار فاصله زوج مثبت از زوج منفی با یک حاشیه ای کمتر باشد. رابطه ریاضی این تابع به صورت زیر تعریف می گردد‌:

که در این رابطه San فاصله زوج منفی و Sap فاصله زوج مثبت است. مطابق رابطه بالا تنها در حالتی که رابطه درون پرانتز عددی مثبت شود تابع Triplet مقدار خواهد داشت. مجدد با مشتق گیری به صورت ساده واضح است که اگر چه شکل تابع Contrastive و Triplet و نوع انتخاب زوج های آنها با یکدیگر فرق دارد ، اما در نهایت وزن یکسانی را به زوج های مثبت و منفی اختصاص می دهد و زوج هایی که اطلاعات بیشتری دارند و به هم گرایی شبکه کمک بیشتری میکنند عملا نادیده گرفته می شوند و همان ضریب یک به آنها اختصاص داده میشود.

3- تابع Lifted Structure Loss :‌

این تابع از تمام جفت های مثبت و منفی موجود در یک mini-batch استفاده می کند و به تعبیری از حداکثر ظرفیت یک mini-batch استفاده می کند تا Loss را به کمترین مقدار خود برساند. رابطه این تابع Loss به صورت زیر تعریف می گردد:‌

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

تابع MS Loss :‌

قبل از معرفی تابع Multi Similarity Loss ابتدا سه نوع معیار شباهت تعریف می گردد و سپس از آنها برای تعریف تابع Loss نهایی استفاده می گردد.

1- Self Similarity :‌

این معیار شباهت که یکی از مهمترین ها نیز می باشد در واقع فاصله بین دو نمونه در یک pair می باشد. مثلا در یک جفت منفی هر چه شباهت کسینوسی بیشتر باشد به این معنی است که این زوج سخت تر هستند و حاوی اطلاعات بیشتری هستند و میتوانند نقش مهمی در همگرایی شبکه داشته باشند. توابع Loss معروفی مثل Contrastive Loss یا Binomial Deviance از این معیار شباهت در خود استفاده می کنند.

البته این تابع معیار شباهت به تنهایی برای توصیف فضای Embedding کافی نمی باشد و ما نیاز داریم تا فاصله نسبی جفت ها با یکدیگر را بدانیم. به عبارتی با در نظر گرفتن یک Anchor ثابت فاصله نسبی زوج ها را نیز محاسبه کنیم که در ادامه معرفی گردیده است.

2- Negative Relative Similarity :

با در نظر گرفتن یک Anchor ثابت (مثلا مثبت) فاصله بین یک زوج منفی و دیگر زوج های منفی را Negative Relative Similarity می گوییم. مثلا اگر زوج منفی ۱ و زوج منفی ۲ وجود داشته باشند که دارای یک Anchor مشترک باشند و فاصله زوج اول از زوج دوم کمتر باشد (به عبارت شباهت کسینوسی زوج اول از زوج دوم بیشتر باشد) آنگاه این فاصله یک فاصله نسبی است. به عبارت دیگر تفاوت بین فاصله زوج ها با یکدگیر است که این زوج ها زوج هایی منفی هستند. شکل زیر نیز به بیانی زیباتر آن را توصیف کرده است :‌

۳- Positive Relative Similarity :


این معیار شباهت فاصله بین زوج کنونی با زوج های مثبت است. مثلا در شکل زیر وقتی نمونه های مثبت به یکدیگر نزدیک می شوند فاصله زوج کنونی که یک زوج منفی است با سایر زوج های مثبت کم و کمتر می شود. تابع Triplet Loss از این نوع معیار شباهت استفاده می کند.

حال به کمک این سه نوع معیار شباهت می توانیم انواع توابع Loss را با یکدیگر مقایسه کنیم و از دیدی جامع تر به آنها نگاه کنیم. در جدول زیر مقایسه مربوط به هر کدام از این Loss ها آورده شده است :‌

در این جدول منظور از S همان Self-Similarity ، منظور از N همان Negative Relative Similarity و منظور از P همان Positive Relative Similarity است. مشاهده میکنیم که انواع Loss های مختلف تنها از یک یا حداکثر دو نوع معیار شباهت استفاده می کنند در حالی که Loss معرفی شده در این مقاله یعنی MS Loss که در ادامه معرفی می شود از هر سه نوع معیار شباهت استفاده می کند و همین باعث می شود که نتایج آن نسبت به سایر توابع Loss بهتر باشد.

معرفی تابع MS Loss :‌

تابع MS Loss برای وزن دهی pair ها از دو مرحله کلیدی استفاده می کند. مرحله اول mining است که در آن pair ها به وسیله Similarity-P انتخاب می شوند و در مرحله بعد یعنی weighting به کمک Similarity-S و Similarity-N جفت های انتخاب شده وزن دهی می شوند. به عبارتی از هر سه نوع Similarity که در بخش قبل معرفی شد، در اینجا استفاده می شود که این همان نقطه قوت MS Loss است. در ادامه این دو مرحله کمی دقیق تر بررسی می شوند.

مرحله اول : Mining

در این مرحله ابتدا جفت هایی که بیشترین اطلاعات را دارند به کمک Similarity-P انتخاب می شوند. به صورت دقیق تر یک جفت منفی با سخت ترین جفت مثبت مقایسه می شود. ( سخت ترین جفت مثبت یعنی جفتی که کمترین میزان شباهت را دارند. ) و البته یک جفت مثبت نیز با سخت ترین جفت منفی مقایسه می شود. یعنی جفتی که بالاترین میزان شباهت را دارد. اگر بخواهیم کمی ریاضیاتی تر این موضوع را بیان کنیم می توانیم روابط زیر را بنویسیم.

۱ – رابطه مربوط به انتخاب جفت منفی :‌(منظور از اپسیلون همان margin یا حاشیه است. )

۲ – رابطه مربوط به انتخاب جفت مثبت :‌(منظور از اپسیلون همان margin یا حاشیه است. )

مرحله دوم :‌ Weighting

در مرحله قبل جفت های خوب و حاوی اطلاعات انتخاب می شوند و در این مرحله این جفت ها به صورت دقیق وزن دهی می شوند تا نتیجه نهایی بهتر شود. برای وزن دهی از Similarity-N و Similarity-S استفاده می گردد. برای وزن دهی جفت ها از توابع binomial deviance loss و Lifted Structure loss استفاده می گردد. این دو تابع به ترتیب از Similarity-S و Similarity-N برای وزن دهی جفت ها استفاده می کنند و در اینجا نیز با الهام از این توابع Loss وزن ها تعریف می گردد‌:

وزن مربوط به جفت های منفی به صورت زیر تعریف می گردد :

و وزن مربوط به جفت های مثبت به صورت زیر تعریف می گردد‌:

که در آن آلفا و بتا و گاما هایپرپارامترها هستند. (مشابه تابع Binomial Deviance Loss)

از آنجا که این دو رابطه وزن های مربوط به جفت ها مثبت و منفی هستند میتوانیم با ترکیب دو مرحله Mining و Weighting و استفاده از GPW که در بخش قبل معرفی گردید می توانیم رابطه نهایی مربوط به Loss را محاسبه کنیم. (مشتق گیری از این تابع Loss ما را به همان روابط بالا می رساند.)

نتایج :‌

در جدول زیر نیز نتایج بر روی دیتاست Cars-196 با معیار Recall@K آورده شده است. عملکرد مناسب این تابع Loss به خوبی قابل مشاهده است و نشان می دهد که چگونه با درصد مناسبی از تمامی توابع Loss قبلی بهتر عمل کرده است. اندیس m در این جدول اضافه شدن مرحله Mining به تابع Loss مربوطه است که نشان می دهد همین موضوع بین ۲ تا ۴ درصد نتایج را بهبود داده است.

جمع بندی :

در این مقاله ابتدا یک ساختار و دید کلی از تمامی توابع Loss به کمک GPW معرفی گردید که این دید این امکان را به ما داد که بتوانیم تمامی توابع Loss قبلی را از نگاهی واحد ببینیم و آنها را مقایسه کنیم. علاوه بر آن با استفاده از همین دیدگاه و تعریف معیارهای شباهت Similarity-S و Similarity-N و Similarity-P تابع MS Loss معرفی گردید که نتایج را به طرز قابل ملاحظه ای بهبود بخشید.

deep metric learningmulti similarity lossloss
شاید از این پست‌ها خوشتان بیاید