یادگیری متریک
یادگیری متریک (به انگلیسی: Metric learning) به یادگیری یک تابع فاصله اشاره دارد که میزان شباهت بین نمونه‌ها را محاسبه می‌کند. درواقع هدف یادگیری یک متریک است که فاصله بین نمونه‌های یک کلاس را کاهش و فاصله بین نمونه‌های کلاس مختلف را افزایش دهد. روش‌های یادگیری متریک از یک طرح‌ریزی خطی (به انگلیسی: linear projection) استفاده می‌کنند که این نوعی محدودیت است زیرا برای حل مسائل دنیای واقعی و آشکار کردن دانش غیرخطی موجود در داده‌ها نمی‌توانند کارا باشند. درسالهای اخیر مفهوم یادگیری عمیق و یادگیری متریک باهم ترکیب شدند و مفهوم یادگیری متریک عمیق به منظور کاربردهای درک بصری مطرح شد که از رویکرد هسته (به انگلیسی: kernel) و توابع فعالسازی برای حل مسائل غیرخطی استفاده می‌کند.
سناریویی را تصور کنید که در آن باید شباهت یا مسافت را بین بیش از دو تصویر محاسبه کنیم (برای مثال، برای خوشه بندی یا طبقه‌بندی نزدیکترین همسایه). یک سؤال اساسی که پیش می‌آید دقیقاً چگونگی ارزیابی شباهت یا فاصله بین جفت تصاویر است. به عنوان مثال، اگر هدف ما پیدا کردن چهره‌های مطابق با هویت باشد، باید یک عملکرد فاصله را انتخاب کنیم که بر ویژگی‌های مناسب (رنگ مو، نسبت فاصله بین کلیدهای صورت و غیره) تأکید کند. اما ممکن است ما یک برنامه کاربردی داشته باشیم که بخواهیم موقعیت فرد را تعیین کنیم و بنابراین به یک عملکرد فاصله نیاز داریم که شباهت موقعیت آنها را به تصویر می‌کشد. واضح است که سایر ویژگی‌ها در این سناریو کاربردی تر هستند؛ بنابراین می‌توانیم با انتخاب مناسب از ویژگی‌ها و ترکیب آن ویژگی‌ها، یک تابع فاصله مناسب را برای هر کار تعیین کنیم.
هر مجموعه داده از لحاظ طبقه‌بندی و خوشه بندی دارای مشکلات خاص است. به عنوان مثال، هنگامی که با یک مشکل تشخیص چهره مواجه هستید، ممکن است با عواملی مانند تغییرات مختلف، اختلاف روشنایی، مقیاس پذیری، پس زمینه و انسداد مواجه شوید که هریک از آنها باعث ایجاد مشکلات مختلف در طبقه‌بندی داده‌ها می‌شود؛ بنابراین، برای پرداختن به این عوامل، باید ویژگیهای متمایز داده‌ها به خوبی تعریف شود تا طبقه‌بندی صحیح داده‌ها انجام شود. معیارهای فاصله که توانایی یادگیری خوب و مستقل از مشکل ندارند می‌توان ادعا کرد که نتایج طبقه‌بندی خوبی در طبقه‌بندی داده‌ها ندارد؛ بنابراین، برای دستیابی به نتایج موفق در داده‌های ورودی، یک متریک مسافت مناسب لازم است. یادگیری متریک با تجزیه و تحلیل داده‌ها، یک متریک مسافت جدید را ارائه می‌دهد. یادگیری متریک که فرایند یادگیری را بر روی داده‌ها انجام می‌دهد، توانایی بالاتری در تشخیص متمایز بودن داده‌های نمونه دارد. هدف اصلی یادگیری متریک، یادگیری یک متریک جدید برای کاهش فاصله بین نمونه‌های یک کلاس و افزایش فاصله بین نمونه‌های کلاس‌های مختلف است. همان‌طور که در زیر مشاهده می‌شود، در حالی که یادگیری متریک قصد دارد اشیاء مشابه را به هم نزدیک کند، فاصله بین اشیاء متفاوت را افزایش می‌دهد.
با توجه به مطالعات مربوط به یادگیری متریک، می‌توان دریافت که به‌طور مستقیم با متریک مسافت فاصله ماهالانوبیس (به انگلیسی:Mahalanobis distance) مرتبط است. اگر [X = [x، x،...، x نمونه‌های آموزشی باشد ، که در آن x به عنوان iامین نمونه آموزشی و N تعداد کل نمونه‌های آموزشی است. فاصله بین xi و xj به صورت زیر محاسبه می‌شود:
formula_1
formula_2 یک متریک مسافت است ، باید دارای ویژگی‌های عدم انعطاف‌پذیری ، هویت غیرقابل توصیف ، تقارن و نابرابری مثلث باشد. M باید نیمکره مثبت(به انگلیسی:positive semidefinite) و متقارن باشد. همه مقادیر ویژه یا عوامل تعیین‌کننده M باید مثبت یا صفر باشند تا نیمکره مثبت (به انگلیسی:positive semidefinite) باشند. هنگامی که M را تجزیه می‌کنیم، به شرح زیر است:
formula_3
formula_1
formula_5
همان‌طور که در معادله بالا مشاهده می‌شود، W خاصیت دگرگونی خطی دارد. با توجه به این خاصیت، فاصله اقلیدسی در فضای تبدیل شده برابر با فاصله ماهالانوبیس در فضای اصلی برای دو نمونه است. این تحول خطی واقعیت موجود در زیرساخت‌های یادگیری متریک را به ما نشان می‌دهد. به دست آوردن قابلیت بازنمایی (به انگلیسی:representation) بهتر برای داده‌ها، مطمئناً ما را قادر می‌سازد پیش‌بینی‌های دقیق تری را در زمینه طبقه‌بندی یا مشکلات خوشه بندی انجام دهیم. یادگیری متریک با هدف یادگیری یک متریک فاصله خوب از داده‌ها است. متریک فاصله، داده‌های جدیدی را ارائه می‌دهد که تبعیض معنی دار و قدرتمندتر با استفاده از رابطه شباهت بین نمونه‌ها دارند. وقتی در مورد یادگیری متریک بحث می‌کنیم، در ابتدا یک تحول خطی مفید مطرح است. رویکردهای یادگیری متریک خطی محدودیتهای منعطف تری در فضای داده تبدیل شده ارائه می‌دهند و عملکرد یادگیری را بهبود می‌بخشد. این رویکردها دارای مزایایی مانند فرمول‌های محدب و استحکام در برابر پوشش بی از حد (به انگلیسی:overfit) هستند. اگرچه رویکردهای خطی به ما کمک می‌کنند تا یک معیار خوب را بیاموزیم، اما می‌توان قابلیت‌های بهتر بازنمایی را از داده‌ها بدست آورد. تحول خطی توانایی محدودی برای دستیابی به عملکرد بهینه بر روی بازنمایی جدید داده‌ها دارد، زیرا عملکرد ضعیفی در جذب ساختار ویژگی غیرخطی دارند. هدف دستیابی به عملکرد بالاتر با انتقال مسئله به فضای غیر خطی از طریق روش‌های کرنل در یادگیری متریک به منظور غلبه بر این مشکل است. اگرچه این رویکردهای غیرخطی برای حل مشکلات غیرخطی عملی است، اما ممکن است بر روی پوشش بی از حد (به انگلیسی:overfit) تأثیر منفی بگذارد. در سالهای اخیر با استفاده از یادگیری متریک عمیق (به انگلیسی:deep metric learning)، می‌توان راه حل کمتری را برای غلبه بر چنین مشکلاتی که در هر دو روش وجود دارد، پیشنهاد کرد.
تکنیک‌های یادگیری ماشین سنتی دارای توانایی محدود برای پردازش داده‌های خام هستند؛ بنابراین، آنها قبل از طبقه‌بندی یا کارهای خوشه بندی، به مهندسی ویژگی نیاز دارند، مانند مراحل پیش پردازش و مراحل استخراج ویژگی. همه این مراحل نیاز به تخصص دارند و مستقیماً در ساختار طبقه‌بندی قرار نمی‌گیرند. با این حال، یادگیری عمیق سطح بالاتری از داده‌ها را مستقیما در ساختار طبقه‌بندی یادمی‌گیرد. این چشم‌انداز تفاوت اساسی بین روشهای سنتی یادگیری ماشین و یادگیری عمیق را نشان می‌دهد. برخلاف روشهای سنتی یادگیری ماشین، یادگیری عمیق برای دستیابی به نتایج موفقیت‌آمیز به داده‌های بزرگی نیاز دارد، زیرا در اندازه داده‌های پایین به اندازه کافی موفق نیست. علاوه بر این، الگوریتم‌های یادگیری عمیق به دلیل حجم داده زیاد و تعداد زیادی پارامترها به زمان زیادی برای آموزش داده نیاز دارند؛ بنابراین، NVIDIA برای انجام این محاسبات با کارایی بالا، یک کتابخانه شتابدهنده GPU cuDNN برای شبکه‌های عصبی عمیق معرفی کرد. چارچوبهای یادگیری عمیق زیادی مانند Caffe , Caffe2، Chainer , Microsoft CNTK , Matlab , Mxnet , PaddlePaddle , PyTorch , TensorFlow و Theano گسترش داده شدند درحالیکه از GPU قدرتمند استفاده می‌کنند. معیارهای تشابه اولیه که برای طبقه‌بندی داده‌ها استفاده می‌شوند، فاصله‌های اقلیدسی (به انگلیسی:Euclidean)، ماهالانوبیس (به انگلیسی:Mahalanobis)، ماتوزیتا (به انگلیسی:Matusita)، باتاچاریا (به انگلیسی:Bhattacharyya) و کولبک-لیبلر (به انگلیسی:Kullback-Leibler)است. با این حال، این معیارهای از پیش تعریف شده دارای قابلیت‌های محدودی در طبقه‌بندی داده‌ها هستند. از این رو، رویکردی مبتنی بر متریک ماهالانوبیس برای طبقه‌بندی داده‌ها به یادگیری متریک سنتی برای رفع این مشکل پیشنهاد شده‌است. در این روش، داده‌ها به فضای ویژگی‌های جدید با قدرت تبعیض بالاتر تبدیل می‌شوند. معمولاً رویکردهای یادگیری متریک به دگرگونی خطی داده‌ها بدون استفاده از هیچ گونه تابع کرنل مربوط می‌شوند. با این حال، این رویکردها به اندازه کافی موفق نیستند تا دانش غیرخطی موجود در داده‌ها را نشان دهند. به همین دلیل، با استفاده از یادگیری متریک، نتایج مورد انتظار حاصل نمی‌شود. اگرچه راه حلی با رویکرد مبتنی بر کرنل برای رفع این مشکل ارائه شد، به دلیل برخی از مسائل مانند مقیاس بندی، موفقیتی بدست نیامده است. برخلاف روشهای سنتی یادگیری متریک، یادگیری عمیق با استفاده از توابع فعال سازی که دارای ساختار غیرخطی هستند، این مشکل را حل می‌کند. بیشتر رویکردهای یادگیری عمیق موجود بر مبنای معماری عمیق و نه متریک مسافت در فضای بازنمایی جدید داده‌ها بنا شده‌است. با این حال، رویکردهای مبتنی بر فاصله اخیراً به یکی از جالب‌ترین مباحث در یادگیری عمیق تبدیل شده‌اند. ایده اصلی در یادگیری متریک عمیق این است که با استفاده از معماری شبکه‌های عصبی در یادگیری عمیق، نقاط داده را به فضای ویژگی دیگر برای مقایسه یا تطبیق ترسیم کند، که یادگیری متریک و یادگیری ویژگی را در یک چارچوب یادگیری مشترک متحد می‌کند. یادگیری متریک عمیق، که هدف آن افزایش فاصله بین نمونه‌های مشابه است، ارتباط مستقیمی با فاصله بین نمونه‌ها دارد. برای اجرای این فرایند، تابع هزینه متریک (به انگلیسی:Metric loss function) در یادگیری عمیق به معرفی شده‌است؛ که هدف نزدیکتر کردن نمونه‌ها از یک کلاس‌ها به یکدیگر و جداکردن نمونه‌های کلاسهای مختلف از یکدیگر است.
یادگیری متریک عمیق به عنوان مبنا و سنگ بنای بسیاری از سیستم‌های بازیابی تصویر مبتنی برمحتوا است؛ و در بسیاری از کارهای درک بصری مانند بازیابی تصویر و شی، بازشناسی چهره، ردیابی شی و موارد دیگر استفاده می‌شود. یادگیری متریک عمیق به طورکلی سه بخش اساسی دارد که بر کارایی آنها مؤثر است:
یادگیری متریک عمیق به‌طور خاص به تابع هزینه متریک اشاره دارد اما انتخاب نمونه هم می‌تواند تأثیر مثبتی در کلاس بندی داشته باشد. نمونه مؤثر یکی از مهم‌ترین عناصر در افزایش موفقیت یادگیری متریک عمیق است. استراتژی نمونه برداری می‌تواند در موفقیت شبکه و همچنین سرعت آموزش شبکه مؤثر باشد. ساده‌ترین راه انتخاب نمونه‌ها به صورت تصادفی است یعنی جفت نمونه‌های مثبت و منفی از مجموعه داده‌ها به صورت تصادفی انتخاب شوند. در بسیاری از مقالات برای شبکه‌های سیامی از این استراتژی استفاده می‌کنند ولی براین موضوع هم تأکید دارند که پس از اینکه شبکه به عملکرد قابل قبولی رسید. امکان کند شدن فرایند یادگیری وجود دارد. شبکه‌های تریپلت برای انتخاب نمونه‌های آموزشی از سه نمونه مثبت، منفی و لنگر استفاده می‌کنند. در برخی تحقیقات نشان داده شده که وجود مدل‌هایی که قدرت تفکیک‌پذیری کمتری دارند در به روز رسانی مدل هیچ تأثیری ندارند. وجود این تریپلت‌ها باعث اتلاف وقت و منابع می‌شود. به همین دلیل، برای رفع این مشکلات، استفاده از سه نمونه آموزنده بسیار راحت است و می‌توان به جای انتخاب نمونه‌های تصادفی، مدل‌های آموزش عملی تر با استراتژی نمونه بهتری ارائه کرد. در فصل بعدی و در کاربردها راجع به این استراتژی‌ها صحبت می‌شود. به‌طور خلاصه، حتی اگر مدل‌ها و معماری‌های ریاضی خوبی ایجاد کنیم، بسته به قدرت تمایز نمونه‌هایی که ارائه می‌شود، توانایی یادگیری شبکه محدود خواهد بود. نمونه‌های آموزش متمایز باید به شبکه ارائه شود تا شبکه بتواند بهتر یاد بگیرد و بازنمایی بهتری کسب کند. به همین دلیل باید تأثیر رابطه نمونه‌ها برای یادگیری متریک عمیق مورد بررسی دقیق قرار گیرد.
به‌طور معمول دو نوع شبکه‌های عصبی وجود دارند که در روش‌های یادگیری متریک عمیق استفاده می‌شوند.
بسیاری از تحقیقاتی که در زمینه یادگیری متریک انجام شده برای ارتباط بین نمونه‌ها از شبکه‌های سیامی الهام گرفته‌اند درحالیکه از اشتراک وزن‌ها در یادگیری متریک عمیق استفاده می‌کنند. عملکرد این شبکه‌ها یک برای به حداقل یا حداکثر رساندن فاصله بین نمونه‌های یک کلاس و کلاس مخالف یک مدل بسیار موفق است. معماری شبکه سیامی شامل دو جریان موازی برای برآورد شباهت بین دو ورودی است و توانایی یادگیری ویژگی‌های متمایزکننده آنها را دارد. همین‌طور به این نوع شبکه‌ها، شبکه‌های دوقلو نیز گفته می‌شود. همان‌طور که در شکل زیر پیداست شبکه‌های سیامی به عنوان یک رویکرد یادگیری متریک از دو شبکه یکسان تشکیل شده که هریک جفتی از تصاویر به عنوان نمونه‌های مثبت و منفی برای آموزش مدل شبکه در اختیار دارند و در لایه آخر از طریق یک تابع هزینه، شباهت بین دو نمونه محاسبه می‌شود. برای به دست آوردن یک الگوی معنی دار در بین تصاویر در یادگیری متریک عمیق، از وزنهای مشترک که بر عملکرد شبکه عصبی تأثیر مثبت دارد، استفاده می‌شود. شبکه‌های تریپلت از شبکه‌های سیامی الهام گرفته شده‌اند و به‌جای استفاده از دو جفت نمونه برای آموزش شبکه، از سه نمونه مثبت، منفی و لنگر استفاده می‌کنند. این شبکه‌ها برای مقایسه اشیا در طی فرایند تشخیص الگو از فضای اقلیدسی استفاده می‌کنند. از این رو این رویکرد به‌طور مستقیم با یادگیری متریک مرتبط است. این شبکه‌ها هم با استفاده از اشتراک وزن، بر روی شباهت بین جفت نمونه‌های یک کلاس و کلاس مختلف تمرکز دارند. با مقایسه این شباهت‌ها بین نمونه‌ها می‌توان عمل کلاس بندی و بازیابی تصاویر را انجام داد. این شبکه با برقراری روابط درون کلاسی و بین کلاسی که برقرار می‌کنند می‌توانند قدرت تمایز بالاتری را بین نمونه به‌وجود آورند. در شکل زیر نمونه ای از این شبکه را مشاهده می‌کنید.
در این بخش برخی از توابع هزینه متریک که در یادگیری متریک عمیق استفاده شده‌اند را مطرح می‌کنیم. این توابع به ما کمک می‌کنند با نگاه کردن به شباهت آنها، فاصله بین اشیاء را افزایش یا کاهش دهیم. هدف دستیابی به بالاترین بازنمایی ویژگی بین اشیاء مختلف است. چند مورد از این توابع هزینه را بررسی می‌کنیم:
فاصله بین این تصاویر جفت از طریق یک تابع هزینه محاسبه می‌شود (مطابق معادله زیر). تابع هزینه متضاد در مطالعات انجام شده برای شبکه سیامی تعریف شده‌است. شبکه سیامی یک مدل بسیار موفق برای به حداکثر رساندن یا به حداقل رساندن فاصله بین اشیاء برای بهبود عملکرد طبقه‌بندی است. تابع هزینه متضاد شبکه را برای مثال مثبت می‌گیرد و فاصله آن را با نمونه ای از همان کلاس محاسبه می‌کند و تضاد آن با فاصله از مثال‌های منفی را نشان می‌دهد. می‌توان گفت اگر نمونه‌های مثبت به نمایش‌های مشابه (نزدیکتر) رمزگذاری شده و نمونه‌های منفی در نمایش‌های مختلف (دورتر) رمزگذاری شوند، مقدار تابع هزینه کم است. اگر xو x در مجموعه آموزشی، یک جفت ورودی باشند. فاصله برای یک جفت از نمونه‌های ورودی formula_6 به صورت زیر تعریف می‌شود:
formula_7
که در آن (G(X و (G(X به عنوان بازنمایی جدیدی از یک جفت نمونه ورودی تولید می‌شوند. D برای محاسبه فاصله بین دو ورودی در توابع هزینه استفاده می‌شود. تابع هزینه متضاد به صورت زیر تعریف می‌شود:
formula_8
که در آن Y مقدار برچسب است. اگر یک جفت ورودی از یک کلاس باشد، مقدار Y برابر ۱ است، در غیر این صورت مقدار آن ۰. m مقدار حاشیه است.
شبکه سه‌گانه با الهام از شبکه سیامی شامل سه شیء است که به صورت نمونه‌های مثبت، منفی و لنگر شناخته می‌شوند. شبکه‌های سه‌گانه از فضای اقلیدسی برای مقایسه اشیاء در فرایند تشخیص الگو استفاده می‌کنند و این رویکرد به‌طور مستقیم با یادگیری متریک مرتبط است. همان‌طور که در معادله زیر مشاهده می‌شود، از دست دادن سه‌گانه ابتدا به شباهت بین نمونه‌های جفت کلاس‌های یکسان و متفاوت با استفاده از وزنهای مشترک متمرکز می‌شود. طبقه‌بندی با مقایسه شباهت نمونه‌های جفت انجام می‌شود شبکه‌های سه‌گانه در ضمن استفاده از روابط درون کلاسی و بین کلاسی، قدرت تبعیض بالاتری را فراهم می‌کنند. مدل‌های شبکه سه‌گانه سه ورودی دارند: ورودی لنگر X، ورودی شبیه به لنگر X، و ورودی متفاوت از لنگر X. مقدار تابع هزینه از فرمول زیر محاسبه می‌شود:
formula_9
آلفا مقدار حاشیه است. برای بهبود یادگیری متریک عمیق، تابع هزینه زاویه ای مطرح می‌شود. بر خلاف شبکه‌های سیامی و سه‌گانه، تابع هزینه زاویه ای ای بر روی محدودیت زاویه ای در نقطه منفی مثلث‌های سه‌گانه تمرکز دارد. تابع هزینه زاویه ای، نقطه منفی را از مرکز خوشه مثبت دور می‌کند و در ضمن استفاده از زاویه ای که متریک چرخش و مقیاس متغیر است، نقاط مثبت را به یکدیگر نزدیک می‌کند.
formula_10
در حالی که تابع هزینه سه‌گانه تنها برای محاسبه فاصله بین نمونه‌ها، نمونه‌های مثبت و منفی را در نظر می‌گیرد، از هیچ گونه اطلاعاتی از درجه تشابه استفاده نمی‌کند. با استفاده از تابع هزینه چهارگانه درجه نزدیکی بهتری بین اشیاء هنگام استفاده از نمونه‌های چهارتایی در هر مجموعه آموزشی بدست می‌آید. همان‌طور که در معادله زیر نشان داده شده‌است، یک نمونه ورودی جدید مشابه نمونه X به عنوان یک روش جایگزین برای از دست دادن سه‌گانه به تابع هزینه چهارگانه اضافه شده‌است. شکل زیر نشان می‌دهد نشان می‌دهد که تابع هزینه چهارگانه از دو مقدار حاشیه مختلف استفاده می‌کند. این مقادیر حاشیه با هدف برقراری روابط معنادارتر بین نمونه‌های مشابه و در بین نمونه‌های مختلف قرار داده شده‌اند. مدلهای شبکه چهارگانه نیز دارای ورودی دیگری مانند X هستند. X مانند ورودی X و ورودی X است. تابع هزینه چهارگانه به صورت زیر تعریف می‌شود:
formula_11