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

    بلاگ

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

    یادگیری گروهی

    2024/07/29
    ارسال شده توسط سید سجاد اشرفی
    یادگیری ماشین
    2.94k بازدید

    یادگیری گروهی یا یادگیری جمعی (Ensemble Learning) یکی از مباحث مهم و کاربردی در یادگیری ماشین هست. این مبحث از سری جلسات آموزش یادگیری ماشین رایگان هست. با من و هوسم همراه باشید…

    فهرست مطالب نمایش
    1. یادگیری گروهی یا Ensemble Learning چیست؟
    1.1. مثال یادگیری گروهی در یادگیری ماشین
    1.2. انواع روش‌های یادگیری گروهی
    1.3. رهیافت Bagging در یادگیری ماشین
    1.4. جنگل‌های تصادفی یا Random Forests در یادگیری ماشین
    1.5. رهیافت بوستینگ (Boosting) در یادگیری گروهی

    یادگیری گروهی یا Ensemble Learning چیست؟

    یادگیری گروهی یا Ensemble Learning برای ما انسان‌ها کاملا قابل فهم هست. ما انسان‌ها به خرد جمعی یا Wisdom of the crowd اعتقاد داریم. منظور از خرد جمعی این هست که بجای لحاظ کردن نظر یک نفر، نظر مجموعه‌ای گوناگون از افراد را داشته باشیم. پس با موضوع جالبی در یادگیری ماشین سروکار داریم. در زیر تعریف یادگیری گروهی یا Ensemble Learning را برای شما آورده‌‌ام:

    ترکیب بهینه چند مدل یادگیری ماشین برای پیش بینی دقیق‌تر و مقاوم‌تر

    چطور هست کمی درباره عبارت‌های تعریف بالا بیشتر صحبت کنم؟

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

    درادامه، می‌خواهم با یک مثال ساده شما را با مدل یادگیری جمعی آشنا کنم. این مثال را خیلی دقیق بررسی کنید.

    مثال یادگیری گروهی در یادگیری ماشین

    دیتاستی بنام حمله قلبی (Kaggle Heart Attack) داریم که یک مساله دسته‌بندی دوکلاسه هست. می‌خواهم یک مدل یادگیری گروهی ساده روی این دیتاست آموزش دهم. یک نمونه ساده از مدل یادگیری گروهی برای این مساله در شکل زیر آورده‌ام. روش‌های یادگیری گروهی متنوع هستند و شما فعلا یک حالت ساده را می‌بینید. مدل گروهی ما، ترکیبی از سه مدل ماشین بردار پشتیبان (Support Vector Machine)، رگرسیون لجستیک (Logistic Regression) و درخت تصمیم (Decision Tree) را نشان می‌دهد.

    مدل یادگیری گروهی ساده
    یک مدل گروهی ساده متشکل سه مدل ماشین بردار پشتیبان (Support Vector Machine)، رگرسیون لجستیک (Logistic Regression) و درخت تصمیم (Decision Tree)

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

    • آموزش مدل یادگیری گروهی: هریک از مدل‌های موجود در مدل گروهی باید به‌صورت جداگانه آموزش ببینند. یعنی، مدل SVM را جداگانه روی دیتاست حمله قلبی آموزش می‌دهم. سپس، می‌روم سراغ مدل بعدی تا آخرین مدل. دقت کنید که در این مرحله هیچ صحبتی از یادگیری گروهی نیست. صرفا من سه مدل ساده دارم که درحال آموزش آنها به‌صورت جداگانه هستم.
    • ارزیابی مدل یادگیری گروهی: وقتی مدل‌ها به‌صورت جداگانه آموزش دیدند، آنها را در داخل ساختار شکل بالا قرار می‌دهم. مربع‌های زرد رنگ، پیش‌بینی مدل‌ها برای یک نمونه داده تستی هست. این پیش‌بینی‌ها در اختیار بلوک رای‌گیری (Majority Voting) قرار می‌گیرند. این بلوک هم کلاس نهایی را براساس بیشترین تکرار تعیین می‌کند. به عنوان نمونه، اگر دو مدل به کلاس 1 و یک مدل به کلاس 0 رای داده‌اند، خروجی نهایی کلاس 1 می‌شود. با منطق ما انسان‌ها هم می‌خواند، مثلا سیستم امتیازدهی در ورزشی مانند وزنه‌برداری که سه داور نظر می‌دهند و نتیجه نهایی نظر اکثریت است.

    براساس توضیحات بالا، تک‌تک مدل‌ها را روی دیتاست حمله قلبی آموزش دادم. نتیجه را در جدول زیر می‌توانید مشاهده کنید؛ بهترین دقت را مدل SVM و KNN با 88.52% دارند. وقتی این سه مدل را در ساختار مدل گروهی شکل بالا قرار دادم، دقت به 90.16% رسید. جالب هست نه؟! یعنی، ترکیب چند متخصص باعث شد که ما بتوانیم افراد بیشتری را خطر حمله قلبی نجات دهیم.

    آزمایش و ارزیابی مدل یادگیری گروهی
    نتیجه ترکیب سه مدل با رای‌گیری اکثریت و رسیدن به دقت بالاتر از مدل‌های تکی

    نکته یادتان باشد، مدل‌های تکی بالا نباید شبیه هم عمل کنند. اگر سه مدل داشته باشیم که پیش‌بینی درست و غلط آنها دقیقا مشابه هم باشد، آن وقت دیگر ترکیب آنها و ساخت مدل گروهی اصولا بی‌معنا می‌شود. متوجه هستید چه می‌گویم؟ درمورد این نکته خیلی فکر کنید. من در ویدئوی 463 از فصل هفدهم با موضوع یادگیری گروهی در دوره یادگیری ماشین جامع هوسم، از طریق ریاضیات و احتمال نشان دادم که حداکثر میزان کارایی ترکیب بهینه سه مدل می‌تواند چقدر باشد. اگر این دوره را دارید، حتما این ویدئو را ببینید؛ اگر هم این دوره را ندارید، احتمالا با همین سرنخی که دادم و کمک چت‌بات‌های هوش مصنوعی بتوانید این موضوع را اثبات کنید. 

    انواع روش‌های یادگیری گروهی

    یادگیری گروهی مبحث وسیعی است. به تنهایی می‌تواند یک دوره آموزشی باشد. به عنوان نمونه، در دوره یادگیری ماشین جامع هوسم ما حدودا 7 ساعت درباره یادگیری گروهی صحبت کردیم که به نظرم می‌شد تا 10 ساعت هم جا داشت! اما، به‌صورت کلی چهار رهیافت رایج در یادگیری گروهی وجود دارد. این چهار رهیافت عبارت‌است‌از:

    • رهیافت Bagging
    • رهیافت Boosting
    • رهیافت Voting
    • رهیافت Stacking

    درادامه، درباره هریک از این رهیافت‌ها را به‌صورت مجزا توضیح می‌دهم.

    رهیافت Bagging در یادگیری ماشین

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

    آموزش N مدل یکسان به‌صورت مجزا روی زیرمجموعه‌هایی تصادفی از داده آموزشی

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

    ممکن هست، برای شما این سوال ایجاد شود که خود کلمه Bagging به چه معناست؟! کلمه Bagging مخفف عبارت Bootsratp Aggregating است. در ادامه، معنی این دو کلمه را به‌صورت جداگانه توضیح می‌دهم:

    • Bootsrap: این کلمه به معنی انتخاب یک زیرمجموعه تصادفی (Random Subset) از نمونه‌های آموزشی (Train Data) با قابلیت جایگذاری است. مثلا، یک زیرمجموعه تصادفی به حجم 70 درصد دیتاست اصلی می‌سازید. قابلیت جایگذاری هم یعنی، ممکن است یک نمونه چند بار انتخاب شود.
    • Aggregating: ترکیب مدل‌های انفرادی آموزش‌دیده برای پیش‌بینی نهایی (مثلا، انتخاب براساس رای اکثریت در دسته‌بندی و میانگین‌گیری از مدل‌ها در رگرسیون)

    سوال اشرفی، تو گفتی اگر مدل‌ها عملکرد مشابهی داشته باشند، دیگر یادگیری گروهی چندان معنا ندارد. پس چرا اینجا در رهیافت بگینگ مدل‌های یکسانی گذاشته‌ای؟! اول، خودتان به جوابش فکر کنید و بعد جواب من را بخوانید. جواب این سوال ساده است! برای اینکه ما هر مدل را روی یک زیرمجموعه تصادفی از داده‌های آموزشی، آموزش می‌دهیم. وقتی داده آموزشی مدل‌ها متنوع است، انتظار می‌رود مدل‌های مختلف هم عملکرد دقیقا یکسانی نداشته باشند.

    به نظر شما، دیگر چه کاری انجام دهیم که تنوع داده آموزشی بیشتر شود؟ چه راه حلی پیشنهاد می‌دهید؟ اول، به این سوال فکر کنید و بعد جواب من در بخش بعدی بخوانید!

    جنگل‌های تصادفی یا Random Forests در یادگیری ماشین

    جنگل‌های تصادفی یا Random Forests هم یکی از محبوب‌ترین‌ها در یادگیری ماشین است. جنگل‌های تصادفی، رهیافتی است که از مجموعه‌ای درخت تصمیم بر پایه رهیافت Bagging تشکیل شده است. اجازه دهید، عبارت Random Forests را بیشتر باز کنم:

    • جنگل (Forest): یک جنگل واقعی از چه تشکیل شده؟! از مجموعه‌ای درخت! در یادگیری ماشین هم یک جنگل تصادفی از مجموعه‌ای درخت تصمیم (Decision Tree) تشکیل شده است.
    • تصادفی (Random): این کلمه به معنی تصادفی بودن فرآیند ساخت زیردیتاست اشاره می‌کند. مشابه با رهیافت Bagging، برای آموزش درخت‌های تصمیم مختلف، زیرمجموعه‌ای تصادفی از دیتاست آموزشی ساخته می‌شود. اما این زیردیتاست ساخته‌شده یک تفاوت مهم با رهیافت بگینگ دارد؛ علاوه‌بر انتخاب مجموعه‌ای تصادفی از نمونه‌ها، ویژگی‌های دیتاست هم به‌صورت تصادفی انتخاب می‌شوند. مثلا، 70 درصد از نمونه‌ها و ویژگی‌های یک دیتاست، به‌صورت تصادفی انتخاب می‌شوند.

    مثال دیتاست Heart Attack (که پیش‌تر به آن اشاره شد) برای آموزش‌دادن مدل Random Forests انتخاب شد؛ با 20 درخت تصمیم به عمق 3، به دقت 92.5 رسیدم. این عدد نسبت به ترکیب ساده سه مدل یادگیری ماشین با دقت 90.16 بسیار بالاتر است. 😎

    رهیافت بوستینگ (Boosting) در یادگیری گروهی

    رهیافت بوستینگ (Boosting) پادشاه مدل‌ها در دیتاست‌های جدولی است! این رهیافت روی دیتاست‌های جدولی اغلب از رهیافت‌های مبتنی بر یادگیری عمیق عملکرد بهتری دارد. اتفاقا، در بسیاری از مسابقات کگل با تمرکز روی داده‌های جدولی، این رهیافت انتخاب اول افراد است. بوستینگ را می‌توان اینگونه تعریف کرد:

    آموزش متوالی مجموعه‌ای مدل ضعیف با تمرکز بر اصلاح اشتباه مدل‌های قبلی

    تعریف بالا با شکل و توضیحات زیر واضح‌تر می‌شود:

    • آموزش متوالی: برخلاف بگینگ، در بوستینگ، مجموعه‌ای مدل یادگیری ماشین به‌صورت متوالی درحال آموزش روی دیتاست آموزشی هستند.
    • مدل ضعیف: یک مدل یادگیری ماشین که قدرت بالایی در پیش‌یبنی ندارد! یعنی، با یکسری مدل ضعیف که خطای یکدیگر را اصلاح می‌کنند، می‌توانیم نتیجه‌ای عالی بگیریم! شبیه مورچه‌ها که هرکدام قدرت بالایی ندارند، اما در همکاری باهم کارهای خارق‌العاده انجام می‌دهند. چه مدل ضعیفی انتخاب کنیم؟ معمولا، در بوستینگ از مدل درخت تصمیم استفاده می‌شود. شما هم می‌توانید یک درخت تصمیم با عمق 1 را انتخاب کنید.
    • اصلاح خطا: مدل‌های ما ضعیف هستند. بنابراین، اشتباهات زیادی هم خواهند داشت. مثلا در مسئله دسته‌بندی، هر مدلی یکسری پیش‌بینی‌های درست و اشتباه روی دیتاست آموزشی دارد. با کاهش وزن پیش‌بینی‌های درست، تمرکز مدل بعدی را پیش‌بنی‌های اشتباه بیشتر می‌کنیم.
    یادگیری گروهی در یادگیری ماشین
    مجموعه‌ای از N مدل ضعیف و سبک که به‌صورت متوالی درحال آموزش هستند. نوبت هر مدلی که شد تا آموزش ببیند، تمرکزش روی این خواهد بود که اشتباه‌هات مدل قبلی را اصلاح کند.

    معروف‌ترین الگوریتم‌های بوستینگ عبارت‌است‌از:

    • LSBoost
    • AdaBoost
    • LogitBoost
    • Gradient Boosting: مادر مدل‌های بوستینگ مدرن!
    • XGBoost: پراستفاده‌ترین عضو خانواده بوستینگ؛ ساخته شده در سال 2016
    • LightGBM: نسخه بهینه‌تر و سریع‌تر XGBoost؛ ساخته شده توسط مایکروسافت در سال 2017
    • CatBoost: مدیریت بهتر ویژگی‌های طبقه‌ای (Categorical)؛ ساخته شده توسط Yandex (موتور جستجوی روسی) در سال 2017

    خب، خسته نباشید! 😊 مقاله‌ای نسبتا طولانی شد. قول داده بودم که اگر این آموزش را دوست داشتید، ادامه‌اش را بنویسم. بالاخره این کار را انجام دادم! به چهار رهیافت در یادگیری گروهی اشاره کردم؛ از بین آنها، درباره رهیافت Bagging و Boosting توضیح دادم. البته، درباره Random Forests هم توضیح دادم. از شما بابت کامنت‌ها بسیار ممنونم. همچنان، علاقه‌مندم نظر و پیشنهاد شما را برای این پست نسبتا کامل‌شده بدانم. ممنون و خداحافظ 👋

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

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

    چرخه حیات یادگیری ماشین (ML Lifecycle)
    چرخه حیات یادگیری ماشین (ML Lifecycle) چیست؟ توسعه یک سیستم یادگیری ماشین در دنیای واقعی...
    یادگیری ماشین بدون ریاضی و کدنویسی
    آیا یاد گرفتن یادگیری ماشین بدون دانش ریاضی و مهارت کدنویسی امکان‌پذیر است؟ پاسخ کوتاهش...
    پیش‌نیازهای یادگیری ماشین
    آیا واقعا برای شروع یادگیری ماشین به سیستم‌های گران‌قیمت، دکتری ریاضی و ۱۰۰ ساعت آموزش...
    یادگیری ماشین چیست
    یادگیری ماشین (Machine Learning) چیست؟ به زبان ساده و به دور از فرمول‌های پیچیده، یادگیری...
    فرآیند کریسپ (CRISP)
    بسیاری از پروژه‌های علم داده نه به دلیل ضعف مدل، بلکه به دلیل تعریف نادرست...
    آموزش سایکیت لرن
    در این مقاله به آموزش سایکیت لرن، کتابخانه قدرتمند و محبوب یادگیری ماشین خواهم پرداخت....

    6 دیدگاه

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

    • محدثه گفت:
      2025/05/08 در 5:43 ب.ظ

      خیلی ممنون، جالب و کامل بود. خسته نباشید
      امیدوارم زودتر کاملش کنید🪻😁

      پاسخ
      • هوسم گفت:
        2025/05/10 در 10:17 ق.ظ

        ممنون 😊

        پاسخ
    • aliazimiyan.1381063 گفت:
      2025/03/28 در 8:27 ب.ظ

      خوشمان آمد 😊😅

      یکم عجیب بود برای مدل های با درصد خطای یکسان نباید کناره هم استفاده بشن مثلا هردو درصد خطاشون 70 درصد باشه ولی خب اون یه داده های متفاوت از یکدیگر رو خطا به حساب آورده
      من خودم گیج شدم شاید درستش همین باشه باهم آورده نشه😅

      پاسخ
      • هوسم گفت:
        2025/03/29 در 10:36 ق.ظ

        سلام
        نمره شما و چهار نفر دیگه در امتحان ریاضی 17 میشه. اگرچه، شما به یک اندازه درست و اشتباه داشتید، اما ممکن هست سوال‌هایی که درست/اشتباه حل کردید، با هم متفاوت باشه. اگر دقیقا یکسان باشه، از ترکیب جواب‌های شما پنج نفر، نمره بهتری حاصل نمیشه. اما، اگر یکسان نباشه، از ترکیب جواب‌های شما احتمالا میشه به نمره بهتری رسید.

        پاسخ
    • lhatamvand6687 گفت:
      2025/02/18 در 10:54 ب.ظ

      بسیار عالی. خسته نباشید. و تشکر.

      پاسخ
      • هوسم گفت:
        2025/02/22 در 11:47 ق.ظ

        سپاس 🙏🌺

        پاسخ

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

    جستجو برای:
    فهرست مطالب دوره
    • آموزش یادگیری ماشین رایگان
    • جلسه 01: یادگیری ماشین چیست؟
    • جلسه 02: انواع یادگیری در یادگیری ماشین
    • جلسه 03: گرادیان کاهشی
    • جلسه 04: رگرسیون در یادگیری ماشین
    • جلسه 05: رگرسیون لجستیک
    • جلسه 06: الگوریتم k-means
    • جلسه 07: الگوریتم PCA
    • جلسه 08: درخت تصمیم
    • جلسه 09: الگوریتم KNN
    • جلسه 10: یادگیری گروهی
    • جلسه 11: ماشین بردار پشتیبان
    دوره‌های جامع هوسم
    • مسابقه Kaggle: تحلیل و پیش‌بینی رفتار با داده‌های چندحسگری سری زمانی
    • پیاده‌سازی ChatGPT از صفر با پایتورچ
    • آموزش OpenCV: از پردازش تا بینایی
    • دیپ کاتالیست: دوره افزایش مهارت
    • پایتون برای هوش مصنوعی 🤖
    • یادگیری ماشین جامع: از مفاهیم تا پیاده‌سازی🔥
    • یادگیری عمیق جامع: از مفاهیم تا پیاده‌سازی
    درباره هوسم

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

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

     

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

      ورود

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

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