در اين مطالعه به بررسي مقالهي"Deep Transfer Metric Learning"ميپردازيم. در بسياري از روش هايي كه براي metric learning استفاده شده است، فرض شده كه توزيع ديتاي مربوط به آموزش و تست داراي توزيع يكساني ميباشند.
در اين شيوه ميخواهيم اطلاعات را از يك دامنه كه داراي برچسب ميباشد به يك دامنه ديگر كه برچسب ندارد منتقل نماييم. اين شيوه به صورت سلسله مراتبي كار ميكند و اطلاعات را منتقل مي نمايد.
اين شيوه علاوه بر اينكه مانند اكثر شيوههاي متريك لرنينگ سعي دارد كه فاصلهي بين كلاس هاي مختف زياد نمايند و فاصلهي بين سمپلهاي يك كلاس را كاهش دهد، براي حل مشكل يكي نبودن توزيع ديتاي "source"و ديتاي "target" سعي دارد كه اين دو توزيع را به يكديگر نزديك نمايد.
در اين مقاله شيوهي ديگري به نام DSTML نيز ارائه شده است كه خروجي لايهي نهان و خروجي لايهي آخر را، سعي دارد همراه با يكديگر بهينه نمايد. هدف از اين كار استخراج بهتر اطلاعات از دامنه ""source ميباشد.
كه در ادامه به بررسي شيوههاي معرفي شده ميپردازيم.
در اين قسمت، ابتدا به بررسي جند مفهوم پايهاي ميپردازيم. و سپس ايدههاي مطرح شده در مقاله را مطرح مينماييم.
ابتدا به بررسي مفهوم "Metric Learning" وانواع آن ميپردازيم.
Metric Learning سعي ميكند فواصل بين سمپل ها را و همچنين فاصلهي بين كلاس هارا هم ياد بگيرد. در به صورت هندسي به يادگيري ميپردازد. دو شيوه براي آموزش Metric Learning استفاده ميشود: Supervised و Unsupervised.
ابتدا به بررسي شيوهي Unsupervised ميپردازيم، در اين شيوه فواصل سمپل هاي مختلف ديتا به صورت هندسي در يك فضايي با ابعاد كمتر يادگرفته ميشوند.
شيوهي Supervised، به صورت discriminative ميباشد كه فواصل به گونهاي ياد گرفته ميشوند كه به بهترين شكل بتوان بين سمپلهاي مختلف يك كلاس تمايز قائل شد.
در اين قسمت به مفهوم transfer learning ميپردازيم كه ميخواهيم با استفاده از يك مدل كه قبلا براي يك تسك آموزش داده شده است، به عنوان يك مدل pre-train استفاده نماييم و يك ديتاي جديد كه داراي يك دامنه ديگر ميباشد را مجدد بر روي آن آموزش دهيم. در واقع در اين مدل از transfer learning زماني انجام ميشود كه توزيع source domain و target domain ما فرق داشته باشد.
ميتوان Transfer learning را به صورت كلي به دو دستهي instance-based و feature-based تقسيم نمود.
: به اين صورت عمل مي كند كه چند سري وزن آموزش ميدهيم براي رنك كردن سمپل ها در source domain براي آموزش بهتر در target domain.
براي اين قسمت نيز، يك فضاي ويژگي معمولا ياد گرفته ميشود كه معمولا اطلاعات را از source domain به target domain منتقل مي نمايد. در خيلي از مقالات سعي شده است با كاهش فاصلهي دامنههاي "target domain" و "source domain" با استفاده از كم كردن تفاوت توزيع ها با استفاده از "linear mapping" و يا "kernel trick" فضاي ويژگي ياد گرفته شود، كه اين روشها به قدر كافي مناسب نميباشند.
در اين قسمت به بررسي ايدهي اصلي مقاله ميپردازيم، ايده ي مقاله در واقع تركيب دو مفهوم بالا يعني transfer learning و metric learning ميباشد. همانطوركه ميتوان در شكل 1 مشاهده نمود هدف از روش مطرح شده در مقاله را ميتوان به سه قسمت تقسيم نمود:
آموزش اين شيكه نيز به اين صورت انجام ميپذيرد كه هم سمپلهاي ديتاي "source" و هم سمپلهاي ديتاي "target" وارد شبكه ميشوند سعي بر بهينه كردن سه شرط بالا را دارند.
در اين قسمت ابتدا به بررسي Objective پايه براي Deep Metric Learning ميپردازيم. و سپس براي حل مشكل متفاوت بودن توزيع ديتاي تست و آموزش به معرفي Objective براي حل اين مسئله پرداخته و در انتها يه تركيب اين دو ميپردازيم كه در واقع همان Objective معرفي شده در مقاله ميباشد.
در بسياري از مقالات مربوط به deep metric learning براي اينكه سمپلهارا به يك فضاي ويژگي خطي ببرند، از يك فاصلهي خطي استفاده ميكنند. همچنين فرض شدهاست توزيع ديتاي آموزش و ديتاي تست يكسان ميباشد. در اين مقاله براي به دست آوردن representation مربوط به هر سمپل، از يك شبكه مانند شكل 2 ميتوان استفاده نمود. كه توسط اين شبكه يك non-linear mapping به صورت سلسله مراتبي ياد گرفته ميشود. يكي از نكات مثبت استفاده از اين شبكه، اين ميباشد كه ميتوان ورودي هارا به يك فضاي غيرخطي به صورت صريح مپ نمود.
ميتوان فرض نمود كه M + 1لايه براي شبكهي مورد نظر داريم. خروجي لايهي M با ورودي X به طريق زير محاسبه ميشود.
در اين فرمول Wو b ماتريس وزن و باياس هست و ᵠ يكactivation function غير خطي مانند "tanh" و "sigmoid"ميباشد. كه از طريق اين فرمول يك مپينگ غيرخطي صورت ميگيرد.
براي هر جفت داده كه به شبكه داده ميشود دو خروجي به صورت f(m)(Xi) و f(m)(Xj) در لايهي m مي باشد كه مي توان فاصلهي اين دو سمپل را نيز از طريق فرمول زير محاسبه نمود.
همهي ديتاي مربوط به آموزش از طريق به طريق زير فرموله ميشوند:
آلفا يك پارامتر آزاد حساب ميشود كه ميزان اهميت فاصلهي بين سمپلهاي يك كلاس و فاصلهي دو كلاس مختلف را تنظيم مينمايد. گاما كه مقدار آن ميبايست از صفر بيشتر باشد، يك ترم رگولاريزيشن قابل يادگيري ميباشد.
علائم Sc و Sb بيانگر فاصلهي بين دو كلاس و فاصلهي بين سمپلهاي يك كلاس ميباشد كه به صورت زير محاسبه ميشود:
حالت اول:Pij برابر با يك ميشود، اگر xj يكي ازintra-class-nearest-neighbor - k1 هاي xi باشد و در غير اين صورت برابر صفر ميشود.
حالت دوم: Qij برابر با يك ميشود، اگر xj يكي ازintra-class-nearest-neighbor - k2 هاي xi باشد و در غير اين صورت برابر صفر ميشود.
ما داراي دو نوع ديتاي target domain و source domain مي باشيم كه داراي توزيع متفاوت هستند در فضاي اصلي زيرا از دو ديتاست مختلف گرفته شده اندكه داراي توزيع متفاوتي است.
براي كاهش تفاوت توزيع ميتوان توزيع احتمالاتي source domain و target domain تا جايي كه ممكن است در فضاي تبديل شده به يكديگر نزديك باشند. براي رسيدن به اين هدف ما از maximum Mean Discrepancy (MMD) استفاده ميكنيم كه تفاوت توزيع هارا در لايهي m اندازه بگيريم كه ميتوان نحوهي اندازه گيري را به صورت زير به دست آورد:
از تركيب دو معادلهي 3 و 5 يك مسئلهي بهينه سازي به صورت زير داريم.
كه در رابطهي بالا بتا بزرگ تر مساوي صفر ميتوان در نظر گرفت و يك ترم رگولاريزيشن محسوب ميشود..
حال با توجه به فرمول 6 ما يم مسئلهي بهينهسازي دازيم كه به ازاي پارامتر هاي مدل كه W و b ميباشند گراديان objective function را محاسبه ميكنيم. و سپس به روز رساني مي نماييم.
الگوريتم اين مقاله را ميتوان در شكل زير مشاهده نمود:
تا اين جا اين الگريتم به صورت مفصل توضيح داده شده است، كه در اين جا به صورت خلاصه ميتوان آن را مشاهده نمود و به بررسي آن ميپردازيم:
ابتدا تمامي مواردي كه درقسمت هاي قبل معرفي شدند مانند فاصلهي بين دو كلاس و فاصلهي بين ديتاهاي يك كلاس محاسبه ميشوند و بعد از گراديان مربوط به آن ها محاسبه شده و عمل backpropagation انجام ميشود.
سپس تمامي پارامترها به روز رساني ميشوند. و شرط پاياني آموزش به اين صورت ميباشد كه اگر ميزان loss مرحلهي جديد از مرحلهي قبل از يك اپسيلون كمتر بود به خروجي ميرويم.
در اين مقاله، به معرفي يك شيوهي ديگر نيز پرداخته است كه در ادامه به بررسي آن ميپرازيم.Objective functionمربوط به قسمت DTML در فرمول شماره 6 آورده شده است فقط قسمت مربوط به اطلاعات سمپلهاي يادگيري در لايههاي اول را مورد بررسي قرار ميدهد. و قسمت اطلاعات discriminative
مربوط به خروجي در لايههاي مخفي ناديده گرفته ميشود. براي حل اين مسئله يك شيوه deeply supervised transfer metric learning(DSTML) ، ارائه دادهاند كه اطلاعات discriminative رااز خروجي همهي لايهها به دست ميآورد. و يك مسئله بهينه سازي به صورت زير داريم:
كه J(m) به صورت زير تعريف ميشود:
يك Objective function كه روي لايهي mاعمال ميشود. J(M) مربوط به لايههاي اول است و J(m) مربوط به لايههاي مياني. از Hinge lossاستفاده شده است كه بدين صورت ميباشد: h(x) = max(x; 0)
يك threshold مثبت (m)به نام Ƭ هست كه loss J(m) را كنترل ميكند و w(m) ميزان اهميت مربوط به لايههاي بالايي و لايهي مخفي mام ميباشد.
دومين ترم در شماره 7 اگر loss كلي براي لايهي mام كمتر از threshold تعيين شده باشد، در طول آموزش ناديده گرفته خواهد شد. سپس مانند قسمتهاي قبلي گراديان نسبت به وزن و باياس براي لايههاي بالا حساب شده و نسبت به لايههاي ديگر نيز حساب ميكنيم. و براي تمامي لايهها آپديت انجام ميشود.
اين متد بر روي دو تسك مختلف Face Verification و Person Re-Identification پياده سازي شده است كه در ادامه به بررسي اين تسك ها و نتايج آنها ميپردازيم.
در اين مقاله دو تسك مورد بررسي قرار گرفتهاند كه در اداه به توضيح هر كدام از آنها ميپردازيم.
در اين تسك دو عدد عكس به عنون ورودي گرفته شده و ميخواهيم تشخيص دهيم كه آيا اين دوعكس مربوط به يك نفر ميباشند يا خير. و براي شبكه از يك شبكهي سه لايه استفاده شدهاست.
در اين تسك هدف اين ميباشد كه يك فرد را از دوربينهاي مختلف، بدون داشتنن اشتراك تصوير، بتوانيم تشخيص دهيم. اين تسك پيچيده ميباشد از اين نظر كه تصاويري كه دوربينهاي مختلف گرفته ميشود از نظر رزولوشن، موقعيت، ژست، روشنايي و ويژگيهاي ديگر متفاوت باشند.
ميتوان در جدول 1 نتيايج را مشاهده نمود، بدين صورت كه DTML از STML بهتر عمل كرده و بالاترين دقت نيز براي DSTML ميباشد.