انتقال یادگیری یا transfer learning چیست؟
انتقال یادگیری(Transfer learning) به معنای استفاده مجدد از یک مدل از پیش آموزشدیده برای حل یک مشکل جدید است. این روش به خصوص در یادگیری عمیق یا دیپلرنینگ بسیار محبوب است زیرا میتوان از شبکه عصبیهایی که قبلا روی تعداد بسیار زیادی داده آموزش داده شده استفاده کرد و مسالهی جدید را با دادههای نسبتاً کمی آموزش داد. این ویژگی در اکثر مسائل بسیار مفید است زیرا اکثر مشکلات دنیای واقعی معمولاً دادههای برچسبدار زیادی برای آموزش مدلهای عمیق ندارند.
انتقال یادگیری چیست؟
انتقال یادگیری به معنای استفاده مجدد از یک مدل از پیش آموزشدیده برای حل یک مشکل جدید است. در این روش، ماشین از دانش کسبشده از یک وظیفه قبلی برای بهبود عملکرد در وظیفه جدید استفاده میکند. به عنوان مثال، برای آموزش یک طبقهبند برای پیشبینی اینکه آیا یک تصویر شامل غذا است یا نه، میتوانید از دانشی که در طی آموزش قبلی که فرق حیوانات و اشیاء مختلف را به آن آموزش دادیم استفاده کنیم و حالا که مدل دنیای بصری پیرامون را میشناسد مساله جدید را با مثالهای کمتر به آن آموزش دهیم!
انتقال یادگیری چگونه کار میکند؟
در انتقال یادگیری، دانش یک مدل یادگیری ماشینی که قبلاً آموزش دیده است به یک مشکل دیگر ولی مرتبط اعمال میشود. به عنوان مثال، اگر یک طبقهبند ساده برای پیشبینی اینکه آیا یک تصویر شامل یک کولهپشتی است یا نه آموزش داده شده باشد، میتوان از دانشی که مدل در طی آموزش کسب کرده برای شناسایی اشیاء دیگری مانند عینکهای آفتابی استفاده کرد.
با انتقال یادگیری، اساساً سعی میکنیم از آنچه در یک وظیفه آموخته شده است برای بهبود عملکرد در وظیفه دیگری استفاده کنیم. ما وزنهای یک شبکه را که در “وظیفه A” یاد گرفته شدهاند به “وظیفه B” که وظیفه جدید است انتقال میدهیم و معمولا لایه هایی را ثابت نگه میداریم یا اصطلاحاً فریز کرده و لایه هایی برای وظیفهی جدید اضافه میکنیم! در انتقال یادگیری (Transfer Learning)، مفهوم “فریز کردن لایهها” یا freeze کردن، به این معناست که وزنهای بعضی از لایههای مدل پیشآموزش دیده ثابت نگه داشته میشوند و در طی فرایند آموزش مجدد تغییر نمیکنند. این روش معمولاً برای استفاده از یک مدل پیشآموزش دیده در یک مسئله جدید و با دادههای متفاوت به کار میرود. و دلیل اینکار این است که اطلاعات از قبل آموخته شده فراموش نشود و با اضافه کردن لایه جدید و آموزش تنها آن لایه ها برای آن کار از اطلاعات قبلی استفاده کند.
مفاهیم مهم یادگیری انتقالی!
- مدل پیشآموزش دیده: مدلهایی که روی مجموعه دادههای بزرگ و عمومی مانند ImageNet آموزش دیدهاند و قابلیت استخراج ویژگیهای عمومی از تصاویر را دارند.
- انتقال یادگیری: استفاده از یک مدل پیشآموزش دیده به عنوان پایهای برای حل یک مسئله خاص (اغلب با مجموعه داده کوچکتر و خاصتر).
- فریز کردن لایهها:
- انتخاب لایهها: معمولاً لایههای ابتدایی مدل که ویژگیهای عمومیتری را استخراج میکنند، فریز میشوند.
- ثابت نگهداشتن وزنها: وزنهای این لایهها در طی فرایند آموزش مجدد تغییر نمیکنند. این کار باعث میشود تا ویژگیهای عمومی که مدل از قبل یاد گرفته است حفظ شوند.
- آموزش لایههای بالایی: لایههای بالایی که ویژگیهای خاصتری را استخراج میکنند، برای مسئله جدید تنظیم میشوند و وزنهای آنها در طی فرایند آموزش تغییر میکنند.
چرا از انتقال یادگیری استفاده کنیم؟
انتقال یادگیری چندین مزیت دارد که از جمله آنها میتوان به صرفهجویی در زمان آموزش، بهبود عملکرد شبکههای عصبی (در بیشتر موارد) و نیاز نداشتن به دادههای زیاد اشاره کرد. معمولاً برای آموزش یک شبکه عصبی از صفر، دادههای زیادی لازم است اما دسترسی به این دادهها همیشه ممکن نیست — در اینجا انتقال یادگیری یا ترنسفر لرنینگ بسیار مفید است. با استفاده از انتقال یادگیری میتوان یک مدل ماشین آموزی قوی با دادههای آموزشی نسبتاً کم ساخت زیرا مدل از قبل آموزش دیده است. این ویژگی روی داده های صوتی و روی داده های تصویری (در مسائل بینایی کامپیوتری) استفاده میشود و در پردازش زبان طبیعی هم بسیار ارزشمند است زیرا برای ایجاد مجموعههای بزرگ دادههای برچسبدار معمولاً نیاز به دانش تخصصی است. علاوه بر این، زمان آموزش کاهش مییابد زیرا آموزش یک شبکه عصبی عمیق از صفر در یک وظیفه پیچیده ممکن است روزها یا حتی هفتهها طول بکشد.
چه زمانی از انتقال یادگیری استفاده کنیم؟
تشکیل قوانین کلی در مورد زمان استفاده از انتقال یادگیری در ماشین آموزی دشوار است، اما برخی راهنماها عبارتند از:
- دادههای برچسبدار کافی برای آموزش شبکه از صفر وجود ندارد.
- یک شبکه از پیش آموزشدیده برای یک وظیفه مشابه وجود دارد که معمولاً با مقدار زیادی داده آموزش دیده است.
- وقتی وظیفه 1 و وظیفه 2 ورودی یکسانی دارند.
بر اساس گفتههای دمیس حسابیس(Demis Hassabis)، مدیر عامل دیپمایند، انتقال یادگیری یکی از امیدوارکنندهترین تکنیکها است که میتواند روزی به هوش مصنوعی عمومی (AGI) منجر شود:
(من فکر میکنم انتقال یادگیری میتواند کلید رسیدن به هوش مصنوعی عمومی باشد. و فکر میکنم کلید انجام انتقال یادگیری کسب دانش مفهومی است که از جزئیات ادراکی جایی که آن را یاد گرفتهاید جدا شده باشد.)
رویکردهای انتقال یادگیری
- آموزش یک مدل برای استفاده مجدد در این رویکرد، مدل ابتدا برای یک وظیفه با دادههای فراوان آموزش داده میشود و سپس برای حل یک وظیفه جدید با دادههای کم مورد استفاده قرار میگیرد.
- استفاده از یک مدل از پیش آموزشدیده این روش شامل استفاده از مدلهای از پیش آموزشدیده است. تعداد زیادی از این مدلها موجود هستند، بنابراین تحقیق و انتخاب مدل مناسب ضروری است.
- استخراج ویژگیها در این رویکرد، یادگیری عمیق برای کشف بهترین نمایه از مشکل استفاده میشود که به معنای یافتن مهمترین ویژگیها است. این رویکرد معمولاً در بینایی کامپیوتر بسیار استفاده میشود زیرا میتواند اندازه مجموعه دادهها را کاهش داده و زمان محاسباتی را کم کند.
مدلهای از پیش آموزشدیده محبوب
برخی از مدلهای یادگیری عمیق از پیش آموزشدیده محبوب برای مسائل بینایی کامپیوتر عبارتند از مدل Inception-v3، که برای چالش “تشخیص بزرگ بصری ImageNet” آموزش داده شده است. مدلهای دیگری همچون ResNet و AlexNet نیز محبوب هستند. این مدلها در کتابخانههای معروفی مانند Keras و TensorFlow در دسترس هستند و میتوانند برای انتقال یادگیری، پیشبینی، استخراج ویژگی و بهینهسازی استفاده شوند.
در نتیجه، انتقال یادگیری یک روش مؤثر برای استفاده از دانش مدلهای از پیش آموزشدیده برای حل مشکلات جدید است که به بهبود عملکرد و کاهش زمان و منابع مورد نیاز برای آموزش کمک میکند.
منابع بیشتر
فصل سوم و نهم دورهی جامع یادگیری عمیق به ترتیب به مقدمات و مفاهیم پیشرفتهی Transfer Learning اختصاص داده شده است که در صورت تمایل میتوانید این دورهی آموزشی مفید را از لینک زیر تهیه بفرمائید:
دیدگاهتان را بنویسید