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

    ورود و ثبت نام

    بلاگ

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

    ماشین بردار پشتیبان

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

    ماشین بردار پشتیبان (SVM) یکی از خفن‌ترین و پیچیده‌ترین الگوریتم‌های یادگیری ماشین هست. پس، در این جلسه از دوره آموزش یادگیری ماشین رایگان با یک هیولا سروکار داریم! هم کار من در آموزش SVM مشکل هست و هم شما که قرار هست آن را یاد بگیرید! 😅 ولی می‌تونیم ، با قدرت بزن بریم…

    فهرست مطالب نمایش
    1. ماشین بردار پشتیبان چیست؟
    2. SVM چگونه کار می‌کند؟
    2.1. تعیین حاشیه یا Margin در SVM
    2.2. حداکثر پهنا
    2.3. تعیین حاشیه برمبنای بردارهای پشتیبان
    2.4. منوط به طبقه بندی صحیح داده‌ها
    2.5. حاشیه نرم یا Soft Margin در SVM

    ماشین بردار پشتیبان چیست؟

    ماشین بردار پشتیبان یک مدل باناظر در یادگیری ماشین هست که کار طبقه بندی و رگرسیون را انجام می‌دهد. این مدل در سال 1964 توسط آقای Vladimir Vapnik برای کار طبقه بندی پیشنهاد شد! سال 1946! در طول این سال‌ها بهبود و توسعه‌های فراوانی داشته و کم کم به شکل امروزی درآمده است. ماشین بردار پشتیبان معادل عبارت Support Vector Machine هست که البته معمولا با نام SVM شناخته می‌شود.

    آقای Vladimir Vapnik مخترع الگوریتم ماشین بردار پشتیبان (SVM)
    آقای Vladimir Vapnik که البته این تصویر ایام جوانی هست. 😊 چاوشی: ای دریغا ای دریغا از جوانی از جوااانی…

    بیایید نگاهی دقیق‌تر به نام این الگوریتم داشته باشیم؛ کلمه Machine به همان ماشین در یادگیری ماشین اشاره دارد. پس خیلی مهم نیست! 😅 اما عبارت Support Vector (بردار پشتیبان) بسیار کلیدی است. برای اینکه معنی بردار پشتیبان را متوجه شوید، لازم هست درباره نحوه کار کردن SVM به شما توضیح دهم. در بخش بعدی از پست ماشین بردار پشتیبان، بررسی می‌کنیم که SVM چگونه کار می‌کند.

    SVM چگونه کار می‌کند؟

    سازوکار الگوریتم SVM را در متن زیر آوردم:

    تعیین حاشیه با حداکثر پهنا برمبنای بردارهای پشتیبان منوط به طبقه بندی صحیح داده‌ها

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

    تعیین حاشیه یا Margin در SVM

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

    حاشیه یا Margin در SVM
    حاشیه یا Margin در SVM که با ناحیه سیاه (شایدم خاکستری! 😅) نشان داده شده است.

    حداکثر پهنا

    اصلا SVM (ماشین بردار پشتیبان) را یک لحظه کنار بگذاریم. منطقا ما دوست داریم که حداکثر پهنا را در مارجین داشته باشیم. چرا؟ چون دو کلاس بیشتر و بیشتر از همدیگر جدا شوند. در دو شکل زیر، قاعدتا ما شکل سمت راست را بیشتر دوست داریم. چون حاشیه بین دو کلاس بیشتر از سمت چپی هست. بنابراین، مهم هست مرز به شکلی تعیین شود که حداکثر فاصله ایجاد شود.

    حاشیه یا Margin ماشین بردار پشتیبان
    حاشیه یا Margin کوچک و بزرگ

    تعیین حاشیه برمبنای بردارهای پشتیبان

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

    بردار پشتیبان در SVM
    دایره‌های دور طلایی، بردارهای پشتیبان هستند.

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

    منوط به طبقه بندی صحیح داده‌ها

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

    حاشیه آنقدر بزرگ شده که یکسری از نمونه‌ها وارد قلمروی حاشیه شده‌اند.

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

    ببینید فاصله بین دو کلاس چقدر کم هست.

    الگوریتم SVM (ماشین بردار پشتیبان) برای چنین شرایطی هم جواب دارد! با حاشیه نرم یا Soft Margin چنین شرایطی را مدیریت می‌کند. درادامه درمورد حاشیه نرم بیشتر توضیح می‌دهم.

    حاشیه نرم یا Soft Margin در SVM

    در SVM(ماشین بردار پشتیبان) دو نوع حاشیه داریم: حاشیه نرم یا Soft Margin و حاشیه سخت یا Hard Margin. اگرچه هردو برای شما اصطلاحاتی جدید هست، اما خوشبختانه شما حاشیه سخت را در بالا دیدید. اینکه، حاشیه را به حدی بزرگ کنیم که هیچ داده‌ای داخل حاشیه قرار نداشته باشد. گاهی اوقات، به خاطر نزدیک بودن کلاس‌ها به‌هم، ساختن یک حاشیه بزرگ و بدون حضور داده کاری مشکل و شاید هم غیرممکن باشد. به همین خاطر، به سراغ حاشیه نرم می‌رویم. می‌گوییم، حالا که نمی‌توانیم حاشیه بزرگ بدون حضور داده داشته باشیم، کمتر سخت بگیریم. اجازه می‌دهیم کمی از داده‌ها داخل حاشیه حضور داشته باشند، اما حاشیه ما بزرگتر شود!

    حاشیه نرم یا Soft Margin در چند حالت مختلف. می‌توانید ببینید که در تصویر سمت راستی، دیگر خیلی حاشیه نرم شده و همه داده‌ها داخل مارجین قرار دارند! 😀

    درواقع، خوب هست که پهنای حاشیه و حجم داده در حاشیه را روی دو کفه ترازو بگذارید. یک Trade-off هست! گاهی اوقات می‌صرفد که کمی از داده‌ها داخل حاشیه باشند ولی حاشیه بزرگ شود.

    پهنای حاشیه و حجم داده در حاشیه را در دو کفه ترازو بگذارید. باید یک تعادلی بین این دو برای مسائل مختلف برقرار کنید.

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

    ریاضیات پشت SVM (ماشین بردار پشتیبان) بسیار زیاد هست! من چیزی از ریاضیات نگفتم و سعی کردم قضیه را مفهومی برای شما جا بیندازم. فکر می‌کنم، دیدن یک مثال کدنویسی با سایکیت لرن و تحلیل نتایج مدل بسیار کمک کننده باشد. بریم سراغ کدنویسی…

    ادامه دارد…

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

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

    آموزش یادگیری ماشین رایگان
    آموزش یادگیری ماشین رایگان هوسم شامل 12 جلسه آموزش متنی است. در این آموزش، مفاهیم...
    الگوریتم k means
    به‌نام خدا، سلام... در جلسه ششم از آموزش یادگیری ماشین رایگان به الگوریتم خوشه بندی...
    نرمال سازی داده در یادگیری ماشین
    نرمال سازی داده در یادگیری ماشین، یکی از روش‌های ساده اما موثر برای پیش پردازش...
    یادگیری گروهی
    یادگیری گروهی یا یادگیری جمعی (Ensemble Learning) یکی از مباحث مهم و کاربردی در یادگیری...
    الگوریتم KNN
    الگوریتم KNN یا K نزدیک ترین همسایه یکی از ساده‌ترین و تنبل‌ترین الگوریتم‌ها در یادگیری...
    درخت تصمیم در یادگیری ماشین
    درخت تصمیم یا Decision Tree یکی از کلیدی‌ترین مباحث در یادگیری ماشین است. در این...

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

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

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

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

     

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

      ورود

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

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