یادگیری انتقالی (Transfer Learning) چیست؟ اگر در زمینهی یادگیری عمیق (Deep Learning) مطالعه فعالیت کنید، قطعاً به عبارت «یادگیری انتقالی» یا «Tranfer Learning» برخوردهاید. Transfer Learning یکی از شگفتانگیزترین ویژگیهای شبکهی عصبی محسوب میشود که در آن میتوان از یک مدل آموزشدیده با یک مجموعهدادهی خاص برای حل مسائل مشابه با مجموعهدادهای متفاوت استفاده کرد. در این مطلب با این تکنیک منحصربهفرد آشنا خواهید شد.
- 1. یادگیری انتقالی (Transfer Learning) چیست؟
- 2. یادگیری انتقالی چطور کار میکند؟
- 3. اما چرا باید از یادگیری انتقالی استفاده کنیم؟
- 4. با روشهای Transfer Learning آشنا شوید
- 5. کاربردهای یادگیری انتقالی (Transfer Learning)
- 6. خلاصه مطالب درباره یادگیری انتقالی (Transfer Learning)
- 7. یادگیری دیتا ساینس و ماشین لرنینگ با کلاسهای آنلاین آموزش علم داده کافهتدریس
یادگیری انتقالی (Transfer Learning) چیست؟
تکنیک یادگیری انتقالی از دانش مدلی که از قبل برای وظیفهای دیگر (تسک اولیه) آموزش دیده شده است برای حل وظیفهای دیگر استفاده میکند. قطعاً این دو وظیفه تا حد زیادی مشابه یکدیگر هستند؛ برای مثال، اگر یک طبقهبندیکنندهی ساده را برای پیشبینی اینکه در عکس کولهپشتی وجود دارد یا نه آموزش دادهایم، میتوانیم از دانشی که مدل در طول آموزش به دست آورده است برای پیشبینی وجود اشیای دیگر، مانند عینک آفتابی در عکس، استفاده کنیم. درواقع با تکنیک Transfer Learning ما وزنهایی که یک شبکه برای وظیفهی A یاد گرفته است به وظیفهی B منتقل میکنیم.
ایدهی کلی یادگیری انتقالی این است که از دانشی که مدل برای حل یک وظیفه با حجم زیادی داده به دست آورده است برای وظیفهی دیگری که این حجم داده را در دسترس ندارد استفاده کنیم؛ بهجای این هم که یادگیری شبکه از صفر شروع شود، با الگوهای یادگرفتهشده شروع میکنیم که در حین حلکردن وظیفهای دیگر به دست آمده است. Transfer Learning اغلب در حوزهی بینایی ماشین (Computer Vision) و پردازش زبان طبیعی (NLP / Natural Language Processing) استفاده میشود که به قدرت محاسباتی بسیار بالایی نیاز دارند.
پیشنهاد میکنیم با درک زبان طبیعی آشنا شوید.
یادگیری انتقالی چطور کار میکند؟
برای درک بهتر نحوهی کار Transfer Learning یک وظیفهی بینایی ماشین را در نظر میگیریم. در وظیفههای بینایی ماشین شبکههای عصبی، برای مثال، ابتدا در لایههای اولیه به شناسایی لبهها، در لایههای میانی به شناسایی اشکال و در لایههای نهایی به تشخیص ویژگیهای خاص وظیفهی مدنظر میپردازند. با استفاده از تکنیک یادگیری انتقالی ما از لایههای اولیه و میانی وظیفهی دیگری استفاده میکنیم و فقط لایههای نهایی را دوباره آموزش میدهیم تا به خروجی مدنظر در وظیفهای برسیم که در حال کار روی آن هستیم.
در مثال تشخیص کولهپشتی در لایههای اولیه مدل قادر به شناسایی اشیاست؛ حال ما لایههای نهایی را آموزش میدهیم تا مدل بتواند عینک آفتابی را از میان باقی اشیا تشخیص دهد.
برای آشنایی با بینایی ماشین مطلب بینایی ماشین (Computer Vision) را مطالعه کنید.
اما چرا باید از یادگیری انتقالی استفاده کنیم؟
مهمترین مزایای استفاده از تکنیک یادگیری انتقالی (Transfer learning) این است که زمان آموزش بهشدت کاهش پیدا میکند، به حجم زیادی داده احتیاج نداریم و عملکرد شبکهی عصبی در اغلب موارد بهتر خواهد بود.
برای آموزش شبکههای عصبی به حجم زیادی داده نیاز داریم که این حجم از داده همیشه در دسترس نیست. اینجاست که Transfer Learningمیتواند کمک بزرگی باشد. آموزش شبکه از ابتدا به زمان زیادی نیاز دارد و گاهی ممکن است در وظیفههای پیچیده این موضوع هفتهها طول بکشد. استفاده از یادگیری انتقالی این زمان را کاهش میدهد؛ زیرا ما از شبکهای که از قبل آموزش دیده است استفاده میکنیم.
با روشهای Transfer Learning آشنا شوید
سه روش کلی برای یادگیری انتقالی (Transfer Learning) وجود دارد که در ادامه به آنها پرداختهایم:
- آموزش یک مدل برای استفادهی مجدد
فرض کنیم که ما برای انجامدادن وظیفهی A به حجم زیادی داده نیاز داریم، اما این حجم از داده در دسترس نیست. در این حالت میتوانیم مدل را برای وظیفهی مشابه دیگری (B) که دادههای در دسترس زیادی دارد آموزش دهیم؛ سپس از این مدل آموزشدیده برای تسک مدنظر خودمان (A) استفاده کنیم. اینکه از کل مدل یا فقط چندین لایهی آن استفاده کنیم به وظیفهای بستگی دارد که میخواهیم انجام دهیم.
- استفاده از مدلهای ازپیشآموزشدیده (Pre-trained Models)
یکی دیگر از روشهای تکنیک Transfer Learning استفاده از مدلهای ازپیشآموزشدیدهی موجود است. تعداد زیادی از این مدلها در حال حاضر در دسترس هستند و با کمی تحقیق میتوان از آنها برای وظیفهی مدنظر خود استفاده کنیم. این نوع از یادگیری انتقالی بیشترین کاربرد را در یادگیری عمیق دارد.
- استخراج ویژگی (Feature Extraction)
یکی دیگر از روشهای یادگیری انتقالی استخراج مهمترین ویژگیها با استفاده از یادگیری عمیق است. در یادگیری ماشین معمولاً متخصصان ویژگیها را بهصورت دستی ایجاد میکنند، اما خود شبکهی عصبی هم این قابلیت را دارد که تشخیص دهد کدام ویژگیها مهم هستند و کدامیک اهمیتی ندارد. شبکهی عصبی میتواند در کمترین (بهینهترین) زمان ممکن ترکیب خوبی از ویژگیها را حتی برای پیچیدهترین وظیفهها در اختیارمان قرار دهد. این کار بهصورت دستی زمان و زحمت زیادی را میطلبد. این ویژگیهای یادگرفتهشده میتوانند برای تسکهای دیگری هم استفاده شوند. میتوانیم از لایههای اولیهی شبکه برای شناسایی ویژگیها استفاده کنیم و لایههای نهایی را مطابق با وظیفهی خود تغییر دهیم. خروجی این شبکه بردارهای ویژگی دادههای خام ورودی را به ما میدهد.
کاربردهای یادگیری انتقالی (Transfer Learning)
یادگیری انتقالی یک تکنیک یادگیری ماشین است که شامل استفاده از یک مدل از پیش آموزش دیده در یک تسک مرتبط به عنوان نقطه شروع، برای یک تسک جدید است. این رویکرد در زمینههای مختلف کاربرد فراوانی دارد و میتواند در تمام حوزههای یادگیری ماشین و عمیق به کار برده شود.
در اینجا چند نمونه از برنامههای کاربردی یادگیری انتقالی را معرفی میکنیم:
تشخیص تصویر (Image recognition): Transfer Learning میتواند برای آموزش مدلی برای تشخیص اشیاء مختلف در تصاویر استفاده شود. به عنوان مثال، یک مدل از پیش آموزش دیده که بر روی میلیونها تصویر آموزش داده شده است، میتواند برای تشخیص اشیاء خاص مانند سگ، گربه یا ماشین در تصویر به خوبی تنظیم (fine-tune) شود.
پردازش زبان طبیعی (Natural language processing): یادگیری انتقالی همچنین میتواند برای بهبود دقت تسکهای مختلف پردازش زبان طبیعی مانند تجزیه و تحلیل احساسات، طبقهبندی متن و ترجمه زبان استفاده شود. مدلهای زبانی از پیش آموزشدیده را میتوان برای تسکهای خاص بهخوبی تنظیم (fine-tune) کرد که توسعه مدلهای با کارایی بالا را با دادههای کمتر آسانتر میکند.
تشخیص گفتار (Speech recognition): از Transfer Learning میتوان برای بهبود دقت مدلهای تشخیص گفتار هم استفاده کرد. به عنوان مثال، یک مدل از پیش آموزش دیده که بر روی مجموعه داده بزرگی از گفتار آموزش داده شده است، میتواند روی یک مجموعه داده کوچکتر تنظیم شود تا الگوهای گفتاری یا لهجههای خاص را تشخیص دهد.
سیستمهای توصیهگر (Recommender systems): از کاربردهای دیگر یادگیری انتقالی بهبود دقت سیستمهای توصیهگر است. یک مدل از پیش آموزش دیده را میتوان بر روی یک مجموعه داده جدید تنظیم کرد تا محصولات یا خدمات را بر اساس ترجیحات و رفتار کاربران به آن ها توصیه کند.
وسایل نقلیه خودمختار (Autonomous vehicles): یادگیری انتقالی میتواند برای آموزش وسایل نقلیه خودران برای شناسایی و پاسخگویی به موقعیتهای مختلف ترافیکی نیز به کار برده شود. به عنوان مثال، یک مدل از پیش آموزش دیده که بر روی سناریوهای رانندگی در دنیای واقعی آموزش دیده است، میتواند برای تشخیص علائم راهنمایی و رانندگی خاص یا شرایط جادهای به خوبی تنظیم شود.
به طور کلی، Transfer Learning را میتوان در طیف گستردهای از وظایف و حوزهها اعمال کرد و آن را به یک تکنیک ارزشمند برای بهبود عملکرد مدلهای یادگیری ماشین تبدیل کرد.
خلاصه مطالب درباره یادگیری انتقالی (Transfer Learning)
با وجود تمامی مزایایی که تکنیک Transfer Learning دارد، این ما هستیم که با درنظرگرفتن وظیفهی مدنظرمان باید استفادهکردن یا نکردن از آن را انتخاب کنیم؛ بااینحال خوب است بدانیم که بهطور کلی زمانیکه دادههای آموزشی برچسبدار با حجم کافی برای وظیفهی مدنظر نداریم، مدل ازپیشآموزشدیدهای وجود دارد که دقیقاً برای وظیفهی ما با حجم زیادی داده آموزش دیده است؛ یا زمانیکه وظیفهی A و B، هر دو، ورودی مشابهی داشته باشند میتوان به یادگیری انتقالی فکر کرد.
در طی چند سال گذشته، بهرهگیری از روش یادگیری انتقالی حوزهی پردازش زبان طبیعی (NLP) پیشرفتهای چشمگیری را به وجود آورده است. این پیشرفتها و امکان ادغام روشهای Transfer Learning با روشهای مرسوم یادگیری ماشین و همچنین تأثیر بسزای این روش بر حوزهی بینایی ماشین نشان میدهد که بهطور حتم یادگیری انتقالی بهعنوان ابزاری رایج و مسیر تحقیقاتی مهمی در آینده مطرح خواهد بود.
پیشنهاد میکنیم مطلب یادگیری عمیق (Deep Learning) را مطالعه کنید.
یادگیری دیتا ساینس و ماشین لرنینگ با کلاسهای آنلاین آموزش علم داده کافهتدریس
کافهتدریس دورهی جامع کلاس آنلاین آموزش علم داده کافهتدریس را بهصورت مقدماتی و پیشرفته برگزار میکند. شرکت در این کلاسهای آنلاین به شما کمک میکند از هر نقطهی جغرافیایی به بهروزترین و جامعترین آموزش دیتا ساینس و ماشین لرنینگ دسترسی داشته باشید.
برای آشنایی با کلاسهای آنلاین آموزش علم داده کافهتدریس و مشاورهی رایگان برای شروع یادگیری دیتا ساینس روی این لینک کلیک کنید:
عالی و قابل فهم ممنون فقط اگر میشه نکاتی از خود مقاله مخترع روش آقای پرت 1998 هم بیاورید
حتما اضافه میشه.
سلام
ممنون از مطلب کاربردیتون
یه سوال داشتم و این که transfer learning رو میشه برای regression استفاده کرد ؟