<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Melika Sadeghi</title>
        <link>https://virgool.io/feed/@m_69871726</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 17:59:32</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>Melika Sadeghi</title>
            <link>https://virgool.io/@m_69871726</link>
        </image>

                    <item>
                <title>transformers</title>
                <link>https://virgool.io/@m_69871726/transformers-fyreixrrkplr</link>
                <description>اخیرا instance segmentation  پیشرفت هایی فراتر از حوزه object detection  داشته است . یکی از روش های معروف در این حوزه Mask R-CNN  است که در حوزه Object detection  گسترش یافته است .هر چند کارهایی برای توسعه و بهبود روش Mask R-CNN  صورت گرفته است اما کارهای کمی به سرعت instance segmentation  توجه داشته اند. Yolact  اولین روش بلادرنگ (real time )  است که به صورت one stage instance segmentation  می باشددرصدد آن هستیم که دقت و سرعت Mask R-CNN  را بالا ببریم در حالیکه Mask R-CNN  ها بر اساس two stage object detector  هستند و ابتدا box proposal  را می سازند اما Yolact  که یک object detector  یک مرحله ای است ,  بدون مرحله proposal  می تواند box  را پیش بینی کندالبته اگرچه object detector  ها وابسته به pre-defined anchors  هستند که حساس به دیتاست و تعداد پارامتر های مختلف است ,  anchor box  های زیاد می توانند باعث عدم تعادل در سمپل های مثبت و منفی بشوند و همچنین هزینه محاسبات بیشتربرای جلوگیری از معایب anchor box  ها به anchor box free  روی آورده شده است spatial attention module  در SAG-Mask  به mask branch  کمک می کند تا بر روی پیکسل های معنی دار تمرکز کنند و اطلاعات غیر مهم را خنثی کندهم چنین از back bone  کاراتری به نام vovnet2  استفاده می کنیم که بر اساس vovnet  می باشد و عملکرد و سرعت بهتری به دلیل One-shot Aggregation   , نسبت به ResNet  و  Dense Net  داردبه وسیله SAG-Mask  و vovnet2  ما center-mask  و center-mask-lite  را طراحی می کنیمدر این بخش ابتدا به مروری بر FCOS  که یک anchor free object detector  هست می پردازیم که یک object detector  اساسی برای center mask  هست می پردازیم سپس در باره این صحبت می کنیم که vovnet2  چگونه دقت و سرعت center mask  را افزایش می دهدبدون anchor box  ,  FCOS  به صورت مستقیم یک بردار 4 بعدی را بعلاوه لیبلل کلاس ها را در هر لوکیشن فضایی برای هر feature map  پیش بینی می کند. FCOS  یک مرکزیت تعریف می کند که برای پیش بینی انحراف یک پیکسل نسبت به مرکز anchor box  می باشد که این کار باعث می شود عمبکرد تشخیص بهبود یابد هم چنين FCOS  محاسبات و حافظه را کاهش می دهد و به خاطر عملکر مناسب ,  center mask  را بر روی FCOS  پیاده می کنندSpatial attention Guided Mask :اخیرا متود های attention  برای مسائل object detection  اعمال شده است زیرا به تمرکز به ویژگی های مهم تمرکز می کنددر واقع channel attention  تاکید می کند بر &quot;چه چیز &quot; تمزکز کردنو در حالیکه spatial attention  تاکید می کند بر &quot;کجا&quot; تمرکز کردنVovnetv2 backbone:لازم به ذكر است Vovnetv2  یک شبکه بهبود یافته از vovnet  است که residual connection  هایی و همینطور squeeze and excitation  هایی به vovnet  اضافه کرده است. Vovnetv2  از نظر هزینه ای و محاسبات بسیار کارآمد است و این به دلیل استفاده از one shot aggregation modules (OSA) استو OSA  یک جایگزین برای شبکه های dense block  می باشد که فیچر های میانی را تجمیع می کند ,  هر لایه کانولوشنی به 2 مسیر کانولوشنی لینک داده شده است یک لینک به سمت لایه جلوتر و دیگری ورودی ای است که در واقع خروجی نهایی لایه قبل استتفاوت OSA  با Dense Net  در این است که خروجی هر لایه کانولوشنی در Dense Net  به همه لایه های جلوتر داده می شود اما در OSA  تعداد ورودی و خروجی هر لایه کانولوشنی یک عدد ثابت است و برابر 2 استCenter mask lite :برای رسیدن به پروسه real time  تلاش بر این هست که center mask  پیشنهادی را light weight  کنیم برای این کار سایز 3 پارت را کاهش می دهیمbackbone box headmask headدر قسمت backbone  ایتدا کانال های FPN  را از 256 به 128 تا می رسانیمهم چنین تعداد لایه های کانولوشنی را از 4 به 2 می رسانیمدر قسمت Box  به جای VoVNetv2-39/57که شامل 5  OSA  می باشد از VoVNetV2-19 که شامل 4 OSA  هست استفاده می کنیممعماری های self attention based  به خصوص transformer  ها به یک مدل انتخابی در پردازش زبان طبیعی تبدیل شده اند . رویکرد غالب به صورت pre train  کردن بر روی یک مجموعه متن بزرگ و بعد fine tune  کردن بر یک مجموعه داده کوچکتر استباتوجه به کارایی محاسباتی و مقیاس پذیری ترنسفورمر ها امکان آموزش مدل هایی از اندازه بی سابقه با بیش از 100Bپارامتر با مدل ها و مجموعه داده های در حال رشد وجود دارد و هنوز هیچ نشانه ای از عملکرد اشباع نیستبا الهام گرفتن از توانایی موفقیت امیز transformer  ها در زمینه NLP  ما با استفاده از یک استاندارد ترنسفرمر ها را بر روی تصاویر اعمال می کنیم و با کمترین تغییرات ممکن برای این کار ابتدا تصاویر را به patch  هایی تقسیم می کنیم. Patch  های تصاویر همانند توکن های یک کلمه در NLP  عمل می کنند و ما مدل را بر یک image classification  در مسئله supervised  آموزش می دهیماگرچه train  شدن روی یک دیتاست بزرگ می تواند باعث شود تصویر دچار تغییر شود  ,  اما نتایج نشان می دهد آموزش در مقیاس بزرگ بر سوگیری استقرایی (inductive bias  ) برتری داردوقتی pre trained  روی دیتاست imageNet-21k  یا in-house JFT-300M   صورت گیرد انگاه vision transformer (ViT) با بهترین شکل ,  image recognition  را انجام می دهدبیشترین کار مرتبط مربوط به مدل cordonnier  هست که patch  هایی با سایز 2*2   را از عکس ورودی استخراج می کند و  full self attention  را در بالا اعمال می کنداین مدل به دلیل استفاده از patch  هایی با سایز 2*2   باعث می شود مدل فقط برای تصویر با وضوح کم قابل اجرا باشد در حالی که ما تصاویر با وضوح متوسط را نیز مدیریت می کنیمیکی دیگر از مدل های مرتبط image GPT  (iGPT)  است که بعد از کاهش رزولوشن تصویر و فضای رنگ ,  transformer  ها را بر پیکسل های تصویر اعمال می کندمدل به صورت بدون نظارت یا unsupervoised  به عنوان مدل مولد میتواندآموزش داده شود و نتیجه حاصل برای کلاس بندی که به دقت ماکزیمم 72 درصدی روی fine tune  , Image Net ,    شده حاصل مي گردد Vision transformer (ViT)ترنسفرمر استاندارد ورودی را به صورت یک بعدی دریافت می کند برای هندل کردن تصاویر 2 بعدی تصاویر را به صورت زیر reshape  می کنیمترنسفرمر ها از یک latent vector  با اندازه ثابت D  برای تمام لایه ها استفاده می کنندبنابراین ما پچ ها را FLAT  می کنیم و به D  بعد  MAP  می کنیمبرای حفظ اطلاعات positional  ,  position embedding  ها به patch embedding  اضافه می شودنتیجه دنباله ای از بردار های embedding  است که به عنوان ورودی به encoder  داده می شودانکودر ترنسفرمر شامل لایه های متناوب  multi head self attention و بلاک های MLP  استقبل از هر بلاک layer norm  و بعد از هر بلاک residual connection  اعمال می شودبه طور معمول ما vit  را روی دیتاست بزرگ pre train  می کنیم و روی مجموعه دیتاست کوچک fine tune  می کنیم به همین منظور ماprediction head  از قبل آموزش داده شده را حذف می کنیم و یک لایه feed forward ,  D*K  را با مقدار اولیه صفر attach  می کنیم که K  تعداد کلاس های downstream  استاغلب سودمند تر است که fine tune  را در رزولوشن بیشتری نسبت به pre train  انجام دهیمهنگام بالا بردن وضوح تصاویر اندازه patch  را یکسان نگه می داریم که منجر به طول دنباله موثربزرگتری می شود . ViT  می تواند طول توالی دلخواه را مدیریت کند .سپس درون یابی 2 بعدی موقعیت embedding  از پیش آموزش داده شده را بر اساس مکان ان در تصویر اصلی انجام می دهیمInductive bias :لازم به ذکر است Vision transformer  ها دارای بایاس کمتری نسبت به CNN  ها هستند .  در CNN  ها لوکالیتی ,  ساختار همسایگی دو بعدی در هر لایه در کل مدل اعمال می گردددر ViT  تنها لایه MLP  به صورت لوکال هستند. در حالیکه لایه های Self attention  به صورت گلوبال هستند و ساختار همسایگی 2 بعدی خیلی کم استفاده می شودیکی در ابتدای مدل با کات کردن تصویر به مجموعه patch  ها  و یکی در زمان fine tune  برای تنظیم posittion embedding  برای تصویر با رزولوشن متفاوتComparison to state of arts :همانطور که از جدول بالا پیداست ,  بزرگترین مدل های vit  ,  vit-L/16  و vit-L/14  را با بهترین مدل های CNN  مقایسه می کنیماولیم مقایسه با big transformer (BiT) است که یادگیری یا نظارت را توسط large ResNet  انجام می دهد دومین مورد مقایسه Noisy Student  است که یک large efficient Net  است که با استفاده از یادگیری نیمه نظارت شده در image net  اموزش دیده استو هم چنین jft-300M  با لیبل های ریموو شده.تمامی مدل ها با TpuV3  اموزش دیده اند . در جدول 2 می بینیم که Vit-L16  که pre train  شده برJFT-300M  از BiT-L  بهتر عمل می کند در حالی که از لحاظ محاسباتی به تعداد منابع کمتری هم نیاز دارد .Vit-L/14  عملکرد را به ویژه در مجموعه داده های چالش برانگیز از جمله imageNet ,  cifar-100و VTAB  بهبود می بخشدمدل های ترنسفرمری که بر دیتاست JFT-300M  ,  pre trained  شده اند ,  در همه دیتاست ها بهتر از ResNet عمل کرده اند در حلیکه تعداد منبع محاسباتی کمتری نیز نیاز داشته اندPre training data requirement:مدل های vision transformr زمانی که روی دیتاست JFT-300M  ,  pre train  شوند عملکرد خوبی دارند و نسبت به ResNet  ,  inductive bias  کمی دارندما 2 دسته آزمایش انجام می دهیم از کوچک به بزرگ ابتدا ViT  را روی دیتا ست های image Net  و image Net 21k  و JFT-300M  ,  pre train  می کنیمبرای هبود عملکرد بر دیتاست های کوچک از 3 روش regulariztion  استفاده می کنیم1. Weight decacy2. Drop out3. Label smoothingزمانی که روی دیتاست کوچکی مانند image Net  فرایند pre train  را انجام می دهیم می بینیم که vit-Large  عملکرد بدتری نسبت به vit-Base  داردبا imageNet-21kعملکرد هر دو تقریبا یکی است و روی JFT-300M  مزیت مدل بزرگتر را به وضوح می بینیمدر دیتاست های کوچک مدل های ViT  عملکرد بدتری نسبت به ResNet  دارندعملکرد مدل های vit  مختلف و bit  با دیتاست با سایز های از کوچک به بزرگ همانطور که ذکر شد دانستیم که ViT  ها برای داده های train  با حجم بالا خیلی بهتر از CNN  ها عمل می کنندبه عبارتی ViT  در upper bound  ها به خوبی عمل می کنند در حالی که CNN  ها در Lower Bound  ها عملکرد مناسب تری دارندکران بالا پیتانسیل دستیابی به عملکرد بالاتر است و کران پایین شبکه ها را قادر می سازد که هنگام اموزش با داده های محدود بهتر عمل کننداختلاف بین ViT  و CNN  ها می تواند توسط 2 ,  training setting  مختلف در imageNet  آشکار گرداولین,  تنظیم استاندارد است که مخصوص شبکه های CNN  است که زمان training  کمتر است و data augmentation  شامل موارد ابتدایی مثل size cropping  و flipping  استکه base performance  نام دارددیگری تنظیماتی است که مختص مدل های transfomer based  است که training schedule  طولانی تری دارد و دارای data augmentation  قوی تری است .ما از واژه elite performance  برای اشاره به دقت این مدل اشاره می کنیم و از DieiT-S  و ResNet-50  به عنوان مثال هایی برای transformer-base  و CNN-based استفاده می کنیم. DeiT-S  دارای elite performance  بالاتری است اما ResNet  برای base setting  بسیار بهتر عمل می کندمتودی که استاده می کنیم انتقال تدریجی از یک مدل به مدل دیگر است تا بتوانیم ویژگی های ماژول و طرح ها را در این دو شبکه شناسایی کنیمهمانطور که ذکر شد Deit-s  معرف ترنسفرمر مدل است و ResNet-50  معرف مدل های کانوولوشنی است اگر چه Deit_s  دقت 80 درصدی گزارش کرده است و ResNet  دقت 78 درصدی ,اما تغیراتی اساسی در Deit-S  نسبت به حالت  training  استاندار صورت گرفته است مثلا تعداد ایپاک ها در DeiT-S  حدودا 3 برابر شده است و data augmentation  قوی تری اعمال شده استدو تنظیمات برای بهینه سازی recognition model  وجود دارد:اولین Base setting  است که توسط convolutional based model  ها پذیرفته شده استمدل در 90 ایپاک آموزش می بیند ,  optimizer  از نوع SGD  است ,  learning rate  از حدود 0.2برای بچ سایز 512 شروع می شود و به تدریج کاهش می یابد تا به 0.0001  برسد.از تابع cosine  خطی اسفاده می شود و هم چنین یک data augmentation  متوسط از جمله random size cropping  و flipping  اعمال می شوددومین راه elite setting است که برای بهبود مدل های transformer  مناسب است. Optimizer  آن از نوع adam  است ,  learning rate  از 0.005   با بچ سایز 512 و Data augmentation  قوی ای نسبتا انجام می گیرد از جمله :  Random Erasing  و Repeated augmentation  و stochastic depth که تعداد ایپاک 300 تاستThe transition from DeiT-S to ResNet-50در ادامه به راه هایی انتقال از شبکه Deit-S  به ResNet  می پردازیم برای جلوگیری از خارج شدن گزارش از حد مجاز به صورت تیتر وار این مراحل انتقال تدریجی را شرح می دهیم1.  استفاده از batch Norm  به جای layer Normمدل های ترنسفرمر فیچر ها را به صورت layer norm  نرمال می کنند اما CNN-based  ها مانند ResNetاز Batch Norm  استفاده می کنند .  layer norm  مستقل از سایز بچ هست و برای وظایف خاص مناسب تر استدر حالی که batch norm  می تواند با batch size  مناسب به عملکرد بهتری برسد2. جایگزین کردن self attention  ها با feed forwardبلاک های self attention  را حذف کرده و با feed forward  جایگزین می کنیم که در این شرایط شبکه convolution  خالص می شود3. حذف کردن possition embedding4. استفاده از global average pooling  به جای کلاس بندی توکن ها5. استفاده از کانولوشن های 3*36. حذف کردن پچ های embedding  بزرگ و جایگزین کردن embedding  های گام به گام7. طراحی مدل به شیوه گام به گام (Step-wise design)نتایج حاصل از اعمال تغییرات ذکر شده در دو مدل elite performance  و base performance  در جدول زیر مشاهده می شود :</description>
                <category>Melika Sadeghi</category>
                <author>Melika Sadeghi</author>
                <pubDate>Wed, 01 Jun 2022 18:46:27 +0430</pubDate>
            </item>
                    <item>
                <title>Layer-Wise Contrastive Unsupervised Representation Learning</title>
                <link>https://virgool.io/@m_69871726/layer-wise-contrastive-unsupervised-representation-learning-pevbbtkcjbkt</link>
                <description>مدل های ماشین لرنینگی حال حاضر ,  عموما به حجم زیادی دیتای برچسب دار (لیبل خورده ) نیاز دارند اما برچسب گذاری داده ها کاری هزینه بر می باشددر این مقاله به شیوه یادگیری بدون نظارت (unsupervised  ) پرداخته می شود که contrastive unsupervised representation learning  نام داردو از شیوه layer wise  استفاده می کنیم بدین صورت که feature representation  های تصاویر مشابه به گونه ای ترین شوند که patch  های نزدیک در داخل یک تصویر یکسان ,  نزدیک تر از patch  های رندوم باشنداین مقاله فرض می کند که این روش layer wise  از روش یادگیری کلی (end to end )  سریع تر است به ویژه اگر فقط تعداد کمی از لایه ها را ترنسفرکنیمبرخی نتایج نشان می دهند که در معماری شبکه multi layer  لایه های اندک ابتدایی فیچر های عمومی تری را یاد می گیرند که نسبت به بقیه transformable  تر هستندهمینطور نشان داده شده که فیلتر های لایه اول می توانند به خوبی یادگیری کلی (end to end )  عمل کنند اما با سرعت ترین بالاترهدف از contrastive learning  این است که شبکه مشابهات و تفاوت های بین تصاویر را بدون در نظر گرفتن لیبل ان ها یاد بگیرد و فاصله بین تصاویر مشابه را کمینه کند و فاصله بین تصاویر متفائت را بشینه نمایدلازم به ذكر است كه Contrastive learning  با دیتای ویژوال از طریق مقایسه پچ ها صورت می گیرد ,  در کار های مربوط به ویدئو بدین صورت است که اولین و آخرین فریم یک جفت مثبت (positive pair)در نظر گرفته می شوندو می توان ان ها را با یک patch  تصادفی مقایسه کردپچ ها از طریق یک Siamese triplet network  شامل هر دو لایه های convolutional  و fully connected  منتقل می شوند و loss    بر اساس cosine distance  فیچر های نهایی محاسبه می شودبا اعمال یک سری تبدیل در پچ مثل چرخش ,  تغییر رنگ ,  کراپ کردن ,  تغییر سایز پچ های دچار اختلال شده را مشابه در نظر گرفته که این ها تشکیل یک کلاس می دهند که می توان الگوریتم های طبقه بندی را برای ان ها اعمال کردImplementation Detailsروش پیاده سازی بدین صوت است که پچ های مجاور یک تصویر انتخاب می شوند و پچ ها به فیلتر های کانولوشنال داده می شوند . سپس از یک فیلتر max pooling  استفاده کرده . در نهایت خروجی را به یک triplet loss  می دهنددر این مقاله متوجه شده اند که پچ های کوچک 7×7   ,با فیلتر 6×6 , مکس پولینگ 2×2 برای لایه اول بهتر از پچ های بزرگ (مثلا 10×10)  عمل می کنندهمچنین استفاده از maxpooling  برای لایه اول به این دلیل که ویژگی های کلی مانند لبه ها را تشخیص می دهد,  ضروری می باشداین روش بر دیتای cifar100  آموزش داده شده و فیلتر های لایه اول مانند روش supervised آموزش داده شده اند و فیلتر های لایه های اولیه مانند روش supervised  آموزش داده شده اندسپس شبکه به صورت transfer learning  بر روی cifar 10  آزموده می شودابتدا وزن های قسمت ترنسفر شده فریز است سپس وزن ها روی , cifa10  فاین تیون شدهنتیجه قابل مشاهده این است که وزن های فاین تیون شده به نسبت شبکه آموزش داده شده از صفر عملکرد بهتری دارد . در حالت فریز مقایسه با شبکه ای صورت گرفت که به صورت supervised  روی cifar100  آموزش دیده بود و نتیجه این بود که شبکه supervised  عملکرد بهتری نسبت به unsupervised  داشت و این به خاطر این هست که فیچر های مفید برای cifar100   همان فیچر های مفید برای cifar10  هستندشکل1 : فیلتر های supervised شکل 2 : فیلتر های unsupervised                  شکل3 :       مقایسه fine tune  شبکه روی cifa10   در حالات unsupervised , supervised , random initialize   </description>
                <category>Melika Sadeghi</category>
                <author>Melika Sadeghi</author>
                <pubDate>Wed, 01 Jun 2022 17:36:25 +0430</pubDate>
            </item>
                    <item>
                <title>Improved Deep Metric Learning with Multi-class N-pair Loss Objective</title>
                <link>https://virgool.io/@m_69871726/improved-deep-metric-learning-with-multi-class-n-pair-loss-objective-jhivnzjumseq</link>
                <description>دیپ متریک لرنینگ در سال های اخیر شهرت و محبوبیت زیادی پیدا کرده استاگرچه فریم های موجود دیپ لرنینگ بر اساس contrastive loss  و triplet loss   معمولا مشکل کند بودن سرعت convergence  دارند ,  زیرا آن ها یک example  منفی را به کار می گیرند و در حالی که در هر آپدیت بقیه example  های منفی را نادیده می گیرنددر این مقاله قصد داریم که این مشکل را با یک روش دیپ متریک لرنینگ جدید به نام multi class N pair loss  برطرف کنیماز یک example  منفی استفاده نکنیم و از N-1  مثال منفی استفاده کنیمبرای رسیدگی به این مشکل ما از (N+1 tuplet loss)  استفاده می کنیم که مثال مثبت را از N-1  مثال منفی شناسایی کند در زمانی که N=2  است این برابر همان triplet loss  هستیک نگرانی در باره (N+1 tuplet loss)  این است که با افزایش تعداد مثال محاسبه آن از مرتبه A = N^2 می شودبرای غلبه بر این موضوع یک روش بهینه batch construction  معرفی می کنیم که برای ساختن N tuplet  با اندازه N+1 , به جای N(N+1) مثال از 2N  مثال استفاده کندPreliminary: Distance Metric Learningلازم به ذکر است , Contrastive loss  یک جفت مثال را به عنوان ورودی می گیرد و تخمین می زند که این دو مثال متعلق به یک کلاس هستند یا نه و در واقع فرمول loss  به شکل زیر است :در واقع اگر دو مثال متعلق به یک کلاس باشند  قسمت دوم رابطه جمع صفر شده و در قسمت اول کافی است فاصله بین fi  و fj  به کمترین مقدار ممکن برسد و اگر دو مثال از دو کلاس مختلف باشند ,  قسمت اول رابطه جمع صفر شده و در قسمت دوم کافی است که فاصله بین fi    و fj  از مارجین که برابر m  هست بیشتر باشداز طرفی در triplet loss  , تنها اختلاف مثال مثبت و منفی با کوئری در نظرفته میشود که لازم است این تفاوت از یک مارجین  m  ای بزرگ تر باشدبا وجود استفاده گسترده از دو روش اما هر دوی triplet loss   و contrastive loss  مشکل کند بودن سرعت converge  شدن دارندDeep Metric Learning with Multiple Negative Examplesفلسفه اساسی پشت triple loss  این هست که برای  ورودی یا کوئری می خواهیم فاصله بردار های embedding  مثال های مثبت با query  را کم کنیم و فاصله بردار های embedding  مثال های منفی را از کوئری زیاد کنیملازم به ذکر است triplet loss  در حین یک آپدیت فقط ورودی را با یک مثال منفی مقایسه می کند و سایر مثال های منفی از کلاس های دیگر را نادیده می گیرداگر چه hard negative data mining  با خروجی کلاس های زیاد ,  از نظر محاسباتی هزینه زیادی دارد ما به دنبال یک جایگزین هستیم ,  یک loss function  که در هر آپدیت گروهی از مثال های منفی را به کار می گیرد و نیاز هست که تمام مثال های منفی در یک زمان قابل شناسایی باشد ,ما متود پشنهادی را به صورت زیر فرمول بندی می کنیم :که در واقع (N+1 tuplet)  داریم که {x,x+,x1,x2,….Xn-1} که x  و  x+  به ترتیب anchor  و positive  هستند و x1  و x+  به ترتیب anchor  و positive  هستند و x1  و.... Xn-1  مثال های منفی می باشند . اگر تعداد مثال های منفی هر کلاس را به یک عدد مثال محدود کنیم باز هم از نظر optimization  سنگین استفرمول loss  بالا با N= 2  همانند triplet loss  عمل می کند و هر دوی loss function  ها معادل یکدیگرنداما در مورد N&gt; 2  در باره مزیتtuplet loss  (n+1) بر triplet loss  بحث خواهیم کردN-pair loss for efficient deep metric learningفرض کنید که ما (N+1 tuplet loss)  را برای دیپ متریک لرنینگ به کار گرفته ایم زمانی که بچ سایز SGD برابر M   می باشد ,  تعداد M * (N+1 ) مثال هست که در هر آپدیت باید پس داده شوداز انجا که تعداد مثال ها در هر بچ به صورت نمایی از مرتبه MN  افزایش می یابد از نظر محاسباتی غیر ممکن می شودN pair loss for efficient deep metric learning:فرض کنید ما Tuplet loss  (N+1) را بر فریم ورک های دیپ متریک لرنینگ اعمال کردیم ,  زمانی که اندازه بچ سایز SGD ,  برابر M باشد ,  تعداد M*(N+1)  مثال وجود دارد که در یک اپدیت باید به تابع f  داده شود از آنجا که تعداد مثال ها برای ارزیابی در هر بچ به صورت نمایی  از M  و N  می باشد محاسبات برای شبکه دیپ غیر عملی خواهد شدحال یک روش کارامد را برای جلوگیری از سربار محاسبات معرفی می کنیم. فرض کنید,.{(XN,XN+),...(X1,X1+)} N  جفت از N  کلاس مختلف هستند به طوریکه yi≠yj  به ازای هرعضو i≠j, ما N  تا tuplet  می سازیم به صورت  {Si}از N  جفت به طوریکه si={xi,x1+,x2+,…Xn+} کهXiکوئری برای si  هست ,  xi+  مثال مثبت برای کوئری و xj+  به طوریکه j≠i مثال های منفی هستندباتوجه به عكس فوق مشاهده مي شود كه N-pair batch construction   در قسمت c  از 2N  ,  بردار embedding  برای ساخت N  تا (N+1 tuplet loss  ) مجزا استفاده می کند و Triplet loss  از 3N  انتقال برای محاسبه وکتور های embedding  استفاده می کندو N+1 Tuplet loss  به N*(N+1 ) انتقال نیاز داردو روش پیشنهادی ذکر شده به 2N  انتقال نیاز داردهمچنین محاسبه LOSS  روش پیشنهادی به صورت زیر استHard negative class miningمحاسبه وکتورهای embedding  برای مثال های متعدد برای تعداد کلاس های بالا از نظر محاسباتیپیچیده است از طرفی (N pair loss)  به صورت تئوری به N  کلاس که دو به دو با یکدیگر منفی هستد نیاز دارد. برای غلبه بر این مشکل مفهوم negative class mining  را معرفی می کنیم که مخالف negative instance mining  استبه طور کلی negative class mining for N pair loss  به صورت زیر محاسبه می شود :به صورت رندوم تعداد c  کلاس را انتخاب می کنیم برای هر کلاس تعداد یک یا دو مثال از آن را برای استخراج وکتور embedding  انتخاب می کنیم . سپس از مرحله اول از بین c کلاس یک کلاس را به صورت رندوم انتخاب می کنیمسپس یک کلاس دیگر را اضافه می کینم که بیشترین تخلف را نسبت به triplet loss  دارد یعنی در فضای embed  از بقیه کلاس ها نزدیک تر به کلاس انتخاب شده در مرحله قبل است اگر دو تا کلاس بود که فاصله آن ها یکی بود به صورت رندوم یکی از آن دو را انتخاب می کندسپس از بین دو کلاس انتخاب شده در مراحل قبل (2 example)  از هر کدام بیرون می کشیمFine-grained visual object recognition and verificationدو دیتاست ماشین و گل را به صورت زیر در نظر می گیریم :ديتاست Car 333  از 164863  عکس تشکیل شده است که  شامل 33 کتگوری مختلف ماشین است و این دیتاست شامل 157023 عکس برای داده اموزش و 7840 عکس برای داده تست استديتاست Flower 610  از 61771 عکس گل تشکیل شده است که 58721شامل 610 کتگوری مختلف گل است و این دیتاست شامل 58721 عکس برای داده آموزش و 3050 عکس برای داده تست استما شبکه را برای 40000 بار آموزش تکرار کرده که در هر بچ 144 مثال وجود دارد که به عبارتی 72  جفت در هر بچ برای N_ pair losses  استما 5 old cross validation  را روی داده train  اعمال می کنیم و میانگین عملکرد را روی داده تست گزارش می کنیمبرای هر دو دیتاست ماشین و گل در هر دو بخش recognition  و verification  بهبود قابل ملاحظه ای از 72 pair loss  نسبت به triplet loss  مشاهده می شودهم چنین اگر چه اعمال negative data mininig  بر triplet  بهبود قابل توجهی به ان بخشیده اما همچنان با 72 pair loss  قابل رقابت نیستدر مقایسه با softmax  ,  در قسمت verification  ,  softmax  علکرد ضعیف تری نسبت به 72 pair mc  داشته است اما در در بخش recognition  با 72 pair mc  رقابت نزدیکی داشتهDistance metric learning for unseen object recognitionلازم به ذكر است Dictance metric learning  را میتوان به عنوان متریکی برای یادگیری و تعمیم دهی مدل برای داده های دیده نشده استفاده کرد . سه دیتاست زیر را در نظر می گیریم :که شامل 120053 عکس از 22634 کتگوری مختلف است که 59551 کتگوری اول را به داده آموزش اختصاص داده و ما بقی را به داده تستکه شامل 16185  عکس از 196 مدل کتگوری مختلف است که 98 کتگری اول را به داده آموزش  اختصاص داده و مابقی کتگوری ها را به داده تستکه شامل 11788  عکس از 200 گونه پرنده است که 100 کتگوری اول برای اموزش   و مابقی برای تست استبرخلاف سکشن قبلی کتگوری های آموزش و تست جداهستند که این حل مسئله را پرچالش تر می کند و و می تواند دچار overfitting  روی داده آموزش شود و همچنین قدرت تعمیم دهی برای برای موارد دیده نشده سخت تر باشدما شبکه را برای 20000 بار آموزش تکرار کرده که در هر بچ 120 مثال وجود دارد که به عبارتی 60 جفت در هر بچ برای N_ pair lossesدر این قسمت هم همانند سکشن قبلی روند یکسانی را ملاحظه می کنیم و Triplet loss  بدترین عملکرد را در میان تمام loss function  ها داشته استو Negative data mining  عملکرد triplet loss  را با فرار کردن از نقاط بهینه محلی بهبود بخشیدهاما مدل N pair loss  بدون نیاز به هزینه محاسبات بیشتر برای انجام negative data miming  عملکرد بهتری نسبت به triplet-nm  داشتهحال با اعمال negative data mining  بر روی N pair loss  حتی میتوان به دقت و عملکرد مناسب تری رسیدFace verification and identificationدر نهایت ما متریک لرنینگ را برای تشخیص چهره به کار می بریم ,  مسئله پیدا کردن چهره ای که به چهره مد نظر ما بیشترین شباهت را دارد (متعلق به یک نفر هستند) از میان تعداد زیادی مثال منفی در گالری چهره ها.بدین منظور شبکه را بر دیتاست webface  اموزش می دهیم که شامل 494414 تا عکس هست از 10575 شخص مختلف و می خواهیم که کیفیت embedding  شبکه را با متریک لرنینگ های مختلف ارزیابی کنیمهمه شبکه ها برای 240000 بار تکرار مختلف اموزش داده می شوند در حالیکه نرخ یادگیری از 0.0003 به 0.0001 و  0.00003  کاهش می یابدنتیجه این است که مدل triplet loss  حدود 95 درصد دقت برای تسک verification  داشته است اما برای identification  دقت این مدل کاهش یافته البته اگرچه negative data mining  باعث بهبود دقت می شود اما میزان آن محدود بودهدر مقایسه با triplet loss  , N pair mc loss  دقت قابل ملاحظه ای داشته و افزون بر این با قرار دادن مقدار N = 320  به مقدار 98 درصد دقت برای تسک verification  شده استشایان ذکر است که N-pair-ovo(N pair one-vs-one  ) نسبت به triplet loss  اولیه عملکرد بهتری داشته اما نسبت به multi class N pair loss (N_pair loss mc ) عملکرد ضعیف تری داشته استالبته راه های دیگری برای افزایش دقت تسک face verification  وجود دارد به عنوان مثال استفاده از triplet network  که با میلیون ها مثال tarin  شده دقت تست را به 99.63 درصد ارتقا می دهدیا مثلا  استفاده از شبکه های دیپپ نتورکی که از تلفیق هر دوی triplet loss  و softmax loss  استفاده می کندAnalysis on tuplet construction methodsدر جدول بالا(M×N) بدین معناست که از M  کلاس مختلف در هر بچ استفاده شده و N  بیانگر تعداد مثال های مثبت هر کلاس استبا ثابت نگه داشتن تعداد مثال های هر بچ اگر به جای N  کلاس مختلف از N/2  کلاس مختلف استفاده کنیم در نتیجه باید به جای 2 مثال مثبت در هر کلاس از 4 مثال مثبت استفاده کنیم اما از انجا که N pair loss برای مثال های متعدد مثبت هندل نشده ,  مشاهده می کنیم که با کاهش تعداد کلاس ها درجه خاصی از افت عملکرد به وجود می آیدبا این وجود,  همه این نتایج از نتایج triplet loss  بهتر استاین نتایج تایید کننده آموزش با چندین کلاس منفی است و پیشنهاد می شود که تا جایی که ممکن است از تعداد کلاس های منفی بیشتری استفاده کنید</description>
                <category>Melika Sadeghi</category>
                <author>Melika Sadeghi</author>
                <pubDate>Wed, 01 Jun 2022 17:06:41 +0430</pubDate>
            </item>
            </channel>
</rss>