ماشین بردار پشتیبان (Support Vector Machine) – به زبان ساده


ماشین بردار پشتیبان یکی از الگوریتمهای نظارتشده یادگیری ماشین است. بسیاری از افراد در ابتدا هنگامی که نام این الگوریتم را میشنوند تصور میکنند با یک الگوریتم بسیار پیچیده مواجه هستند که درک آن دشوار است. این در حالی است که خوشبختانه با خواندن چند نوشتار میتوان این الگوریتم را به خوبی درک کرد. در این مطلب، به چگونگی عملکرد الگوریتم ماشین بردار پشتیبان پرداخته شده است. ضمناً پستی که در حال مطالعهی آن هستید برای افرادی مناسب است که هیچ آشنایی اولیهای با این الگوریتم ندارند و تمایل به یادگیری یک روش آسان و مؤثر دارند. برای مطالعه جزئیتر و تخصصیتر درباره این الگوریتم می توانید به نوشته «ماشین بردار پشتیبان --- به همراه کدنویسی پایتون و R» مراجعه کنید.
تحلیل طبقهبندی چیست؟
برای درک بهتر این مبحث در ادامه یک مثال ارائه شده است. فرض میشود جمعیتی با ترکیب ۵۰٪ زن و ۵۰ ٪ مرد وجود دارد و مسئله آن است که با وضع مجموعه قواعدی یک دستهبندی روی نمونههای این جمعیت بر اساس جنسیت انجام شود. با استفاده از الگوریتم ماشین بردار پشتیبان، قصد بر آن است که رباتی ساخته شود تا بتواند تشخیص دهد چه کسی زن و چه کسی مرد است.
این یک نمونه از مسائل طبقهبندی به حساب میآید. با استفاده از یک مجموعه قواعد، میتوان جمعیت را در دو دسته محتمل (زنان و مردان) تقسیم کرد. برای سادگی بیشتر، فرض بر آن است که عاملهایی که بر اساس آن دستهبندی انجام میشود، وزن و بلندی موی افراد است. بر این اساس نمودار پراکندگی دادهها (شکل ۱) رسم شده است.
شکل 1 - نمودار پراکندگی دادههای قد و بلندی موی جمعیت متشکل از زنان و مردان
دایرههای آبی موجود در نمودار نماینده زنان و مربعهای سبز نماینده مردان هستند. برخی از برداشتهایی که میتوان از این نمودار داشت عبارتند از:
- مردان در جمعیت مثال ما، میانگین قد بلندتری دارند.
- زنان در جمعیت مثال ارائه شده، بلندی موی بیشتری دارند.
بر این اساس اگر فردی با قد ۱۸۰ سانتیمتر و طول موی ۴ سانتیمتر در جمعیت وجود داشته باشد، بهترین حدسی که میتوان زد آن است که فرد در دسته مردان قرار میگیرد.
بردار پشتیبان و ماشین بردار پشتیبان چیست؟
بردارهای پشتیبان در واقع مختصات یک مشاهده منفرد هستند. برای مثال (150، 45) یک بردار پشتیبان است که به یک زن اختصاص دارد. ماشین بردار پشتیبان مرزی است که دسته مردان و زنان را به بهترین وجه از یکدیگر جدا میکند. در این مثال، دو دسته وجود دارد و بنابراین جداسازی آنها به وسیله ماشین بردار پشتیبان آسان است.
چگونه میتوان ماشین بردار پشتیبان برای یک مسئله را یافت؟
برای مثال بیان شده در این نوشتار، مرزهای متعددی وجود دارند که میتوانند مسئله را حل کنند. در شکل ۲ تعدادی از مرزهایی که میتوان برای دستهبندی دادهها استفاده کرد قابل مشاهده هستند.
شکل ۲ - مرزهایی که میتوانند دستههای زنان و مردان را جداسازی کند
پرسشی که در اینجا مطرح میشود آن است که چگونه میتوان تصمیم گرفت کدام مرز به بهترین شکل نمونه دادههای موجود را دستهبندی میکند. سادهترین تفسیری که میتوان برای عملکرد تابع ماشین بردار پشتیبان ارائه داد آن است که در الگوریتم ماشین بردار پشتیبان، فاصله نزدیکترین نمونه دادهها تا خط جداساز (مرز بین دستهها) محاسبه میشود (این نمونه دادهها ممکن است به هر دستهای تعلق داشته باشند).
برای مثال، خط جداساز نارنجی رنگ کمترین فاصله را تا دایرههای آبی دارد و نزدیکترین دایره آبی به جداساز، دو واحد تا آن فاصله دارد. پس از محاسبه این فاصله برای همه جداسازها، خطی انتخاب میشود که بیشترین فاصله را تا نزدیکترین نقطه داده دارد. در این مثال، خط جداساز مشکی رنگ بیشترین فاصله را از نزدیکترین نقطه داده دارد.
اگر یک خط جداساز که بتواند دادهها را دستهبندی کند کشف نشد چه باید کرد؟
پرسشی که در این مرحله مطرح میشود آن است که اگر توزیع دادهها مانند نمودار موجود در شکل ۲ باشد، الگوریتم ماشین بردار پشتیبان برای دستهبندی دادهها چگونه عمل میکند؟
شکل ۳ - حل مسائلی که به خط غیر راست برای دستهبندی نیاز دارند
در چنین مسائلی یک خط راست نمیتواند نمونه دادهها را به خوبی دستهبندی کند. بنابراین، نیاز به نگاشت دادهها به یک فضای بُعد بالاتر وجود دارد تا بتوان به وسیله ماشین بردار پشتیبان نمونه دادهها را به درستی از یکدیگر تفکیک کرد. در این مسائل نیاز به رابطهسازی برای ماشین بردار پشتیبان وجود دارد. پس از انتقال نمونه دادهها به فضای بُعد بالاتر نموداری مانند شکل ۴ ایجاد میشود.
شکل ۴ - انتقال دادهها به یک فضای بُعد بالاتر و دستهبندی آنها در ماشین بردار پشتیبان
هر یک از مربعهای سبز موجود در توزیع اصلی در یک فضای جدید نگاشت و در این فضای جدید دادهها به طور دقیق دستهبندی شدهاند. الگوریتمهای زیادی برای انجام این نگاشت قابل استفاده هستند.
سخن پایانی
ماشین بردار پشتیبان یک الگوریتم دستهبندی بسیار قدرتمند است. وقتی از آن همراه با الگوریتم های جنگل تصادفی و دیگر ابزارهای یادگیری ماشین استفاده کنیم، این الگوریتم میتواند مدلی بسیار قابل توجه برای دستهبندی دادهها ارائه کند. الگوریتم ماشین بردار پشتیبان هنگامی که قدرت پیشبینی بالا مورد نیاز باشد یک گزینه بسیار عالی است. تصویرسازی این الگوریتمها کار دشواری محسوب میشود، زیرا فرمولبندی پیچیده ای دارند.
- مهمترین الگوریتمهای یادگیری ماشین (به همراه کدهای پایتون و R)
- گنجینه آموزش های یادگیری ماشین و داده کاوی
- شبکه های عصبی مصنوعی – از صفر تا صد
- آمار، احتمالات و دادهکاوی
- یادگیری ماشین و بازشناسی الگو
==
^^
باسلام
ممنو ن از تدریستون
امکانش هست ی مثال عددی که به صورت دستی حل شده رو بفرستید برام سپاس از کمک شما
عالی بود ممنون اما به بحث فضای بعد بالاتر اصلا اشاره ای نشده که دقیقا یعنی چه و چوری کار می کند.
لینک https://faradars.org/understaing-support-vector-machine-example-code که مربوط به «ماشین بردار پشتیبان — به همراه کدنویسی پایتون و R» است، کار نمی کند. لطفا بررسی کنین
با سلام؛
از همراهی شما با مجله فرادرس و ارائه بازخورد، سپاسگزاریم. لینک صحیح جایگزین شد. همچنین، برای فراگیری بهتر ماشین بردار پشتیبان، میتوانید از آموزش ویدئویی و به زبان فارسی زیر استفاده کنید:
آموزش شبکه های عصبی مصنوعی در متلب
در آموزش مذکور، ماشین بردار پشتیبان (SVM)، رگرسیون بردار پشتیبان (SVR) و کلاسترینگ بردار پشتیبان (SVC) به طور کامل مورد بررسی قرار گرفتهاند و تفاوت آنها با دیگر انواع شبکههای عصبی بیان شده است.
برای آگاهی از دیگر آموزشهای موجود برای حوزه دادهکاوی و یادگیری ماشین، مراجعه به لینک زیر به شما پیشنهاد میشود:
مجموعه آموزش داده کاوی و یادگیری ماشین
بسیار خوب بود
بچه های تربیت مدرس خوب روی این حوزه های مرتبط با داده کاوی کار کردند