نویسنده(های): فرناندو گوزمان
در ابتدا منتشر شد به سمت هوش مصنوعی.
ماشینهای بردار پشتیبانی یا SVM، یک است یادگیری ماشینی الگوریتمی که در شکل اصلی خود برای طبقه بندی باینری استفاده می شود.
را SVM مدل به دنبال تعیین خط جدایی بهینه بین دو کلاس است که به عنوان بهترین حاشیه بین این کلاس ها درک می شود، همانطور که در مثال زیر نشان داده شده است:
همانطور که در تصویر نشان داده شده است، ما یک خط جدایی داریم که در یک سناریوی فضایی چند بعدی، یک ابر صفحه است. نزدیکترین نقاط به خط جداسازی بردارهای پشتیبانی هستند که به تعریف بهترین خط جدایی کمک می کنند.
حاشیه
قبل از پرداختن به مدل، درک مفهوم حاشیه ضروری است، که شامل ابر صفحه تقسیم کننده همراه با خطوط بردار پشتیبان است. بنابراین، حاشیه نشان دهنده فاصله بین دو کلاس است. بیایید تصویر زیر را بررسی کنیم:
همانطور که می بینید، حاشیه فاصله است D بین دو کلاس برای استنباط حاشیه، اجازه دهید تصویر زیر را بررسی کنیم:
اینجا، Xnپاسخ داده شده را نشان می دهد و د برداری است که نشان دهنده فاصله بین ابر صفحه و پاسخ است. این بردار متعامد به ابر صفحه است. w نشان دهنده وزن و X0 هر نقطه ای از ابر صفحه است. در نتیجه، r برداری است که فاصله بین این نقطه و پاسخ را نشان می دهد.
در SVM، هدف به حداکثر رساندن فاصله تمام بردارهای پشتیبانی است. بر اساس تصویر قبلی، اکنون می توانیم فاصله بین ابرصفحه و پاسخ را همانطور که با معادله زیر بیان می شود درک کنیم:
از آخرین تصویر نیز می توانیم بفهمیم r زیر است:
با اعمال خاصیت توزیعی، دریافت می کنیم:
حالا بایاس را به معادله اضافه می کنیم:
همانطور که نشان داده شده است، قسمت اول صورتگر معادله پیش بینی را نشان می دهد، در حالی که قسمت دوم بردار صفر است که ما آن را صفر فرض می کنیم. این پیشبینی تنها دو خروجی ممکن را به دست میدهد: 1 و -1. اما با در نظر گرفتن مقدار مطلق، معادله به صورت زیر فرموله می شود:
این معادله نهایی نشان دهنده فاصله بین ابر صفحه و پاسخ است. با این حال، پاسخ می تواند در هر دو طرف هایپرپلن رخ دهد. بنابراین، فرض می کنیم که حاشیه به صورت زیر است:
SVM اصلی (SVM سخت)
در شکل اصلی خود، SVM برای رسیدگی به مشکلات طبقه بندی باینری توسعه داده شد. این نسخه فرض می کند که تمام نقاط داده به درستی طبقه بندی شده و به صورت خطی قابل تفکیک هستند.
مشکل اولیه
مشکل اولیه SVM شامل به حداکثر رساندن بیان فاصله است که در نهایت منجر به به حداقل رساندن عبارت منظمسازی میشود. مشکل اولیه SVM با معادله زیر نشان داده می شود که به عنوان تابع هدف ما عمل می کند که به عنوان افت لولا نیز شناخته می شود:
همانطور که در مدل های دیگر مشاهده شد، پیش بینی ما از همان فرمول مشتق شده است که عبارت است از:
با توجه به اینکه ما به یک مشکل باینری می پردازیم، می توان فرض کرد که پیش بینی ما تنها دو خروجی ممکن به دست خواهد آورد:
مشکل اولیه شامل به حداقل رساندن مدت تنظیم، با توجه به محدودیتهای زیر است:
- طبقه بندی باید درست باشد
- پیش بینی و پاسخ باید در علامت منطبق باشند; بنابراین، شرایط زیر لازم است:
با در نظر گرفتن این شرایط، ضریب لاگرانژ را برای هر پیشبینی در خود اعمال میکنیم مجموعه داده برای استخراج تابع هدف به صورت زیر:
این یک عبارت بهینه سازی محدود است و می تواند به صورت زیر ادامه یابد:
این عبارت نهایی نشان دهنده تابع هدف مسئله اولیه است که به عنوان از دست دادن لولا نیز شناخته می شود. این عبارت مشمول این محدودیت است که هر ضریب لاگرانژ باید مساوی یا بزرگتر از صفر باشد.
توجه داشته باشید که این تابع هدف به سه پارامتر وزن، تعصب و ضریب لاگرانژ بستگی دارد. در نتیجه، مستلزم محدودیتهای متعددی است که تحلیل آن را به چالش میکشد.
مشکل دوگانه
با توجه به محدودیت های متعدد مسئله اولیه، یک تکنیک ریاضی برای فرمول بندی مجدد این عبارت مورد نیاز است تا صرفاً به ضرب کننده های لاگرانژ بستگی داشته باشد. این امر از طریق مسئله دوگانه به دست می آید، که مسئله اولیه را ساده می کند تا تنها به یک پارامتر وابسته شود و آن را به یک مسئله بیشینه سازی تبدیل می کند.
برای استخراج تابع هدف مسئله دوگانه، لازم است مشتق مسئله اولیه را با توجه به پارامترها و بایاس بدست آوریم:
در نهایت، تابع اولیه خود را معادله سوم در نظر می گیریم. سپس معادلات را جایگزین می کنیم №1 و №2 به شماره 3، منجر به عبارت زیر می شود:
جایگزین کنید wT با معادله №1، و موارد زیر را بدست می آوریم:
هر دو جمع مضاعف عبارتهای مشابهی هستند، بنابراین میتوانیم آنها را در -1 ضرب کنیم تا به عبارت زیر برسیم:
این تابع هدف مسئله دوگانه است و یک مسئله درجه دوم است.
SVM نرم
این نسخه از SVM موارد پرت را می پذیرد، که دلالت بر محدوده مجاز طبقه بندی اشتباه دارد. با توجه به این سناریو، اکنون به هر یک از پیشبینیهایمان یک مقدار اپسیلون اختصاص میدهیم. در نتیجه، شرایط عملیات اصلی به موارد زیر تغییر می کند:
اینجا، سی یک فراپارامتر تعریف شده توسط ما را نشان می دهد که محدوده تحمل را برای طبقه بندی اشتباه در مدل تعیین می کند. همانطور که سی افزایش می یابد، اپسیلون ϵ کاهش می یابد زیرا محدوده خطای مجاز گسترده تر می شود و بالعکس.
همچنین، محدودیت پیشبینی ما به موارد زیر تغییر میکند:
مشکل اولیه
با توجه به تغییرات ذکر شده، مشکل اولیه ما به صورت زیر تغییر می کند:
در این عبارت، mu μ همچنین به عنوان ضریب لاگرانژ برای اپسیلون عمل می کند ϵ.
مشکل دوگانه
برای مسئله دوگانه، مشتقات به صورت زیر خواهد بود:
در اینجا، یک معادله اضافی ارائه شده است که مشتق مسئله اولیه با توجه به اپسیلون است. ϵ.
با پیروی از فرآیند مشابه در SVM سخت، ما این مشتقات را در معادله مسئله اولیه جایگزین میکنیم و مشکل دوگانه را به دست میآوریم:
توجه داشته باشید که تغییر در اصطلاحات نهایی، اضافه کردن یک هسته است.
MULTICLASS SVM
در اصل، SVM ها برای طبقه بندی باینری استفاده می شدند. با این حال، پسوندی وجود دارد که طبقه بندی چند کلاسه را فعال می کند، که در دو نسخه موجود است:
V1: ONE در مقابل همه
این نسخه شامل مقایسه یک کلاس با سایر کلاس ها برای تعریف کلاس ها یا ایجاد طبقه بندی است، همانطور که در مثال زیر نشان داده شده است:
همانطور که مشاهده می کنید، این رویکرد یک SVM را برای هر کلاس آموزش می دهد. محدودیت این نوع SVM این است که ممکن است منجر به مناطقی بدون طبقه بندی شود.
V2: ONE در مقابل ONE
این نسخه شامل مقایسه بین یک کلاس و کلاس دیگر برای تعریف کلاس ها است، همانطور که در مثال زیر نشان داده شده است:
این نسخه یک SVM را برای هر جفت کلاس آموزش می دهد و سپس نتایج را برای ارائه یک پیش بینی مقایسه می کند.
رگرسیون SVM
در ابتدا، SVM ها در درجه اول برای مسائل طبقه بندی مورد استفاده قرار می گرفتند، اما می توان آنها را برای رسیدگی به مشکلات رگرسیون نیز تطبیق داد.
در مورد SVM رگرسیون، ما موارد زیر را انجام می دهیم:
داده ها باید در حاشیه قرار گیرند، و تابع هدف ما با به حداقل رساندن عبارت منظم سازی داده شده توسط:
و محدودیت یا محدودیت های ما به شرح زیر خواهد بود:
روش های هسته
این تکنیک همچنین به عنوان ترفندهای هسته شناخته می شود، تبدیل یک غیرخطی قابل جداسازی را امکان پذیر می کند. مجموعه داده به یکی که به صورت خطی قابل تفکیک است. اساساً، هسته ها توابعی هستند که برای افزایش ابعاد آن به مجموعه داده اعمال می شوند.
پر استفاده ترین هسته ها به شرح زیر است:
سایر توابع رایج هسته عبارتند از:
- هسته چند جمله ای
- هسته گاوسی
- هسته سیگموئید
نتیجه گیری
اکنون، ما تمام عناصر مورد نیاز برای پیاده سازی SVM را داریم. به خاطر داشته باشید که متداول ترین مدل های SVM مورد استفاده، SVM نرم و چند کلاسه هستند. برای پیاده سازی یک مدل SVM، فقط باید مراحل آموزش یک مدل را مانند هر مدل دیگری دنبال کنید ML مدل، اما با استفاده از فرمول هایی که در اینجا به دست آورده ایم. امیدوارم این برای درک الگوریتم SVM مفید بوده باشد.
منتشر شده از طریق به سمت هوش مصنوعی
منبع: https://towardsai.net/p/artificial-intelligence/support-vector-machines-math-intuitions