معرفی متد DDML برای تشخیص چهره

در این پست می خواهیم به بررسی مقاله ی "Discriminative Deep Metric Learning for Face Verification in the Wild" بپردازیم که در سال 2014 منتشر شده و روشی برای face verification در تصاویر wild پیشنهاد داده است.مقدمه و تاریخچهدر دهه های اخیر، تعداد زیادی متد برای تشخیص چهره پیشنهاد شده است که اکثر آنها، تحت شرایط کنترل شده، عملکرد قابل قبولی داشتند. با این حال اگر تصاویر ورودی تحت شرایط کنترل نشده یا به اصطلاح wild گرفته می شدند (یعنی بطور اتفاقی و در محیط های مختلف)، عملکرد متدها بخاطر تغییرات بزرگ در فاصله درونی کلاس ها (یعنی حالتی که example های یک کلاس فواصل نسبتا بزرگی با هم دارند) بشدت افت می کرد. در حالت کلی تشخیص چهره به دو تسک مجزا قابل تقسیم است: face identification یا شناسایی چهره که هدف از آن، تشخیص یک شخص از روی مجموعه ای از تصاویر یا ویدیوها و پیدا کردن شبیه ترین مورد است، face verification یا تایید چهره که به منظور تعیین این است که آیا جفت تصویر یا ویدیو داده شده، متعلق به یک شخص است یا نه. در این مقاله به تسک دوم پرداخته شده است، در حالیکه تصاویر چهره دچار تغییرات قابل توجهی شده اند، نظیر تغییر در نور، حالت، رزولوشن و بک‌گراند.اخیرا رویکرد هایی برای بهبود face verification در محیط های نامقید پیشنهاد شده که می توان آنها را به دو کتگوری تقسیم کرد: رویکرد های مبتنی بر feature descriptor یا توصیفگر ویژگی که در آنها یک توصیفگر robust و discriminative (متمایز کننده) بکار گرفته می شود تا هر چهره را بصورت یک بردار ویژگی نمایش دهد به نحوی که بردار ویژگی افراد متفاوت، در فضای ویژگی، فاصله ی زیادی از هم داشته باشند، متد هایی نظیر SIFT، LBP، probabilistic elastic matching (PEM) و همچنین fisher vector faces از این دسته هستند؛ دسته دیگر شامل رویکرد های مبتنی بر metric learning می باشند که در آنها معمولا یک متریک فاصله ی جدید به کمک داده های آموزشی لیبل دار، آموخته می شود تا به شکل موثر شباهت بین چهره ها را اندازه بگیرید؛ به نحوی که شباهت بین جفت های مثبت زیاد و شباهت بین جفت های منفی تا حد امکان کم شود. متد های logistic discriminant metric learning (LDML)، cosine similarity metric learning (CSML)، pairwise constrained component analysis (PCCA) و pairwise-constrained multiple metric learning (PMML) از این دست هستند.نوآوری مقالهبسیاری از روش های metric learning تنها یک تبدیل خطی یاد می گیرند تا نمونه های چهره را به یک فضای ویژگی جدید نگاشت کنند؛ این روش به اندازه ی کافی قدرتمند نیست تا خمینه های غیرخطی که تصاویر صورت روی آنها قرار می گیرند را به خوبی بدست آورد. برای برطرف کردن این محدودیت معمولا از kernel trick استفاده می شود تا ابتدا نمونه های صورت به یک فضای ویژگی high-dimensional نگاشت و سپس متریک فاصله آموخته شود. اما این متد ها هم قادر نیستند توابع نگاشت غیرخطی را صریحا بدست آورند و مشکل scalability* همچنان وجود خواهد داشت. در این مقاله متد جدیدی تحت عنوان Discriminative Deep Metric Learning یا به اختصار DDML معرفی شده است که مطابق با آن، یک شبکه ی عصبی عمیق ساخته می شود و مجموعه ای از تبدیلات غیرخطی سلسله‌مراتبی برای تصویر کردن جفت های صورت به یک فضای ویژگی دیگر آموزش می بیند؛ در این روش، برخلاف روشهای دیگر، نگاشت های غیرخطی صریحا بدست می آیند. بعلاوه در فضای ویژگی فاصله ی جفت های مثبت از یک مقدار آستانه ی کوچکتر، کمتر می شود و فاصله ی جفت های منفی از یک مقدار آستانه ی بزرگتر، بیشتر می شود که این امر موجب تفکیک موثرتر تصاویر چهره خواهد شد.*منظور از Scalability این است که اگر تصویر شخص جدیدی وارد شود، آیا مدل باید از ابتدا آموزش ببیند یا خیر.متد پیشنهادیابتدا توضیح مختصری در خصوص روش Mahalanobis distance metric learning بعنوان یک رویکرد خطی ارائه می شود، سپس متد DDML معرفی خواهد شد.یادگیری مبتنی بر Mahalanobis Distance :با فرض اینکه X = [x1, x2, · · · , xN ] ∈ R^(d×N) مجموعه ی آموزش باشد، در این روش هدف بدست آوردن ماتریس مربعی M ∈ R^(d×d) از مجموعه ی آموزش است، به نحوی که فاصله ی هر دو سمپل xi و xj از رابطه ی زیر محاسبه می شود:از آنجا که dM(xi , xj ) یک فاصله است، باید ویژگی های نامنفی و متقارن بودن و همچنین ناتساوی مثلثی برای آن برقرار باشد؛ چون M متقارن و مثبت نیمه معین است بنابراین می توان آن را به شکل زیر تجزیه کرد:پس می توان رابطه ی فوق را مجددا به اینصورت نوشت:از عبارت فوق پیداست که یادگیری متریک Mahalanobis Distance معادل پیدا کردن یک تبدیل خطی نظیر است که هر سمپل را به یک زیرفضای low-dimensional تصویر می کند؛ فاصله ی اقلیدسی هر دو سمپل در فصای تبدیل یافته، برابر با همان متریک Mahalanobis Distance در فضای اصلی است.متد DDML :طبق شکل 1، ابتدا یک شبکه ی عصبی عمیق ساخته می شود تا با عبور یک جفت صورت از تبدیلات غیرخطی که در هر لایه اعمال می شود، بردار representation هر چهره بدست آید. با فرض اینکه تعداد لایه ها برابر با M+1 باشد، برای نمونه صورت x خروجی لایه ی اول h (1) = s(W(1)x + b (1)) است که در آن W(1) و b(1) به ترتیب ماتریس projection و بردار بایاس و s تابع فعالساز غیرخطی (مثلا tanh یا sigmoid) است. سپس خروجی لایه ی اول (h(1)) بعنوان ورودی لایه ی بعدی استفاده می شود و بطور مشابه خروجی لایه ی دوم نیز بدست می آید. بنابراین خروجی لایه ی mاُم بصورت h (m) = s(W(m)h (m−1) + b (m) ) خواهد بود و خروجی آخرین لایه برابر خواهد بود با :شکل 1: بکارگیری متد DDML برای face verificationبنابراین برای یک جفت تصویر صورت داده شده xi و xj، با استفاده از تبدیلات غیرخطی متوالی، آنها را به یک فضای ویژگی نگاشت کرده و بصورت f(xi) و f(xj) نمایش می دهیم؛ سپس فاصله ی بین آنها می تواند با محاسبه ی فاصله ی اقلیدسی بین این دو representation بدست آمده، حاصل شود:هدف از متد DDML بدست آوردن نگاشت غیرخطی f است به نحوی که فاصله ی d^2_f (xi , xj ) بین جفت های مثبت xi و xj (یعنی حالتی که Lij = 1 باشد) از مقدار آستانه ی τ1 کوچکتر شود و این فاصله برای جفت های منفی xi و xj (یعنی حالتی که Lij = -1 باشد) از مقدار آستانه ی τ2 بزرگتر شود. لیبل Lij شباهت یا عدم شباهت بین دو جفت xi و xj را نشان می دهد. برای کاهش تعداد پارامتر ها تنها یک مقدار آستانه ی τ بکار گرفته شده و قید زیر برای مسئله در نظر گرفته می شود:با این فرض که τ1=τ-1 و τ2=τ+1. با در نظر گرفتن این قید و یک مارجین بین هر جفت مثبت و منفی، مطابق شکل 2 به وجود می آید. در واقع این قید باعث می شود که فاصله ی جفت های مثبت کمتر از τ (به هم نزدیکتر) و فاصله ی جفت های منفی بزرگتر از τ (از هم دورتر) شود. اگر Lij=1 (برای جفت های مثبت) و فاصله کمتر از τ1=τ-1 باشد، عبارت داخل پرانتز مثبت می شود و قید برقرار است؛ اگر Lij=-1 (برای جفت های منفی) و فاصله بیشتر از τ2=τ+1 باشد، عبارت داخل پرانتز منفی می شود و چون در یک 1- هم ضرب می شود، همچنان قید برقرار خواهد بود. درنهایت به کمک این قید، یک تابع هدف و بدنبال آن یک مسئله ی بهینه سازی تعریف می شود.شکل 2: فضای ویژگی اصلی، قبل و بعد از اعمال DDMLتابع هدفهمانطور که اشاره شد، متد پیشنهاد شده را می توان بصورت یک مسئله ی بهینه سازی مطرح کرد:که در آن g(z) تابع logistic loss تعمیم یافته و تقریب نَرمی از همان تابع hinge (که بصورت max(0,z) درنظر گرفته می شود) است. در عبارت فوق، β پارامتر sharpness و ||A|| با اندیس F، نرم فروبنیوس ماتریس A و λ پارامتر regularization است. در تابع هدف فوق، ترم J1 نشان دهنده ی logistic loss و J2 ترم regularization می باشد. برای حل مسئله ی بهینه سازی فوق، از روش stochastic sub-gradient descent برای بدست آوردن پارامتر های W(m) و b(m) جاییکه m=1,2,...,M است، استفاده می شود. گرادیان تابع هدف نسبت به پارامتر های W(m) و b(m) با استفاده از روابط زیر محاسبه می شود:که در آن h^(0)i = xi و h^(0)j = xj ورودی های اصلی شبکه هستند و همچنین داریم:در نهایت پارامتر های مدل با بکارگیری قانون زیر آپدیت می شوند:الگوریتم کلی متد DDML را به شکل زیر می توان نوشت:شکل 3: الگوریتم متد DDMLابتدا مقادیر وزن و بایاس را مقداردهی می کنیم (مقادیر اولیه ی بایاس را برابر با صفر و مقادیر اولیه ی وزن ها را بر اساس یک توزیع یکنواخت تعریف شده، قرار می دهیم). در هر iteration، یک جفت از داده های آموزش را بصورت (xi,xj,Lij) انتخاب می کنیم و در لایه ی ورودی قرار می دهیم (h^(0)i = xi و h^(0)j = xj)؛ سپس forward propagation را انجام می دهیم یعنی ورودی که در ابتدای شبکه اعمال می شود، از تک تک لایه های بعدی عبور می کند تا به لایه ی آخر برسد (جایی که h^(m)i و h^(m)j حاصل می شود)؛ سپس با توجه به روابطی که بالاتر آورده شد، مقادیر گرادیان محاسبه و در قدم بعدی پارامتر های شبکه بروز می شوند. در نهایت مقدار تابع هزینه محاسبه می شود تا در صورتی که اختلاف آن از مقدار قبلی (مقدار تابع هزینه در iteration قبل) کمتر از اپسیلون باشد، الگوریتم متوقف شود؛ در این حالت الگوریتم همگرا شده و مقادیر پارامتر ها که مطلوب مسئله بود، بدست آمده اند.نکته ی قابل توجه این است که در متد فوق صحبتی از بکارگیری لایه های کانولوشنی بعنوان پارت feature extractor شبکه نشده است، درحالیکه می دانیم ورودی شبکه تصاویر صورت است و معمولا برای ورودی هایی از این جنس، نیاز به لایه های کانولوشنی داریم تا با فیلتر کردن تصاویر ورودی، آنها را به یک فضای ویژگی با ابعاد مشخص ببرد و با برداری تحت عنوان بردار ویژگی آنها را نمایش دهد. در این مقاله روش بکار رفته برای بدست آوردن بردار ویژگی متناظر با هر تصویر، استفاده از descriptor ها یا توصیفگر هایی نظیر DSIFT، LBP و SSIFT است. مثلا در روش DSIFT روی هر پَچ 16*16 از تصویر (بدون overlap)، توصیفگر های SIFT بدست می آید و در نهایت این توصیفگر ها به هم متصل شده و بردار ویژگی با ابعاد 5760 حاصل می شود. در واقع در روابط فوق، منظور از x همان بردار ویژگی بدست آمده از روی تصویر صورت است که بعنوان ورودی به شبکه اعمال می شود.نتایج مقالهعملکرد متد پیشنهاد شده روی دو دیتاست LFW (شامل 13000 تصویر چهره از 5749 سابجکت) و YTF (شامل 3425 ویدیو از 1595 شخص متفاوت) مورد بررسی قرار گرفته است که در اینجا به بخشی از نتایج بدست آمده (روی دیتاست LFW) اشاره می کنیم. در جدول زیر مدل deep ارائه شده با مدل های shallow (شامل تنها یک لایه) مقایسه شده است. در این آزمایش، فیچر های اصلی و همینطور جذر آنها مورد استفاده قرار گرفته و طبق نتایج بدست آمده، مدل پیشنهادی بهتر از مدلهای shallow عمل می کند.در آزمایش دیگری، نتایج متد پیشنهادی با متد های State-of-the-Art که تعدادی از آنها مبتنی بر توصیفگر ها (PAF و Fisher vector faces) و باقی مبتنی بر متریک لرنینگ هستند، مقایسه شده است (جدول زیر)؛ منظور از NoD تعداد توصیفگر های بکار رفته می باشد.در یک آزمایش دیگر، متد DDML با دو متد دیپ لرنینگ دیگر، CDBN و DNLML-ISA مقایسه شده است (جدول زیر).طبق نتایج فوق، متد DDML نسبت به متد های State-of-the-Art و همینطور متد های دیپ لرنینگی که مورد آزمایش قرار گرفت، غالبا عملکرد بهتری دارد (خصوصا زمانی که فیچر ها بصورت ترکیبی بکار می روند) و به دقت بالاتری می رسد. آزمایش های مشابهی روی دیتاست YTF انجام شده که نتایج آن در مقاله آورده شده است؛ روی این دیتاست نیز دقت های بدست آمده با DDML در مقایسه با متد های دیگر بیشتر است.تحلیل و نتیجه گیری (مزایا و معایب متد پیشنهادی)همانطور که اشاره شد، ضعف متد های قبلی این بود که یا از تبدیلات خطی برای بردن تصاویر به فضای ویژگی استفاده می کردند که قادر نبود پیچیدگی ها و غیرخطی‌گری های مسئله را به خوبی مدل کند؛ یا اینکه نظیر متد های کرنل، نگاشت های غیرخطی در آنها صریحا بدست نمی آمد. در این مقاله پیشنهاد شد که می توان از شبکه های عمیق برای رسیدن به فضای ویژگی مطلوب استفاده کرد که در آن هم خمینه های غیرخطی که تصاویر روی آنها قرار می گیرند، قابل دستیابی است و هم این نگاشت های غیرخطی (تبدیلات غیرخطی که در هر لایه از شبکه روی بردار های ورودی اعمال می شود) را صریحا می توان بدست آورد و همچنین با یک روش مبتنی بر گرادیان، پارامتر های شبکه را به نحوی آپدیت کرد که تابع هدف کمینه و خواسته ی مسئله به شکل مطلوبی تحقق یابد.نکته ی قابل ذکر دیگر این است که شاید بعنوان یکی از کاستی های متد پیشنهاد شده، بتوان به این اشاره کرد که برای بدست آوردن بردار ویژگی متناظر با هر تصویر ورودی، descriptor ها یا توصیفگر هایی نظیر DSIFT، LBP و SSIFT بکار گرفته شده اند. البته باید به این نکته توجه داشت که این مقاله به نسبت قدیمی و برای سال 2014 می باشد؛ امروزه، باتوجه به پیشرفت های اخیر در هوش مصنوعی و یادگیری عمیق، از CNN ها در تسک هایی نظیر طبقه بندی تصاویر استفاده می شود؛ چرا که این شبکه ها قادر هستند تصاویر ورودی را فیلتر کنند، disturbance ها و distortion ها را حذف کنند، ویژگی های انحصاری را به خوبی استخراج کرده و داده ها را به یک فضای ویژگی مناسب تر ببرند که در آنجا طبقه بندی دادگان ورودی بهتر و موثرتر انجام پذیرد. بنابراین این امکان وجود دارد که از فیلتر پارت یک شبکه ی کانولوشنی برای قسمت feature extraction استفاده کرد تا عملکرد متد پیشنهادی بالاتر رود و به دقت های بالاتری منجر شود. در سال های بعد از انتشار این مقاله، همین ایده بکار گرفته شد و شبکه هایی نظیر siamese برای مسائل similarity learning معرفی شد. بعلاوه با رشدی که در سال های اخیر در این زمینه اتفاق افتاد ایده ها، تکنیک ها و بویژه توابع loss بهتر و موثرتری (نظیر triplet، circle، arcface و ...) معرفی شدند که هر کدام به نحوی در روند یادگیری و حل مسائل تشخیص چهره، بهبودی ایجاد کردند و به عملکرد بهتر و نتایج بالاتر منجر شدند.مرجع:Hu, J., Lu, J. and Tan, Y.-P. (2014) “Discriminative deep metric learning for face verification in the wild,” in 2014 IEEE Conference on Computer Vision and Pattern Recognition. IEEE.گردآورنده: کیمیا علوی