<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های Farzaneh Ramezani</title><link>https://virgool.ir/feed/@ramezani.f69</link><description></description><language>fa</language><pubDate>2026-11-12 07:31:55</pubDate><image><url>https://files.virgool.ir/upload/users/710895/avatar/avatar.png</url><title>Farzaneh Ramezani</title><link>https://virgool.ir/@ramezani.f69</link></image><item><title>بررسی مقاله ReBNet: Residual Binarized Neural Network</title><link>https://virgool.ir/@ramezani.f69/بررسی-مقاله-rebnet-residual-binarized-neural-network-m9wbvtxtq5aq</link><description>1. مقدمه :با گسترش حوزه IOT استفاده از برنامه های یادگیری ماشین در دستگاه های تعبیه شده را افزایش داده است. شبکه‌های عصبی کانولوشنال (CNN) به طور چشم گیری در انواع برنامه‌های یادگیری ماشین استفاده می‌شوند لذا توسعه شتاب‌دهنده‌های سخت‌افزاری بلادرنگ و کم مصرف به‌ویژه برای سیستم های با منابع محدود حیاتی است. اما پیچیدگی محاسباتی و ردپای حافظه این شبکه ها موانعی برای اجرای کارآمد بر روی دستگاه های تعبیه شده است.کارهایی برای کاهش پیچیدگی محاسباتی و ردپای حافظه CNN ها انجام شده بطور مثال استفاده از تکنیک‌های بهینه‌سازی شامل تجزیه تانسور tensor decomposition ، کوانتیزاسیون پارامتر parameter quantization ، کانولوشن‌های پراکنده sparse convolutions و آموزش شبکه‌های عصبی باینری training binary neural networks که در این بین شبکه های باینری از مزایایی برخوردارند که اخیرا مورد توجه بسیاری از محققین قرار گرفته اند البته چالش هایی نیز به همراه دارد که در ادامه بررسی می کنیم.مزایای شبکه های باینری :(1) آنها ردپای حافظه را در مقایسه با مدل‌های با پارامترهای نقطه ثابت کاهش می‌دهند چراکه وزن ها و/یا فعال سازها را بصورت باینری ذخیره می کنند.(2) زمان اجرا و مصرف انرژی را به میزان قابل توجهی کاهش می‌دهد چراکه CNNهای دودویی ضربهای بامصرف انرژی بالا را با عملیات ساده XNOR جایگزین می‌کنند.(3) معماری جریان داده CNN های باینری به طور قابل ملاحظه ای ساده تر از همتایان نقطه ثابت آنها است.چالش های آموزش CNN های باینری :(1) مرحله آموزش شبکه‌های عصبی باینری اغلب کند است.(2) دقت طبقه‌بندی در این مدل ها معمولاً کمتر از مدل هایی با پارامترهای دقیق است.برای رفع این چالش ها تلاش هایی انجام گرفته مثلا در مقاله [2] ثابت شده آموزش شبکه های وسیع تر دقت را بهبود می دهد اما این روش سادگی شبکه های باینری را ازبین می برد.در[3] استفاده از عوامل مقیاس‌گذاری (scaling factors) که با میانگین‌گیری ویژگی‌ها در طول استنتاج محاسبه می‌شوند، دقت را بهبود بخشیده اما سادگی شتاب‌دهنده CNN باینری را با اضافه کردن محاسبات با دقت کامل اضافی ، به جریان محاسباتی لایه‌های CNN باینری قربانی می‌کند.به طور مشابه، در [4] روندهای متعدد محاسبه میانگین مقدار مطلق فعال‌سازی‌های ورودی را داریم که هزینه محاسباتی بیش از حد را در طول فاز استنتاج تحمیل می‌کندشبکه های عصبی سه تایی از نظر دقت استنتاج از CNN های باینری پیشی گرفته اند اما از مزایای عملیات ساده XNOR محروم هستند.برای پاسخ به چالش های مطرح شده این مقاله ReBNet را پیشنهاد می‌کند، یک چارچوب سرتاسر برای آموزش CNNهای باینری بصورت قابل تنظیم مجدد در نرم‌افزار و توسعه شتاب‌دهنده‌های سخت‌افزاری کارآمد برای اجرا در FPGA.  در این مقاله قسمت شتاب دهنده توضیح داده نشده است برای اطلاع بیشتر میتوانید به مقاله اصلی مراجعه نمایید.مزیت ReBNet نسبت به کارهای قبلی این است که تعداد سطوح باینری‌سازی را می‌توان برای برنامه‌های مختلف بدون تغییرات سخت‌افزاری قابل ملاحظه ای، تنظیم کرد. دقت ReBNet را می‌توان با استفاده از 2 یا 3 سطح باینری‌سازی باقی‌مانده residual binarization با سربار سطح ناچیز، بهبود بخشید. خوشبختانه طراحی باینری سازی باقیمانده ReBNet با عملیات استاندارد XnorPopcount سازگار است.2. مقدمه ای بر شبکه های باینری:پیش از توضیح کامل فریم ورک ReBNet باید کمی در مورد عملیات CNN های باینری و پیاده سازی سخت افزاری آنها بدانیم.عملیات CNN باینری شبکه های عصبی از لایه های کانولوشن متعدد، کاملاً متصل، فعال سازی، نرمال سازی دسته ای و maxpooling تشکیل شده اند که Binarization آنها را ساده تر می کند.ا- Binary dot product: عملیات لایه های کانولوشنی و کاملا متصل بصورت ضرب نقطه ای بین بردار وزن و بردار ویژگی انجام می شود درواقع یک ضرب نقطه‌ای، حاصلضرب عناصر بردار ویژگی  X و بردار وزن  W  را جمع می‌کند. در شبکه های باینری عناصر X   و  W  به ترتیب به مقادیر باینری  γx+-  و γw+-   محدود می شوند. فرض کنید    X=γx Sx   و  W=γw Sw که در آن { γx ; γw  }مقادیر اسکالر هستند و {Sx ; Sw } بردارهای علامتی اند که عناصر آنها 1+ یا 1- هستند. اگر مقادیر علامت (1- به 0 و 1+ به 1) را رمزگذاری کنیم، بردارهای دودویی {bx ; bw} را به دست خواهیم آورد. حاصل ضرب نقطه ای این بردارها را می توان با استفاده از عملیات XnorPopcount طبق فرمول زیر بدست آورد. شکل1 این عملیات را نشان می دهد.شکل 1 معادل بودن عملیات dotProduct (بالا) و XnorPopcount (پایین). (p تعداد بیت های 1 و N اندازه بردار).ا- Binary activation: تابع فعال ساز باینری یک ورودی y را با استفاده از یک بیت بر اساس علامت y رمزگذاری می کند. بنابراین، پیاده سازی سخت افزاری فقط به یک مقایسه کننده نیاز دارد.ا- Binary batch-normalization: نتیجه حاصلضرب نقطه ای y = dot( X ; W ) را معمولا قبل از ارسال آن به تابع فعال ساز باینری که در بالا توضیح داده شد، نرمال سازی می کنیم. یک لایه نرمال‌سازی دسته‌ای، هر ورودی y را به  αy-β  تبدیل می‌کند، که  α  و   β پارامترهای لایه هستند. با ترکیب لایه‌های نرمال‌سازی دسته‌ای و فعال‌سازباینری در یک لایه، فقط نیاز به مقایسه با مقدار آستانه  β/α داریم.ا- Binary max-pooling: عملیات max-pooling را می توان با استفاده از element wise OR انجام داد.شکل 2 هم ارزی عملیات max-pooling بر روی ویژگی های باینریزه (سمت چپ) و عملیات OR بر روی ویژگی های رمزگذاری شده (راست)3. چهارچوب ReBNetعملیات RESIDUAL BINARIZATIONدر ReBNet یک کتابخانه نرم افزاری، معماری CNN را از کاربر دریافت می کند و با تعداد مشخصی از سطوح RESIDUAL BINARIZATION مدل را آموزش می دهد.در باینری سازی چند سطحی خطاهای باقی‌مانده هرسطح به‌طور متوالی باینری می‌شوند تا دقت عددی تقریب افزایش یابد. شکل 2 روش تقریب یک ورودی نقطه ثابت x به مقدار دودویی چندسطحی e را ارائه می دهد. برای باینری سازی در M سطح به یک مجموعه Mتایی از فاکتورهای مقیاس بندی(scaling factors)    {γ1 ; γ2;...; γm} نیاز است که همین مجموعه برای همه ویژگی های مربوط به یک لایه CNN خاص استفاده و در نتیجه ورودی به M بیت کد می شود. فاکتورهای مقیاس بندی درطول مرحله آموزش بروز می شوند.شکل 3 نمایش تولید Mسطح باینری{b_1, b_2, …,b_M} برای عدد اعشاری x در چهارچوب ReBNetدر سطح اول باینریزه کردن ورودی X را با  γ1+  یا γ1-   بر اساس علامت X تقریب و سپس خطای باقیمانده r2 = x - γ1 *sign(x)   محاسبه می شود.سطح دوم باینریزه کردن r2 را بر اساس علامت r2 با  γ2+  یا γ2-   تقریب می‌کند، سپس خطای باقیمانده  r3 = r2 - γ2 *sign(r2) را محاسبه می‌کند. و این عملیات M بار تکرار می شود.بطور کلی یک ورودی x میتواند به صورت زیر بدست آید.الگوریتم۱ مراحل کد کردن M بیت را برای فعال‌ساز نمایش می دهد.الگوریتم۱ M سطح باینری معرفی‌شده در چهارچوب ReBNetشکل 4 تصویر تابع فعال سازی باینریزه. (a)باینری شدن 1 سطحی مرسوم. (b) باینریزه شدن باقیمانده با دو سطح.آموزش شبکه عصبی باینری چند سطحی:درآموزش شبکه عصبی باینری مرحله انتشار رو به جلو با استفاده از تقریب های باینری پارامترها و ویژگی ها انجام می شود. با این حال، در مرحله انتشار به عقب، پارامترهای با دقت کامل به روز می شوند و پس ازآموزش شبکه پارامترهای با دقت کامل نیز باینریزه شده و برای استنتاج بهینه استفاده می شوند.محاسبه گرادیان تابع هزینه: با فرض آنکه تابع هزینه    باشد و مقدار ویژگی   بصورتی که بالا گفته شد تخمین زده شود داریم :4. نتایج :و API نرم افزار با استفاده از کتابخانه Keras پیاده سازی شده و چهار دیتاست : CIFAR-10، SVHN، MNIST و ILSVRC-2012 (Imagenet) با سه مدل با سایز های کوچک و متوسط ویزرگ مورد بررسی قرار گرفت. شبکه کوچک شامل لایه های کاملا متصل برای داده های MNIST پیاده سازی شده که آن را Arch-1 می نامیم. مجموعه داده های CIFAR-10 و SVHN بر روی یک شبکه عصبی کانولوشنال متوسط به نام Arch-2 ارزیابی می شوند. در نهایت، مجموعه داده Imagenet بر روی یک شبکه نسبتا بزرگ به نام Arch-3 ارزیابی می شود. جدول1 جزئیات معماری هر شبکه را نشان می دهد.جدول 1 معماری شبکه برای معیارهای ارزیابی. C64 (P;S) یک کانولوشن با 64 کانال خروجی را نشان می دهد. اندازه هسته کانولوشن 3×3 و گام 1 است مگر اینکه خلاف آن ذکر شده باشد. D512(P;S) به معنای یک لایه کاملا متصل با 512 خروجی است. اعداد (P;S) نشان دهنده دو عامل موازی (تعداد PE، SIMD-عرض) برای لایه ها هستند. MP2 مخفف 2 × 2 max pooling است، BN نشان دهنده عادی سازی دسته ای است. Residual Binarization با استفاده از RB نشان داده شده است.موازنه دقت و کارایی :دقت یک CNN باینری به معماری شبکه و تعداد دوره های آموزشی بستگی دارد. همانطور که در منحنی های یادگیری (دقت در مقابل دوره) در شکل 5 مشاهده می کنید، افزایش M هم سرعت همگرایی و هم دقت نهایی قابل دستیابی را بهبود می بخشد. از طرف دیگر، M بالاتر به زمان محاسبات بیشتری در طول اجرا نیاز دارد. جدول 2 دقت و توان عملیاتی ReBNe را با روش باینری سازی مرسوم مقایسه می کند. حتی با 1 سطح باینری سازی، این روش از نظر دقت از طراحی FINN پیشی می گیرد، که به دلیل فاکتورهای مقیاس پذیر قابل آموزش ReBNet است.جدول 2 مقایسه دقت و توان عملیاتی بین طراحی FINN و ReBNet.شکل 5 دقت ReBNet در چهار بنچ   مارک مختلف5. نتیجه گیری :در خلاصه ی این مقاله ابتدا شبکه های باینری ، عملیات اصلی این شبکه ها و مزایا و چالش های آن هارا و سپس عملیات باینری سازی باقیمانده معرفی شده در فریم ورک ReBNet و آموزش شبکه های باینری چندسطحی را توضیح دادیم. درقسمت نتایج نشان دادیم با افزایش سطح باینری سازی تا 3 سطح دقت شبکه افزایش قابل توجهی داشته و حتی درحالتی که یک سطح استفاده شده بع خاطر استفاده از فاکتورهای قابل آموزش در حین آموزش دقت بدست آمده از فریم ورک پیشرفته FINN پیشی می گیرد.5. مراجع :[1]: ReBNet: Residual Binarized Neural Network, The 26th IEEE International Symposium on Field-Programmable Custom Computing Machines , 2018, https://arxiv.org/abs/1711.01243[2]: Finn: A framework for fast, scalable binarized neural network inference, in Proceedings of the 2017 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays[3]: Xnor-net: Imagenet classification using binary convolutional neural networks, in European Conference on Computer Vision ,2016[4]: How to train a compact binary neural network with high accuracy?, in AAAI, 2017</description><category>Farzaneh Ramezani</category><author>Farzaneh Ramezani</author><pubDate>Mon, 20 Jun 2022 02:32:13 +0430</pubDate></item><item><title>بررسی مقاله  SoftTriple Loss- Deep Metric Learning Without Triplet Sampling</title><link>https://virgool.ir/@ramezani.f69/بررسی-مقاله-softtriple-loss-deep-metric-learning-without-triplet-sampling-mdcvx9kka5eq</link><description>1. مقدمه :کاربردهای شبکه‌های عصبی در سال‌های اخیر از تقسیم‌بندی تصویر گرفته تا پردازش زبان طبیعی تا پیش‌بینی سری‌های زمانی به طور قابل توجهی گسترش یافته است. یکی از کاربردهای موفقیت‌آمیز یادگیری عمیق،جاسازی یا  Embeddingاست، روشی که برای نمایش متغیرهای گسسته به عنوان بردارهای پیوسته استفاده می‌شود. این تکنیک کاربردهای عملی با جاسازی کلمه برای ترجمه ماشینی و جاسازی موجودیت برای متغیرهای طبقه‌بندی پیدا کرده است.Distance metric learning (DML)یادگیری متریک فاصله (DML) برای یادگیری Embeddingهایی است که در آن نمونه‌های یک کلاس نزدیک‌تر از نمونه‌های کلاس‌های دیگر هستند و می توان آن را به عنوان یک مسئله بهینه سازی با محدودیت های سه گانه درنظر گرفت. کاربردهای آن مانند طبقه بندی k-نزدیک ترین همسایه ، بازیابی تصویر و خوشه بندی امروزه به طور گسترده مورد مطالعه قرار گرفته است.به عنوان مثال یک روش محاسبه فاصله، استفاده از فاصله Mahalanobis است که M در آن متریک فاصله آموخته شده است:چالش اول : چالش اصلی DML ابعاد فضای ورودی است. به عنوان یک متریک، ماتریس آموخته شده M باید نیمه معین مثبت (PSD) باشد در حالی که هزینه نگهداری ماتریس PSD می تواند تا O(d3) باشد، که در آن d ابعاد ویژگی های اصلی است.راه حل : جاسازی‌ها را میتوان مستقیماً از شبکه‌های عصبی عمیق آموخت که به آن Deep Metric Learning می گویند. بدون استخراج ویژگی صریح، یادگیری متریک عمیق عملکرد را بصورت قابل توجهی افزایش می دهد. در یادگیری متریک عمیق ، ابعاد ویژگی‌های ورودی دیگر چالشی نیست زیرا شبکه‌های عصبی می‌توانند ویژگی‌های کم‌بعد را مستقیماً از داده های خام، مانند تصاویر، اسناد و غیره بیاموزند.چالش بعدی : ایجاد محدودیت‌های مناسب برای بهینه‌سازی برای یادگیری متریک عمیق است.به دلیل اینکه بیشتر شبکه‌های عصبی عمیق با الگوریتم شیب نزولی تصادفی (SGD) آموزش داده می‌شوند و تنها یک دسته کوچک(minibatch) از نمونه‌ها در هر تکرار موجود است ایجاد محدودیت های مناسب چالش برانگیز است. جاسازی‌ها با loss تعریف‌شده در یک نمونه لنگر و همسایگان آن بهینه‌سازی می‌شوند، بنابراین نمونه‌ها در یک دسته کوچک ممکن است نتوانند مجاورت کلی را به تصویر بکشند، به خصوص برای مجموعه داده های نسبتاً بزرگ. علاوه بر این، یک minibatch با اندازه m شامل O(m2) مجموعه دو عضوی(جفت ها) و O(m3) مجموعه سه عضوی(سه گانه ها) است.برای کاهش این مشکل، الگوریتم‌ها باید یک استراتژی نمونه‌گیری مؤثر برای تولید  minibatch با اطلاعات مفید و سپس نمونه‌برداری از محدودیت‌های سه‌گانه از آن ایجاد کنند. اما مسئله این است که مرحله نمونه برداری برای minibatch و محدودیت های سه گانه نه تنها اطلاعات را از دست می دهد بلکه بهینه سازی را نیز پیچیده می کند.راه حل (ایده مقاله) :در این مقاله سعی شده جاسازی‌ها را بدون محدودیت نمونه‌گیری آموخت.جاسازی‌هایی که با بهینه‌سازی SoftMax loss به دست می‌آیند می‌توانند به عنوان یک متریک فاصله در وظایف ساده مبتنی بر فاصله و تشخیص چهره به خوبی کار کنند. در واقع SoftMax loss معادل یک Smoothed triplet loss است که در آخرین لایه کاملا متصل برای هر کلاس یک مرکز درنظر می گیرد. با این حال، تعبیه‌هایی که از loss SoftMax به دست می‌آیند می‌توانند در سناریوی پیچیده شکست بخورند چرا که دنیای واقعی یک کلاس می تواند از چندین خوشه محلی تشکیل شده باشد که در شکل 1 نشان داده شده است و یک مرکز واحد برای گرفتن ساختار ذاتی داده ها کافی نیست.از آنجایی که مرکز کلاس در آخرین لایه کد می شود نیازی به نمونه گیری سه تایی نیست پس می توان با بهبود SoftMax loss به گونه ای که برای هر کلاس چند مرکز درنظر بگیرد به نتیجه مطلوب رسید. و loss جدید با نام SoftTriple loss با چندین مرکز می‌تواند توزیع پنهان داده‌ها را بهتر ثبت کند، زیرا به کاهش واریانس درون کلاسی کمک می‌کند. مزیت دیگر آن اینست که تعداد سه تایی ها در loss SoftTriple در تعداد نمونه‌های اصلی خطی است.Figure 1 Illustration of the proposed SoftTriple loss. In conventional SoftMax loss, each class has a representative center in the last fully connected layer. In contrast, SoftTriple loss keeps multiple centers (e.g., 2 centers per class in this example) in the fully connected layer and each image will be assigned to one of them.2. کارهای مرتبط:برای حل مشکل نمونه گیری موثر از یک minibatch، چندین روش پیشنهاد شده.  یک راه ساده افزایش اندازه minibatch است [1]. با این حال، minibatch بزرگ از محدودیت حافظه GPU رنج می برد و همچنین می تواند چالش نمونه برداری از سه گانه ها در یک minibatch را افزایش دهد. ایده دیگردر [2] پیشنهاد می شود که minibatch از کلاس های همسایه تولید شود.برای حل مشکل نمونه گیری برای به دست آوردن محدودیت های سه گانه موثر استراتژی هایی وجود دارد بطور مثال [1] نمونه‌برداری از نمونه‌های منفی نیمه سخت semi-hard negative را پیشنهاد می‌کند. [3] تمام نمونه های منفی را درون یک حاشیه مرتبط با هر جفت مثبت، قبول می کند. [4] نمونه برداری وزنی فاصله ای distance weighted sampling را توسعه می دهد که نمونه ها را با توجه به فاصله از نمونه لنگر نمونه برداری می کند.با این حال، همه این استراتژی‌ها ممکن است نتوانند توزیع کل مجموعه داده را به دست آورند. علاوه بر این، آنها بهینه سازی در DML عمیق را پیچیده می کنند.3. SoftTriple loss:SoftMax loss و Embedding ,وi-اُمین نمونه را xi در نظر بگیرید که yi برچسب نظیر آن است. فرمول SoftMax loss بصورت زیر تعریف می شود :با درنظر گرفتن طول واحد برای x, w تابع SoftMax loss نرمال شده بصورت زیر تعریف می شود که λ همان scaling factor است:برای یک سه تایی ( Xi , Xj , Xk ) داده شده DML سعی دارد Embedding را طوری آموزش دهد که نمونه های یک کلاس نزدیکتر از نمونه های کلاس های دیگر باشند.با فرض اینکه  Xi , Xj  از یک کلاس و  Xk  از یک کلاس دیگر باشد و مارجین ازپیش تعریف شده δرا داشته باشیم تابع loss بصورت زیر تعریف می شود :مشاهده می شود که مینیمم کردن SoftMax lossنرمال شده با  smooth term λ معادل بهینه کردن smoothed triplet loss است.Multiple Centersحال، فرض می کنیم که هر کلاس دارای K مرکز است. سپس، شباهت بین نمونه    و کلاس c را می توان به صورت زیر تعریف کرد.از آنجایی که محدودیت سه گانه مستلزم یک نمونه است که به کلاس مربوطه خود نزدیکتر از کلاس های دیگر باشد پس داریم :و HardTriple loss با فراهم کردن مراکز بیشتر SoftMax loss را بهبود می دهد:اگر smoothed similarity را بصورت زیر داشته باشیم :درنهایت فرمول بصورت زیر بدست می آید :Figure 2 Illustration of differences between SoftMax loss and proposed losses. Compared with the SoftMax loss, we first increase the dimension of the FC layer to include multiple centers for each class (e.g., 2 centers per class in this example). Then, we obtain the similarity for each class by different operators. Finally, the distribution over different classes is computed with the similarity obtained from each class.Adaptive Number of Centersمراکز بیشتر می توانند برای کاهش واریانس درون کلاسی مفید باشند. در حالت شدید که تعداد مراکز برابر با تعداد مثال ها باشد، صفر می شود.با این حال، افزودن مراکز بیشتر، اندازه آخرین لایه کاملاً متصل را افزایش می‌دهد و بهینه‌سازی را کند و محاسبه را گران می‌کند. علاوه بر این، ممکن است مشکل بیش از حد برازش را ایجاد کند. بنابراین، باید تعداد مناسبی از مراکز را برای هر کلاس انتخاب کنیم که ضمن حفظ مجموعه فشرده از مراکز، خطای تقریبی کوچکی داشته باشد.یافتن تعداد مناسبی از مراکز برای داده ها یک مشکل چالش برانگیز است. در الگوریتم‌های DML معمولی، K برابر است با تعداد نمونه‌های اصلی  که تعداد محدودیت های سه گانه کل را به توان سه تعداد نمونه های اصلی می رساند. در SoftMax loss، K = 1 تعداد محدودیت ها را کاهش می دهد که در تعداد نمونه های اصلی خطی شود، که کارآمد است اما می تواند بی اثر باشد. بدون دانش قبلی در مورد توزیع هر کلاس، تنظیم دقیق K دشوار است.در این مقاله پیشنهاد می شود یک K به اندازه کافی بزرگ تنظیم شود و سپس مراکز مشابه را تشویق کنیم تا با یکدیگر ادغام شوند.4. نتایج :آزمایش‌ها روی سه مجموعه CUB-2011، Cars196 وSOP انجام و معماری اصلی Inception استفاده شده است. مدل آموزش داده شده در مجموعه داده ImageNet ILSVRC 2012 مقداردهی اولیه می شوند و سپس روی مجموعه داده های هدف به fine-tuned می شوند.تعداد مراکز روی K = 10 تنظیم شده است. عملکرد جاسازی های آموخته شده از روش‌های مختلف بر روی وظایف بازیابی و خوشه بندی ارزیابی شده اند. برای بازیابی، از متریک Recall@k استفاده شده و کیفیت خوشه بندی توسط اطلاعات متقابل عادی شده (Normalized Mutual Information -NMI) اندازه گیری می شود.با توجه به خوشه بندی C = {c1; · · · cn} و برچسب اصلی  Ω = {y1; · · · yn}، NMI به صورت NMI = 2I(Ω;C)/H(Ω)+H(C) محاسبه می شود، که در آن I(·; ·) اطلاعات متقابل را اندازه می گیرد و H(·) نشان دهنده آنتروپی است.جدول 1 نتایج را با 64 جاسازی برای دیتاست CUB-2011 خلاصه می کند.اول، مشاهده  میکنیم که عملکرد SoftMaxnorm از روش های یادگیری متریک موجود پیشی می گیرد و دوم، SoftTriple بهترین عملکرد را در بین تمام روش های معیار نشان می دهد.جدول 3 نتایج را با 64 جاسازی برای دیتاست Cars196 خلاصه می کند.5. نتیجه گیری :این مقاله SoftTriple loss را برای یادگیری جاسازی‌ها بدون نمونه‌گیری با افزایش جزئی اندازه آخرین لایه کاملاً متصل، ارائه می کند که SoftMax loss را با چندین مرکز برای هر کلاس گسترش می دهد.</description><category>Farzaneh Ramezani</category><author>Farzaneh Ramezani</author><pubDate>Sun, 19 Jun 2022 22:07:20 +0430</pubDate></item><item><title>بررسی مقاله Local Unsupervised Learning for Image Analysis</title><link>https://virgool.ir/@ramezani.f69/بررسی-مقاله-local-unsupervised-learning-for-image-analysis-ahxjj5qc5wz9</link><description>1. چکیده :در آموزش شبکه‌های عصبی اعتقاد بر این است که روش های end-to-end با الگوریتم های backpropagation  عماکرد بهتری نسبت به روش یادگیری محلی Hebbian دارند اما این مقاله با معرفی یک الگوریتم یادگیری محلی و آموزش فیلترهای کانولوشنی یک شبکه کم عمق و رسیدن به دقت بالا این باور را زیر سوال می برد.در این روش به جای یک کانولوشن استاندارد از ترکیب فیلتر کانولوشن و patch normalization  و very steep non-linearitiesاستفاده می شود که دقت طبقه‌بندی خوبی را در حالتی که سایه به تصاویر CFAR10 اضافه می شود، نتیجه می دهد.همچنین در این مقاله نشان داده می شود که میتوان representation های آموزش دیده شده را با موفقیت بین دیتاست های CFAR10  و ImageNet انتقال داد.با این ویژگی ها میتوان نتیجه گرفت که آموزش محلی بدون نظارت ممکن است ابزار قدرتمندی برای یادگیری representation ‌های کلی مستقیماً از داده‌های بدون برچسب باشد (بدون تعیین taskمشخص).2. مقدمه :اعتقاد بر عملکرد برتر الگوریتم های یادگیری مبتنی بر گرادیان با استدالال های زیر بوجود آمده است:1) آشکارسازهای ویژگی(Feature detectors) در لایه‌های اولیه شبکه‌های عصبی باید به‌طور خاص ساخته شوند تا وظیفه‌ای را که شبکه عصبی برای آن طراحی شده است، انجام دهد، بنابراین برخی از اطلاعات در مورد خطاهای شبکه یا توابع lossباید در طول یادگیری وزن‌های لایه اول، در دسترس باشد.2) ایجاد تغییرات تصادفی در وزن ها و پذیرش تغییراتی که دقت را بهبود می بخشد،در شبکه های بزرگ بسیار ناکارآمد است و به نظر می رسد بهینه سازی مبتنی بر گرادیان نسبت به روش های جایگزین که به گرادیان متکی نیستند، سریعتر به راه حل مورد نظر همگرا می شود.ازطرفی شبکه‌های عصبی مدرن به شدت فراپارامتری شده‌اند، به این معنی که ترکیب‌های زیادی از وزن‌ها وجود دارد که منجر به عملکرد تعمیم پذیری خوبی می‌شود. بنابراین، یک ایده جذاب وجود دارد که این چندگانه از وزن‌های «خوب» ممکن است توسط یک الگوریتم یادگیری محلی کاملاً یافت شود که مستقیماً روی داده‌های ورودی بدون اطلاعات مربوط به خروجی شبکه یا وظیفه‌ای که باید انجام شود عمل می‌کند.یکی از الگوریتم های یادگیری محلی انتشار فقط از پایین به بالا (bottom-up propagation) است که در کارهای اخیر مورد بحث قرار گرفته است. به عنوان مثال، مقاله اخیر [1] یک الگوریتم یادگیری را پیشنهاد می کند که در لایه اول محلی و بدون نظارت است. این برنامه می‌تواند ویژگی‌های اولیه مفیدی را که برای دستیابی به عملکرد تعمیم پذیری خوب لازم است، مطابق با شبکه‌های آموزش داده شده end-to-end بر روی بنچ مارک های یادگیری ماشین ساده، بیاموزد. محدودیت این مطالعه این است که الگوریتم‌های پیشنهادی فقط در شبکه‌های کاملاً متصل، فقط بر روی وظیفه ثابت جایگشت پیکسل، و فقط روی مجموعه‌های داده بسیار ساده آزمایش شدند( MNIST و CIFAR-10). محدودیت دیگرمطالعه [1]، که در این کار به آن پرداخته نشده است، این است که آنها شبکه های عصبی را تنها با یک لایه پنهان مورد مطالعه قرار دادند.باید توجه داشت که هدف از این مقاله بررسی مفهوم یادگیری محلی از پایین به بالا و سودمندی آن برای یادگیری ماشینی و تعمیم پذیری است و نه طراحی یک چارچوب بیولوژیکی قابل قبول برای یادگیری عمیق. الگوریتم پیشنهادی از وزن‌های مشترک در فیلترهای کانولوشنال استفاده می‌کند که بیولوژیکی نیست. علی‌رغم فقدان انگیزه بیولوژیکی کلی در این کار، اما فیلترهای آموخته‌شده توسط الگوریتم یک جدایی واضح بین سلول‌های حساس به رنگ و سلول‌های انتخابی جهت‌گیری را نشان می‌دهند و این جنبه محاسباتی الگوریتم به خوبی با جدایی مشابه بین ویژگی محرک پاسخ‌های نورون‌ها در مسیرهای لکه‌ای و بین لکه‌ای، که در ناحیه V1 قشر بینایی وجود دارد، مطابقت دارد.Contributions:- دراین مقاله بر اساس پیاده‌سازی منبع باز [2] الگوریتم پیشنهادی در [1]، یک الگوریتم یادگیری بدون نظارت را برای شبکه‌های با اتصال محلی طراحی کرده است.- همچنین یک کتابخانه سریع CUDAایجاد کرده که امکان می دهد به سرعت وزن فیلترهای کانولوشنال را در مقیاس یاد بگیریم.- در لایه‌های کانولوشن استاندارد نرمال‌سازی پچ و غیرخطی‌های بسیار شدید در توابع فعال‌سازی پیشنهاد می‌کند.3. الگورریتم یادگیری و معماری شبکه:درطول آموزش هر تصویر ورودی به پچ هایی با سایز W × W × 3 تقسیم می شود. Strideبرابر 1 پیکسل و البته از پدینگ در این مرحله ایتفاده نمی شود. خروجی مجموعه پچ ها را باViA نشان می دهیم که اندیس i برای شمارش پیکسل ها و اندیس A برای شمارش  پچ  هاست  که در هر ایپاک  بهم ریخته می شود و به صورت یک مینی پچ به الگوریتم یادگیری که در ]1[آمده است، داده می شود. الگوریتم یادگیری از ماتریس وزن  Mi  استفاده می کند که یک ماتریس از K کانال با N= W × W × 3واحد قابل مشاهده است که از یک توزیع نرمال استاندارد مقداردهی اولیه شده و طبق قانون یادگیری زیر به‌طور مکرر به روز می‌شوند :که در آن &#34; نرخ یادگیری است. تابع فعال سازی  gبرابر با یک است برای قوی ترین کانال هدایت شده و برابر با یک ثابت منفی کوچک برای کانالی است که دارای رتبه m در فعال سازی ها است.رتبه بندی برای هر عنصر از مینی بچ به طور جداگانه انجام می شود. وزن ها پس از هر دسته کوچک برای تعداد معینی از دوره ها به روز می شوند، تا زمانی که هر ردیف از ماتریس وزن به یک بردار واحد همگرا شود.ماتریس حاصل  Mi  به عنوان وزن فیلترهای کانولوشنال با دو تغییر مهم استفاده می شود. ابتدا، هر پچ Vi  از تصویر ورودی قبل از ضرب نقطه ای با ماتریس وزن، نرمال می شود تا یک بردار واحد باشد. با توجه به اینکه سطرهای ماتریس وزن خود بردار واحد هستند، حاصل ضرب نقطه ای بین وزن و پچ، کسینوس شباهت بین این دو است. بنابراین :دوم، نتیجه حاصلضرب نقطه‌ای از یک تابع توان تصحیح شده غیرخطی بسیار تند عبور می‌کند :(very steep non-linearity - rectified power function) که در آن توان n یک هایپرپارامتر از آن لایه است. ما این لایه‌های پیچیده غیرمعمول را لایه‌های NNL-CONV (لایه‌های کانولوشن غیرخطی نرمال شده) می‌نامیم تا آنها را از لایه‌های استاندارد متمایز کنیم که در این مقاله CONV نشان داده شده‌اند. در بخش‌های بعدی معماری نیز از لایه‌های استاندارد max-pooling و لایه‌های استاندارد کاملا متصل با تابع فعال‌سازی softmax برای طبقه‌بندی‌کننده استفاده می‌کنیم.4. ارزیابی مدل روی دیتاست CFAR-10 :الگوریتم (1) روی تصاویر از مجموعه داده CIFAR-10 برای یادگیری وزن فیلترهای NNLCONV اعمال شد. همانطور که در شکل 1 می بینید هر مربع کوچک مربوط به یک کانال (واحد پنهان) متفاوت است و با نمایش وزن های متناظر آن در صفحه تصویر W × W × 3 نشان داده می شود. اتصال به هر پیکسل دارای 3 جزء مربوط به تصویر رنگی RGB است. این وزن ها به صورت خطی کشیده (stretched) می شوند به طوری که در یک ناحیه [0; 1] برای هر کانال تغییر می کنند. بنابراین، رنگ سیاه مربوط به وزن سیناپسی است که یا برابر با صفر یا منفی است. رنگ سفید مربوط به وزن هایی است که بزرگ هستند و در هر سه کانال RGB تقریباً برابر هستند. رنگ آبی مربوط به وزن‌های بزرگ متصل به نورون‌های آبی است و وزن‌های کوچک یا صفر متصل به نورون‌های قرمز و سبز هستند و ... همانطور که از این شکل مشخص است، وزن‌های حاصل تنوعی از ویژگی‌های تصاویر، از جمله آشکارسازهای خط، آشکارسازهای رنگ و آشکارسازهای اشکال پیچیده‌تر را نشان می‌دهند. به نظر می‌رسد که این آشکارسازهای ویژگی بسیار نرم‌تر (smooth) از آشکارسازهای ویژگی ناشی از آموزش استاندارد انتها به انتها CNNها با الگوریتم backpropagation  هستند.شکل1 فیلترهایی با اندازه W = 8 پیکسل، با استفاده از الگوریتم پیشنهادی (1) آموزش داده شده است. فیلترها برای تأکید بر تفاوت بین چندین گروه از سلول ها مرتب شده اند. پنج واحد آخر در ردیف آخر هیچ نمایش مفیدی یاد نگرفتند. آنها را می توان از شبکه حذف کرد.با توجه به این مثال ، می توان مشاهدات کیفی زیر را انجام داد:1.اکثر واحدهای پنهان سیاه و سفید هستند و هیچ ترجیحی برای رنگ R، G یا B ندارند. این واحدها به شدت به لبه های جهت دار، گوشه ها، انتهای میله ها، نقاط نورانی، اشکال پیچیده تر و غیره پاسخ می دهند.2. حضور قابل توجهی از واحدهای پنهان تشخیص رنگ وجود دارد. این نورون‌ها تمایل کمتری به انتخاب جهت‌گیری نسبت به واحدهای سیاه و سفید دارند.به منظور آزمایش کیفیت این فیلترهای آموخته شده با توجه به عملکرد تعمیم پذیری، از آنها به عنوان وزن یک شبکه ساده با یک لایه NNL-CONV  مطابق شکل2(سمت چپ)  استفاده شد. در این معماری یک لایه NNL-CONV و سپس یک لایه max-pooling و سپس یک طبقه‌بندی کننده softmax دنبال می‌شود. وزن لایه NNL-CONV ثابت شده و با خروجی الگوریتم (1) داده می شود. لایه max-pooling وزن قابل آموزش ندارد. وزن‌های لایه بالایی با استفاده از بهینه‌سازی مبتنی بر گرادیان (Adam optimizer with the cross-entropy loss function) آموزش داده شد. دقت این شبکه با دقت شبکه با همان ظرفیت (لایه‌های NNL-CONV با لایه‌های استاندارد CONV جایگزین شدند و با استفاده از بهینه‌ساز Adam آموزش داده شدند) مقایسه شد.نتایج در شکل 2 (سمت راست) نشان داده شده است. در اینجا می توان مشاهده کرد که چگونه با پیشرفت آموزش، خطاهای مجموعه تست کاهش می یابد. زمان آموزش در اینجا به آموزش طبقه‌بندی‌کننده لایه بالایی در مورد شبکه NNL-CONV و آموزش تمام لایه‌ها (لایه کانولوشن و طبقه‌بندی‌کننده) در مورد شبکه استاندارد CONV آموزش‌دیده end-to-end اشاره دارد. برای شبکه ساده نشان داده شده در سمت چپ، خطای شبکه آموزش داده شده محلی 27.80٪ است، خطای شبکه آموزش داده شده end-to-end 27.11٪ است.به منظور دستیابی به دقت تست بهتر، با سازماندهی لایه NNL-CONV به عنوان دنباله ای از بلوک ها با اندازه های مختلف پنجره W، مانند شکل 2 (وسط) ممعماری پیچیده تری انتخاب شد. داشتن این تنوع پنجره های گیرنده به شبکه عصبی اجازه می دهد تا ویژگی های مقیاس های مختلف را در تصاویر ورودی تشخیص دهد. همانند بالا، عملکرد این شبکه آموزش داده شده با استفاده از الگوریتم (1) با عملکرد شبکه با اندازه مشابه آموزش داده شده end-to-end مقایسه و نتایج با منحنی های قرمز و آبی در شکل 2 (سمت راست) نشان داده شده است. خطای شبکه آموزش داده شده محلی 23.40 درصد است، خطای شبکه آموزش داده شده end-to-end 22.57 درصد است.نتیجه‌گیری اصلی در اینجا این است که شبکه‌های دارای فیلترهای به‌دست‌آمده با استفاده از الگوریتم بدون نظارت محلی (1) تقریباً به همان دقت شبکه‌های آموزش داده‌شده end-to-end دست می‌یابند. این نتیجه با این باور رایج در تضاد است که آشکارسازهای ویژگی لایه اول باید به طور خاص برای حل کار مشخص شده توسط طبقه‌بندی کننده لایه بالایی ساخته شوند. در عوض، این نشان می‌دهد که مجموعه‌ای از وزن‌های لایه اول را می‌توان با استفاده از آموزش محلی از پایین به بالا و بدون نظارت (1) یاد گرفت، و کافی است که کار را فقط به طبقه‌بندی‌کننده لایه بالایی، بدون تنظیم وزن های لایه اول، منتقل کنیم.شکل 2 (سمت چپ) یک معماری ساده با یک تصویر RGB نمایش داده شده به لایه NNL CONV (نشان داده شده با رنگ قرمز). اندازه پنجره W = 4; توان تابع فعال سازی n = 40 است. تعداد کانال ها K = 400 (همه هایپرپارامترها در مجموعه اعتبارسنجی تعیین شدند) . این لایه کانولوشن با یک لایه max-pooling دنبال می شود که به رنگ سبز نشان داده شده است. اندازه پنجره pooling Wp = 11 پیکسل. آخرین لایه یک طبقه بندی کننده softmax است. &#xA;(وسط) یک معماری با بلوک‌های W. توان n متفاوت، تعیین شده در مجموعه اعتبارسنجی، در هر بلوک NNL-CONV نشان داده شده است. &#xA;(راست) خطای مجموعه تست دو شبکه نشان داده شده در پنل چپ و میانی همراه با همتایان انتها به انتها به عنوان تابعی از زمان آموزش نظارت شده.&#xA;5. ارزیابی مدل روی دیتاست ImageNet :مجموعه‌ای از آزمایش‌های مشابه روی مجموعه داده‌های ImageNet 32×32 انجام شد. خانواده بزرگی از فیلترها با پنجره‌های W در محدوده 2 تا 16 با استفاده از الگوریتم (1) آموزش داده شدند. نمونه هایی از آن فیلترهای آموخته شده در شکل 3 نشان داده شده است. خانواده ای از مدل ها با یک لایه واحد NNL-CONV، دارای ساختار بلوکی در نظر گرفته شد. مدل &#34;بهینه&#34; در شکل 4 نشان داده شده است و از چهار بلوک با پنجره هایی با اندازه W 3و4و5و8 تشکیل شده است. میزان خطای مدل: 84.13% در طبقه بندی top-1 و 70.00% در طبقه بندی top-5 می باشد. خطاهای مجموعه های آموزشی و آزمایشی در شکل 4 نشان داده شده است. برای مقایسه، شبکه با همان اندازه آموزش داده شده end-to-end به این موارد می رسد: خطای top-1 79.72٪، خطای top-5 62.58%. بنابراین، در این کار، شبکه آموزش‌دیده محلی کمی بدتر از شبکه آموزش‌دیده end-to-end عمل می‌کند، اما تفاوت آنقدرها هم زیاد نیست. به خصوص با توجه به اینکه هیچ اطلاعاتی در مورد برچسب های کلاس در آموزش فیلترهای NNL-CONV استفاده نشده است.شکل3 فیلترهای کانولوشن در دو اندازه W = 8 و W = 16 آموزش داده شده در ImageNet 32 × 32. نمونه هایی از واحدهای حساس به رنگ، واحدهای انتخابی جهت و واحدهای مخلوط در وسط شکل نشان داده شده است. در نمونه‌های حساس به رنگ، واحدهای اول و چهارم در ردیف بالا بسیار شبیه به هم هستند - هر دو قرمز هستند. اگرچه دیدن این ممکن است دشوار باشد، اما سایه های آن دو رنگ قرمز متفاوت استشکل4 معماری شبکه مورد استفاده برای آزمایش های ImageNet 32×32 همراه با خطاهای مجموعه آموزش و آزمایش برای شبکه آموزش دیده محلی.6. یادگیری انتقالی (Transfer Learning)فیلترهای آموخته شده توسط الگوریتم (1) مستقل از وظیفه مشخص شده توسط طبقه بندی کننده لایه بالایی هستند. این باعث می شود آنها کاندیدای طبیعی برای یادگیری انتقالی باشند. به منظور آزمایش این ایده، ما از وزن های آموزش‌دیده شده روی ImageNet 32×32 به‌عنوان فیلترهای NNL-CONV در معماری نشان‌داده‌شده در شکل 2 (وسط) استفاده کردیم و لایه بالایی را روی تصاویر CIFAR-10 دوباره آموزش دادیم. این خطای 0.07±22.19٪ را نشان داد. این بیش از 1% کمتر از خطای همان شبکه آموزش دیده بر روی تصاویر CIFAR-10 است، که منطقی است زیرا ImageNet 32 × 32 تصاویر بسیار بیشتری نسبت به مجموعه داده CIFAR-10 دارد.انتقال در جهت مخالف - وزن های آموزش داده شده در CIFAR-10 در معماری نشان داده شده در شکل 4 با لایه بالایی که در ImageNet 32 × 32 دوباره آموزش داده شده است منجر به خطای top-1 85:38٪، خطای top-5 71:75٪ شد.7. جنبه های محاسباتی:یادگیری محلی از دیدگاه الگوریتمی ایده قدرتمندی به نظر می رسد چراکه بر خلاف آموزش end-to-end که مستلزم نگه داشتن وزن کل شبکه عصبی همراه با فعال سازی همه نورون ها در همه لایه ها در حافظه است، در آموزش محلی تنها کافی است که در حافظه دستگاه محاسباتی فقط یک لایه از وزن ها، یک دسته کوچک از داده ها و فعال سازهای نورون ها فقط در آن یک لایه نگهداری شود. بنابراین، یادگیری محلی برای استفاده در شتاب دهنده هایی با ظرفیت حافظه کم (کمتر16 گیگابایت) جذاب است.علاوه بر این، از آنجایی که وزن‌ها عمومی هستند، یعنی - مستقیماً از داده‌ها بدون اطلاعات مربوط به کار مشخصی، مشتق شده‌اند - می‌توان آنها را در معماری‌های مختلف شبکه عصبی ذخیره و مجدداً استفاده کرد، بدون نیاز به آموزش مجدد.محدودیت اصلی اجرای NumPy منبع باز [7] این است که متوالی است و با GPU شتاب نمی گیرد. بنابراین بسیار کند است، که آن را برای کار با مجموعه داده های تصویر غیرعملی می کند. در عین حال، چارچوب های موجود برای یادگیری عمیق برای آموزش end-to-end طراحی شده است. در حالی که قطعا پیاده سازی الگوریتم (1) با استفاده از PyTorch یا TensorFlow امکان پذیر است، اما چنین پیاده سازی هایی عملکرد مطلوبی ندارند. بنابراین، ما برای ساختن یک کتابخانه سریع C++ برای CUDA که بیشترین بهره را از مفهوم یادگیری محلی می برد و عملکرد را بهینه می کند، زمان صرف کردیم.8. نتیجه گیری:این کار گواه این مفهوم است که آموزش محلی بدون نظارت از پایین به بالا قادر به یادگیری نمایش های مفید و مستقل از کار از تصاویر در شبکه های با اتصال محلی است. این کار بر روی شبکه‌هایی با یک لایه پنهان قابل آموزش تمرکز می‌کند و نشان می‌دهد که دقت آن‌ها در وظایف تشخیص تصویر استاندارد نزدیک به دقت شبکه‌های با ظرفیت مشابه آموزش داده شده end-to-end است. جنبه های جذاب الگوریتم پیشنهادی این است که بسیار سریع و از نظر مفهومی ساده است (بروز رسانی وزن فقط به فعالیت های نورون های متصل به آن وزن بستگی دارد و نه به فعالیت های همه نورون های شبکه) و منجر به smoothness بودن آن می شود. وزن هایی با تفکیک مشخص رنگ و ویژگی های هندسی. ما معتقدیم که این کار اولین گام به سوی الگوریتم‌هایی است که می‌توانند چندین لایه نمایش را آموزش دهند. حتی اگر مشخص شود که این الگوریتم فقط در لایه اول مفید است، باز هم می توان آن را با آموزش backpropagation در لایه های بالاتر ترکیب کرد و از smoothness بودن وزن های لایه اول بهره برد.</description><category>Farzaneh Ramezani</category><author>Farzaneh Ramezani</author><pubDate>Thu, 16 Jun 2022 23:38:25 +0430</pubDate></item></channel></rss>