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

حتماً اسم مدل‌های جعبه‌سیاه (Black-box models) رو شنیدین؛ اینا همون مدل‌هایی هستن که می‌تونن خیلی خوب پیش‌بینی کنن، اما اصلاً بهمون نمی‌گن «چرا» یا دقیقاً «چی باعث شده این نتیجه رو بدن». یکی از محبوب‌ترین این مدل‌ها تو دنیای سیستم‌های پویا (یعنی همون سیستم‌هایی که با زمان تغییر می‌کنن و دنبال شناسایی رفتارهاشون هستیم) مدل ماشین بردار پشتیبان یا همون SVM (Support Vector Machine) هست.

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

توی این مقاله یه راه‌حل بامزه و کاربردی معرفی شده که کارش همین قابل فهم‌تر کردن مدل SVM هست. روش پیشنهادی یه الگوریتمیه به اسم “تجزیه عملکردی بعد از آموزش مدل” یا همون post-hoc functional decomposition؛ یعنی قراره روی مدلی که آموزش دادیم و آماده‌ست بیاد، نتیجه‌ها رو باز کنه و نشون بده هر ورودی دقیقاً چقدر رو خروجی تأثیرگذار بوده. این روش مبتنیه بر مفهومی به اسم Non-linear Oblique Subspace Projections (NObSP). این اسم شاید براتون عجیب باشه، اما به زبون ساده یعنی “تجزیه کردن تأثیر هر ورودی به صورت غیرخطی و با ریاضیات هندسی خاص، طوری که ورودی‌هایی که با هم خیلی مرتبط هستن، تأثیرشون قاطی نشه”.

توی این الگوریتم، خروجی SVM که آموزش دیدیم، به شکل جمعی از تأثیرات جداگانه (غیرخطی یا خطی) هر ورودی نشون داده میشه. جالب اینجاست که این کار رو تو فضای ویژگی‌های غیرخطی (non-linear feature space) انجام میده که SVM توش کار می‌کنه—یعنی همون جایی که مدل اصل کارش رو داره انجام می‌ده.

از طرف دیگه، این روش با استفاده از “پروژکشن مایل” یا همون oblique projection (یه تکنیک ریاضی برای جدا کردن تأثیر عوامل در فضایی که هم‌زمان بهم وابسته‌ان) کمک می‌کنه ورودی‌هایی که اطلاعاتشون به هم نزدیک یا به‌اصطلاح correlated هست، اثرشون روی خروجی قاطی نشه و هر کدوم حسابش جدا باشه.

یه نکته خیلی مهم دیگه هم که تو مقاله اشاره شده، اینه که براش یه راهکار برای «تعمیم خارج از نمونه» (out-of-sample extension) هم گذاشتن. یعنی وقتی داده جدید وارد میشه،‌ بدون اینکه لازم باشه همه‌ی محاسبات رو از اول انجام بدیم، می‌تونیم سریع و بهینه جواب بگیریم؛ این موضوع باعث میشه روش خیلی به دردسر نخوره و مقیاس‌پذیر (scalable) باشه.

برای تست، آزمایش های عددی (numerical simulations) روی دو مدل معروف تو شناسایی سیستم به اسم‌های ساختار واینر (Wiener) و همرشتاین (Hammerstein) انجام دادن—این‌ها دو مدل استاندارد تو این حوزه هستن که توشون دینامیک‌های غیرخطی (یعنی رفتارهایی که رابطه ورودی و خروجی ساده و خطی نیست) زیاد دیده میشه. نتایج نشون داد که الگوریتم NObSP واقعاً می‌تونه دینامیک‌های جدای هر زیر-سیستم رو (چه غیرخطی، چه خطی) به خوبی استخراج کنه و نشون بده.

از نظر سرعت و کارایی هم بررسی کردن: راهکار جدید، محاسبات سنگین قدیمی رو که پیچیدگی‌شون از مرتبه مکعب تعداد نمونه‌ها (O(N^3)) بود، تبدیل کرده به یک روش خیلی سبک‌تر از مرتبه N در d به توان 2 (O(Nd^2))؛ این d تعداد وکتورهای پشتیبان تو مدل SVM هست. خلاصه یعنی روششون هم سریع‌تره و هم وقتی داده زیاده، گیر نمی‌کنه!

در کل، نتیجه مقاله اینه که روش NObSP می‌تونه مدل‌های غیرخطی و پویا رو که قبلاً شبیه جعبه‌سیاه بودن، براحتی قابل تفسیر و فهم کنه، بدون اینکه از دقت پیش‌بینی کم بشه. یعنی هم می‌تونیم بفهمیم مدل چیکار کرده، هم مدل هنوز فوق‌العاده پیش‌بینی می‌کنه. واقعاً برای کسایی که با مدل‌های یادگیری ماشین داده‌ای (black-box) سروکار دارن، این یه خبر خوب و کاربردیه! همه چیز قابل فهم‌تر و قابل اعتمادتر میشه.

منبع: +