ماشین بردار پشتیبان (SVM)
جواب کوتاه
ماشین بردار پشتیبان، یا SVM، یه روش دستهبندیه که بین دو دسته مرزی میکشه که بیشترین فاصله رو از نزدیکترین نقطههای هر دو طرف داشته باشه. مثل کشیدن پهنترین خیابونی بین دو محله که از هیچ خونهای رد نشه. به اون چند تا نقطهای که درست لب خیابونن میگن بردار پشتیبان؛ مرز فقط به همینها بستگی داره. اگه دو دسته کامل جدا نشن، چند تا نقطه اجازه دارن با جریمه طرف غلط باشن (حاشیهی نرم). و اگه هیچ خط صافی جداشون نکنه، با ترفند کرنل داده رو انگار به فضایی با ویژگیهای بیشتر میبره که اونجا یه مرز صاف کافیه.
پهنترین خیابون
فرض کنید دو تا محله کنار هم داریم و میخوایم بینشون یه خیابون بکشیم. شرطش اینه که از هیچ خونهای رد نشه. کجا بکشیمش؟
جواب منطقی: پهنترین خیابونی که جا میشه. یعنی وسطش جایی باشه که فاصلهش از نزدیکترین خونههای هر دو طرف بیشترین باشه.
ماشین بردار پشتیبان، یا به اختصار SVM، دقیقا همین کار رو برای دستهبندی میکنه. خونهها همون نقطههای دادهان، دو محله دو تا دسته، و خط وسط خیابون همون مرز تصمیم. به پهنای خیابون هم میگن حاشیه.
خیلی خط درسته
خیلی خط میتونن این دو دسته رو جدا کنن. هر سه تا خط این شکل، هیچ نقطهای رو اشتباه نمیگیرن. پس چرا وسطی بهتره؟
چون دادهی تازه هیچوقت دقیقا جای دادهی قبلی نمیاد. یه نقطهی توخالی تازه که یه کم به سمت مرز اومده، خط ۱ رو رد میکنه و اشتباه گرفته میشه. ولی خط ۲ که از هر دو طرف بیشترین فاصله رو داره، جا برای این جابهجاییها گذاشته. حاشیهی بزرگتر، یعنی تحمل بیشتر برای دادهی تازه.
بردارهای پشتیبان
حالا یه چیز جالب. فقط اون چند تا خونهای که درست لب خیابونن، جای خیابون رو تعیین میکنن. بقیه رو هر جا ببریم، به شرط اینکه نیان توی خیابون، هیچ اتفاقی نمیفته:
به این نقطههای لب خیابون میگن بردار پشتیبان؛ «بردار» چون هر نقطه یه بردار از عدده، و «پشتیبان» چون خیابون به اونها تکیه داده. اسم کل روش هم از همینجا اومده.
حاشیهی نرم
توی دنیای واقعی، دستهها همیشه تمیز جدا نمیشن. ممکنه یه خونهی توخالی رفته باشه وسط محلهی توپرها. اگه اصرار کنیم که هیچ خطایی نباشه، خیابون باید خیلی باریک بشه:
راهش اینه که اجازه بدیم چند تا نقطه طرف غلط باشن، ولی با جریمه؛ هر چی دورتر از جای درستشون، جریمه بیشتر. به این میگن حاشیهی نرم.
یه عدد هم داریم که میگه جریمه چقدر سنگین باشه. جریمهی سنگین: خیابون باریکتر و خطای کمتر روی دادهی آموزش. جریمهی سبک: خیابون پهنتر و چند تا خطا. این دقیقا همون تعادل سوگیری و واریانس هست؛ خیابون خیلی باریک، به خاطر یه نقطهی عجیب، زود بیشبرازش میکنه.
ترفند کرنل
حالا یه مشکل بزرگتر. اگه توپرها وسط باشن و توخالیها دورشون یه حلقه بسازن چی؟ هیچ خط صافی نمیتونه جداشون کنه.
ولی اگه یه ویژگی تازه بسازیم، «فاصله از وسط»، و هر نقطه رو به اندازهی همین فاصله بالا ببریم، توپرها پایین میمونن و توخالیها بالا میرن. حالا یه خط صاف کاملا جداشون میکنه. اگه همون مرز رو برگردونیم به نقشهی اول، یه دایرهست.
SVM این کار رو با یه حقهی ریاضی انجام میده که اسمش ترفند کرنل هست: لازم نیست واقعا همهی ویژگیهای تازه رو حساب کنه؛ فقط کافیه بدونه هر دو تا نقطه توی اون فضای تازه چقدر به هم شبیهن. اینطوری مرز توی دادهی اصلی میتونه خمیده باشه.
چند نکته
- دو دسته: SVM مستقیم فقط دو دسته رو جدا میکنه. برای چند دسته، چند تا SVM دودویی میسازن، مثلا هر دسته در برابر بقیه.
- احتمال نمیده: SVM میگه کدوم طرف مرزه، ولی یه احتمال درستوحسابی نمیده. اگه احتمال مهمه، رگرسیون لجستیک بهتره.
- تنظیم: عدد جریمه و تنظیمات کرنل ابرپارامترن؛ معمولا با جستوجوی جدولی، با مقدارهای ضربی، و اعتبارسنجی متقابل انتخاب میشن.
- تاریخچه: نسخهی اولش با مرز صاف سال ۱۹۶۳ معرفی شد و ترفند کرنل سال ۱۹۹۲ بهش اضافه شد.
تا اینجا چند تا الگوریتم کلاسیک دیدیم. درس بعد، که آخرین درس این ایستگاهه، یه راهنمای سادهست برای اینکه بدونیم کدوم الگوریتم برای کدوم کار.
جمعبندی. آنچه از این درس با خودتان میبرید.
- مرزی با بیشترین فاصله از هر دو دسته.
- بردار پشتیبان: نقطههای لب خیابون.
- حاشیهی نرم: چند خطا با جریمه.
- ترفند کرنل: مرز خمیده با ویژگیهای بیشتر.
- ابرپارامترها با اعتبارسنجی متقابل.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.