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واحد قابل مشاهده است که از یک توزیع نرمال استاندارد مقداردهی اولیه شده و طبق قانون یادگیری زیر بهطور مکرر به روز میشوند :
که در آن " نرخ یادگیری است. تابع فعال سازی 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.اکثر واحدهای پنهان سیاه و سفید هستند و هیچ ترجیحی برای رنگ 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) یاد گرفت، و کافی است که کار را فقط به طبقهبندیکننده لایه بالایی، بدون تنظیم وزن های لایه اول، منتقل کنیم.
5. ارزیابی مدل روی دیتاست ImageNet :
مجموعهای از آزمایشهای مشابه روی مجموعه دادههای ImageNet 32×32 انجام شد. خانواده بزرگی از فیلترها با پنجرههای W در محدوده 2 تا 16 با استفاده از الگوریتم (1) آموزش داده شدند. نمونه هایی از آن فیلترهای آموخته شده در شکل 3 نشان داده شده است. خانواده ای از مدل ها با یک لایه واحد NNL-CONV، دارای ساختار بلوکی در نظر گرفته شد. مدل "بهینه" در شکل 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 استفاده نشده است.
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 بودن وزن های لایه اول بهره برد.