Deep Transfer Metric Learning

مقدمهدر اين مطالعه به بررسي مقاله‌ي"Deep Transfer Metric Learning"مي‌پردازيم. در بسياري از روش هايي كه براي metric learning استفاده شده است، فرض شده كه توزيع ديتاي مربوط به آموزش و تست داراي توزيع يكساني مي‌باشند.در اين شيوه مي‌خواهيم اطلاعات را از يك دامنه كه داراي برچسب ميباشد به يك دامنه ديگر كه برچسب ندارد منتقل نماييم. اين شيوه به صورت سلسله مراتبي كار مي‌كند و اطلاعات را منتقل مي نمايد.اين شيوه علاوه بر اينكه مانند اكثر شيوه‌هاي متريك لرنينگ سعي دارد كه فاصله‌ي بين كلاس هاي مختف زياد نمايند و فاصله‌ي بين سمپل‌هاي يك كلاس را كاهش دهد، براي حل مشكل يكي نبودن توزيع ديتاي "source"و ديتاي "target" سعي دارد كه اين دو توزيع را به يكديگر نزديك نمايد.در اين مقاله شيوه‌ي ديگري به نام DSTML نيز ارائه شده است كه خروجي لايه‌ي نهان و خروجي لايه‌ي آخر را، سعي دارد همراه با يكديگر بهينه نمايد. هدف از اين كار استخراج بهتر اطلاعات از دامنه ""source مي‌باشد.كه در ادامه به بررسي شيوه‌هاي معرفي شده مي‌پردازيم.بررسي مفاهيمدر اين قسمت، ابتدا به بررسي جند مفهوم پايه‌اي مي‌پردازيم. و سپس ايده‌هاي مطرح شده در مقاله را مطرح مي‌نماييم.Metric Learningابتدا به بررسي مفهوم "Metric Learning" وانواع آن مي‌پردازيم.Metric Learning سعي مي‌كند فواصل بين سمپل ها را و همچنين فاصله‌ي بين كلاس هارا هم ياد بگيرد. در به صورت هندسي به يادگيري مي‌پردازد. دو شيوه براي آموزش Metric Learning استفاده مي‌شود: Supervised و Unsupervised.ابتدا به بررسي شيوه‌ي Unsupervised مي‌پردازيم، در اين شيوه فواصل سمپل هاي مختلف ديتا به صورت هندسي در يك فضايي با ابعاد كمتر ياد‌گرفته مي‌شوند.شيوه‌ي‌ Supervised، به صورت discriminative مي‌باشد كه فواصل به گونه‌اي ياد گرفته مي‌شوند كه به بهترين شكل بتوان بين سمپل‌هاي مختلف يك كلاس تمايز قائل شد.Transfer learningدر اين قسمت به مفهوم transfer learning مي‌پردازيم كه مي‌خواهيم با استفاده از يك مدل كه قبلا براي يك تسك آموزش داده شده است، به عنوان يك مدل pre-train استفاده نماييم و يك ديتاي جديد كه داراي يك دامنه ديگر مي‌باشد را مجدد بر روي آن آموزش دهيم. در واقع در اين مدل از transfer learning زماني انجام مي‌شود كه توزيع source domain و target domain ما فرق داشته باشد.مي‌توان Transfer learning را به صورت كلي به دو دسته‌ي instance-based و feature-based تقسيم نمود.Instance-base:: به اين صورت عمل مي كند كه چند سري وزن آموزش مي‌دهيم براي رنك كردن سمپل ها در source domain براي آموزش بهتر در target domain.Feature-based:براي اين قسمت نيز، يك فضاي ويژگي معمولا ياد گرفته مي‌شود كه معمولا اطلاعات را از source domain به target domain منتقل مي نمايد. در خيلي از مقالات سعي شده است با كاهش فاصله‌ي دامنه‌هاي "target domain" و "source domain" با استفاده از كم كردن تفاوت توزيع ها با استفاده از "linear mapping" و يا "kernel trick" فضاي ويژگي ياد گرفته شود، كه اين روش‌ها به قدر كافي مناسب نمي‌باشند.deep transfer metric learningدر اين قسمت به بررسي ايده‌ي اصلي مقاله مي‌پردازيم، ايده ي مقاله در واقع تركيب دو مفهوم بالا يعني transfer learning و metric learning مي‌باشد. همان‌طوركه مي‌توان در شكل 1 مشاهده نمود هدف از روش مطرح شده در مقاله را مي‌توان به سه قسمت تقسيم نمود:اولين هدف افزايش فاصله‌ي بين كلاس‌هاي مختلف در يك ديتاست مي‌باشد.دومين هدف مي توان به كاهش فاصله بين سمپل‌هاي يك كلاس اشاره نمود. سومين هدف هم مي‌توان به نزديك كردن توزيع ديتايsource و ديتاي target اشاره نمود براي حل مشكل يكسان نبودن توزيع اين دو ديتاست.شكل 1: ايده‌ي پايه‌اي مربوط به DTMLآموزش اين شيكه نيز به اين صورت انجام مي‌پذيرد كه هم سمپل‌هاي ديتاي "source" و هم سمپل‌هاي ديتاي "target" وارد شبكه مي‌شوند سعي بر بهينه كردن سه شرط بالا را دارند.Objectiveدر اين قسمت ابتدا به بررسي Objective پايه براي Deep Metric Learning مي‌پردازيم. و سپس براي حل مشكل متفاوت بودن توزيع ديتاي تست و آموزش به معرفي Objective براي حل اين مسئله پرداخته و در انتها يه تركيب اين دو مي‌پردازيم كه در واقع همان Objective معرفي شده در مقاله مي‌باشد.deep metric learning-Objectiveدر بسياري از مقالات مربوط به deep metric learning براي اينكه سمپل‌هارا به يك فضاي ويژگي خطي ببرند، از يك فاصله‌ي خطي استفاده مي‌كنند. همچنين فرض شده‌است توزيع ديتاي آموزش و ديتاي تست يكسان مي‌باشد. در اين مقاله براي به دست آوردن representation مربوط به هر سمپل، از يك شبكه مانند شكل 2 مي‌توان استفاده نمود. كه توسط اين شبكه يك non-linear mapping به صورت سلسله مراتبي ياد ‌گرفته مي‌شود. يكي از نكات مثبت استفاده از اين شبكه، اين مي‌باشد كه مي‌توان ورودي هارا به يك فضاي غير‌خطي به صورت صريح مپ نمود.شكل 2: معماري استفاده شده در متد DTMLمي‌توان فرض نمود كه M + 1لايه براي شبكه‌ي مورد نظر داريم. خروجي لايه‌ي M با ورودي X به طريق زير محاسبه مي‌شود.Equation 1در اين فرمول Wو b ماتريس وزن و باياس هست و ᵠ يكactivation function غير خطي مانند "tanh" و "sigmoid"مي‌باشد. كه از طريق اين فرمول يك مپينگ غيرخطي صورت مي‌گيرد.براي هر جفت داده كه به شبكه داده مي‌شود دو خروجي به صورت f(m)(Xi) و f(m)(Xj) در لايه‌ي m مي باشد كه مي توان فاصله‌ي اين دو سمپل را نيز از طريق فرمول زير محاسبه نمود.Equation 2همه‌ي ديتاي مربوط به آموزش از طريق به طريق زير فرموله مي‌شوند:Equation 3آلفا يك پارامتر آزاد حساب مي‌شود كه ميزان اهميت فاصله‌ي بين سمپل‌هاي يك كلاس و فاصله‌ي دو كلاس مختلف را تنظيم مي‌نمايد. گاما كه مقدار آن مي‌بايست از صفر بيشتر باشد، يك ترم رگولاريزيشن قابل يادگيري مي‌باشد.علائم Sc و Sb بيانگر فاصله‌ي بين دو كلاس و فاصله‌ي بين سمپل‌هاي يك كلاس مي‌باشد كه به صورت زير محاسبه مي‌شود:Equation 4حالت اول:Pij برابر با يك مي‌شود، اگر xj يكي ازintra-class-nearest-neighbor - k1 ها‌ي xi باشد و در غير اين صورت برابر صفر مي‌شود.حالت دوم: Qij برابر با يك مي‌شود، اگر xj يكي ازintra-class-nearest-neighbor - k2 ها‌ي xi باشد و در غير اين صورت برابر صفر مي‌شود.deep transfer metric learning-objectiveما داراي دو نوع ديتاي target domain و source domain مي باشيم كه داراي توزيع متفاوت هستند در فضاي اصلي زيرا از دو ديتاست مختلف گرفته شده اندكه داراي توزيع متفاوتي است.براي كاهش تفاوت توزيع مي‌توان توزيع احتمالاتي source domain و target domain تا جايي كه ممكن است در فضاي تبديل شده به يكديگر نزديك باشند. براي رسيدن به اين هدف ما از maximum Mean Discrepancy (MMD) استفاده مي‌كنيم كه تفاوت توزيع هارا در لايه‌ي m اندازه بگيريم كه مي‌توان نحوه‌ي اندازه گيري را به صورت زير به دست آورد:Equation 5از تركيب دو معادله‌ي 3 و 5 يك مسئله‌ي بهينه سازي به صورت زير داريم.Equation 6كه در رابطه‌ي بالا بتا بزرگ تر مساوي صفر مي‌توان در نظر گرفت و يك ترم رگولاريزيشن محسوب مي‌شود..حال با توجه به فرمول 6 ما يم مسئله‌ي بهينه‌سازي دازيم كه به ازاي پارامتر هاي مدل كه W و b مي‌باشند گراديان objective function را محاسبه مي‌كنيم. و سپس به روز رساني مي نماييم.الگوريتم اين مقاله را مي‌توان در شكل زير مشاهده نمود:تا اين جا اين الگريتم به صورت مفصل توضيح داده شده است، كه در اين جا به صورت خلاصه مي‌توان آن را مشاهده نمود و به بررسي آن مي‌پردازيم:ابتدا تمامي مواردي كه درقسمت هاي قبل معرفي شدند مانند فاصله‌ي بين دو كلاس و فاصله‌ي بين ديتاهاي يك كلاس محاسبه مي‌شوند و بعد از گراديان مربوط به آن ها محاسبه شده و عمل backpropagation انجام مي‌شود.سپس تمامي پارامتر‌ها به روز رساني مي‌شوند. و شرط پاياني آموزش به اين صورت مي‌باشد كه اگر ميزان loss مرحله‌ي جديد از مرحله‌ي قبل از يك اپسيلون كمتر بود به خروجي مي‌رويم.Deeply Supervised Transfer metric Learningدر اين مقاله، به معرفي يك شيوه‌ي ديگر نيز پرداخته است كه در ادامه به بررسي آن مي‌پرازيم.Objective functionمربوط به قسمت DTML در فرمول شماره 6 آورده شده است فقط قسمت مربوط به اطلاعات سمپل‌هاي يادگيري در لايه‌هاي اول را مورد بررسي قرار مي‌دهد. و قسمت اطلاعات discriminativeمربوط به خروجي در لايه‌هاي مخفي ناديده گرفته مي‌شود. براي حل اين مسئله يك شيوه deeply supervised transfer metric learning(DSTML) ، ارائه داده‌اند كه اطلاعات discriminative رااز خروجي همه‌ي لايه‌ها به دست مي‌آورد. و يك مسئله بهينه سازي به صورت زير داريم:Equation 7كه J(m) به صورت زير تعريف مي‌شود:Equation 8يك 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 پياده سازي شده است كه در ادامه به بررسي اين تسك ها و نتايج آن‌ها مي‌پردازيم.آزمايشاتدر اين مقاله دو تسك مورد بررسي قرار گرفته‌اند كه در اداه به توضيح هر كدام از آن‌ها مي‌پردازيم.Face Verification:در اين تسك دو عدد عكس به عنون ورودي گرفته شده و مي‌خواهيم تشخيص دهيم كه آيا اين دوعكس مربوط به يك نفر مي‌باشند يا خير. و براي شبكه از يك شبكه‌ي سه لايه استفاده شده‌است.Person re-identification:در اين تسك هدف اين مي‌باشد كه يك فرد را از دوربين‌هاي مختلف، بدون داشتنن اشتراك تصوير، بتوانيم تشخيص دهيم. اين تسك پيچيده مي‌باشد از اين نظر كه تصاويري كه دوربين‌هاي مختلف گرفته مي‌شود از نظر رزولوشن، موقعيت، ژست، روشنايي و ويژگي‌هاي ديگر متفاوت باشند.نتايجمي‌توان در جدول 1 نتيايج را مشاهده نمود، بدين صورت كه DTML از STML بهتر عمل كرده و بالاترين دقت نيز براي DSTML مي‌باشد.دقت مربوط به متد‌هاي مختلف metric learning بر‌روي ديتاست LFW