جستجو برای:
  • فروشگاه
  • وبلاگ
  • آموزش‌های رایگان
    • آموزش پایتون رایگان
    • آموزش یادگیری ماشین رایگان
    • آموزش یادگیری عمیق رایگان
    • آموزش pytorch رایگان
    • آموزش گوگل کولب
    • آموزش رایگان matplotlib
    • آموزش متلب رایگان
    • دوره‌های خارجی
  • نقشه راه AI
  • کلاس خصوصی
  • همکاری با ما💚
  • حساب کاربری
  • اساتید
  • درباره ما
     
    • 0902-546-9248
    • howsam.mail@gmail.com
    آکادمی هوش مصنوعی هوسم
    • فروشگاه
    • وبلاگ
    • آموزش‌های رایگان
      • آموزش پایتون
      • آموزش یادگیری ماشین رایگان
      • آموزش یادگیری عمیق
      • آموزش pytorch
      • آموزش گوگل کولب
      • آموزش رایگان matplotlib
      • آموزش متلب
      • دوره‌های خارجی
    • نقشه راه AI
    • کلاس خصوصی
    • درباره ما
      • اساتید
      • پشتیبانی
      • هوسم در اینستا و تلگرام
        • اینستاگرام هوسم (howsam_org@)
        • تلگرام هوسم (howsam_org@)
        • تلگرام پایتورچ (pytorch_howsam@)
    • همکاری با ما💚
    0

    ورود و ثبت نام

    بلاگ

    آکادمی هوش مصنوعی هوسم وبلاگ یادگیری عمیق یادگیری انتقالی

    یادگیری انتقالی

    2025/02/15
    ارسال شده توسط هوسم
    یادگیری عمیق
    7.38k بازدید

    یادگیری انتقالی یا Transfer Learning به معنای استفاده از یک مدل از پیش آموزش‌دیده در یک تسک/مساله جدید است. این مبحث به یک تکنیک ضروری در یادگیری عمیق تبدیل شده است. در این آموزش می‌خواهم درباره یادگیری انتقالی و انواع روش آن صحبت کنم. با هوسم همراه باشید…

    احساس کردم یادگیری انتقالی یا Transfer Learning کمی شبیه به دو امدادی هست! اگه شما نظر متفاوتی دارید، لطفا توی کامنت‌ها بگید… منبع
    فهرست مطالب نمایش
    1. یادگیری انتقالی چیست؟
    2. کاربرد ترنسفر لرنینگ
    3. چرا یادگیری انتقالی مهم است؟
    4. انواع یادگیری انتقالی
    4.1. Task-based Transfer Learning
    4.1.1. یادگیری انتقالی استقرایی (Inductive Transfer Learning)
    4.1.2. یادگیری انتقالی استنتاجی (Transductive Transfer Learning)
    4.2. Knowledge-based Transfer Learning
    4.2.1. انتقال ویژگی (Feature Transfer)
    4.2.2. انتقال پارامتر (Paramtere Transfer)
    4.2.3. انتقال نمونه (Instance Transfer)
    5. یادگیری انتقالی چگونه کار می‌کند؟
    5.1. استخراج ویژگی (Feature Extraction)
    5.1.1. چگونه استخراج ویژگی انجام می‌شود؟
    5.1.2. فریز کردن مدل در کراس
    5.2. فاین تیون (Fine-tune) چیست؟
    5.2.1. چگونه فاین تیون انجام می‌شود؟
    5.2.2. فاین تیون با کراس
    6. چه موقعی باید از یادگیری انتقالی استفاده کرد؟

    یادگیری انتقالی چیست؟

    یادگیری انتقالی تکنیکی در یادگیری ماشین هست که در آن یک مدل آموزش‌دیده روی یک مساله/تسک در یک مساله/تسک دیگر اما مرتبط بازاستفاده می‌شود. به جای آموزش یک مدل از صفر، یادگیری انتقالی این امکان را می‌دهد که از دانش مدل‌های از پیش آموزش‌دیده استفاده کنیم و آن را برای یک مساله جدید تنظیم کنیم.

    یادگیری انتقالی
    در تسک 1، یک مدل روی دیتاست بزرگ ImageNet با 1 میلیون تصویر آموزش داده شده است. سپس، بخش Head (همان لایه کلاسیفایر) کنار گذاشته می‌شود و Model به همراه وزن‌های آموزش‌دیده روی ImageNet به تسک 2 منتقل می‌شود. نهایتا، مدل با یک Head جدید روی دیتاست دوکلاسه سگ/گربه با 1000 تصویر آموزش می‌بیند.

    این انتقال دانش در انسان هم وجود دارد؛ تصور کنید، می‌خواهید زبان فرانسوی را یاد بگیرید. اگر انگلیسی بلد باشید، یادگیری فرانسوی برایتان راحت‌تر خواهد بود، چون خیلی از کلمات و ساختارهای گرامری شبیه هم هستند. یادگیری انتقالی هم همین‌طور کار می‌کند؛ مدلی که روی یک تسک آموزش دیده، می‌تواند دانش خود را به یک وظیفه مرتبط دیگر منتقل کند.

    کاربرد ترنسفر لرنینگ

    یادگیری انتقالی تکنیک بسیار محبوبی است. بیایید دو نمونه مثال از کاربرد یادگیری انتقالی را ببینیم:

    • حوزه بینایی کامپیوتر: می‌خواهیم 120 گونه سگ را با شبکه ResNet کلاس‌بندی کنیم. بجای اینکه شبکه رزنت از صفر با وزن‌های تصادفی روی دیتاست گونه‌های سگ آموزش دهیم، از تکنیک یادگیری انتقالی استفاده می‌کنیم. کافی است که از شبکه رزنت آموزش‌دیده روی دیتاست ImageNet بهره ببریم. شبکه با وزن‌های آماده را دوباره با دیتاست گونه‌های سگ آموزش می‌دهیم.
    • حوزه پردازش زبان طبیعی: می‌خواهیم کامنت‌های دیجی‌کالا را به سه کلاس بد، خنثی و خوب کلاس‌بندی کنیم. می‌توانیم یک مدل زبانی بزرگ مانند GPT یا BERT که روی حجم عظیمی از متن آموزش دیده را روی دیتاست کامنت‌های دیجی‌کالا آموزش دهیم.

    چرا یادگیری انتقالی مهم است؟

    دلایل زیادی برای اهمیت یادگیری انتقالی می‌توان ذکر کرد:

    • آموزش سریع‌تر: از آنجا که مدل قبلا آموزش دیده، آموزش روی یک وظیفه جدید زمان کمتری نیاز دارد. در نمودار شکل زیر مشاهده می‌کنید که مدل با ترنسفر لرنینگ یادگیری سریع‌تری دارد.
    • عملکرد بهتر: مدل قبلا آموزش‌دیده، عملکرد بهتری در یادگیری تسک جدید خواهد داشت. در نمودار مشاهده می‌کنید که درنهایت مدل با یادگیری انتقالی به کارآیی بهتری رسیده است.
    • کارایی محاسباتی: تنظیم و بهینه‌سازی یک مدل از پیش آموزش‌دیده، توان محاسباتی بسیار کمتری نیاز دارد. در نمودار مشخص است که با تعداد ایپاک‌های کمتر به دقت بالاتر رسیده‌ایم.
    • نیاز کمتر به داده: یادگیری انتقالی نیاز به دیتاست با داده‌های بابرچسب زیاد را کاهش می‌دهد.
    ترنسفر لرنینگ
    این نمودار را اولین آقای Andrew NG درباره یادگیری انتقالی مطرح کرد.

    انواع یادگیری انتقالی

    عده‌ای یادگیری انتقالی را همان فاین تیونینگ (Fine-tuning) می‌دانند. یادگیری انتقالی تنها به مفهوم فاین تیونینگ محدود نمی‌شود، بلکه طیف گسترده‌ای از روش‌ها را شامل می‌شود. در این زمینه تحقیقات گسترده‌ای انجام شده و مقالات و کارهای متنوعی منتشر شده است. ما نمی‌خواهیم در این آموزش عمیقا وارد مبحث یادگیری انتقالی شویم. اما، مفید است اگر در این بخش نگاهی به روش‌های رایج یادگیری انتقالی داشته باشیم.

    انواع روش یادگیری انتقالی را به شکل‌های مختلفی می‌توان دسته‌بندی کرد. دو دسته‌بندی رایج آن عبارت است از:

    • یادگیری انتقالی براساس نوع تسک (Task-based Transfer Learning)
    • یادگیری انتقالی براساس نوع دانش (Knowledge-based Transfer Learning)

    در ادامه، می‌خواهم به‌صورت مختصر درباره یادگیری انتقالی براساس “نوع تسک” و “نوع دانش” توضیح بدهم…

    توجه مطالعه ادامه بخش انواع یادگیری انتقالی اختیاری است. درصورت عدم تمایل، از روی این بخش بپرید!

    Task-based Transfer Learning

    این دسته‌بندی به این موضوع می‌پردازد که تسک‌ها در مبدا و مقصد یکسان هستند یا متفاوت. دو شکل رایج این دسته عبارت است از:

    • یادگیری انتقالی استقرایی (Inductive Transfer Learning)
    • یادگیری انتقالی استنتاجی (Transductive Transfer Learning)

    یادگیری انتقالی استقرایی (Inductive Transfer Learning)

    در این روش، تسک مقصد متفاوت از تسک مبدا است، اما داده‌های برچسب‌دار در دامنه مقصد وجود دارند. به عنوان مثال، یک مدل برای تشخیص چهره‌ها در تصاویر آموزش دیده است. اکنون برای تشخیص احساسات (شاد، ناراحت، خشمگین) از چهره‌ها استفاده می‌شود. تسک مبدا و مقصد به‌ترتیب تشخیص چهره و تشخیص احساسات هستند که ازهم متفاوتند.

    یادگیری انتقالی استنتاجی (Transductive Transfer Learning)

    در این روش، تسک در مبدا و مقصد یکسان است، اما ویژگی‌ها یا توزیع داده‌ها متفاوت هستند. همچنین، داده‌های برچسب‌دار فقط در دامنه مبدا وجود دارند و نه در دامنه مقصد. به عنوان مثال، مدلی برای تشخیص اشیا در تصاویر روز آموزش دیده است. حالا برای تشخیص اشیا در تصاویر گرفته‌شده در شب استفاده می‌شود. تسک تشخیص اشیا یکسان است، اما توزیع داده‌ها (شرایط نوری) تغییر کرده است.

    به همین اندازه بسنده می‌کنم. اگر نمی‌خواهید به‌صورت تخصصی وارد بحث ترنسفر لرنینگ شوید، ضرورتی ندارد بیشتر بدانید. برویم سراغ دسته یادگیری انتقالی براساس نوع دانش…

    Knowledge-based Transfer Learning

    این دسته‌بندی بر اساس نحوه انتقال دانش از دامنه مبدا به دامنه مقصد انجام می‌شود. سه شکل رایج آن عبارت است از:

    • انتقال ویژگی (Feature Transfer)
    • انتقال پارامتر (Paramtere Transfer)
    • انتقال نمونه (Instance Transfer)

    انتقال ویژگی (Feature Transfer)

    ویژگی‌هایی که مدل از داده‌های دامنه مبدا یاد گرفته، برای آموزش مدل جدید در دامنه مقصد استفاده می‌شوند. به عنوان مثال، از مدل از پیش آموزش‌دیده ResNet برای استخراج ویژگی از تصاویر جدید استفاده کنیم. سپس، این ویژگی‌های استخراجی را به یک مدل یا لایه طبقه‌بندی جدید بدهیم. این روش، بیشتر در بینایی کامپیوتری و پردازش زبان طبیعی استفاده می‌شود.

    انتقال پارامتر (Paramtere Transfer)

    پارامترهای مدل از پیش‌آموزش‌دیده شده در دامنه مبدا، به عنوان نقطه شروع برای آموزش در دامنه مقصد استفاده می‌شوند. به عنوان مثال، فاین‌تیونینگ مدل BERT برای یک کار جدید، مانند تحلیل احساسات یا دسته‌بندی متن.

    انتقال نمونه (Instance Transfer)

    نمونه‌های داده از دامنه مبدا به دامنه مقصد منتقل شده و برای آموزش مدل جدید استفاده می‌شوند. به عنوان مثال، از مجموعه داده‌های مرتبط (مثلا مقالات علمی در زیست‌شناسی) برای آموزش یک مدل طبقه‌بندی در حوزه پزشکی استفاده کنیم. این روش زمانی کاربرد دارد که داده‌های دامنه مقصد کم هستند و نیاز به داده‌های اضافی داریم.

    در این بخش، دو دسته یادگیری انتقالی براساس نوع تسک و نوع دانش را به شما توضیح دادم. بالاخره، به بخش مورد علاقه شما رسیدیم! 😊

    یادگیری انتقالی چگونه کار می‌کند؟

    چه بخش قبلی را خوانده باشید، چه نخوانده باشید، احتمالا با من هم‌عقیده هستید که تکنیک‌های متنوعی در یادگیری انتقالی وجود دارد. اما، دو تکنیک رایج در ترنسفر لرنینگ وجود دارد که می‌خواهم به‌صورت عملی درباره آنها صحبت کنم. این دو تکنیک عبارت است از:

    • استخراج ویژگی (Feature Extraction)
    • فاین تیون کردن (Fine-tune)

    در بخش قبلی، در قالب دو عنوان انتقال ویژگی (Feature Transfer) و انتقال پارامتر (Paramtere Transfer) درباره این دو تکنیک صحبت کردم. اما، اینجا می‌خواهم با جزئیات بیشتری به آنها بپردازم و نمونه کد هم نشان بدهم.

    استخراج ویژگی (Feature Extraction)

    استخراج ویژگی یکی از روش‌های پرکاربرد در یادگیری انتقالی است. در این روش، از ویژگی‌های آموخته‌شده توسط یک مدل از پیش آموزش‌دیده استفاده می‌شود، بدون اینکه کل مدل دوباره آموزش داده شود. در این روش، بخش‌های استخراج ویژگی مدل ثابت می‌مانند (فریز می‌شوند) و فقط یک لایه جدید (مثلا لایه طبقه‌بندی) روی آن اضافه می‌شود تا برای یک کار خاص آموزش ببیند و استفاده شود. در شکل زیر نشان داده شده است که چگونه بخش‌های استخراج ویژگی شبکه کانولوشنی کامل فریز شده و قابل آموزش نیست. تنها لایه خروجی (نهایی) قابل آموزش هست.

    یادگیری انتقالی
    تمامی لایه‌های کانولوشنی از حالت آموزش‌دیدن خارج شده‌اند. به عبارت ساده‌تر، فریز شده‌اند. بنابراین، تنها نقش استخراج ویژگی ثابت را دارند. تنها لایه خروجی (یک لایه فولی کانکتد) آموزش می‌بیند.

    چگونه استخراج ویژگی انجام می‌شود؟

    مراحل زیر را باید به‌ترتیب انجام دهیم:

    1. انتخاب مدل از پیش آموزش‌دیده: معمولا این مدل روی دیتاست بزرگ و عمومی آموزش دیده است؛ مثل ResNet برای بینایی کامپیوتر یا BERT برای پردازش زبان طبیعی.
    2. فریز کردن بخش استخراج ویژگی: فریمورک‌های پایتورچ و تنسورفلو-کراس، به سادگی امکان فریز کردن مدل‌ها را فراهم کرده‌اند. بعدا به شما می‌گویم…
    3. افزودن لایه خروجی: این لایه می‌تواند یک طبقه‌بند جدید باشد که ویژگی‌های استخراج‌شده را برای یک تسک جدید پردازش می‌کند.
    4. آموزش مدل: نیازی به آموزش کل مدل نیست؛ فقط لایه اضافه‌شده را با دیتاست جدید آموزش می‌دهیم.

    فریز کردن مدل در کراس

    در تکه کد زیر، یک مدل آموزش‌دیده فراخوانی شده؛ سپس، تعدادی از لایه‌های مدل فریز شده؛ نهایتا، یک لایه فولی کانکتد به انتهاب مدل اضافه شده است.

    from tensorflow.keras.applications import VGG16
    from tensorflow.keras.models import Model
    from tensorflow.keras.layers import Dense, Flatten
    
    # ۱. بارگیری مدل از پیش آموزش‌دیده با حذف لایه‌ی خروجی اصلی
    base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
    
    # ۲. فریز کردن تمام لایه‌های مدل اصلی
    for layer in base_model.layers:
        layer.trainable = False
    
    # ۳. اضافه کردن لایه‌های جدید برای طبقه‌بندی خاص
    x = Flatten()(base_model.output)  # تبدیل خروجی به بردار
    x = Dense(128, activation='relu')(x)  # اضافه کردن یک لایه‌ی متراکم
    x = Dense(10, activation='softmax')(x)  # لایه‌ی خروجی با 2 کلاس

    فاین تیون (Fine-tune) چیست؟

    فاین تیون یا تنظیم دقیق، روشی در یادگیری انتقالی است که در آن یک مدل از پیش آموزش‌دیده روی داده‌های جدید و خاص یک حوزه تنظیم و بهینه‌سازی می‌شود. به جای آموزش مدل از صفر، فاین تیون کردن باعث می‌شود که مدل از دانش قبلی خود استفاده کند و فقط قسمت‌هایی از آن را برای انجام بهتر وظیفه جدید تطبیق دهد. دو حالت رایج در فاین تیون وجود دارد:

    • فاین تیون کامل (Full Fine-tune): در این حالت، پارامترهای کل مدل در حالت آموزش قرار می‌گیرد. بنابراین، همه پارامترهای فاین تیون یا تنظیم دقیق می‌شوند. اگر داده به اندازه کافی وجود دارد (مثلا، حدود 1000 نمونه داده با برچسب)، توصیه می‌کنم که مدل را فول فاین تیون کنید. نتیجه بهتری نسبت به روش فاین تیون جزئی دارد. 
    • فاین تیون جزئی: تنها بخشی از پارامترهای مدل در حالت آموزش قرار می‌گیرند. معمولا، لایه‌های ابتدایی فریز می‌شوند و لایه‌های انتهایی در حالت آموزش قرار می‌گیرند. لایه‌های ابتدایی شامل ویژگی‌های کلی و سطح پایین هستند. ممکن هست بین مبدا و مقصد مشترک باشند. بنابراین، ممکن هست فاین تیون تاثیر کمی روی عملکرد مدل داشته باشد. اما، لایه‌های انتهایی شامل ویژگی مهم و اختصاصی هستند. بنابراین، بهتر هست که فاین تیون شوند.
    فاین تیون Fine tune
    نمونه‌ای از فاین تیون جزئی که چهار لایه کانولوشنی اول به سایز 64 و 128 فیلتر فریز شده‌اند.

    چگونه فاین تیون انجام می‌شود؟

    برای انجام فاین تیون مراحل زیر باید به ترتیب انجام شود:

    1. انتخاب مدل از پیش آموزش‌دیده: این مدل معمولا روی یک مجموعه داده بزرگ و عمومی (مثلا ImageNet برای بینایی کامپیوتر یا GPT/BERT برای پردازش زبان طبیعی) آموزش دیده است.
    2. تغییر لایه آخر مدل: لایه آخر، لایه خروجی نام دارد. بسته به تسکی که داریم، باید لایه آخر را تنظیم کنیم.
    3. تنظیم میزان پارامترها/لایه‌های قابل آموزش: درصورت اجرای فاین تیون جزئی، باید تعیین کنیم که چه بخش از مدل قابل آموزش باشد.
    4. تنظیم هایپرپارامترها: معمولا، مدل آموزش‌دیده برای آموزش مجدد به نرخ یادگیری کوچکتری نسبت به آموزش از صفر نیاز دارد. به نظرتان دلیلش چیست؟ جوابتان را کامنت کنید!
    5. آموزش مدل: مدل را با مجموعه داده تسک جدید آموزش می‌دهیم.

    حالا می‌چسبد که یک مثال کدنویسی هم ببینیم…

    فاین تیون با کراس

    در نمونه کد زیر، یک تابع برای ساخت مدل نوشته شده که می‌توان از وزن‌های ارزشمند ImageNet استفاده کرد و همچنین تعدادی از لایه‌ها را فریز کرد.

    import tensorflow as tf
    from tensorflow.keras import layers, models, optimizers
    from tensorflow.keras.datasets import cifar10
    from tensorflow.keras.applications import VGG16
    from tensorflow.keras.utils import to_categorical
    
    # Load CIFAR-10 dataset
    (x_train, y_train), (x_test, y_test) = cifar10.load_data()
    
    # Normalize pixel values to [0, 1]
    x_train = x_train.astype('float32') / 255.0
    x_test = x_test.astype('float32') / 255.0
    
    # Convert labels to one-hot encoding
    y_train = to_categorical(y_train, 10)
    y_test = to_categorical(y_test, 10)
    
    # Define VGG-16 model with pretrained weights and freezing some layers
    def build_vgg16(pretrained=True, freeze_layers=True):
        if pretrained:
            base_model = VGG16(weights='imagenet', include_top=False, input_shape=(32, 32, 3))
        else:
            base_model = VGG16(weights=None, include_top=False, input_shape=(32, 32, 3))
        
        # Freeze some layers
        if freeze_layers:
            for layer in base_model.layers[:10]:  # Freeze the first 10 layers
                layer.trainable = False
        
        # Add custom layers for CIFAR-10
        model = models.Sequential()
        model.add(base_model)
        model.add(layers.GlobalAveragePooling2D())
        model.add(layers.Dense(10, activation='softmax'))
        
        return model
    
    # Build the model with pretrained weights and freeze some layers
    model = build_vgg16(pretrained=True, freeze_layers=False)
    
    # Compile the model
    model.compile(optimizer=optimizers.Adam(learning_rate=0.001),
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])
    
    # Train the model
    model.fit(x_train, y_train, epochs=10, batch_size=64, validation_split=0.2)
    
    # Evaluate the model
    print("Evaluation on test set:")
    model.evaluate(x_test, y_test)

    این هم خروجی کد بالا که مدل را فول فاین تیون کرده‌ایم:

    Epoch 1/10
    625/625 ━━━━━━━━━━━━━━━━━━━━ 44s 59ms/step - accuracy: 0.2132 - loss: 2.0185 - val_accuracy: 0.4401 - val_loss: 1.4287
    Epoch 2/10
    625/625 ━━━━━━━━━━━━━━━━━━━━ 36s 57ms/step - accuracy: 0.5316 - loss: 1.2640 - val_accuracy: 0.6381 - val_loss: 1.0395
    Epoch 3/10
    625/625 ━━━━━━━━━━━━━━━━━━━━ 36s 57ms/step - accuracy: 0.6740 - loss: 0.9296 - val_accuracy: 0.7212 - val_loss: 0.8037
    Epoch 4/10
    625/625 ━━━━━━━━━━━━━━━━━━━━ 40s 56ms/step - accuracy: 0.7510 - loss: 0.7362 - val_accuracy: 0.7388 - val_loss: 0.7774
    Epoch 5/10
    625/625 ━━━━━━━━━━━━━━━━━━━━ 41s 56ms/step - accuracy: 0.7924 - loss: 0.6144 - val_accuracy: 0.7550 - val_loss: 0.7381
    Epoch 6/10
    625/625 ━━━━━━━━━━━━━━━━━━━━ 35s 56ms/step - accuracy: 0.8291 - loss: 0.5190 - val_accuracy: 0.7721 - val_loss: 0.7172
    Epoch 7/10
    625/625 ━━━━━━━━━━━━━━━━━━━━ 35s 56ms/step - accuracy: 0.8512 - loss: 0.4469 - val_accuracy: 0.7824 - val_loss: 0.6893
    Epoch 8/10
    625/625 ━━━━━━━━━━━━━━━━━━━━ 42s 58ms/step - accuracy: 0.8708 - loss: 0.3966 - val_accuracy: 0.7683 - val_loss: 0.7715
    Epoch 9/10
    625/625 ━━━━━━━━━━━━━━━━━━━━ 41s 58ms/step - accuracy: 0.8916 - loss: 0.3387 - val_accuracy: 0.7821 - val_loss: 0.7328
    Epoch 10/10
    625/625 ━━━━━━━━━━━━━━━━━━━━ 37s 59ms/step - accuracy: 0.9056 - loss: 0.2904 - val_accuracy: 0.7889 - val_loss: 0.6988
    Evaluation on test set:
    313/313 ━━━━━━━━━━━━━━━━━━━━ 4s 8ms/step - accuracy: 0.7828 - loss: 0.7348
    [0.723657488822937, 0.7824000120162964]

    چه موقعی باید از یادگیری انتقالی استفاده کرد؟

    در بسیاری از موارد در یادگیری ماشین، دشوار هست قانونی پیدا کنیم که برای همه کاربردها عمومیت داشته باشد. اما در اینجا چند دستورالعمل رایج برای این کار را به شما می‌گویم. به طور معمول، زمانی از یادگیری انتقالی استفاده می‌شود که:

    1. داده‌های آموزشیِ برچسب‌دارِ کافی برای آموزش شبکه از صفر وجود ندارد.
    2. شبکه‌ای از پیش آموزش دیده برای یک کار مشابه وجود دارد که روی دیتاست بزرگی آموزش دیده است.

    در این آموزش به معرفی و بررسی مفهوم یادگیری انتقالی پرداختیم. امیدوارم که از این آموزش خوشتان آمده باشد. همچنین، از طریق کامنت‌ها می‌توانید سوال، پیشنهاد یا دیدگاه خود را با ما به اشتراک بگذارید. ممنون. 🤞

    اشتراک گذاری:

    مطالب زیر را حتما مطالعه کنید

    شبکه VGG
    شبکه VGG یکی از معماری‌های موفق و معروف در حوزه یادگیری عمیق است که در...
    مهندسی پرامپت
    امروزه، با ظهور ChatGPT و سایر ابزارهای هوش مصنوعی، طیف گسترده‌ای از افراد، از کاربران...
    مدل nanoGPT
    در سال ۲۰۱۹، OpenAI مدل GPT-2 را معرفی کرد. OpenAI، برخلاف مدل‌های بعدی (GPT-3 و...
    شگفت‌انگیزترین ایده هوش مصنوعی از نظر Andrej Karpathy
    هوش مصنوعی به سرعت در حال پیشرفت هست. به‌گونه‌ای که باید زمان و انرژی زیادی...
    شبکه ویژن ترنسفورمر
    شبکه ویژن ترنسفورمر (Vision Transformer) یا ViT یک شبکه عصبی مبتنی بر مدل ترنسفورمر هست...
    شبکه اتوانکدر
    شبکه اتوانکدر (Autoencoder) یک نوع شبکه عصبی است که برای فشرده‌سازی (کدگذاری) داده‌های به‌کار می‌رود....

    9 دیدگاه

    به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

    • واقفی گفت:
      2025/04/29 در 11:40 ق.ظ

      سلام .ممنون از مطلب خوبتان
      میشه لطفا transfer learning را در مدل هایی که از ترنسفورمر استفاده میکنند هم توضیح دهید که چگونه اتفاق می افتد؟؟

      پاسخ
    • Amir Moghaddam گفت:
      2025/04/12 در 11:15 ق.ظ

      خیلی ممنون از توضیحات روان و خوبتون، بغیر از دو مورد از کاربردهایی که در بالا از transfer learning گفتید، آیا model revision هم میتونه دلیل دیگه ای برای استفاده از این متد باشه؟

      پاسخ
      • هوسم گفت:
        2025/04/13 در 9:35 ق.ظ

        خواهش می‌کنم، خیلی خوشحالم که توضیحات براتون مفید بوده.
        بله، model revision (یا همون بازبینی و بروزرسانی مدل) هم می‌تونه یکی از دلایل مهم استفاده از transfer learning باشه. در واقع، میشه گفت یکی از قوی‌ترین کاربردهاش در همین زمینه‌ست.

        پاسخ
    • sara.ayuobi.198 گفت:
      2025/01/10 در 8:56 ب.ظ

      با سلام و عرض ادب
      سپاس از اطلاعات عالی شما
      ایا امکان این هست که توابع هدف و هزینه این الگوریتم رو هم به صورت ریاضی بفرمایید
      چونکه من دارم یه مقاله می نویسم در ارتباط با معرفی و بررسی چند الگوریتم که یکی از انها الگوریتم یادگیر هستش

      پاسخ
    • سعید گفت:
      2024/12/26 در 10:20 ق.ظ

      واقعا عالیه لطفا ادامه بدین

      پاسخ
      • هوسم گفت:
        2024/12/31 در 11:05 ق.ظ

        ممنون 🌹🙏

        پاسخ
    • یداله خانزاده گفت:
      2024/07/08 در 12:02 ق.ظ

      ممنون از زحمات شما
      مطالب مفیدبود

      پاسخ
      • هوسم گفت:
        2024/07/08 در 11:59 ق.ظ

        خوشحالیم که مطالب برای شما مفید بوده 😊

        پاسخ
    • زینب گفت:
      2021/07/31 در 6:22 ب.ظ

      سلام بسیار عالی
      امکانش هست تا لینک منبع رو هم به اشتراک بذارید

      پاسخ

    دیدگاهتان را بنویسید لغو پاسخ

    جستجو برای:
    دوره‌های جامع هوسم
    • پیاده‌سازی ChatGPT از صفر با پایتورچ
    • آموزش OpenCV: از پردازش تا بینایی
    • دیپ کاتالیست: دوره افزایش مهارت
    • پایتون برای هوش مصنوعی 🤖
    • یادگیری ماشین جامع: از مفاهیم تا پیاده‌سازی🔥
    • یادگیری عمیق جامع: از مفاهیم تا پیاده‌سازی
    • دوره متلب سوپراستارتر
    درباره هوسم

    آکادمی هوش مصنوعی هوسم با آموزش‌های تخصصی در حوزه هوش مصنوعی در خدمت شماست. روی کمک هوسم حساب کنید…

    • گیلان- شهرستان رودسر- شهرک انصاری- کوچه لاله 9
    • 09025469248
    • howsam.mail@gmail.com
    دسترسی سریع
    • صفحه اصلی
    • وبلاگ
    • حساب کاربری
    • سبد خرید
    شبکه‌های اجتماعی

     

    logo-samandehi
    تمامی حقوق برای آکادمی هوسم محفوظ است.
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!

      ورود

      رمز عبور را فراموش کرده اید؟

      هنوز عضو نشده اید؟ عضویت در سایت