<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Abbas Nosrat</title>
        <link>https://virgool.io/feed/@abbasnosrat</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-10 12:52:40</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1676063/avatar/avatar.png?height=120&amp;width=120</url>
            <title>Abbas Nosrat</title>
            <link>https://virgool.io/@abbasnosrat</link>
        </image>

                    <item>
                <title>Layer-Wise Contrastive Unsupervised Representation Learning</title>
                <link>https://virgool.io/@abbasnosrat/layer-wise-contrastive-unsupervised-representation-learning-slpu0q74spyg</link>
                <description>آموزش شبکه های عصبی و مدل های یادگیری عمیق عموما به صورت Supervised انجام می شود. بدین صورت که یک ورودی و یک برچسب متناظر با آن ورودی وجود دارد و مدل یاد می گیرد تا به ویژگی هایی دست یابد که با دریافت تصویر ورودی، به برچسب خروجی دست یابد. اما برچسب گذاری بر داده، کار هزینه بری است و در بسیاری از موارد، ممکن نیست. این مشکل، سبب روی آوردن به روش های Unsupervised، Semi-supervised و self-supervised در سال های اخیر شده است. یکی از پر طرفدارترین روش های یادگیری نوین، Contrastive learning است. در این روش از توابع هزینه ای چون Triplet loss، Contrastive loss یا center loss استفاده می شود. با استفاده از این توابع، تلاش می شود تا شبکه تشابهات و تفاوت های موجود بین تصاویر را، فارق از برچسب آنها، یاد بگیرد و به درک کلی تری از داده برسد. با بهینه سازی این توابع، فاصله بین تصاویر مشابه کمینه، و فاصله بین تصاویر متفاوت، بیشینه می شود. در مقالات Contrastive Unsupervised Representation Learning، ابتدا هر تصویر ورودی را از چند اختلال متفاوت مانند کراپ کردن، چرخش یا اختلال در رنگ عبور می دهند. سپس تصاویر مختل شده را مشابه و سایر تصاویر را متفاوت برچسب می زنند و به شبکه می دهند تا روی آن ها آموزش ببیند. نشان داده شده است که ویژگی های بدست آمده از این روش یادگیری، می تواند بهتر از ویژگی های حاصل از مدل های از قبل آموزش دیده شده روی داده های دیگر همچون ImageNet باشد. این روش یادگیری، موجب می شود که مدل بتواند اجسام را حتی با دیدی ناقص و مختل، تشخیص دهد چرا که مدل به درکی بالا و کلی از داده رسیده است. این مقاله، تلاش کرده تا یادگیری کانترستیو را به صورت لایه لایه انجام دهد و ادعا می کند که آموزش لایه لایه، سریعتر از یادگیری کلی(end to end) است.روش یادگیری در این مقاله بدین صورت است که ابتدا پچ های کوچک متوالی از یک تصویر را بر می دارند و به فیلتر کانولوشنال می دهند. پس از این فیلتر از یک max pool استفاده کرده و سپس، خروجی را به یک Triplet loss می دهند.( پچ های گرفته شده از تصویر می توانند با هم هم پوشانی داشته باشند) این روش مانند این است که یک تصویر بزرگ به یک لایه کانولوشنال داده شده و آن لایه با یک طول گامی در طی تصویر حرکت کرده و در تصویر کانوالو می شود. استفاده از لایه max pool بدلیل مقاومت به ویژگی های جزیی تصویر برای لایه های اولیه که ویژگی های کلی مانند لبه ها را تشخیص می دهند الزامی است. به بیانی دیگر استفاده از لایه مکس پول، به domain agnosticism شبکه کمک می کند.نویسندگان مقاله، روش خود را بر داده CIFAR100 آموزش دادند و مشاهده می شود که فیلتر لایه های اولیه مانند روش supervised آموزش دیده شده است. پس از آموزش، شبکه را به صورت transfer learning بر داده CIFAR10 آزموده اند. این ازمایش به دو صورت انجام شده. ابتدا وزن های قسمت transfer شده منجمد است. در مرحله بعد، وزن ها روی داده CIFAR10 fine tune می شوند. مشاهده می شود که وزن های فاین تیون شده از شبکه آموزش داده شده از صفر بهتر عمل می کنند. در حالت منجمد، مقایسه با شبکه ای صورت گرفت که به صورت supervised روی CIFAR100 آموزش داده شده است، صورت گرفت. مشاهده می شود که شبکه supervised عملکرد بهتری نسبت به شبکه unsupervised دارد. دلیل این عملکرد بهتر آن است که CIFAR 10و 100، ویژگی های مشترک بسیاری دارند.</description>
                <category>Abbas Nosrat</category>
                <author>Abbas Nosrat</author>
                <pubDate>Sun, 12 Jun 2022 17:53:42 +0430</pubDate>
            </item>
                    <item>
                <title>FaceNet</title>
                <link>https://virgool.io/@abbasnosrat/facenet-nooc812mwfzg</link>
                <description>مدل 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 و سال های بعد، جایگاه بالایی دارد اما بایاس دیتاست این مدل نسبت به اشخاص سفید پوست ضعف این مدل است.</description>
                <category>Abbas Nosrat</category>
                <author>Abbas Nosrat</author>
                <pubDate>Sun, 12 Jun 2022 17:52:24 +0430</pubDate>
            </item>
                    <item>
                <title>تشخیص اشیا با YOLO</title>
                <link>https://virgool.io/@abbasnosrat/%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%D8%A7%D8%B4%DB%8C%D8%A7-%D8%A8%D8%A7-yolo-erkl7ni7jle5</link>
                <description>مقدمهدر این مطالعه، سه توصعه الگریتم YOLO، به نام های YOLOV3، YOLOV4 و YOLOX بررسی شده و نکات و ویژگی های آنها ذکر می شود. الگریتم  YOLO یک الگریتم object detection است که با هدف افزایش سرعت و دقت در مقایسه با مدل های R-CNN ارائه شده. یکی از مهمترین ویژگی های این معماری، یکپارچه کردن الگریتم دو مرحله ای R-CNN و استفاده از رگرسیون، به جای کلاس بندی، در تعیین محل باکس هاست. در R-CNNها، ابتدا با یک الگریتم سرچ هوشمند، Region Proposalهایی ارائه می شد که هر کدام از این Proposalها، به یک شبکه کلاس بندی جهت تعیین کلاس، داده می شد. در YOLO، کل این دو مرحله توسط یک شبکه انجام می شود. در YOLO تصویر گرید بندی شده و برای هر گرید، C+5B اطلاعات موجود است. در اینجا،  C تعداد کلاس هاست و B تعداد باکس هایی است که  YOLO برای هر گرید تولید می کند. عدد 5، برای اطلاعات مربوط به هر باکس است. این اطلاعات متشکل از طول مرکز باکس، عرض مرکز، طول خود باکس و عرض آن است. معماری YOLO متشکل از دو بخش Backboneو Head است. Backbone لایه های کانولوشنالیست که وظیفه استخراج ویژگی را از تصویر دارند. در YOLOV1، این قسمت معماری DarkNet است که از قبل، روی دیتاست ImageNet آموزش داده شده است. Head قسمتیست که وظیفه استخراج گرید نهایی و اطلاعات آن را دارد. در  YOLO اصلی، این قسمت را چند لایه خطی تشکیل داده اند که خروجی آنها، در نهایت، تغییر شکل می گیرد و به یک گرید  SدرS در C+5B در می آید. در بخش های آتی، ابتدا به  YOLOV3، سپس V4 و YOLOX پرداخته خواهد شد.YOLOV3معماری YOLO به دلیل سرعتش با موفقیت بسیار زیادی رو به رو شد اما با بزرگ کردن Backbone به منظور افزایش دقت، از سرعت آن کاسته شد. همچنین معماری RCNN نیز با توسعه ای تحت عنوان MaskRCNN، به رقابت بازگشت. علاوه بر مسائل ذکر شده، الگریتم YOLO در شناسایی اشیای کوچک، ضعیف عمل می کند. این مسائل سبب شد تا YOLOV2 و V3 ارائه شود. از آنجایی که ویژگی های جدید V2، در V3 نیز مجددا ظاهر شده است، تمام ویژگی ها در قالب YOLOV3 بیان می شود.از مهمترین ویژگی های V3، می توان به Backbone جدید و بهینه DarkNet-53 اشاره نمود. این معماری، توسط سازنده YOLO و با هدف بهینه سازی محاسبات، ارائه شد. در  V3، دیگر خبری از لایه های pooling نیست. چرا که این لایه ها منجر به از دست رفتن اطلاعات می شوند و به جای آنها، از کانولوشن برای کاهش ابعاد استفاده شده است. ویژگی دیگر V3، استفاده از skip connection و Residual blockهاست. هر دو روش ذکر شده به شبکه قابلیت استفاده از اطلاعات لایه های پیشین را به شبکه می دهند. همچنین، به دلیل استخراج تدریجی و دیفرانسیلی اطلاعات، توسط residual blockها، شبکه نوعی regularization بدست می آورد که از overfit شدنش جلوگیری می کند. در V3، علی رقمV1، لایه خطی وجود ندارد و هر دو بخش backbone و head، تماما با لایه های کانولوشنال طراحی شده و همچنین در V3، از Batch Normalization استفاده شده است. دلیل عدم استفاده از batch norm در V1، ابداع نشدن این لایه در آن زمان بود.به منظور حل مشکل تشخیص اشیای کوچک در V1، V3 دارای سه head است که این سه head، در اندازه گرید با یکدیگر تفاوت داردن. Head اول با اندازه گرید برابر با 13 در 13، برای تشخیص اجسام بزرگ، هد دوم با اندازه گرید 26 در 26 برای تشخیص اجسام متوسط و هد سوم با اندازه گرید 52 در 52 برای اجسام کوچک، به ترتیب در لایه های 79 تا 82، 91 تا 94 و 103 تا 106 قرار دارند. پس از هر هد، یک لایه upsample برای بزرگ کردن feature mapها قرار گرفته است تا مورد استفاده هد های بعدی قرار گیرند.یکی از مشکلات V1، ناپایداری گرادیان ها در ابتدای آموزش بود. در ابتدای آموزش، دو باکس تولید شده توسط شبکه با هم، بر سر این که کدام باکس، در کدام شکل متخصص شود می جنگیدند و این امر، موجب بروز گرادیان های تندی می شد. برای حل این مشکل، در V2 و V3، مفهوم جدیدی به نام Anchor Box معرفی شد. ابتدا با استفاده از K-means clustering، سه حالت پر تکرار باکس ها در دیتاست یافته می شود. سپس این سه شکل،  anchor boxهای الگریتم می شوند. حال، به جای بدست آوردن مکان باکس از هیچ، شبکه باید میزان آفست و اسکیل anchor boxها را محاسبه کند.الگریتم V3 پیشرفت چشمگیری ازنظر سرعت و دقت، نسبت به الگریتم های رقیب داشته که در شکل های 4 و 5، مشهود است.YOLOV4مدل YOLOV4، با هدف افزایش سرعت و دقت به میان آمد و چند مفهوم جدید را ارائه کرد. در V4، مدل به سه بخش تقسیم شده که دو بخش از این سه بخش، در V3 توضیح داده شده. بخش اول Backbone است که وظیفه استخراج ویژگی را بر عهده دارد. بخش دوم Neck است که وظیفه انتقال خروجی بخش اول به سوم را دارد و بخش آخر، Head است که وظیفه کلاس بندی و تخمین باکس ها را بر عهده دارد. در قسمت backbone، از مدل CSPDarkNet-53 استفاده شده است که پس از آزمایش بین چند مدل از جمله CSPResNext50 و EfficientNet-B3، به عنوان بهینه ترین مدل انتخاب شد. جالب است که EfficientNet-B3 تعداد محاسبات کمتری دارد ولی در عمل، کندترین مدل است.در قسمت neck، از معماری SPP و PANet استفاده شده و در قسمت head، همان head YOLOV3 استفاده شده است.دو مفهوم جدیدی که در V4 معرفی شد، Bag of Freebies و Bag of Specials است. BoF مجموعه ای از روش هاست که بدون افزایش زمان استنباط، دقت را افزایش می دهند. به عنوان مثال، روش data augmentation، با افزایش زمان آموزش، دقت مدل را افزایش می دهد ولی در زمان استنباط مدل تاثیری ندارد. یکی از augmentationهایی که در  V4 ابداع شد، mosaic augmentation است. در این روش چند تصویر را به هم چسبانده و به عنوان ورودی جدید، به مدل می دهند. از دیگر روش های BoF می توان به  DropOut، DropConnect، DropBlock، MixUp، Random Erase and Cut Out، Hide-and-Seek and Grid Mask ، CutMix و Objective Function of BBox Regression اشاره کرد. در DropConnect، وزن ها به صورت تصادفی انداخته می شوند به جای آن که در DropOut، Activation ها انداخته شوند. تفاوت DropBlock با DropOut نیز در این است که به جای انداخته شدن پیکسل ها، feature map ها به صورت تصادفی انداخته می شوند. در Objective Function of BBox Regression، با باز فرمولیزه کردن تابع هزینه، به نتایج بهتر رسیده می شوند. از جمله اقداماتی که در این سو انجام شده، می توان به GIoU، CIoU، DIoU و anchor box ها اشاره کرد.مجموعه Bag of Specials، مجموعه ای از روش هاست که با افزایش زمان استنباط، افزایش چشمگیری در دقت مدل دارند. این روش ها، علی رقم BoF که بیشتر در آموزش تغییر ایجاد می کنند،  BoS در ساختار مدل تغییر ایجاد می کنند. از جمله این روش ها، می توان به تغییر activation به mish، Cross Stage Partial Connections، FCN-Spatial Pyramid Pooling، Spatial Attention Module، Path Aggregation Networks و DIoU NMS اشاره کرد. شرح تمام این روش ها نیازمند یک مطالعه کامل بر YOLOV4 است پس لاجرم، چند روش توضیح داده می شود.تابع فعال ساز mish تابعی مشابه swish است که به شکل زیر فرمول بندی می شود.این تابع یک تابع نایک نواست و برخلاف relu, قسمت منفی را از بین نمی برد. این امر، موجب جریان بهتر گرادیان ها و یادگیری ویژگی های بیشتر توسط شبکه می شود.روش CSP، ابتدا در معماری DenseNet استفاده شد. در این روش بین تمام ورودی لایه ها، یک skip connection برقرار است. این روش کل شبکه را به هم متصل می کند و هر لایه می تواند از تمام اطلاعات لایه های پیشین استفاده کند. همچنین جریان گرادیان بهتر می شود و یادگیری را نرمتر و پایدارتر می کند. همانطور که از نام CSPDarkNet مشخص است، این روش در backbone شبکه استفاده می شود.در قسمت head، از روش آموزش Self Adversarial Training(SAT) استفاده شده است. این روش دو مرحله دارد. در مرحله اول، شبکه در قسمت های مختلف خود، اغتشاش ایجاد می کند و اصطلاحا یک حمله self adversarial به خودش می کند. در مرحله دوم شبکه یاد می گیرد در حضور این حملات کار خود را انجام دهد. این روش به قوام و امنیت شبکه کمک می کند و می توان آن را در دسته  BoF قرار داد.به عنوان جمع بندی می توان روش های استفاده شده در YOLOV4 را به صورت زیر، درسته بندی کرد.Bag of Freebies (BoF) for backbone: CutMix and Mosaic data      augmentation, DropBlock regularization, Class label smoothingBag of Specials (BoS) for backbone: Mish activation, Cross-stage partial connections (CSP), Multi-input      weighted residual connections (MiWRC)Bag of Freebies (BoF) for detector: CIoU-loss, CmBN, DropBlock regularization, Mosaic data augmentation,      Self-Adversarial Training, Eliminate grid sensitivity, Using multiple      anchors for a single ground truth, Cosine annealing scheduler, Optimal      hyper-parameters, Random training shapesBag of Specials (BoS) for detector: Mish activation, SPP-block, SAM-block, PAN path-aggregation block,      DIoU-NMSدر شکل زیر، عملکرد YOLOV4 در برابر مدل های دیگر، سنجیده شده:YOLOXپس از معرفی YOLOV4 ، معماری YOLOV5 معرفی شد و بحث زیادی بر سر نوآوری این مدل، بجز پیاده سازی با کتابخانه pytorch به جای فریمورک darknet و استفاده از موارد دیگر BoF و BoS، وجود دارد. در سال 2021، مدل YOLOX با چند نوآوری اساسی معرفی شد. این مدل به جای استفاده از YOLOV4 به عنوان مبنا، مدل V3 با بک بون DarkNet53 را مبنا قرار داده است. در قسمت head، دو تغییر ایجاد شده است که عبارت اند از دکوپله کردن head و حذف anchor box های معرفی شده در YOLOV3. در مدل های پیشین YOLO، هد مدل یک لایه بود. در مدل اصلی، یک لایه خطی بود که تغییر شکل می داد و در مدل های بعدی، یک لایه کانوولوشنال بود. این لایه نهایی، هم وظیفه پیشبینی کلاس را داشت هم پیشبینی اطمینان و موقعیت باکس. (در مقالات و آموزش های مرتبط باYOLO، عبارت اطمینان و objectness score یک معنی را می دهند) در YOLOX، لایه اخر ابتدا به دو لایه تقسیم می شود. لایه اول وظیفه پیشبینی کلاس را دارد. لایه دوم مجددا به دو لایه تقسیم می شود. این دو لایه به ترتیب وظیفه تخمین اطمینان و موقعیت باکس را دارند. مزیت این دکوپله سازی، امکان یادگیری بهتر مدل و همگرایی سریعتر است. یک مشکل اساسی که تا YOLOX مطرح بود، رقابت بین کلاس بندی و تعیین محل باکس در هنگام آموزش بود. این مشکل با هد دکوپله حل شده است. در مدل های V3 و V4، استفاده از anchor boxها، مزیت بزرگی محسوب می شد. همانطور که پیشتر مطرح شد، هر هد، چند باکس پیشبینی می کرد و این باکس ها بر سراین که در کدام شکل متخصص شوند، با یکدیگر رقابت می کردند. با ارائه anchor boxها این مشکل به قیمت مقداری دقت حل شد. در YOLOX به جای پیشبینی چند باکس، یک باکس برای هر هد پیشبینی می شود. این رویکرد نیاز به استفاده از Non-max suppression و anchor box ها را از بین برد و دیگر نیاز به استفاده از K-means برای بدست اوردن anchor boxها نیست. همچنین، با کاهش پارامتر های طراحی، همگرایی مدل نیز سریعتر شده است.در تمام YOLO های پیشین، بک بون مدل روی دیتاست ImageNet از پیش آموزش داده شده است ولی در YOLOX، با استفاده از augmentation های سنگین، نیازی به آموزش قبلی نیست و این امر دقت مدل را افزایش می دهد. دلیل افزایش دقت این است که با آموزش مستقیم مدل بر دیتاست مورد نظر، لایه ها ویژگی هایی را استخراج می کنند که برای بهینه سازی تابع هزینه مفیدتر باشند یا به بیانی دیگر، ویژگی های استخراج شده، برای دیتاست مورد نظر منحصر به فرد می شوند. مدل YOLOX، با بک بون های مختلف آزموده شده است و چند مدل زیر شاخه به نام های YOLOX-S، YOLOX-M، YOLOX-L، YOLOX-Tiny و YOLOX-Nano برای کاربرد های مختلف معرفی شده است.در مدل های پیشین، از تابع هزینه رگرسیون استفاده می شد. در YOLOX، تابع هزینه دستخوش تغییراتی اساسی شده است. در قسمت هزینه کلاس بندی، به جای هزینه رگرسیون یا Categorical CrossEntropy، از تابع هزینه Binary CrossEntropy بر تک تک خروجی های کلاس بند استفاده شده است. در قسمت تخمین اطمینان نیز BCE جایگزین تابع هزینه رگرسیون شده است. در قسمت تخمین محل باکس، تابع هزینه IOU نیز جایگزین تابع هزینه رگرسیون شده است. IOU در مدل های پیشین نقش یک متریک و یک ابزار در Non-Max Suppression را ایفا می کرد. در اینجا مستقیما به عنوان تابع هزینه استفاده شده.  البته با توجه به این که در یادگیری، تابع هزینه کمینه می شود و بیشینگی IOU مطلوب است، هزینه IOU برابر 1-IOU است.پیشتر بیان شد که در YOLOX از augmentation های سنگین استفاده شده است. دو آگمنتیشنی که در مقاله به آن ها اشاره شد mosaic و mixup است. روش mosaic در قسمت V4 توضیح داده شده است. در روش mixup، دو نمونه به طور تصادفی انتخاب شده، و با یک دیگر superimpose می شوند. همچنین، برچسب نمونه بدست آمده دارای کلاس هر دو نمونه تشکیل دهنده نمونه جدید است. این augmentation ها، تا 15 ایپاک آخر آموزش فعال هستند و بعد از آن غیرفعال می شوند.یکی دیگر از روش هایی که منجر به بهبود دقت در YOLOX شده است، Multi positives است. در مدل های پیشین، بهترین باکس انتخاب شده و بقیه پیشبینی ها ندیده گرفته می شوند. با آموزش برای پیشبینی هایی که IOU نسبتا بالایی با پیشبینی اصلی دارند، می توان دقت مدل را بهبود داد.روش دیگری که در ادامه Multi Positives بیان شد، روش SimOTA است. در این روش، ابتدا یک میزان کیفیت برای هر جفت برچسب و پیشبینی محاسبه می شود. سپس K پیشبینی با بالاترین میزان کیفیت به عنوان multi positive ها انتخاب می شوند. در اینجا کیفیت بر اساس مجموع هزینه کلاس بندی و هزینه رگرسیون محاسبه می شود. لازم به ذکر است که K به صورت دینامیک تغییر می کند.یکی از تلاش هایی که در YOLOX صورت گرفت، تلاش بر end to end کردن مدل بود. این تلاش به واسطه افزودن دو لایه کانولوشنال، برچسب زنی یک به یک و stop gradient صورت گرفت. نتیجه این تلاش افت دقت مدل بود و به همین دلیل به عنوان یک ماژول انتخابی قرار گرفته است.مدل YOLOX جزو سریعترین و دقیقترین مدل های object detection است اما با سرعت پیشرفت سریع در حوضه object detector ها، به زودی، توسعه های سریعتر و دقیقتر ارائه خواهند شد.</description>
                <category>Abbas Nosrat</category>
                <author>Abbas Nosrat</author>
                <pubDate>Sun, 12 Jun 2022 17:43:24 +0430</pubDate>
            </item>
            </channel>
</rss>