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