در این روش، برای محاسبه گرادیان لایههای ابتدایی شبکه، به گرادیان لایههای انتهایی نیاز داریم. در چنین ساختاری لایههای ابتدایی در فرآیند backwark propagation باید منتظر لایههای انتهایی بمانند در حالی که این قید وابستگی بین لایهها چندان منطقی به نظر نمیرسد.
اگر بخواهیم شبکههای عصبی عمیق را در مقایسه با سیستمهای زیستی بررسی کنیم، شواهدی وجود دارد که وزن سیناپسهای موجود در مغز انسان به صورت محلی بروزرسانی میشود و احتیاجی به هماهنگی و منتظر ماندن برای اتمام کار باقی قسمتهای مغز وجود ندارد.
علاوه بر این موضوع، حذف قید هماهنگی بین بخشهای مختلف شبکهی عصبی این امکان را فراهم میسازد تا بتوان آموزش شبکه را به صورت موازی و توزیعشده انجام داد که این مساله سرعت آموزش و همچنین استنتاج مدل را افزایش میدهد. همچنین به دلیل عدم نیاز به مقادیر خروجی تمامی نورونها در آموزش هر لایه (به دلیل محاسبه محلی مقادیر مربوط به همان لایه) میزان استفاده از حافظه در آموزش محلی شبکههای عصبی عمیق کاهش مییابد.
در این مقاله ابتدا نگاهی خواهیم داشت به ایدههای کنونی در زمینه آموزش محلی شبکه و ساختار Greedy InfoMax را مورد بررسی قرار میدهیم؛ سپس با بررسی مشکلات و نواقص آن، ساختار یادگیری محلی LoCo [1] را معرفی میکنیم و راهکارهایی را که در این ساختار به منظور کاهش فاصلهی بین عملکرد یادگیری end to end و یادگیری محلی، ارائه شدهاست بررسی میکنیم.
در ابتدا با موفقیت شبکهی AlexNet در یادگیری بازنمایی تصاویر بدون برچسب، یادگیری بدون نظارت در زمینههایی همچون پیشبینی محتوا، پیشبینی چرخش تصاویر، افزودن رنگ به تصاویر و مساله شمارش یک مفهوم در تصویر مورد توجه قرار گرفت. بازنمایی که این شبکهها از تصاویر میآموزند را میتوان با استفاده از یک دیکودر و حتی با بهرهگیری از لایههای خطی به برچسب کلاس تبدیل کرد.
پس از آن یادگیری بدون نظارت contrastive معرفی شد که توانست عملکرد خوبی را از خود در شبکهی ImageNet نشان دهد و فاصلهی بین یادگیری با نظارت و بدون نظارت را هرچه بیشتر کاهش دهد.
روش contrastive عبارت است از یادگیری بازنمایی تصاویر از زوج ورودیهای مشابه و غیرمشابه. بدین صورت که در طول یادگیری شبکه، انکودر تلاش میکند یک بازنمایی معقول را از تصاویر ایجاد کند و دیکودر نیز تا بر اساس تابع خطای contrastive تصاویر غیرمشابه را از هم تفکیک کند.
یکی از نمونههای این تابع خطا به صورت زیر است:
این تابع خطای InfoNCE مشابه با تابع خطای cross entropy در یک مساله طبقهبندی است که پارامتر دما tau نیز در آن لحاظ شدهاست. در این تابع q و k بردار بازنمایی نرمالشده تصاویر هستند که هدف کلی ایجاد یک بازنمایی است که در آن نمونهی مرجع q فاصلهی کمتری از نمونه مثبت داشته و فاصله بیشتری از نمونههای منفی پیدا کند. یک شبکه ارائه شده یادگیری بدون نظارت و بر اساس تابع خطای بررسی شده در بالا، شبکهی SimCLR نام دارد که در آن روشهای زیادی به منظور کاهش فاصلهی بین یادگیری بدون نظارت و یادگیری با نظارت ارائه شدهاست.
اولین ایده استفاده از batch بزرگتر و augmentation قویتر تصاویر آموزشی است. همچنین به منظور ایجاد بازنماییها عمومیتر به جای استفاده از دیکودر خطی، از MLP غیرخطی استفاده شدهاست.
شبکهی Greedy InfoMax نیز شبکهی دیگری است که بر اساس یادگیری بدون نظارت ولی با ارائهی ایدههایی در آموزش محلی مطرح شدهاست که در ادامه به بررسی جزئیات آن میپردازیم.
یکی از چالشهایی که شاید در روند یادگیری محلی به نظر برسد، لزوم وجود نظارت لایه نهایی در آموزش وزنهای شبکهاست. به این صورت که لایههای ابتدایی شبکه بیان خود را از ورودی، بر اساس خطایی که خروجی لایه نهایی ایجاد میکند اصلاح میکنند. در واقع هرچه بیان ایجاد شده توسط لایههای ابتدایی شبکه دقیقتر و حاوی ویژگیهای مهمتر و جامعتری باشد، خروجی لایهی نهایی نیز خطای کمتری ایجاد خواهد کرد. بنابراین بر اساس این نظارت یادگیری شبکههای عمیق صورت میگیرد.
هرچند موفقیت تعدادی از مدلهای self-supervised contrastive این مساله را به چالش میکشد، زیرا این مدلها در مرحلهی یادگیری بازنمایی بدون استفاده از دیتاهای برچسب خورده، توانستهاند به عملکرد مشابه و یا نزدیک به رقبایsupervised خود برسند. بر این اساس ایدهای که وجود دارد این است که بلوکهای شبکهی عصبی عمیق را از لحاظ گرادیانی ایزوله کنیم و هر بلوک را با استفاده از روش یادگیری contrastive محلی آموزش دهیم.
این ایده موجب میشود تا به این موضوع فکر کنیم که آیا میتوانیم نتایج مشابه با روشهای contrastive را به صورت محلی بدست آوریم؟
بر این اساس روش contrastive ارائه شدهاست که به دنبال یادگیری بازنمایی محلی در هر طبقه است.
در این شبکه، بخش انکودر که مسئول یادگیری بازنمایی دیتاست، به چند ماژول مختلف تقسیم شدهاست که در انتهای هرکدام یک تابع خطای contrastive استفاده شدهاست بنابراین در روند back propagation گرادیان در طول شبکه جریان نمییابد و بلکه هر یک از ماژولها بر اساس تابع خطای تعریف شده و به صورت حریصانه آموزش میبیند.
اما باید توجه داشت که گاهی اوقات یادگیری حریصانهی ماژولهای ابتدایی شبکه نمیتواند عملکرد کلی شبکه را تضمین کند. بر این اساس به دلیل آنکه ماژولهای شبکه عصبی از یکدیگر اطلاعی ندارند، بنابراین نمیتوانیم از تمامی ظرفیت یک شبکهی عمیق استفاده کنیم.
همچنین ایزولاسیون گرادیان موجب میشود تا لایههای مختلف از یکدیگر بازخوردی نداشته باشند؛ همانطور که گفته شد در حالت عادی لایههای ابتدایی بازنمایی خود را از دیتا بر اساس نظارت لایهی نهایی بهبود میبخشند و در صورتی که این نظارت وجود نداشته باشد، بازنمایی ضعیف از دیتا در لایههای ابتدایی میتواند عملکرد شبکه را در لایههای نهایی کاهش دهد.
بنابراین عملکرد شبکه در این ساختار همچنان وجود دارد و فاصله زیادی بین این ساختار یادگیری محلی و یادگیری end to end دیده میشود که در روش LoCo تلاش شدهاست تا این فاصله کم و کمتر شود.
به منظور کاهش فاصلهی عملکرد بین شبکههای مطرح با روش یادگیری end to end و یادگیری محلی contrastive ، روش Local Contrastive Representation Learning معرفی شدهاست. اولین ایدهی مطرح شده در این مقاله به منظور مرتفع ساختن مشکل ناشی از ایزولاسیون گرادیان میباشد که در بخش قبل به آن اشاره شد.
بر خلاف روش GIM که در آن تمامی ماژولها از یکدیگر ایزوله بودند و بازخوردی از عملکرد باقی شبکه دریافت نمیکردند، در ساختار LoCo هر دو طبقه در یک واحد با یادگیری محلی قرار میگیرد که طبقههای میانی دو واحد متوالی با یکدیگر اشتراک دارند.
بدین صورت بین واحدهای متوالی در شبکه، یک همپوشانی وجود خواهد داشت و یک پل گرادیانی بین آنها شکل میگیرد. بنابراین در عین آنکه میتوان یادگیری را در هر واحد به صورت محلی انجام داد، به وسیلهی طبقههای مشترک بین دو واحد متوالی، بازخوردی نیز از باقی بخشهای شبکه دریافت میشود.
به منظور ایجاد یک مکانیزم بازخورد مناسب در یادگیری محلی، ایدههای مختلفی در [1] بررسی شدهاست.
با استفاده از این بررسی و مقایسه نتایج این 3 روش با روش بدون بازخورد و با روش پل گرادیانی معرفی شده در [1] دریافتیم که به اشتراک گذاری وزنهای یک طبقه کامل بین دو واحد یادگیری محلی متوالی، بهترین عملکرد را نتیجه میدهد و تا حد خوبی فاصله را با یادگیری end to end کاهش میدهد.
تحلیل دیگری که در [1] بررسی شدهاست این است که اندازهی محدودهی موثر در لایههای کانولوشنی ابتدایی شبکه ممکن است برای عملکرد مناسب یادگیری contrastive خیلی کوچک باشد.
با توجه به آنکه تابع خطا در تمامی واحدها استفاده میشود، تشخیص نمونهی مثبت در دیکودر مربوط به واحدهای ابتدایی خیلی سخت میباشد. برای مثال در نظر داشته باشد که در واحدهای یادگیری محلی در ابتدای شبکه، باید یک max pooling بر روی فضای ویژگی 56*56 اعمال شود و سپس بردار حاصل برای طبقهبندی به دیکودر سپرده شود. بنابراین به نظر میرسد که افزودن لایههای کانولوشنی به دیکودر، به منظور افزایش محدودهی موثر دریافت، ایدهی مناسبی باشد. همچنین با توجه به طبقات مشترک بین واحدها، میتوان بدون ایجاد بار اضافی در مسیر forward شبکه، دیکودر را عمیقتر کرد.
ایدهای که در ابتدای بررسی یادگیری محلی نیز مطرح شد این است که با استفاده از یادگیری محلی احتیاج به نگهداری خروجی تمامی نورونها و گرادیانها برای بروزرسانی وزن لایهها از بین میرود و از این رو میزان مصرف حافظه در این روشهای یادگیری کمتر خواهد بود.
اما مسالهای که وجود دارد و باعث میشود تا LoCo نتواند از قابلیت اشتراکگذاری محلی با استفاده از شبکهی ResNet-50 بهره ببرد این است که هرچند در پیادهسازی این شبکه مسالهی توازن هزینهی محاسباتی در نظر گرفتهشده اما مسالهی توازن مصرف حافظه نادیده گرفته شدهاست.
برای مثال در شبکهی ResNet-50 هرچند که ابعاد فضایی پس از کاهش بعد به اندازهی یکچهارم کاهش مییابد، اما تعداد کانالهای ویژگی تنها دو برابر میشود؛ این موضوع سبب میشود تا دو لایهی conv1 و res2 به تنهایی 50 درصد از حافظهای که کل شبکه استفاده میکند را به خود اختصاص دهند.
هرچند با استفاده از این شبکه به عنوان backbone نسبت کاهش مصرف مموری در ساختار GIM برابر با 1.81x و این نسبت در ساختار LoCo برابر با 1.28x میباشد، به این دلیل که LoCo بر خلاف GIM یک طبقه اضافی را نیز ذخیره میکند.
ایدهای که به منظور بهرهبرداری بیشتر از اشتراکگذاری محلی در [1] استفاده شدهاست، بازطراحی و ایجاد تغییراتی در ساختار ResNet-50 است. به این صورت که به جای استفاده از شبکه با 4 طبقه، از شبکهای با 6 طبقه و کاهش ابعاد تصاعدیتر استفاده شدهاست که هر طبقه دارای 3 بلوک residual است؛ این ساختار PResNet-50 نامیدهشدهاست [1].
استفاده از این شبکه به عنوان backbone میزان کاهش مصرف مموری در LoCo نسبت به SimCLR به 2.76x رسیدهاست با وجود آنکه عملکرد هر دو خیلی نزدیک میباشد.
میزان مصرف حافظه در لایههای مختلف ResNet-50 و PResNet-50 در تصویر زیر مقایسه شدهاست:
همانطور که در شکل فوق نیز مشاهده میشود، PResNet-50 مصرف حافظه متعادلتری نسبت به ResNet-50 دارد.
برای آنکه فاصله بین عملکرد سه مدل زیر بررسی شود، نمودار توابع خطای هر مدل در مقایسه با هم نمایش دادهشدهاست.
همانطور که مشاهده میشود مقدار تابع خطای طبقه نهایی شبکه LoCo به مقدار تابع خطای شبکهی SimCLR کردهاست و بنابراین هردوی این شبکهها عملکرد مشابهی دارند، اما مقدار تابع خطای نهایی در GIM فاصله زیادی از مقدار خطای این دو شبکه دارد و نتوانستهاست به بازنمایی خوبی از تصاویر برسد.
[1] X. Yuwen, R. Mengye, (2020). LoCo: Local Contrastive Representation Learning.