Abbas Nosrat
Abbas Nosrat
خواندن ۳ دقیقه·۲ سال پیش

FaceNet

مدل FaceNet یکی از مدل های نسبتا موفق در زمینه embedding صورت است که توسط Google در سال 2015 عرضه شد. این مدل با بکارگیری معماری های ZFNetو InceptionNet و استفاده از تابع هزینه Triplet loss موفق به رسیدن به دقت state of the art در زمینه کلاس بندی، تصدیق هویت و خوشه بندی تصاویر چهره شد.

مدل FaceNet متشکل از یک بک بون CNN برای استخراج ویژگی، یک MLP برای بردن به فضای Embed و یک نرمال سازی بر اساس نرم L2 است. اگر تصویر ورودی را X و شبکه را f(.) فرض کنیم، می خواهیم ||f(x)|| برابر با یک باشد. این دلیل استفاده از نرمال سازی L2 است.

تابع هزینه استفاده شده برای آموزش FaceNet، تابع Triplet loss است. این تابع سه ورودی می گیرد. سه ورودی این تابع عبارت اند از انکور، تصویری هم کلاس انکور که تصویر مثبت نامیده می شود و تصویری با کلاس متفاوت از انکور که تصویر منفی نامیده می شود. می خواهیم فاصله انکور از مثبت کمتر از فاصله انکور از منفی باشد.

f(xa)-f(xp)≤f(xa)-f(xn)

در نتیجه، تابع هزینه به صورت زیر در می آید


minf(xa)-f(xp)-f(xa)-f(xn)

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

minf(xa)-f(xp)-f(xa)-f(xn)+α

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

f(xa)-f(xp)≥f(xa)-f(xn)

در نتیجه گرادیان های ایجاد شده ناشی از آموزش بر این مثال ها برای یادگیری مفیدتراند. برای پیدا کردن مثال های سخت دو روش پیشنهاد شده است:

· روش آقلاین: در این روش، هر چند ایپاک یک بار، کل داده از مدل عبور می کند و مثال های سخت پیدا می شود.

· روش آنلاین: در این روش، در هر مینی بچ آموزشی، همه داده های مینی بچ از شبکه عبور می کنند و مثال های سخت پیدا می شوند.

مدل FaceNet بر روی CPU و به مدت 1000 الی 2000 ساعت (بستگی به شبکه بک بون دارد) بر 200000000 تصویر آموزش دیده است و تفات در عملکرد مدل، پس از 500 ساعت، کاملا مشهود است.

یکی از نکاتی که طراحان FaceNet به آن توجه زیادی داشتند، تاثیر شبکه بک بون بر دقت مدل است. ابتدا مدل با شبکه ZFNet آموزش دیده است که چند کانوولوشن 1 در 1، به منظور کاهش تعداد پارامتر ها، در آن به کار گرفته شده است. این شبکه 140 ملیون پارامتر دارد و حجم محاسبات این شبکه برابر با 1.6BFLPS است. مدل دیگری که برای FaceNet انتخاب شد، مدل Inception است.

علی رقم عدم تغییر حجم محاسبات، تعداد پارامتر ها در مدل دوم، کاهش چشمگیری نسبت به مدل اول دارد. چند مدل دیگر نیز بر مبنای دو مدل مذکور و با هدف کاهش پارامتر به منظور استفاده در تلفن های همراه نیز ارائه شده است. ولی از نظر عملکرد، نسبت به دو مدل اصلی ضعیفتر هستند. مدل Inception برخلاف تعداد پارامتر های کمتر، عملکرد بهتری از مدل ZFNet دارد. با این حال، با سبکتر کردن شبکه، دقت FaceNet نیز کاهش می یابد. از دیگر موارد مورد ارزیابی در FaceNet، تاثیر میزان فشرده سازی، ابعاد تصویر و حجم دیتاست آموزشی بر دقت مدل است.

به عنوان یک مرجع برای ارزیابی و مقایسه مدل FaceNet با سایر مدل ها، دو دیتاست مرجع LFW و YTFDB انتخاب شده است. دیتاست LFW، مجموعه ای از تصاویر اشخاص در محیط های مختلف است. دیتاست YTFDB نیز فریم های ویدئو های جمع شده از فیلم های یتوب است. برای ارزیابی مدل در این دو دیتاست، دو روش به کار گرفته شد. روش اول، Center Crop کردن تصاویر است که روی LFW دقت 98.87 درصد را دارد و روش دوم، جدا کردن چهره با دیتکتور Picasa است. روش دوم روی دیتاست LFW، دقت 99.63 درصد دارد و در دیتاست YTFDB، دقت 95.12 درصد را رقم زده است.

مدل FaceNet در ارزیابی ها نسبت رقبای خود در سال 2015 و سال های بعد، جایگاه بالایی دارد اما بایاس دیتاست این مدل نسبت به اشخاص سفید پوست ضعف این مدل است.

facenetمدلآموزش
شاید از این پست‌ها خوشتان بیاید