<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Kimia Alavi</title>
        <link>https://virgool.io/feed/@m_96144047</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 04:53:42</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>Kimia Alavi</title>
            <link>https://virgool.io/@m_96144047</link>
        </image>

                    <item>
                <title>Greedy Layerwise Learning Can Scale to ImageNet</title>
                <link>https://virgool.io/@m_96144047/greedy-layerwise-learning-can-scale-to-imagenet-kkwadkphtbwa</link>
                <description>در این پست به بررسی و تحلیل یادگیری layerwise، بعنوان یک متد جایگزین برای یادگیری end-to-end می پردازیم.مقدمه و تاریخچهشبکه های shallow با یک لایه ویژگی هایی دارند که تفسیر، آنالیز و بهینه سازی آنها را نسبت به شبکه های دیپ آسان تر می کند؛ اما این شبکه ها در representation ضعیف‌ هستند، یعنی بعضاً ورودی های شبکه از نوعی هستند (مثلا تصویر) که نمی توان تنها با یک لایه آنها را در فضای latent به خوبی نمایش داد. در بسیاری از تسک های بینایی ماشین و همچنین در حوزه هایی نظیر speech recognition، NLP و حتی در مسائل یادگیری تقویتی، از deep CNN ها استفاده می شود و این شبکه ها با الگوریتم back propagation آموزش داده می شوند. اما چه چیزی در موفقیت این شبکه ها نقش اساسی دارد؟ آیا نیاز است که لایه های کانولوشنی بطور مشترک، یا به اصطلاح jointly، آموزش ببینند تا به عملکرد بالایی دست یابند؟ جلوتر توضیح می دهیم که حتی برای داده های پرچالشی مثل ImageNet پاسخ این سوال منفی است.یادگیری end-to-end (فرآیندی که در آن همه ی بخش های مختلف شبکه با هم و همزمان آموزش می بینند، نه بصورت ترتیبی) یک رویکرد استاندارد در بهینه سازی شبکه های عصبی است. اما چند نکته در خصوص این رویکرد قابل توجه است: اول اینکه لایه ها چطور با هم کار می کنند تا به دقت های بالا در پیش بینی برسند؛ در واقع، چرا و چگونه جدایی پذیری خطی در طول شبکه افزایش پیدا می کند. دوم اینکه پی بردن به ارتباط بین شبکه های shallow و deep سخت است؛ به عبارت دیگر، نتایج تعمیم پذیری، تخمین و بهینه سازی در شبکه های تک لایه در دسترس است اما در شبکه های چند لایه چنین نیست. در نهایت، یادگیری end-to-end می تواند از نظر محاسبات و منابع حافظه بعضاً ناکارآمد باشد. یک رویکرد alternative برای روش یادگیری end-to-end این است که لایه های CNN را بصورت sequential یا ترتیبی آموزش بدهیم؛ یعنی یادگیری هر لایه را به یک مسئله ی یادگیری نظارت شده‌ی shallow (که در متن با عنوان 1-hidden-layer auxiliary problem به آن اشاره شده است) تبدیل کرده و آن را حل کنیم؛ تمام لایه های شبکه را به ترتیب و با همین رویکرد learn کنیم. این روش می تواند هدف هر لایه را مستقیماً مشخص کند. به این رویکرد، یادگیری layerwise گفته می شود.در سال 2007 بنژیو و همکارانش از greedy layerwise learning برای initialization شبکه ها در یادگیری end-to-end استفاده کردند. اما کریژفسکی و همکارانش در 2012 نشان دادند که تکنیک های آموزشی مدرن، بطور کلی ما را از layerwise initialization بی نیاز می کنند.استفاده از layerwise learning در ساختن شبکه های عصبی supervised، در سال های 1965 (ایواخننکو و لاپا)، 1990 (فهلمن و لبیر) و 1996 (لنگله و همکارش) روی مسائل ساده و جایی که هنوز دیپ لرنینگ رویکرد غالب برای حل مسائل یادگیری نبود، مورد توجه قرار گرفت.  هدف این کارها در درجه ی اول، یادگیری ساختار بود؛ ساختن معماری هایی که به مدل اجازه می دهد متناسب با داده ها رشد کند. بطور مشابه در سال 2016، کورتس و همکارانش یک متد یادگیری progressive پیشنهاد دادند که در آن شبکه به نحوی ساخته می شد که معماری با مسئله سازگار باشد.در سال 2017، هوانگ و همکارانش تئوری تقویت (boosting theory) را با یک معماری residual ترکیب کردند تا لایه ها را بصورت ترتیبی آموزش دهند. اما این کار روی دیتاست های محدودی انجام شد و نشان داده شد که همچنان استفاده از رویکرد end-to-end برای رسیدن به نتایج بهتر نیاز است.متد های دیگری هم وجود دارند که در آنها، در هر مرحله، یک لایه به شبکه ی موجود اضافه و سپس یادگیری end-to-end برای آموزش شبکه ی جدید بکار گرفته می شود. در این متد ها هدف پایداری مدل های آموخته شده است؛ نظیر کار موسکا و ماگولاس و همینطور کار وانگ و همکارانش در سال 2017.نوآوری و مشارکتدر کار های اخیر به استفاده از متد های آموزش جایگزین برای مسائلی با دیتاست های بزرگ که فقط با دیپ لرنینگ حل می شدند، توجه بسیاری شده است. اما بسیاری از این متد ها و استراتژی های آموزش روی دیتاست های کوچک (نظیر MNIST و CIFAR) جواب می دهند و برای دیتاست های large-scale (نظیر ImageNet) نتیجه‌بخش نیستند. در این مقاله با استفاده از یک سری ایده ها برای معماری و فرآیند آموزش، به این نتیجه رسیدند که حل ترتیبی مسائل auxiliary با یک لایه مخفی منجر به CNN ای می شود که می تواند روی دیتاست ImageNet عملکرد بهتری نسبت به AlexNet داشته باشد. سپس این ایده گسترش یافت و با حل مسائل auxiliary، این بار با 2 یا 3 لایه مخفی (k-hidden layer CNN problem, k=2,3)، یک مدل 11 لایه بدست آمد که از تعدادی از خانواده مدل VGG بهتر عمل می کند؛ می توان با آموزش یک مدل VGG-11 به دقتی برابر با دقت بدست آمده از روش یادگیری end-to-end رسید. ادعا شده این روش جایگزین، اولین روشی است که می تواند روی دیتاست ImageNet با روش یادگیری end-to-end رقابت کند.متد پیشنهادیدر این بخش معماری و الگوریتم آموزش فرمولایز می شود. تمرکز روی CNN هاست با تابع فعال ساز غیرخطی ReLU که با ρ نشان داده می شود. در این متد، در هر گام یک لایه اضافه می شود: اولین لایه از مسئله CNN با k لایه مخفی.· فرمولاسیون معماریمطابق شکل 1، معماری ما J بلاک دارد که به ترتیب آموزش داده می شوند. با شروع از یک ورودی x، یک representation اولیه بصورت x0 از j کانولوشن عبور می کند و هر بار یک xj تولید می کند. هر xj به یک طبقه بند auxiliary داده می شود تا خروجی پیش بینی شده ی zj حاصل شود. در لایه ی j-اُم یک اپراتور کانولوشنی با پارامتر های θj با نماد Wθj، یک طبقه بند با پارامتر های γj با نماد Cγj و یک اپراتور down-sampling با Pj نمایش داده می شوند. پارامتر ها با کرنل سایز 3*3 و با ترم های بایاس می باشند. بنابراین با ورودی xj، در لایه ی j+1 خواهیم داشت:که c تعداد کلاس هاست. برای اپراتور پولینگ P، از اپراتور invertible downsamplingاستفاده شده است؛ اپراتور های پولینگ دیگر نظیر strided pooling، average pooling و non-linear max-pooling باعث از دست رفتن اطلاعات می شوند. P برای لایه های مشخصی اعمال می شود (Pj = P) و نه لایه های دیگر (Pj = Id).  طبقه بند Cγj هم بصورت زیر است:که در آن W˜ 0, ..., W˜ k−2 لایه های کانولوشنی با پهنای ثابت، A یک spatial averaging، L یک اپراتور خطی است که ابعاد خروجی آن c می باشد. برای k=1، طبقه‌بند Cγj یک مدل خطی است و در این حالت معماری با دنباله ای از تک لایه های CNN آموزش داده می شود. برای k=2,3، طبقه‌بند یک CNN با 1 یا 2 لایه مخفی است (p=1,2-hidden-layer CNN).شکل 1: یادگیری layerwise CNN با استفاده از 2 لایه مخفی (k=2-hidden layer)· آموزش با مسائل کمکی (Auxiliary Problems)فرآیند آموزش layerwise است: در عمق j از مدل، درحالیکه همه ی پارامتر های دیگر فریز می شوند، θj با حل یک مسئله ی auxiliary بدست می آید: بهینه سازی {θj , γj} برای رسیدن به بهترین دقت training برای طبقه‌بند Cγj. این ایده را برای مجموعه آموزش {xn, yn} فرمولایز می کنیم:برای یک تابع z(·; θ, γ) با پارامتر های {θ, γ} و یک تابع loss بصورت l، می خواهیم مقدار ریسک کمینه شود:هرچه مقدار فوق کمتر شود، auxiliary classifier مورد نظر در طبقه بندی داده ها بهتر عمل کرده و دقت آن بیشتر خواهد شد.  این بهینه سازی به روش SGD انجام می شود و می توان نشان داد که خطای training در هر لایه بهبود می یابد.الگوریتم 1. LayerWise CNNالگوریتم 1، فرآیند آموزش مدل layer Wise CNN را نشان می دهد؛ در استپ j-اُم، سمپل های ورودی {xj} را با استفاده از رابطه ی x(j) = ρWθ(j-1)P(j-1)x(j-1) بدست می آوریم؛ سپس پارامتر های {θj , γj} را به نحوی بدست می آوریم که Rˆ(z(j+1); θj , γj ) کمینه شود.در ادامه دو قضیه در خصوص این متد، آورده شده است: قضیه ی اول بیان می کند که در هر لایه، خطای training بهبود می یابد (Progressive improvement)؛ بهینه سازی یک شبکه ی تک لایه منجر به این می شود که خروجی های classification بیشترین جدایی پذیری خطی را داشته باشند. بنابراین حل مسئله ی layerwise با یک لایه، باعث بهبود فزاینده linear separability در طول شبکه می شود. شکل 2 نمودار دقت مدلی که بصورت layerwise با یک لایه مخفی آموزش دیده را نشان می دهد؛ مطابق نمودار، با افزایش تعداد لایه ها دقت شبکه نیز افزایش می یابد.شکل 2: نمودار دقت مدل layerwise با k=1، روی دیتاست ImageNet قضیه ی دوم بیان می کند اگر برای حل یک مسئله، آن را به چند زیرمسئله ی کوچکتر تبدیل کنیم و هر کدام از زیرمسئله ها را جداگانه حل کنیم، درصورتیکه پاسخ آنها به پاسخ آپتیمال نزدیک باشد، پاسخ مسئله نیز به پاسخ آپتیمال نزدیک خواهد بود؛ به بیان دیگر، بهینگی پاسخ auxiliary problem ها، بهینگی پاسخ الگوریتم 1 را نتیجه می دهد.نتایج مقالهآزمایش ها روی دو دیتاست CIFAR-10 و ImageNet انجام شده و عملکرد مدل های layer-wise با k=1 (و البته در ادامه، برای k=2,3) لایه بررسی شده است.بسیاری از الگوریتم های پیشنهاد شده روی دیتاست های بزرگی نظیر ImageNet قابل استفاده نیستند و به نتایج خوبی نمی انجامند. برای مثال، ترکیب توصیفگر SOTA با یک مدل خطی، روی دیتاست CIFAR-10 به دقت 82% و روی ImageNet به دقت 17.4% منجر می شود. در این بخش نتایج مدل پیشنهادی این مقاله (تحت عنوان مدل SimCNN) روی هر دو دیتاست مذکور، بررسی می شود. برای CIFAR-10 نتایج مطابق جدول زیر است:برای layerwise CNN با k=1 یک مدل با J=5 لایه، به همراه down-sampling در لایه های j=2,3، آموزش داده شده که به دقت 88.3% می رسد، دقتی نزدیک به عملکرد مدل AlexNet با رویکرد یادگیری end-to-end(e2e) (89.0%). طبق جدول فوق، دقت بدست آمده از بالاترین دقت بدست آمده با متد های layerwise دیگر (82.1%) بیشتر است.قابل ذکر است که یک مدل ensemble بصورت میانگین وزندار خروجی های تمام طبقه‌بند های auxiliary نیز در نظر گرفته شده است (طبق رابطه ی زیر)؛ منظور از Ens. در جدول فوق، دقت بدست آمده از این مدل می باشد.نتایج بدست آمده روی ImageNet در جدول 2 آورده شده است؛ برای k=1 با J=8 لایه و downsampling در لایه های j=2,3,4,6، top-5 acc روی مجموعه ولیدیشن به 79.7% و برای مدل ensemble به دقت 80.8% می رسد که از عملکرد AlexNet و بالاترین دقت بدست آمده از روشهای alternative دیگر، بهتر است.در اینجا linear separability را ماکزیمم دقتی که classifier خطی می تواند به آن برسد، تعریف می کنیم و CNN-p-separability را دقت بدست آمده برای طبقه‌بند CNN با p لایه (p-layer CNN) تعریف می کنیم.همانطور که اشاره شد، linear separability برای k=1، با افزایش عمق شبکه بیشتر می شود؛ طبق نمودار سمت چپ در شکل زیر، برای k&gt;1 هم linear separability با بیشتر شدن عمق شبکه بهبود می یابد. در لایه های اول linear separability برای k=1 سریعتر افزایش می یابد (تقریبا بصورت خطی)؛ اما در نهایت برای k&gt;1، linear separability به مقادیر بیشتری همگرا می شود. نمودار های سمت راست نشان می دهند که CNN-p-separability هم با عمق شبکه بهبود می یابد؛ البته برای k&gt;1، بسیار بیشتر. این نتایج نشان می دهد که فرآیند آموزش ترتیبی برای حالت k&gt;1 می تواند representation ای ایجاد کند که برای لایه ی بعدی ورودی بهتری باشد.شکل 3: Linear separability (نمودار سمت چپ) و CNN-p separabilibty (نمودار های سمت راست) برحسب عمق، روی دیتاست CIFAR-10در نمودار سمت چپ، classifier یک مدل خطی (Logistic Regression) است. در نمودار های سمت راست، classifier یک مدل CNN با 1 (نمودار بالا) و 2 (نمودار پایین) لایه می باشد. k هم در واقع تعداد لایه های مخفی هر بلوک (با صرف نظر کردن از classifier) است.طبق جداول فوق، آموزش ترتیبی با k&gt;1 لایه ی مخفی، عملکرد بهتری را روی هر دو دیتاست نتیجه می دهد.تحلیل و نتیجه گیریدر این مقاله یک راه حل جایگزین برای یادگیری end-to-endدر CNN ها معرفی شد که مبتنی بر آموزش لایه به لایه ی شبکه، بدون هیچ فیدبکی بین لایه ها، بود. این متد روی دیتاست های بزرگ نیز قابل استفاده است و رقیبی جدی برای روشهای پایه به شمار می آید. آموزش layerwiseمی تواند برای مدل های بزرگ با محدودیت حافظه، آموزش و فشرده سازی همزمان مدل، آموزش پایدار برای مسائل پر چالش کاربرد داشته باشد. بعلاوه، بهینه سازی مدل های shallow بسیار راحت‌تر و تفسیر پذیرتر از مدل های دیپ است؛ همچنین می توان مشکل vanishing gradient را تا حدی برطرف و نیاز به استفاده از تکنیک های نرمالیزیشن را کم کرد.این متد امکان آموزش مدل های layerwise بزرگتر را فراهم می کند و بنابراین برای کاربرد هایی با مدل های بزرگ، نظیر کاربرد های 3-D vision و تصویر برداری در حوزه ی پزشکی، پیشنهاد می شود.مدل های ImageNet اخیر (بعد از خانواده مدل VGG) برای کاربرد های صنعتی توسعه یافته اند؛ در این کاربرد ها زیرساخت های لازم برای تنظیم هایپر پارامتر و معماری فراهم است، بنابراین طراحی بهتر بهینه سازی برای مسائل auxiliary می تواند به نتایج بهتری هم منجر شود.مرجع:Belilovsky, E., Eickenberg, M. and Oyallon, E. (2018) “Greedy layerwise learning can scale to ImageNet,” arXiv [cs.LG]. Available at: http://arxiv.org/abs/1812.11446.گردآورنده: کیمیا علوی</description>
                <category>Kimia Alavi</category>
                <author>Kimia Alavi</author>
                <pubDate>Mon, 30 May 2022 17:13:02 +0430</pubDate>
            </item>
                    <item>
                <title>معرفی متد DDML برای تشخیص چهره</title>
                <link>https://virgool.io/@m_96144047/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%85%D8%AA%D8%AF-ddml-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%DA%86%D9%87%D8%B1%D9%87-zcb1qgyw6wma</link>
                <description>در این پست می خواهیم به بررسی مقاله ی &quot;Discriminative Deep Metric Learning for Face Verification in the Wild&quot; بپردازیم که در سال 2014 منتشر شده و روشی برای face verification در تصاویر wild پیشنهاد داده است.مقدمه و تاریخچهدر دهه های اخیر، تعداد زیادی متد برای تشخیص چهره پیشنهاد شده است که اکثر آنها، تحت شرایط کنترل شده، عملکرد قابل قبولی داشتند. با این حال اگر تصاویر ورودی تحت شرایط کنترل نشده یا به اصطلاح wild گرفته می شدند (یعنی بطور اتفاقی و در محیط های مختلف)، عملکرد متدها بخاطر تغییرات بزرگ در فاصله درونی کلاس ها (یعنی حالتی که example های یک کلاس فواصل نسبتا بزرگی با هم دارند) بشدت افت می کرد. در حالت کلی تشخیص چهره به دو تسک مجزا قابل تقسیم است: face identification یا شناسایی چهره که هدف از آن، تشخیص یک شخص از روی مجموعه ای از تصاویر یا ویدیوها و پیدا کردن شبیه ترین مورد است، face verification یا تایید چهره که به منظور تعیین این است که آیا جفت تصویر یا ویدیو داده شده، متعلق به یک شخص است یا نه. در این مقاله به تسک دوم پرداخته شده است، در حالیکه تصاویر چهره دچار تغییرات قابل توجهی شده اند، نظیر تغییر در نور، حالت، رزولوشن و بک‌گراند.اخیرا رویکرد هایی برای بهبود face verification در محیط های نامقید پیشنهاد شده که می توان آنها را به دو کتگوری تقسیم کرد: رویکرد های مبتنی بر feature descriptor یا توصیفگر ویژگی که در آنها یک توصیفگر robust و discriminative (متمایز کننده) بکار گرفته می شود تا هر چهره را بصورت یک بردار ویژگی نمایش دهد به نحوی که بردار ویژگی افراد متفاوت، در فضای ویژگی، فاصله ی زیادی از هم داشته باشند، متد هایی نظیر SIFT، LBP، probabilistic elastic matching (PEM) و همچنین fisher vector faces از این دسته هستند؛ دسته دیگر شامل رویکرد های مبتنی بر metric learning  می باشند که در آنها معمولا یک متریک فاصله ی جدید به کمک داده های آموزشی لیبل دار، آموخته می شود تا به شکل موثر شباهت بین چهره ها را اندازه بگیرید؛ به نحوی که شباهت بین جفت های مثبت زیاد و شباهت بین جفت های منفی تا حد امکان کم شود. متد های logistic discriminant metric learning (LDML)، cosine similarity metric learning (CSML)، pairwise constrained component analysis (PCCA) و pairwise-constrained multiple metric learning (PMML) از این دست هستند.نوآوری مقالهبسیاری از روش های metric learning تنها یک تبدیل خطی یاد می گیرند تا نمونه های چهره را به یک فضای ویژگی جدید نگاشت کنند؛ این روش به اندازه ی کافی قدرتمند نیست تا خمینه های غیرخطی که تصاویر صورت روی آنها قرار می گیرند را به خوبی بدست آورد. برای برطرف کردن این محدودیت معمولا از kernel trick استفاده می شود تا ابتدا نمونه های صورت به یک فضای ویژگی high-dimensional نگاشت و سپس متریک فاصله آموخته شود. اما این متد ها هم قادر نیستند توابع نگاشت غیرخطی را صریحا بدست آورند و مشکل scalability* همچنان وجود خواهد داشت. در این مقاله متد جدیدی تحت عنوان Discriminative Deep Metric Learning یا به اختصار DDML معرفی شده است که مطابق با آن، یک شبکه ی عصبی عمیق ساخته می شود و مجموعه ای از تبدیلات غیرخطی سلسله‌مراتبی برای تصویر کردن جفت های صورت به یک فضای ویژگی دیگر آموزش می بیند؛ در این روش، برخلاف روشهای دیگر، نگاشت های غیرخطی صریحا بدست می آیند. بعلاوه در فضای ویژگی فاصله ی جفت های مثبت از یک مقدار آستانه ی کوچکتر، کمتر می شود و فاصله ی جفت های منفی از یک مقدار آستانه ی بزرگتر، بیشتر می شود که این امر موجب تفکیک موثرتر تصاویر چهره خواهد شد.*منظور از Scalability این است که اگر تصویر شخص جدیدی وارد شود، آیا مدل باید از ابتدا آموزش ببیند یا خیر.متد پیشنهادیابتدا توضیح مختصری در خصوص روش Mahalanobis distance metric learning بعنوان یک رویکرد خطی ارائه می شود، سپس متد DDML معرفی خواهد شد.یادگیری مبتنی بر Mahalanobis Distance :با فرض اینکه X = [x1, x2, · · · , xN ] ∈ R^(d×N) مجموعه ی آموزش باشد، در این روش هدف بدست آوردن ماتریس مربعی M ∈ R^(d×d) از مجموعه ی آموزش است، به نحوی که فاصله ی هر دو سمپل xi و xj از رابطه ی زیر محاسبه می شود:از آنجا که dM(xi , xj ) یک فاصله است، باید ویژگی های نامنفی و متقارن بودن و همچنین ناتساوی مثلثی برای آن برقرار باشد؛ چون M متقارن و مثبت نیمه معین است بنابراین می توان آن را به شکل زیر تجزیه کرد:پس می توان رابطه ی فوق را مجددا به اینصورت نوشت:از عبارت فوق پیداست که یادگیری متریک Mahalanobis Distance معادل پیدا کردن یک تبدیل خطی نظیر                      است که هر سمپل    را به یک زیرفضای low-dimensional تصویر می کند؛ فاصله ی اقلیدسی هر دو سمپل در فصای تبدیل یافته، برابر با همان متریک Mahalanobis Distance در فضای اصلی است.متد DDML :طبق شکل 1، ابتدا یک شبکه ی عصبی عمیق ساخته می شود تا با عبور یک جفت صورت از تبدیلات غیرخطی که در هر لایه اعمال می شود، بردار representation هر چهره بدست آید. با فرض اینکه تعداد لایه ها برابر با M+1 باشد، برای نمونه صورت x خروجی لایه ی اول h (1) = s(W(1)x + b (1)) است که در آن W(1) و b(1) به ترتیب ماتریس projection و بردار بایاس و s تابع فعالساز غیرخطی (مثلا tanh یا sigmoid) است. سپس خروجی لایه ی اول (h(1)) بعنوان ورودی لایه ی بعدی استفاده می شود و بطور مشابه خروجی لایه ی دوم نیز بدست می آید. بنابراین خروجی لایه ی mاُم بصورت h (m) = s(W(m)h (m−1) + b (m) ) خواهد بود و خروجی آخرین لایه برابر خواهد بود با :شکل 1: بکارگیری متد DDML برای face verificationبنابراین برای یک جفت تصویر صورت داده شده xi و xj، با استفاده از تبدیلات غیرخطی متوالی، آنها را به یک فضای ویژگی نگاشت کرده و بصورت f(xi) و f(xj) نمایش می دهیم؛ سپس فاصله ی بین آنها می تواند با محاسبه ی فاصله ی اقلیدسی بین این دو representation بدست آمده، حاصل شود:هدف از متد DDML بدست آوردن نگاشت غیرخطی f است به نحوی که فاصله ی d^2_f (xi , xj ) بین جفت های مثبت xi و xj (یعنی حالتی که Lij = 1 باشد) از مقدار آستانه ی τ1 کوچکتر شود و این فاصله برای جفت های منفی xi و xj (یعنی حالتی که Lij = -1 باشد) از مقدار آستانه ی τ2 بزرگتر شود. لیبل Lij شباهت یا عدم شباهت بین دو جفت xi و xj را نشان می دهد. برای کاهش تعداد پارامتر ها تنها یک مقدار آستانه ی τ بکار گرفته شده و قید زیر برای مسئله در نظر گرفته می شود:با این فرض که  τ1=τ-1 و τ2=τ+1. با در نظر گرفتن این قید و یک مارجین بین هر جفت مثبت و منفی، مطابق شکل 2 به وجود می آید. در واقع این قید باعث می شود که فاصله ی جفت های مثبت کمتر از τ (به هم نزدیکتر) و فاصله ی جفت های منفی بزرگتر از τ (از هم دورتر) شود. اگر Lij=1 (برای جفت های مثبت) و فاصله کمتر از τ1=τ-1 باشد، عبارت داخل پرانتز مثبت می شود و قید برقرار است؛ اگر Lij=-1 (برای جفت های منفی) و فاصله بیشتر از τ2=τ+1 باشد، عبارت داخل پرانتز منفی می شود و چون در یک 1- هم ضرب می شود، همچنان قید برقرار خواهد بود. درنهایت به کمک این قید، یک تابع هدف و بدنبال آن یک مسئله ی بهینه سازی تعریف می شود.شکل 2: فضای ویژگی اصلی، قبل و بعد از اعمال DDMLتابع هدفهمانطور که اشاره شد، متد پیشنهاد شده را می توان بصورت یک مسئله ی بهینه سازی مطرح کرد:که در آن g(z) تابع logistic loss تعمیم یافته و تقریب نَرمی از همان تابع hinge (که بصورت max(0,z) درنظر گرفته می شود) است. در عبارت فوق، β پارامتر sharpness و ||A|| با اندیس F، نرم فروبنیوس ماتریس A و λ پارامتر regularization است. در تابع هدف فوق، ترم J1 نشان دهنده ی logistic loss  و J2 ترم regularization می باشد. برای حل مسئله ی بهینه سازی فوق، از روش stochastic sub-gradient descent برای بدست آوردن پارامتر های W(m) و b(m) جاییکه m=1,2,...,M است، استفاده می شود. گرادیان تابع هدف نسبت به پارامتر های W(m) و b(m) با استفاده از روابط زیر محاسبه می شود:که در آن h^(0)i = xi و h^(0)j = xj ورودی های اصلی شبکه هستند و همچنین داریم:در نهایت پارامتر های مدل با بکارگیری قانون زیر آپدیت می شوند:الگوریتم کلی متد DDML را به شکل زیر می توان نوشت:شکل 3: الگوریتم متد DDMLابتدا مقادیر وزن و بایاس را مقداردهی می کنیم (مقادیر اولیه ی بایاس را برابر با صفر و مقادیر اولیه ی وزن ها را بر اساس یک توزیع یکنواخت تعریف شده، قرار می دهیم). در هر iteration، یک جفت از داده های آموزش را بصورت (xi,xj,Lij) انتخاب می کنیم و در لایه ی ورودی قرار می دهیم (h^(0)i = xi و h^(0)j = xj)؛ سپس forward propagation را انجام می دهیم یعنی ورودی که در ابتدای شبکه اعمال می شود، از تک تک لایه های بعدی عبور می کند تا به لایه ی آخر برسد (جایی که h^(m)i و h^(m)j حاصل می شود)؛ سپس با توجه به روابطی که بالاتر آورده شد، مقادیر گرادیان محاسبه و در قدم بعدی پارامتر های شبکه بروز می شوند. در نهایت مقدار تابع هزینه محاسبه می شود تا در صورتی که اختلاف آن از مقدار قبلی (مقدار تابع هزینه در iteration قبل) کمتر از اپسیلون باشد، الگوریتم متوقف شود؛ در این حالت الگوریتم همگرا شده و مقادیر پارامتر ها که مطلوب مسئله بود، بدست آمده اند.نکته ی قابل توجه این است که در متد فوق صحبتی از بکارگیری لایه های کانولوشنی بعنوان پارت feature extractor شبکه نشده است، درحالیکه می دانیم ورودی شبکه تصاویر صورت است و معمولا برای ورودی هایی از این جنس، نیاز به لایه های کانولوشنی داریم تا با فیلتر کردن تصاویر ورودی، آنها را به یک فضای ویژگی با ابعاد مشخص ببرد و با برداری تحت عنوان بردار ویژگی آنها را نمایش دهد. در این مقاله روش بکار رفته برای بدست آوردن بردار ویژگی متناظر با هر تصویر، استفاده از descriptor ها یا توصیفگر هایی نظیر DSIFT، LBP و SSIFT است. مثلا در روش DSIFT روی هر پَچ 16*16 از تصویر (بدون overlap)، توصیفگر های SIFT بدست می آید و در نهایت این توصیفگر ها به هم متصل شده و بردار ویژگی با ابعاد 5760 حاصل می شود. در واقع در روابط فوق، منظور از x همان بردار ویژگی بدست آمده از روی تصویر صورت است که بعنوان ورودی به شبکه اعمال می شود.نتایج مقالهعملکرد متد پیشنهاد شده روی دو دیتاست LFW (شامل 13000 تصویر چهره از 5749 سابجکت) و YTF (شامل 3425 ویدیو از 1595 شخص متفاوت) مورد بررسی قرار گرفته است که در اینجا به بخشی از نتایج بدست آمده (روی دیتاست LFW) اشاره می کنیم. در جدول زیر مدل deep ارائه شده با مدل های shallow (شامل تنها یک لایه) مقایسه شده است. در این آزمایش، فیچر های اصلی و همینطور جذر آنها مورد استفاده قرار گرفته و طبق نتایج بدست آمده، مدل پیشنهادی بهتر از مدلهای shallow عمل می کند.در آزمایش دیگری، نتایج متد پیشنهادی با متد های State-of-the-Art که تعدادی از آنها مبتنی بر توصیفگر ها (PAF و Fisher vector faces) و باقی مبتنی بر متریک لرنینگ هستند، مقایسه شده است (جدول زیر)؛ منظور از NoD تعداد توصیفگر های بکار رفته می باشد.در یک آزمایش دیگر، متد DDML با دو متد دیپ لرنینگ دیگر، CDBN و DNLML-ISA مقایسه شده است (جدول زیر).طبق نتایج فوق، متد DDML نسبت به متد های State-of-the-Art و همینطور متد های دیپ لرنینگی که مورد آزمایش قرار گرفت، غالبا عملکرد بهتری دارد (خصوصا زمانی که فیچر ها بصورت ترکیبی بکار می روند) و به دقت بالاتری می رسد. آزمایش های مشابهی روی دیتاست YTF انجام شده که نتایج آن در مقاله آورده شده است؛ روی این دیتاست نیز دقت های بدست آمده با DDML در مقایسه با متد های دیگر بیشتر است.تحلیل و نتیجه گیری (مزایا و معایب متد پیشنهادی)همانطور که اشاره شد، ضعف متد های قبلی این بود که یا از تبدیلات خطی برای بردن تصاویر به فضای ویژگی استفاده می کردند که قادر نبود پیچیدگی ها و غیرخطی‌گری های مسئله را به خوبی مدل کند؛ یا اینکه نظیر متد های کرنل، نگاشت های غیرخطی در آنها صریحا بدست نمی آمد. در این مقاله پیشنهاد شد که می توان از شبکه های عمیق برای رسیدن به فضای ویژگی مطلوب استفاده کرد که در آن هم خمینه های غیرخطی که تصاویر روی آنها قرار می گیرند، قابل دستیابی است و هم این نگاشت های غیرخطی (تبدیلات غیرخطی که در هر لایه از شبکه روی بردار های ورودی اعمال می شود) را صریحا می توان بدست آورد و همچنین با یک روش مبتنی بر گرادیان، پارامتر های شبکه را به نحوی آپدیت کرد که تابع هدف کمینه و خواسته ی مسئله به شکل مطلوبی تحقق یابد.نکته ی قابل ذکر دیگر این است که شاید بعنوان یکی از کاستی های متد پیشنهاد شده، بتوان به این اشاره کرد که برای بدست آوردن بردار ویژگی متناظر با هر تصویر ورودی، descriptor ها یا توصیفگر هایی نظیر DSIFT، LBP و SSIFT بکار گرفته شده اند. البته باید به این نکته توجه داشت که این مقاله به نسبت قدیمی و برای سال 2014 می باشد؛ امروزه، باتوجه به پیشرفت های اخیر در هوش مصنوعی و یادگیری عمیق، از CNN ها در تسک هایی نظیر طبقه بندی تصاویر استفاده می شود؛ چرا که این شبکه ها قادر هستند تصاویر ورودی را فیلتر کنند، disturbance ها و distortion ها را حذف کنند، ویژگی های انحصاری را به خوبی استخراج کرده و داده ها را به یک فضای ویژگی مناسب تر ببرند که در آنجا طبقه بندی دادگان ورودی بهتر و موثرتر انجام پذیرد. بنابراین این امکان وجود دارد که از فیلتر پارت یک شبکه ی کانولوشنی برای قسمت feature extraction استفاده کرد تا عملکرد متد پیشنهادی بالاتر رود و به دقت های بالاتری منجر شود. در سال های بعد از انتشار این مقاله، همین ایده بکار گرفته شد و شبکه هایی نظیر siamese برای مسائل similarity learning معرفی شد. بعلاوه با رشدی که در سال های اخیر در این زمینه اتفاق افتاد ایده ها، تکنیک ها و بویژه توابع loss  بهتر و موثرتری (نظیر triplet، circle، arcface و ...) معرفی شدند که هر کدام به نحوی در روند یادگیری و حل مسائل تشخیص چهره، بهبودی ایجاد کردند و به عملکرد بهتر و نتایج بالاتر منجر شدند.مرجع:Hu, J., Lu, J. and Tan, Y.-P. (2014) “Discriminative deep metric learning for face verification in the wild,” in 2014 IEEE Conference on Computer Vision and Pattern Recognition. IEEE.گردآورنده: کیمیا علوی</description>
                <category>Kimia Alavi</category>
                <author>Kimia Alavi</author>
                <pubDate>Wed, 04 May 2022 01:22:28 +0430</pubDate>
            </item>
                    <item>
                <title>Neural Architecture Search (NAS)</title>
                <link>https://virgool.io/@m_96144047/neural-architecture-search-nas-qlido9uaqqny</link>
                <description>مقدمهیکی از مسائل حائز اهمیت و چالش برانگیز در بکارگیری شبکه های عصبی عمیق، در کاربرد های مختلف اعم از طبقه بندی و شناسایی اشیا، انتخاب معماری مناسب است. در سال های اخیر، پیدا کردن روشی به منظور یادگیری خودکار یک معماری مناسب برای شبکه ها، مورد توجه قرار گرفته است. در این خصوص کارهای زیادی انجام شده که به بخشی از آن ها، جلوتر اشاره خواهیم کرد؛ اما بطور کلی، تکنیک هایی که در حال حاضر استفاده می شوند، معمولا در دو دسته ی الگوریتم های تکاملی (EA) و یادگیری تقویتی (RL) قرار می گیرند. در الگوریتم های تکاملی، هر ساختار شبکه عصبی بصورت یک رشته انکد می شود، در طول فرآیند جست و جو، تغییرات و بازترکیب هایی بصورت رندوم روی این رشته ها اعمال می شود؛ سپس هر رشته (مدل) آموزش دیده و ارزیابی می شود و مدل هایی که عملکرد بهتری داشتند، انتخاب می شوند. در الگوریتم های یادگیری تقویتی، عامل تعدادی اکشن انتخاب می کند که ساختار مدل را مشخص می کند، این مدل آموزش دیده و دقت آن در مرحله ی ارزیابی به عنوان پاداش برگردانده می شود؛ از این پاداش برای بروزرسانی کنترلر RNN (که همان پالیسی انتخاب اکشن است) استفاده می شود. در سال 2017، زوف و همکارانش متدی به نام &quot;جست و جوی معماری عصبی&quot; یا به اختصار NAS پیشنهاد کردند که در آن از الگوریتم REINFORCE (یکی از الگوریتم های policy gradient مشهور در یادگیری تقویتی که برای بدست آوردن مستقیم پالیسی در محیط بکار می رود) برای تخمین پارامتر های یک شبکه ی عصبی بازگشتی (RNN) استفاده شده بود؛ در این متد، RNN همان پالیسی است که با استفاده از آن یک توالی از اکشن ها برای مشخص کردن ساختار CNN، تولید می شود. در این مسئله ی یادگیری تقویتی ریوارد یا تابع پاداش، دقت طبقه بندی CNN تشکیل شده، روی مجموعه ای از دادگان ارزیابی است.مقالات دیگری هم وجود دارند که از RL برای یادگیری ساختار شبکه استفاده کرده اند؛ بعنوان مثال در مقاله ی دیگری، متدی مشابه NAS پیاده سازی شده با این تفاوت که بجای بکار بردن الگوریتم policy gradient، از الگوریتم Q-Learning استفاده شده است. در یکی از مقالات، فضای اکشن ها دستخوش کمی تغییر شده، به این صورت که گسترش دادن یکی از لایه ی موجود یا اضافه کردن یک لایه جدید به عمق شبکه نیز بعنوان یک اکشن در نظر گرفته شده است. در کار های دیگری از الگوریتم های تکاملی برای یادگیری ساختار شبکه و همچنین تخمین پارامتر ها استفاده شده است. در شماری از مقالات، الگوریتم های EA برای یادگیری شبکه و الگوریتم SGD برای تخمین پارامتر ها بکار گرفته شده اند.الگوریتم های RL و EA هر دو از متد های جست و جوی لوکال یا محلی هستند؛ یک رویکرد متفاوت، استفاده از جست و جوی heuristic یا سرانگشتی است که در آن ساختار شبکه از یک مدل ساده شروع شده و بصورت progressive یا تصاعدی به یک مدل پیچیده تبدیل می شود. در یک مقاله، از جست و جوی درختی Monte Carlo  (MCTS) استفاده شده است که در آن، در هر node (گره) از درخت جست و جو، یک شاخه بصورت رندوم انتخاب شده و گسترش می یابد، بنابراین این روش بسیار ناکارآمد است. در مقاله ی دیگری، بهینه سازی مبتنی بر مدل ترتیبی (SMBO) توسعه یافته که با استفاده از آن تصمیم گیری می شود که کدام گره گسترش یابد (انتخاب گره تصادفی نیست).از طرفی طراحی شبکه های عصبی کانولوشنی برای دستگاه های موبایل یکی از چالش هایی است که در دنیای امروز با آن مواجهیم، چرا که لازم است چنین مدل هایی کوچک، سریع و در عین حال دقیق باشند. مدل هایی نظیر MobileNet و ShuffleNet به همین منظور ارائه شدند؛ در این مدل ها سعی شده ساختار و محاسبات سک تر و تعداد پارامتر ها کمتر شود. در ادامه ابتدا به بررسی متد های NAS و PNAS می پردازیم که به ترتیب از الگوریتم های RL و SMBO بهره گرفته اند (این دو الگوریتم پیش تر معرفی شدند)، سپس به سراغ بررسی متد MNASمی رویم که به منظور یافتن معماری مناسب برای دستگاه های موبایل معرفی شده است.1. Learning Transferable Architectures for Scalable Image Recognitionنوآوری مقاله:در آپریل 2018، زوف و همکارانش متد دیگری برای یادگیری مستقیم معماری روی یک دیتاست خاص (نظیر ImageNet) ارائه دادند. از آنجا که بکارگیری متد قبلی (که سال 2017 ارائه شد) برای دیتاست های خیلی بزرگ پرهزینه بود، آنها پیشنهاد دادند که در گام اول، جست و جو روی یک دیتاست کوچکتر صورت گیرد سپس معماری بدست آمده به دیتاست بزرگتر انتقال پیدا کند. ایده اصلی این مقاله، طراحی یک فضای جست و جوی جدید (فضای جست و جوی NASNet) است که قابلیت انتقال را ایجاد کند. این کار الهام گرفته از مقاله ی اول NAS در سال 2017 است که با بهره گیری از یادگیری تقویتی یا همان RL، ساختار معماری را بهینه می کرد؛ اما همانطور که اشاره شد، اعمال NAS یا هر متد جست و جوی دیگر، روی دیتاست های بزرگی مثل ImageNet از نظر محاسباتی بسیار سنگین است. بنابراین نویسندگان مقاله تصمیم گرفتند که در قدم اول جست‌وجو برای معماری مناسب را روی یک دیتاست کوچکتر، مثل CIFAR-10 انجام داده و سپس معماری بدست آمده را به ImageNet منتقل کنند. در اینصورت پیچیدگی معماری مستقل از عمق شبکه و سایز تصویر ورودی می شود. همچنین از آنجا که تمام CNN های موجود در فضای جست و جو، متشکل از لایه های کانولوشنی (یا cell های) مشابه (از نظر ساختار) و با وزن های متفاوت هستند؛ جست و جو برای بهترین معماری کانولوشنی می تواند به جست و جو برای بهترین ساختار cell کاهش یابد. سپس با stack کردن یا پشت سر هم قرار دادن این cell ها به تعداد مطلوب، شبکه ی CNN نهایی حاصل می شود. بعلاوه در این مقاله یک تکنیک جدید برای regularization به نام ScheduledDropPath معرفی شد که بصورت چشمگیر قدرت تعمیم در مدل های NASNet را بهبود می دهد.متد ارائه شده:در متد NAS که سال 2017 معرفی شد، یک کنترلر RNN معماری A از فضای جست و جو را با احتمال p پیش بینی می کند؛ یک شبکه ی کوچک (به اصطلاح child network) با معماری A آموزش داده می شود تا دقت ارزیابی R حاصل شود. با استفاده از مقادیر دقت بدست آمده، وزن های کنترلر به روش policy gradient آپدیت می شود تا کنترلر معماری های بهتری را در طول زمان تولید کند (شکل 1).شکل 1: شمای کلی متد  NAS معرفی شده در 2017با توجه به این واقعیت که شبکه های عصبی حاصل پشت سر هم قرار گرفتن مکرر یک سری cell (متشکل از لایه های کانولوشنی، توابع غیرخطی و اتصالات بین لایه ها) می باشند، در سال 2018 راهکار جدیدی مطرح شد که طبق آن کنترلر RNN (متشکل از ماژول LSTM) بجای پیش بینی یک CNN کامل، یک cell کانولوشنی را پیش بینی کند (یا تولید کند)، سپس با stack کردن این cell ها، شبکه ی CNN نهایی حاصل خواهد شد در این راهکار جدید هم، شبکه ی بدست آمده آموزش می بیند، دقت آن محاسبه می شود و با استفاده از مقادیر دقت بدست آمده، وزن های کنترلر به کمک الگوریتم proximal policy optimization (PPO) بروز می شوند. در واقع هر شبکه با یک احتمالی ایجاد می شود، از این احتمال برای بدست آوردن گرادیان RNN استفاده می شود، این گرادیان با دقت شبکه scale می شود تا RNN به نحوی آپدیت شود که به شبکه های بد، احتمال کم و به شبکه های خوب، احتمال زیاد اختصاص داده شود. برای ساختن معماری های مقیاس پذیر برای تصاویر ورودی با ابعاد متفاوت، به دو نوع cell برای دو هدف اصلی نیاز است؛ 1. Cell های کانولوشنی که یک فیچر مپ با همان ابعاد ورودی بر می گرداند (Normal Cell) و 2. Cell های کانولوشنی که فیچر مپی بر می گرداند که ابعاد آن با ضریب دو کاهش یافته است (Reduction Cell). در لایه ی ورودی Reduction Cell،stride  برابر با 2 در نظر گرفته شده تا ابعاد کاهش یابد.در شکل 2 نحوه ی قرارگیری cell های Normal و Reduction برای دیتاست های CIFAR-10 و ImageNet نشان داده شده است. برای دیتاست ImageNet تعداد cell های Reduction بیشتر است چون ابعاد ورودی به صورت 299*299 است (در مقایسه با ابعاد ورودی در CIFAR-10 که 32*32 می باشد). این دو cell می توانند معماری مشابه داشته باشند اما یادگیری دو معماری مجزا به اینصورت، سودمندتر است. تعداد تکرار cellها، یعنی N، و همینطور تعداد فیلتر های کانولوشنی بعنوان پارامتر های آزاد در نظر گرفته شده اند که با توجه به مسئله ی طبقه بندی مقداردهی می شوند.شکل 2: معماری مقیاس پذیر به منظور طبقه بندی تصاویر برای CIFAR-10 و ImageNetساختار cell های Normal و Reduction در شبکه ی کانولوشنی متغیر است و توسط کنترلر RNN جست و جو می شود و بدست می آید. در فضای جست و جوی NAS، هر cell دو hidden state بصورت h(i) و h(i-1) دریافت می کند که این ‌ها خروجی های دو cell در دو لایه ی پایین قبلی و یا تصویر ورودی هستند. کنترلر RNN با استفاده از این دو hidden state، بصورت بازگشتی باقی ساختار  cellرا پیش بینی می کند (شکل 3). پیش بینی های کنترلر برای هر cell، در B بلوک تقسیم بندی می شود (به عبارت دیگر هر cell متشکل از B بلوک، مطابق شکل 3-ب است). هر بلوک 5 گام پیش بینی دارد که به کمک 5 softmax classifier  (طبقه‌بند سافتمکس) مجزا انجام می شود:گام 1. انتخاب یک hidden state از بین h(i) و h(i-1) یا از مجموعه ی hidden state های ساخته شده در بلوک های قبلیگام 2. انتخاب hidden state دوم از آپشن های گام 1گام 3. انتخاب یک operation (عمل) برای اعمال روی hidden stateانتخاب شده در گام 1گام 4. انتخاب یک operation برای اعمال روی hidden state انتخاب شده در گام 2گام 5. انتخاب یک روش برای ترکیب خروجی های گام 3 و 4، به منظور ساختن یک hidden stateجدیددر نهایت hidden state جدید به مجموعه ی hidden state  های قبلی اضافه می شود. این 5 گام به ازای هر بلوک (یعنی B مرتبه) تکرار می شود (در اینجا B=5  است). در گام های 3 و 4 operation مورد نظر از میان گزینه های زیر انتخاب می شود:در گام 5، کنترلر روشی برای ترکیب دو hidden state بدست آمده انتخاب می کند؛ این روش می تواند یک عملیات جمع element-wise و یا concatenation باشد. در نهایت هم همه ی hidden state های استفاده نشده که در cellایجاد شده بودند، با هم concat می شوند و خروجی نهایی cell را تولید می کنند. کنترلر در مجموع 5B*2 پیش بینی انجام می دهد (با در نظر گرفتن هر دو cell نرمال و کاهشی). هر بلوک نیاز به انتخاب 5 پارامتر گسسته دارد که هر کدام منطبق بر خروجی یک لایه ی سافتمکس است.شکل 3-الف: نحوه ی ساختن یک بلوک از cellشکل 3-ب: بلوک ساخته شدهدر شکل 4 معماری بهترین cell های کانولوشنی برای CIFAR-10 (با B=5) آورده شده است. علاوه بر این معماری، cell های کانولوشنی top-rank دیگر که بهترین عملکرد را داشتند نیز مورد ارزیابی قرار گرفتند. سه شبکه ی ساخته شده از این 3 جست و جویی که به نتایج بهتر منجر شدند، NASNet-A، NASNet-B و NASNet-C نامگذاری شده اند.شکل 4: معماری بهترین cell های کانولوشنی (NASNet-A)حین آموزش NASNet ها، نویسندگان به این نتیجه رسیدند که ScheduledDropPath، ورژن اصلاح شده ی DropPath، یک متد regularization موثرتر برای NASNet  است؛ در DropPath، هر مسیر در cell بصورت تصادفی با یک احتمال ثابت، در فرآیند آموزش حذف می شود. در ورژن اصلاح شده، هر مسیر با احتمالی که بصورت خطی در طول آموزش افزایش می یابد، حذف می شود و این کار عملکرد نهایی شبکه ها را بطور چشمگیری بهبود می دهد.نتایج بدست آمده و مزایای متد پیشنهاد شده:نرخ خطای متد جدید روی دیتاست سیفار10، 2.4% بدست آمده که بهترین نتیجه تا آن زمان بوده است. NASNet ساخته شده توسط این متد، به top-1 accuracy برابر با 82.7% و top-5 accuracy برابر با 96.2% روی دیتاست ImageNet دست یافته است. متد پیشنهاد شده از نظر top-1 accuracy  حدود  1.2% بهتر از معماری های ساخته شده توسط انسان بوده، با 9 بیلیون FLOPS* کمتر که به عبارتی 28% محاسبات را کاهش داده است. فیچر هایی که از فرآیند طبقه بندی یادگرفته شده اند، مفید و قابل انتقال به مسائل بینایی ماشین دیگر هستند. در یک تسک object detection یا شناسایی اشیا، فیچر های بدست آمده یا یاد گرفته شده توسط NASNet، با فریمورک Faster-RCNN استفاده شدند و 4% از بهترین نتیجه تا آن زمان پیشی گرفتند و روی دیتاست COCO به mAP حدود 43.1% دست یافتند.*فلاپس یا عملیات ممیّز شناور در ثانیه، واحد اندازه‌گیری سرعت پردازش داده‌ها توسط رایانه است؛ به عبارت دیگر تعداد عملیات ممیز شناوری که یک رایانه می تواند در زمان یک ثانیه انجام دهد را نشان می دهد.یکی از نوآوری های مقاله این بود که جست و جو برای یک شبکه ی کامل را به جست و جو برای بهترین ساختار cell کاهش داد؛ این کار هم فرآیند سرچ را سریعتر می کند و هم قدرت تعمیم بهتری دارد. با این رویکرد معرفی شده، جست و جو برای بهترین معماری روی دیتاست CIFAR-10 هفت برابر سریعتر شد؛ با متد قبلی فرآیند سرچ 28 روز طول می کشید، اما با متد ارائه شده، پس از گذشت 4 روز الگوریتم به نتیجه می رسد. بعلاوه استفاده از تکنیک جدید برای regularization که پیش تر به آن اشاره کردیم، عملکرد شبکه و قدرت تعمیم آن را نیز بصورت چشمگیری بهبود داد.2. Progressive Neural Architecture Searchنوآوری های مقاله:در جولای 2018 زوف به همراه تیم دیگری یک مقاله ی جدید منتشر کردند. در این مقاله به جای استفاده از روش های یادگیری تقویتی و الگوریتم های تکاملی، استفاده از بهینه سازی مبتنی بر مدل ترتیبی یا SMBO  پیشنهاد شده است چرا که متد های مبتنی بر RL و EA بار محاسباتی قابل توجهی به همراه داشتند (در متد قبلی فرآیند سرچ به مدت 4 روز زمان می برد). در متد جدید معرفی شده، جست و جو برای ساختار مناسب، از مدل های ساده شروع شده و به مدل های پیچیده تر می رسد؛ در همین حین یک مدل جایگزین بطور همزمان آموزش می بیند تا فرآیند سرچ در فضای ساختارهای cell را هدایت کند. در iteration یا تکرار b ام از الگوریتم، K تعداد cell نماینده داریم که هر کدام b بلوک دارند. این K تا cell با سایز b را به K&#x27;&gt;&gt;K تا cell با سایز b+1 افزایش می دهیم (یک بلوک اضافه می شود). از آنجا که آموزش و ارزیابی این تعداد cell روی دیتاست مدنظر پرهزینه است، یک مدل یا تابع جایگزین هم آموزش می بیند تا بدون نیاز به آموزش همه ی ساختار ها، عملکرد آن ها را پیش بینی کند. سپس این تابع جایگزین را به همه ی &#x27;K تا ساختار اعمال می کنیم تا آن ها را رتبه بندی کند؛ در ادامه K ساختار برتر را آموزش داده و ارزیابی می کنیم. این روند را تا زمانیکه b=Bشود، تکرار می کنیم (B ماکزیمم تعداد بلوک هاست). بعلاوه در بخش بعد توضیح می دهیم که با این متد جدید، فضای جست و جو به میزان قابل توجهی کاهش یافته است و این امر فرآیند سرچ را تسریع می کند. همچنین به جای جست و جوی برای دو cell نرمال و کاهشی، یک نوع cell در این متد یاد گرفته می شود.متد ارائه شده:این متد نیز مشابه متد قبلی، یک رویکرد سلسله مراتبی را بکار می برد؛ ابتدا یک ساختار cell یادگیری می شود سپس از stack کردن این cell ها به تعداد مطلوب، CNN نهایی حاصل می شود. همانطور که اشاره شد، هر cell حاوی تعدادی بلوک است؛ هر بلوک را می توان با یک تاپل 5 تایی بصورت (I1,I2,O1,O2,C) مشخص کرد. I1 و I2 (متعلق به مجموعه ی Ib) ورودی های بلوک، O1 و O2 (متعلق به مجموعه ی O) عملیاتی است که به ورودی Ii اعمال می شود. C هم مشخص می کند که چگونه O1 و O2 ترکیب شوند تا فیچر مپ متناظر با خروجی بلوک (Hb) تولید شود. مجموعه ی ورودی های ممکن، شامل خروجی بلوک های قبلی بعلاوه ی خروجی cell قبلی یا خروجی دو cell قبلی است. فضای عملگر ها هم شامل 8 عملگر زیر است:در متد NAS 2018، تعداد عملگر ها 13 تا بود؛ در این مقاله، عملگر هایی که توسط متد RL هرگز مورد استفاده قرار نمی گرفتند حذف شده است. بعلاوه نویسندگان به این موضوع پی بردند که در متد قبلی، روش ترکیب concatenation بکار نمی رود؛ بنابراین برای کاهش فضای جست و جو، تنها از روش جمع بعنوان عملگر ترکیب استفاده می شود. اگر بخواهیم سایز فضای ساختار های ممکن برای بلوک b ام (که با |Bb| نمایش داده می شود) را حساب کنیم، مقدار آن برابر خواهد بود با:اگر هر cell 5 تا بلوک داشته باشد، تعداد کل ساختار های cell برابر است با:قطعا بخاطر تقارن موجود در این فضا، تعدادی از این ساختار ها را می توان حذف کرد؛ بنابراین تعداد cell های یونیک تقریبا از مرتبه ی 12^10 است که در مقایسه با فضای سرچ متد قبلی، که از مرتبه ی 28^10 بود، بسیار کوچکتر است.در بسیاری از رویکرد های قبلی، بطور مستقیم در فضایی مملو از cell ها، یا حتی بدتر، در فضایی از CNN ها، به دنبال ساختار مناسب بودیم. در متد NAS، یک کنترلر RNN در 50 گام بکار گرفته می شد تا ساختار مناسبی برای cell حاصل شود. اما جست و جوی در فضایی که بصورت نمایی در حال بزرگ شدن است، کار سختی می باشد؛ خصوصا در شروع کار که هیچ اطلاعاتی از مدل خوب و مناسب در اختیار نیست. بنابراین در این پژوهشی که زوف و تیمش انجام دادند، پیشنهاد شد که فرآیند جست و جو بصورت progressive یا جلو رونده انجام شود. مطابق شکل 5، فرض می کنیم حداکثر تعداد بلوک ها B=3 است؛ بعلاوه S1 مجموعه ی cell های کاندید متشکل از b بلوک را نشان می دهد. برای شروع، تمام cell های متشکل از یک بلوک را درنظر می گیریم (که تعدادشان B1 تاست)، S1=B1، تمام این cell ها را آموزش داده و ارزیابی می کنیم، سپس predictor  را آپدیت می کنیم. در iteration دوم، cell های S1 را گسترش می دهیم تا تمام cell های ممکن با  2 بلوک حاصل شود (که تعدادش برابر است با:و  S&#x27;2=B1:2، امتیاز این cell ها را پیش بینی می کنیم و K تای اول را بر می گزینیم تا S2 بدست آید. این K ساختار را آموزش داده و ارزیابی می کنیم و مجددا predictor  را آپدیت می کنیم. در iteration سوم، هر کدام از cell های S2 را گسترش می دهیم تا زیر مجموعه ای از cell های ممکن با 3 بلوک حاصل شود، S&#x27;3 زیرمجموعه ای از B1:3، امتیاز این cell ها را پیش بینی می کنیم و K تای اول را انتخاب می کنیم تا S3 بدست آید. این K ساختار را آموزش داده و ارزیابی می کنیم و ساختار برنده را بر می گردانیم. Bb تعداد بلوک های ممکن در مرحله ی b ام است. شکل 5: متد PNASهمانطور که اشاره شد، نیاز است تا امتیاز ساختار های موجود در هر مجموعه ی S&#x27;b پیش بینی شود، چون آموزش و ارزیابی این ساختار ها بسیار پرهزینه و زمانبر است؛ بنابراین مکانیزمی لازم است تا عملکرد یک cell را پیش از آنکه آموزشش دهیم، پیش بینی کنیم. حداقل سه ویژگی مطلوب برای چنین مدل پیشگویی وجود دارد: predictor  باید عملکرد هر cell با b+1 بلوک را پیش بینی کند، حتی اگر تنها روی cell های با حداکثر b بلوک آموزش دیده باشد؛ نیاز نیست که این مدل پیشگو به حداقل میانگین خطای مربعات دست یابد، اما باید قادر باشد مدل ها را دقیقا طبق عملکرد واقعی آنها، رتبه بندی کند؛ همچنین می خواهیم با حداقل تعداد cell ها، predictor را آموزش دهیم، یعنی تعداد داده های آموزشی کم خواهد بود. برای مدل پیشگو دو مدل متفاوت پیشنهاد شده است: داشتن ویژگی اول، بی درنگ استفاده از یک RNN را پیشنهاد می دهد، به همین منظور از یک LSTM استفاده شده که یک توالی به طول 4b (که I1 و I2 و O1 و O2 را برای هر بلوک نشان می دهد) را می خواند، در هر استپ ورودی یک بردار one-hot با سایز |Ib| یا |O| است. برای I1 و I2 از یک embedding مشترک با ابعاد D و برای O1 و O2 هم از یک embedding مشترک دیگر استفاده شده است. hidden state نهایی LSTM از یک لایه ی FC و سیگموئید می گذرد تا دقت ساختار بدست آید. علاوه بر این مدل RNN، یک مدل MLP هم بعنوان predictor پیاده سازی شده که در آن هر cell به یک بردار با طول ثابت تبدیل می شود، به این صورت که I1 و I2 و O1 و O2 هر کدام به شکل یک بردار D بعدی در می آیند، این بردار ها با هم concat شده و یک بردار 4D بعدی بدست می آید و درنهایت از این بردار های 4D بعدی بدست آمده برای هر بلوک، میانگین گرفته می شود. هر دو مدل با لاس L1 آموزش می بیند. برای آپدیت پارامترهای predictor می توان از الگوریتم SGD هم بهره گرفت؛ اما چون sample size خیلی کوچک است، گروهی از 5 مدل پیشگو، هر کدام با 4/5 داده های در دسترس، آموزش داده می شود؛ این روش واریانس پیش بینی را کاهش می دهد. شکل 6 بهترین ساختار cell که با استفاده از متد PNAS بدست آمده را نشان می دهد. برای تشکیل شبکه های CNN روی دیتاست های CIFAR-10 و ImageNet، از استراتژی بکار رفته در متد NAS (stack کردن cell ها با stride 1 و 2) استفاده شده است. در انتهای شبکه، از یک global average pooling و بدنبال آن، یک لایه ی طبقه بندی سافتمکس بکار رفته است. برای دیتاست ImageNet هم یک لایه ی کانولوشنی 3*3 با stride=2، به منظور کاهش هزینه قرار گرفته است. در کل، ساختار CNN بدست آمده با این متد، مشابه متد قبلی است، با این تفاوت که در اینجا از یک نوع cell استفاده شده (تفاوتی بین cell نرمال و کاهشی در نظر گرفته نشده است) و بجای قرار دادن Reduction cell، یک cell نرمال با stride=2 بکار رفته است.شکل 6: ساختار بهترین cell با استفاده از PNASنتایج بدست آمده و مزایای متد پیشنهاد شده:عملکرد PNASNet-5 روی دیتاست ImageNet، در مقایسه با NASNet-A، از منظر دقت CNN بدست آمده، کمی بهبود یافته است، با top-1 accuracy برابر با 82.9% و top-5 accuracy برابر با 96.2%. اما از نظر تعداد مدل هایی که باید ارزیابی شود، 5 برابر از متد NAS کارآمد تر و از نظر محاسبات کلی 8 برابر سریعتر است. همانطور که در بخش های قبل توضیح داده شد، فضای جست و جوی متد پیشنهاد شده، در مقایسه با متد قبلی، به میزان قابل توجهی کوچکتر است، این امر فرآیند سرچ برای یافتن بهترین ساختار را تسریع می کند، بعلاوه می توان مدل هایی با تعداد بلوک بیشتر را جست و جو کرد.3. MnasNet: Platform-Aware Neural Architecture Search for Mobileنوآوری مقاله:در سال های اخیر شبکه های عصبی کانولوشنی، در طبقه بندی تصاویر، شناسایی اشیا و بسیاری از کابردهای دیگر پیشرفت چمشگیری داشتند؛ هرچه مدل های CNN بزرگتر و عمیق تر می شوند، کندتر شده و به محاسبات بیشتری نیاز دارند. بنابراین deploy کردن چنین مدل هایی روی پلتفرم هایی نظیر دستگاه های موبایل یا دستگاه های تعبیه شده، کار سختی خواهد بود. از این رو پژوهش های اخیر روی طراحی و بهبود مدل های CNNموبایل متمرکز شده اند و به کاهش عمق شبکه و استفاده از عملگر های کم هزینه تر نظیر depthwise کانولوشن و group کانولوشن پرداخته اند. چالش اصلی در طراحی این است که مدل بدست آمده باید هم کوچک و سریع باشد و هم دقت خوبی داشته باشد. در متد ارائه شده ابتدا مسئله ی طراحی در قالب یک مسئله ی بهینه سازی multi-objective یا چند هدفه به نحوی بیان می شود که هر دو معیار دقت و تاخیر مدل درنظر گرفته شود. برخلاف متد های قبلی، در این متد بجای تخمین دقت، با اجرا کردن مدل روی دستگاه موبایل واقعی، تاخیر بصورت مستقیم اندازه گیری می شود. بعلاوه در متد های پیشین، جست و جو میان تعداد محدودی cell انجام شده و سپس این cellدر سراسر شبکه تکرار می شد؛ هرچند که این کار فرآیند سرچ را ساده تر می کند اما تنوع لایه در شبکه که برای efficient بودن محاسبات مهم است را از بین می برد؛ از این رو در این پژوهش، یک فضای سرچ سلسله مراتبی فاکتوریزه شده (Factorized Hierarchical Search Space) معرفی شده که با حفظ تعادل بین انعطاف پذیری و اندازه ی فضای سرچ، اجازه می دهد لایه ها از نظر معماری متفاوت باشند.متد ارائه شده:ابتدا مسئله ی طراحی را در قالب یک مسئله ی بهینه سازی بیان می کنیم: اگر فرض کنیم برای مدل داده شده ی m، ACC(m) دقت مدل روی تسک در نظر گرفته شده، LAT(m) تاخیر مدل روی پلتفرم مورد نظر، همچنین T تاخیر مورد نظر باشد، یک راه حل رایج این است با قید LAT(m)&lt;=T دقت مدل را بیشینه کنیم؛ اما این روش پاسخ های پرتو آپتیمال نمی دهد (چون فقط معیار دقت را بیشینه می کند). از این رو تابع هدف دیگری، به اینصورت در نظر گرفته شده است:است. آلفا و بتا ثوابتی هستند که بسته به کاربرد، مقادیر مشخصی می گیرند.در متد ارائه شده، فرآیند جست و جو به اینصورت است که یک مدل CNNبه تعدادی بلوک یونیک شکسته می شود، هر بلوک متشکل از تعدادی لایه ی تکرار شده ی مشابه است، در هر بلوک، جست و جو برای عملیات و اتصالات مناسب برای یک تک لایه انجام می شود، سپس لایه ی بدست آمده، N مرتبه تکرار می شود. مطابق شکل 7، لایه های بلوک 2 با لایه های بلوک 4 می تواند متفاوت باشد؛ لایه ی 1-4 و 2-4 مشابه، ولی لایه های 1-2 و 1-4 متفاوتند.شکل 7: فضای جست و جوی سلسله مراتبی فاکتوریزهسمت راست شکل فوق، نشان می دهد که زیرفضای جست و جو برای بلوک i شامل چه انتخاب هایی است؛ 5 مورد اول در ارتباط با معماری هر لایه و مورد آخر در ارتباط با تعداد دفعات تکرار لایه است.شکل 8: معماری MnasNet-A1 مزیت متد سلسله مراتبی فاکتوریزه این است که اگر شبکه شامل Bبلوک باشد و سایز زیرفضای سرچ برای هر بلوک S باشد، سایز فضای سرچ برابر است با  S به توان B ؛ در حالیکه اگر بجای استفاده از این متد، برای هر لایه (از یک بلوک) بصورت مجزا جست و جو انجام شود، سایز فضای سرچ برابر می شود با S به توان B*N   (با فرض اینکه N متوسط تعداد لایه ها در هر بلوک باشد)؛ که در این صورت فضای سرچ خیلی بزرگ و فرآیند سرچ خیلی کند خواهد شد.در نهایت برای پیدا کردن پاسخ های پرتو آپتیمال مسئله ی بهینه سازی چند هدفه، مشابه متد NAS از رویکرد یادگیری تقویتی استفاده شده است. در الگوریتم بکار رفته، مدل CNN با یک توالی از اکشن های انتخاب شده توسط یادگیر a1:T، مشخص می شود. هدف ماکزیمم کردن امید ریاضی پاداش است:در اینجا m مدلی است که توسط اکشن a1:T تعیین شده، R(m) همان پاداش است که طبق رابطه ی زیر محاسبه می شود. طبق شکل 8، فریمورک معرفی شده شامل سه جزء است: کنترلر RNN، یک trainer برای بدست آوردن دقت مدل، و یک تلفن همراه برای اندازه گیری تاخیر. از یک الگوریتم نمونه‌-ارزیابی-بروزرسانی استفاده میشد تا کنترلر آموزش ببیند: در قدم اول، کنترلر با پارامتر های فعلی و با پیش بینی توالی هایی از اکشن ها، یک batch مدل ایجاد می کند؛ هر مدل m روی تسک مورد نظر آموزش می بیند تا دقت ACC(m) حاصل شود و روی تلفن های واقعی اجرا می شود تا تاخیر LAT(m) نیز بدست آید. سپس پاداش R(m) محاسبه می شود؛ درنهایت با استفاده از الگوریتم PPO و با ماکزیمم کردن امید ریاضی پاداش ها، پارامتر های کنترلر آپدیت می شود. این الگوریتم تا همگرا شدن پارامتر های کنترلر و یا حداکثر شدن تعداد تکرار، اجرا خواهد شد.نتایج بدست آمده و مزایای متد پیشنهاد شده:نتایج بدست آمده از آزمایش ها نشان می دهد که رویکرد معرفی شده (MnasNet)، نسبت به مدل های CNNموبایل که پیش تر ارائه شده، عملکرد بهتری دارد. در تسک طبقه بندی روی دیتاست ImageNet، متد MnasNet به top-1 accuracy حدود 75.2% و تاخیر 78 میلی ثانیه روی یک گوشی Google Pixel دست یافته است که 1.8 برابر سریعتر از MobileNetV2است و 0.5% دقت بیشتری دارد؛ این متد 2.3 برابر سریعتر از NASNetاست و 1.2% دقت بیشتری دارد. MnasNet در مقایسه با مدل ResNet-50به دقت بالاتر (76.7%) می رسد، با 4.8 برابر پارامتر کمتر و 10برابر عملیات جمع و ضرب کمتر. اگر مدل ارائه شده را به منظور استخراج ویژگی در یک فریمورک شناسایی اشیای SSD (Single Stage Detector) استفاده کنیم، روی دیتاست COCO به تاخیر کمتر و mAP بهتر نسبت به ورژن های 1 و 2 MobileNet دست می یابد.تحلیل و نتیجه گیری کلی:در متد NAS سال 2018، پیشنهاد شد که بجای اینکه جست و جو را برای پیدا کردن معماری کامل یک شبکه ی CNN روی یک دیتاست بزرگ انجام دهیم، شبکه را بصورت چند سِلِ stack شده در نظر بگیریم و در فضای سرچ بدنبال بهترین ساختار برای cell های کانولوشنی مقیاس پذیر، روی یک دیتاست کوچکتر باشیم به نحوی قابل انتقال به دیتاست های بزرگتر و تسک های طبقه بندی دیگر باشد. این کار فرآیند سرچ را به میزان قابل توجهی تسریع می کند چون فضای سرچ کوچکتر می شود، محاسبات بشدت کاهش می یابد و الگوریتم 7 برابر سریعتر عمل می کند. بعلاوه اینکه CNN بدست آمده با این متد دقت خوبی هم می دهد؛ اما همچنان فرآیند جست و جو زمان قابل توجهی می برد (4 روز). چند ماه متد جدیدتری با نام PNAS ارائه شد که در آن بجای استفاده از الگوریتم یادگیری تقویتی برای رسیدن به ساختار مناسب cell، از یک متد بهینه سازی مبتنی بر مدل ترتیبی استفاده می شد؛ در این متد progressive، جست و جو از ساده ترین ساختار با یک بلوک شروع می شود و در هر تکرار، بلوک دیگری اضافه می شود. بعلاوه تعداد operation هایی که در هر cell انتخاب می شود، کمتر شده و در مجموع سایز فضای جست و جو بشدت کاهش می یابد (قابل ذکر است که برخلاف متد NAS بجای جست و جو برای دو ساختار cell نرمال و کاهشی، جست و جو تنها برای یک مدل cell انجام می شود). با این روش، تعداد مدل هایی که باید ارزیابی شود 5 برابر کمتر و محاسبات 8 برابر سریعتر می شود.چالش دیگر این است که مدل CNN ای که در دستگاه های قابل حمل و موبایل بکار می رود، باید کوچک، سریع (با تاخیر خیلی کم) و در حین حال دقیق باشد. متد NAS ارائه شده برای پیدا کردن چنین مدلی خیلی کارآمد نیست؛ بنابراین سال 2019 متدی به نام MnasNet ارائه شد که در آن مسئله ی جست و جو برای مدل، به یک مسئله ی بهینه سازی چند هدفه تبدیل می شود که هر دو متریک دقت و تاخیر را مورد توجه قرار می دهد؛ همچنین بجای بدست آوردن تخمین نادقیقی از تاخیر، مدل مورد نظر روی یک تلفن همراه واقعی اجرا می شود تا مقدار واقعی تاخیر بصورت مستقیم بدست آید. از طرفی در دو متد قبل، یک ساختار cell بدست می آمد، این ساختار N مرتبه تکرار و CNN نهایی ساخته می شد؛ این رویکرد هرچند که ساده تر است، اما چون تنوع لایه در شبکه وجود ندارد، محاسبات بشدت inefficient می شود. در MnasNet  مدل CNN به چند بلوک تفکیک می شود و فرآیند جست و جو برای هر بلوک بصورت مجزا انجام می شود، لایه های داخل هر بلوک مشابه همند با با لایه های بلوک های دیگر تفاوت دارند؛ استفاده از این رویکرد تنوع لایه در شبکه و نیز دقت شبکه را نسبت به متد دیگر افزایش می دهد.گردآورنده: کیمیا علوی</description>
                <category>Kimia Alavi</category>
                <author>Kimia Alavi</author>
                <pubDate>Sun, 24 Apr 2022 14:08:29 +0430</pubDate>
            </item>
            </channel>
</rss>