در این مطلب مفهوم یادگیری سرفصلی یا Curriculum Learning را با هم بررسی میکنیم. در زبان انگلیسی Curriculum به معنی برنامه درسی و یا سرفصل است، به همین دلیل این مفهوم یادگیری سرفصلی ترجمه شد. این مفهوم برای اولین بار در سال ۱۹۹۳ توسط دکتر جفری المان استاد دپارتمان علوم شناختی دانشگاه کالیفرنیا - سندیهگو معرفی شده و در سال ۲۰۰۹ نیز دکتر یاشوا بنجیو - پدرخوانده یادگیری عمیق - کاربرد این مفهوم را در زمینه یادگیری ماشین مطرح کرده است. مطلب پیش رو، خلاصهای از مقاله Curriculum Learning آقای بنجیو است که سعی شده بدون وارد شدن به تعاریف ریاضیاتی، شهودی کلی از مفهوم را ارایه دهد. در این مقاله، کاربرد یادگیری سرفصلی در چندین مثال بررسی میشوند، که از این مثالها یکی را انتخاب کرده و بازگو میکنیم. مقاله را میتوانید از اینجا مشاهده کنید.
در فرآیند یادگیری، انسانها و حیوانات اگر به جای دریافت اطلاعات بصورت تصادفی، آنها را طبق یک ترتیب معنادار - بصورتی که مفاهیم به تدریج بیشتر و پیچیدهتر شوند - دریافت کنند، بهتر یاد میگیرند. این استراتژی یادگیری را در چارچوب یادگیری ماشین، یادگیری سرفصلی مینامیم.
در جامعه امروزی، انسانها حدودا دو دهه آموزش میبینند. این آموزش بسیار سازمان یافته و مبتنی بر یک سیستم آموزشی و برنامه درسی معین است که مفاهیم مختلف را در زمانهای مختلف معرفی کرده و با بهرهگیری از مفاهیم آموخته شده قبلی، یادگیری انتزاعات جدید را آسان میکند. با ارایه مثالهای مناسب و با ترتیب مناسب در سیستم آموزشی، میتوان سرعت وقوع یادگیری را به طرز چشمگیری افزایش داد. این ایده به طور معمول در آموزش حیوانات هم مورد استفاده قرار میگیرد که به آن شکل دادن (Shaping) گفته میشود. (اسکینر ۱۹۵۸، پیترسون ۲۰۰۴، کروگر و دایان ۲۰۰۹). در تقاطع علوم شناختی و یادگیری ماشین، این سوال در ذهن ایجاد میشود که آیا الگوریتمهای یادگیری ماشین نیز میتوانند از استراتژی آموزشی مشابهی بهره ببرند؟ ایده آموزش سرفصلی به المان ۱۹۹۳ برمیگردد.
ایده اصلی این است که کوچک شروع کنید و کارهای آسانتر را یاد بگیرید و به تدریج سطح دشواری را افزایش دهید. این مفهوم در روانشناسی رشد نیز دیده میشود، همانطور که نوزاد انسان یادگیری را با منابع سادهتر آغاز کرده و به تدریج با مثالهای پیچیدهتر ادامه میدهد.
در ادامه بررسی میکنیم که چگونه الگوریتمهای یادگیری ماشین میتوانند از سرفصل یا "کوچک شروع کردن" بهرهمند شوند. یادگیری سرفصلی علاوه بر افزایش سرعت در همگرایی در روشهای غیر محدب، بر کیفیت کمینه یافت شده نیز تاثیر میگذارد. این روش در سطح ظاهر شده و به عنوان یک تنظیمکننده (Regularizer) عمل میکند. یادگیری سرفصلی را میتوان به عنوان یک فرم خاص از Continuation Methodها تصور کرد که یک استراتژی کلی برای بهینهسازی سراسری توابع غیر محدب است.
بکارگیری این روش برای آموزش شبکه به این صورت است که ابتدا با یک زیر مجموعه کوچک و سادهتر از دادهها شروع کرده و در پایان نیز کل مجموعه داده آموزشی را به کار میگیریم. حال شاید این سوال ایجاد شود که منظور از مثالهای ساده چیست و چگونه باید دادهها را بر اساس سادگی آنها مرتب کرد؟ در ادامه روشهایی را ذکر میکنیم اما به طور کلی این مورد به دادهها و نوع Task وابسته است.
یک روش این است که مثالهایی که کمتر نویزدار (noisy) هستند را سادهتر قلمداد کنیم (Derényi et al. 1994). در دستهبندی نظارتشده اگر یک مثال در سمت نادرست سطح تصمیم دستهبند بیزی (Bayes Classifier) قرار بگیرد، نویزدار در نظر گرفته میشود. این نمونههای نویزدار، همگرایی را کند میکنند. ممکن است بگویید نمونههای مشکل، اطلاعات بیشتری را در بر دارند. اما این نمونهها یادگیرنده را در ابتدای آموزش گیجتر میکنند.
در این آزمایش که در مقاله مطرح شده، هدف دستهبندی اشکال هندسی به ۳ کلاس مثلث، بیضی و مستطیل است. ورودیها تصاویر سیاه سفید با ابعاد ۳۲ در ۳۲ هستند. همانطور که در شکل زیر مشاهده میکنید، دو دسته تصویر تولید شده است.
دسته GeomShapes که شامل اشکال یاد شده است و دسته BasicShapes که تنها نوع خاصی از اشکال را در بردارد: مربع، دایره و مثلث متساوی الاضلاع. همانطور که مشخص است، تصاویر BasicShapes تنوع کمتری دارند. همچنین تفاوتهایی نیز در موقعیت جسم، اندازه، جهت و همچنین غلظت رنگ خاکستری در پیشزمینه و پسزمینه در دو دسته وجود دارد.
این آزمایش روی یک شبکه عصبی با ۳ لایه پنهان انجام شده که با گرادیان کاهشی تصادفی و روی تابع درستنمایی شرطی منفی (Negative Conditional Log-Likelihood) آموزش میبیند که مثالی از یک مساله بهینهسازی غیر محدب مشکل است. سرفصل در اینجا از ۲ گام تشکیل شده است:
۱- تا زمان رسیدن به Switch Epoch، گرادیان کاهشی را روی مجموعه BasicShapes اجرا کن.
۲- سپس گرادیان کاهشی را روی GeomShapes اجرا کن.
در اینجا Switch Epoch، آن Epochای است که مجموعه داده مورد استفاده شبکه برای یادگیری عوض میشود، در نتیجه اگر شبکه را فقط روی مجموعه داده GeomShapes آموزش دهیم، این متغیر برابر با صفر میشود. همچنین خطای تعمیم یا Generalization Error همیشه روی مجموعه داده تست GeomShapes ارزیابی میشود. در این آزمایش، در مجموع ۱۰۰۰۰ نمونه در هر دو مجموعه آموزشی، ۵۰۰۰ نمونه در مجموعه اعتبارسنجی و ۵۰۰۰ مورد در مجموعه تست وجود دارد. فراپارامترها (Hyper-Parameters) در این آزمایش، بطوری انتخاب شدند که در آزمایشهای قبلی و بدون یادگیری سرفصلی بهترین عملکرد را روی مجموعه اعتبارسنجی GeomShapes کسب کرده بودند.
شکل زیر، خطای آزمون را بر اساس مقادیر مختلف Switch Epoch که توانهای عدد ۲ تا ۱۲۸ هستند، نشان میدهد. پس از تغییر به یادگیری روی مجموعه دوم، آموزش تا ۲۵۶ epoch یا تا زمانی که خطای اعتبارسنجی به حداقل برسد ادامه مییابد (توقف زودرس یا Early Stopping). همانطور که از شکل مشخص است، بهترین نتیجه (کمترین خطای تست) با یک سرفصل دومرحلهای بدست میآید که در آن نیمی از مراحل آموزش (۲۵۶ epoch) صرف نمونههای آسانتر میشود.
یک ایرادی که در اینجا به یادگیری سرفصلی میتوان گرفت این است که مدل آموزش دیده با این روش، به طور کلی نمونههای بیشتری نسبت به مدل ساده مشاهده کرده است و عملکرد بهتر آن به همین دلیل است. اگرچه نمونههای آسان نسبت به نمونههای سخت، تنوع کمتری دارند اما برای اطمینان از عدم وجود این ایراد، آزمایش مدل ساده را با اجتماعی از مجموعههای BasicShapes و GeomShapes آموزش دادیم. مشاهدات حاکی از عملکرد ضعیفتر نسبت به یادگیری سرفصلی بود (خطایی مشابه با یادگیری سرفصلی با مقدار ۱۶ برای Switch Epoch). همچنین آموزش شبکه تنها با مجموعه BasicShapes نیز نتایج ضعیفی را به همراه دارد.
با الهام از علوم شناختی این سوال را پرسیدیم که آیا الگوریتمهای یادگیری ماشین میتوانند از یک استراتژی سرفصلی بهرهمند شوند؟ نتایج آزمایشات حاکی از پاسخ مثبت به این سوال بودند. البته توجه کنید برخی استراتژیهای سرفصلی بهتر از بقیه کار میکنند و حتی این استراتژیها ممکن است در بعضی مسایل کاملا بیاستفاده باشند. البته انتخاب سرفصل مناسب هم ساده نیست، همانطور که هنر تدریس کردن برای انسانها نیز دشوار است، این که مطالب در چه ترتیبی و با چه حجم و پیچیدگی باید فراهم شوند.
امیدوارم این مطلب برای شما جالب بوده باشه. در نظر دارم که خلاصهای از برخی مقالات مشهور دنیای هوش مصنوعی و یادگیری عمیق رو به زبان فارسی بنویسم. نظرات شما در این مسیر راهنمای من خواهند بود، از من دریغشون نکنید :-*