مریم محمودی
مریم محمودی

فهرست مطالب

مقدمه و مبانی

مدل‌های قابل تفسیر

روش‌های محلی مستقل از مدل

روش‌های سراسری مستقل از مدل

تفسیر شبکه‌های عصبی

فراتر از روش‌ها

پیوست‌ها

درباره کتاب

عنوان اصلی: About the Book
منبع: https://christophm.github.io/interpretable-ml-book/
نویسنده: Christoph Molnar — کریستوف مولنار
مترجم: مریم محمودی — Maryam Mahmoudi


یادگیری ماشین تعبیرپذیر

راهنمایی برای توضیح‌پذیر کردن مدل‌های جعبه‌سیاه


خلاصه

یادگیری ماشین بخشی از محصولات، فرایندها و پژوهش‌های ما شده است. اما رایانه‌ها معمولاً توضیحی درباره پیش‌بینی‌های خود ارائه نمی‌دهند و این موضوع می‌تواند مشکلات متعددی ایجاد کند؛ از مسائل مربوط به اعتماد گرفته تا باگ‌های کشف‌نشده. این کتاب درباره قابل‌تعبیر کردن مدل‌های یادگیری ماشین و تصمیم‌های آن‌هاست.

پس از بررسی مفاهیم تعبیرپذیری (Interpretability)، با مدل‌های ساده و تعبیرپذیر مانند درخت‌های تصمیم و رگرسیون خطی آشنا خواهید شد. تمرکز اصلی کتاب بر روش‌های مستقل از مدل (Model-Agnostic) برای تفسیر مدل‌های جعبه‌سیاه است. برخی از این روش‌ها، مانند LIME و مقادیر شپلی (Shapley Values)، برای توضیح پیش‌بینی‌های منفرد استفاده می‌شوند؛ در حالی که روش‌هایی مانند اهمیت ویژگی مبتنی بر جایگشت (Permutation Feature Importance) و اثرات محلی تجمع‌یافته (Accumulated Local Effects) برای به‌دست‌آوردن بینش درباره روابط کلی‌تر میان ویژگی‌ها و پیش‌بینی‌ها کاربرد دارند. افزون بر این، کتاب روش‌های اختصاصی شبکه‌های عصبی عمیق را نیز معرفی می‌کند.

تمام روش‌های تفسیر به‌صورت عمیق توضیح داده شده و به‌شکل انتقادی بررسی می‌شوند. این روش‌ها چگونه کار می‌کنند؟ نقاط قوت و ضعف آن‌ها چیست؟ چگونه باید آن‌ها را تفسیر کرد؟ این کتاب به شما کمک می‌کند تا مناسب‌ترین روش تفسیر را برای کاربرد یادگیری ماشین خود انتخاب و به‌درستی استفاده کنید. مطالعه این کتاب به متخصصان یادگیری ماشین، دانشمندان داده، آمارگران و هر فردی که به تعبیرپذیر کردن مدل‌های یادگیری ماشین علاقه‌مند است توصیه می‌شود.


چرا این کتاب را نوشتم

این کتاب به‌عنوان یک پروژه جانبی آغاز شد؛ زمانی که به‌عنوان آمارگر در پژوهش‌های بالینی کار می‌کردم. در روزهای آزاد خود، موضوعاتی را که برایم جذاب بودند بررسی می‌کردم و در نهایت یادگیری ماشین تعبیرپذیر توجه مرا به خود جلب کرد. با این انتظار که منابع فراوانی درباره تفسیر مدل‌های یادگیری ماشین وجود داشته باشد، شگفت‌زده شدم وقتی دیدم تنها مجموعه‌ای پراکنده از مقالات پژوهشی و نوشته‌های وبلاگی موجود است و هیچ راهنمای جامع و کاملی وجود ندارد. همین موضوع مرا ترغیب کرد تا منبعی را ایجاد کنم که آرزو داشتم وجود داشته باشد؛ کتابی برای عمیق‌تر کردن درک خودم و به‌اشتراک‌گذاری این بینش‌ها با دیگران.

امروزه این کتاب به یکی از منابع اصلی برای تفسیر مدل‌های یادگیری ماشین تبدیل شده است. پژوهشگران هزاران بار به این کتاب ارجاع داده‌اند، دانشجویان برایم نوشته‌اند که این کتاب برای پایان‌نامه‌هایشان ضروری بوده است، مدرسان از آن در کلاس‌های خود استفاده می‌کنند و دانشمندان داده در صنعت برای کار روزمره خود به آن تکیه می‌کنند. این کتاب همچنین پایه‌گذار مسیر حرفه‌ای خود من نیز بوده است؛ ابتدا مرا به انجام دکتری در حوزه یادگیری ماشین تعبیرپذیر ترغیب کرد و بعدها انگیزه‌ای شد تا به‌عنوان نویسنده، مدرس و مشاور مستقل فعالیت کنم.


این کتاب برای چه کسانی است

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


چه چیزهایی در ویرایش سوم جدید است؟

ویرایش سوم هم یک به‌روزرسانی کوچک است و هم یک به‌روزرسانی بزرگ. از این جهت کوچک است که تنها دو فصل جدید درباره روش‌ها، یعنی LOFO و Ceteris Paribus، و دو فصل مقدماتی جدید شامل «مروری بر روش‌ها» و «اهداف تعبیرپذیری» به آن افزوده شده‌اند. بااین‌حال، تغییرات بزرگ‌تری نیز در کتاب اعمال کرده‌ام که ظریف‌تر هستند، اما به باور من کیفیت کتاب را بهبود داده‌اند.

بخش مقدمه را بازسازمان‌دهی کردم تا هم مختصرتر و هم عمیق‌تر شود. همچنین مثال‌های داده‌ای را غنی‌تر کردم (برای مثال، بررسی هم‌بستگی‌ها و انجام تحلیل‌های دقیق‌تر) و مجموعه‌داده سرطان را با مجموعه‌داده قابل‌فهم‌تر پنگوئن‌های پالمر (Palmer Penguin Dataset) جایگزین کردم. برای کاربردی‌تر شدن کتاب، جعبه‌های نکته و هشدار اضافه کردم تا به خوانندگان کمک کنند مدل‌های یادگیری ماشین را به‌درستی تفسیر کنند.

یکی دیگر از تغییرات بزرگ در ویرایش سوم، پاک‌سازی مخزن کتاب و رندر کردن آن با Quarto به‌جای bookdown بود. برای شما به‌عنوان خواننده، این تغییر تنها در ظاهر نسخه وب کتاب قابل‌مشاهده است، اما برای من نگهداری کتاب را بسیار آسان‌تر کرده است. همچنین اصلاحات کوچک بسیاری انجام داده‌ام که می‌توانید آن‌ها را در فایل README مخزن کتاب، در بخش «Changelog» مشاهده کنید.


درباره نویسنده

نام من کریستوف مولنار (Christoph Molnar) است. من درباره یادگیری ماشین می‌نویسم و تدریس می‌کنم؛ به‌ویژه موضوعاتی که فراتر از صرفاً عملکرد پیش‌بینی هستند. در رشته آمار تحصیل کرده‌ام، چند سال به‌عنوان دانشمند داده کار کرده‌ام، دکتری خود را در زمینه یادگیری ماشین تعبیرپذیر انجام داده‌ام و اکنون نویسنده هستم و همچنین کارگاه‌های آموزشی و خدمات مشاوره ارائه می‌دهم.


مجوز

این کتاب تحت مجوز CC BY-NC-SA 4.0 منتشر شده است.

فصل ۱: مقدمه

عنوان اصلی: Introduction
منبع: https://christophm.github.io/interpretable-ml-book/intro.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


«۲ به‌علاوه ۵ چقدر می‌شود؟» معلم ویلهلم فون اوستن پرسید. پاسخ، البته، ۷ بود. جمعیتی که برای تماشای این صحنه گرد آمده بودند، شگفت‌زده شدند. چرا که پاسخ‌دهنده، انسان نبود، بلکه اسبی به نام «هانس زیرک» بود. هانس زیرک می‌توانست محاسبات ریاضی انجام دهد – یا لااقل چنین به نظر می‌رسید. ۲ به‌علاوه ۵؟ هفت ضربه با سم اسب، نه یکی بیشتر و نه یکی کمتر. برای یک اسب، واقعاً چشمگیر بود.

و در واقع، همان‌طور که تحقیقات بعدی نشان داد، هانس زیرک بسیار باهوش بود. اما مهارت او در ریاضیات نبود، بلکه در خواندن نشانه‌های اجتماعی بود. معلوم شد که یک عامل مهم موفقیت این بود که انسانی که از هانس سؤال می‌کرد، پاسخ را می‌دانست. هانس به کوچک‌ترین تغییرات در زبان بدن و حالات چهره انسان تکیه می‌کرد تا در زمان مناسب از ضربه زدن دست بکشد.

به عملکرد مدل کورکورانه اعتماد نکنید

در یادگیری ماشین، نسخه‌های خودمان از این اسب زیرک را داریم: پیش‌بینی‌کننده‌های هانس زیرک، اصطلاحی که توسط Lapuschkin و همکاران (۲۰۱۹) ابداع شد. چند نمونه:

  • یک مدل یادگیری ماشین که برای تشخیص نهنگ آموزش دیده بود، یاد گرفت به جای اینکه دسته‌بندی را بر اساس محتوای صوتی انجام دهد، به خطاهای موجود در فایل‌های صوتی تکیه کند (DeLMA and Cukierski 2013).
  • یک دسته‌بندی‌کننده تصویر یاد گرفت به جای ویژگی‌های بصری، از متن روی تصاویر استفاده کند (Lapuschkin et al. 2019).
  • یک دسته‌بندی‌کننده گرگ در مقابل سگ، به جای نواحی تصویر که حیوانات را نشان می‌دادند، به برف موجود در پس‌زمینه متکی شد (Ribeiro, Singh, and Guestrin 2016).

در همه این نمونه‌ها، نقص‌ها عملکرد پیش‌بینی روی مجموعه آزمایش را کاهش ندادند. بنابراین تعجبی ندارد که مردم حتی نسبت به مدل‌های با عملکرد خوب نیز محتاط هستند. آن‌ها می‌خواهند به درون مدل‌ها نگاه کنند تا مطمئن شوند که مدل‌ها میانبر نمی‌زنند. و دلایل بسیار دیگری نیز برای تفسیرپذیر کردن مدل‌ها وجود دارد. به‌عنوان مثال، دانشمندان از یادگیری ماشین در کار خود استفاده می‌کنند. در نظرسنجی‌ای که از دانشمندان درباره بزرگ‌ترین نگرانی‌هایشان در استفاده از یادگیری ماشین پرسیده شد، پاسخ اول «منجر به تکیه بیشتر بر تشخیص الگو بدون درک آن می‌شود» بود (Van Noorden and Perkel 2023). این کمبود درک منحصر به علم نیست. اگر در بخش بازاریابی کار می‌کنید و یک مدل ریزش مشتری (churn model) می‌سازید، نه‌تنها می‌خواهید پیش‌بینی کنید چه کسانی احتمالاً ریزش خواهند کرد، بلکه می‌خواهید علت آن را نیز بفهمید. در غیر این صورت، تیم بازاریابی چگونه باید بداند واکنش مناسب چیست؟ تیم می‌تواند برای همه کوپن ارسال کند، اما اگر دلیل احتمال ریزش بالا این باشد که آن‌ها از ایمیل‌های زیاد آزرده شده‌اند، چه؟ عملکرد پیش‌بینی خوب به تنهایی برای استفاده کامل از مدل ریزش کافی نیست.

علاوه بر این، بسیاری از دانشمندان داده و آماردانان به من گفته‌اند که یکی از دلایلی که از «مدل‌های ساده‌تر» استفاده می‌کنند این است که نتوانسته‌اند مدیرشان را متقاعد کنند تا از یک «مدل جعبه سیاه» (black box model) استفاده کند. اما اگر مدل‌های پیچیده پیش‌بینی‌های بهتری انجام دهند چه؟ آیا عالی نبود اگر می‌توانستید هم عملکرد خوب و هم تفسیرپذیری را داشته باشید؟

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

حوزه‌ای جوان با ریشه‌های قدیمی

مدل‌های رگرسیون خطی از ابتدای قرن نوزدهم مورد استفاده قرار می‌گرفتند (Legendre 1806; Gauss 1877). مدل‌سازی آماری حول همین مدل رگرسیون خطی رشد کرد، و امروزه گزینه‌های بیشتری مانند مدل‌های جمعی تعمیم‌یافته (generalized additive models) و LASSO داریم تا تنها چند کلاس مدل محبوب را نام ببریم. در آمار کلاسیک، معمولاً توزیع‌ها را مدل‌سازی می‌کنیم و بر فرضیات بیشتری تکیه می‌کنیم که به ما اجازه می‌دهد نتیجه‌گیری‌هایی درباره جهان داشته باشیم. برای انجام این کار، تفسیرپذیری کلیدی است. به‌عنوان مثال، اگر تأثیر نوشیدن الکل بر خطر مشکلات قلبی‌عروقی را مدل‌سازی کنید، آماردانان باید بتوانند آن بینش را از مدل استخراج کنند. این کار معمولاً با تفسیرپذیر نگه‌داشتن مدل و داشتن ضریبی که می‌تواند به‌عنوان تأثیر یک ویژگی بر نتیجه تفسیر شود، انجام می‌شود.

یادگیری ماشین رویکرد مدل‌سازی متفاوتی دارد. بیشتر وظیفه‌محور و پیش‌بینی‌محور است، و تأکید بر الگوریتم‌ها به جای توزیع‌ها است. معمولاً، یادگیری ماشین مدل‌های پیچیده‌تری تولید می‌کند. کار بنیادین در یادگیری ماشین در اواسط قرن بیستم آغاز شد، در حالی که پیشرفت‌های بعدی در نیمه دوم قرن این حوزه را بیشتر گسترش دادند. با این حال، شبکه‌های عصبی (neural networks) به دهه ۱۹۶۰ باز می‌گردند (Schmidhuber 2015)، و یادگیری ماشین مبتنی بر قاعده که بخشی از یادگیری ماشین تفسیرپذیر است، از اواسط قرن بیستم یک حوزه تحقیقاتی فعال بوده است. اگرچه تمرکز اصلی نبوده، تفسیرپذیری همیشه یک دغدغه در یادگیری ماشین بوده است، و محققان راه‌هایی برای بهبود تفسیرپذیری پیشنهاد کرده‌اند: یک نمونه، جنگل تصادفی (random forest) است (Breiman 2001) که از ابتدا با معیار اهمیت ویژگی داخلی ارائه شد.

یادگیری ماشین تفسیرپذیر، یا هوش مصنوعی توضیح‌پذیر (Explainable AI)، واقعاً به‌عنوان یک حوزه در حدود سال ۲۰۱۵ منفجر شده است (Molnar, Casalicchio, and Bischl 2020). به‌ویژه زیرحوزه تفسیرپذیری مستقل از مدل (model-agnostic interpretability)، که روش‌هایی را ارائه می‌دهد که برای هر مدلی کار می‌کنند، توجه زیادی را به خود جلب کرده است. روش‌های جدید برای تفسیر مدل‌های یادگیری ماشین همچنان با سرعت سرسام‌آوری منتشر می‌شوند. پیگیری هر چیزی که منتشر می‌شود جنون‌آمیز و به‌سادگی غیرممکن خواهد بود. به همین دلیل است که جدیدترین و شیک‌ترین روش‌ها را در این کتاب نخواهید یافت، بلکه روش‌های مستقر و مفاهیم اساسی تفسیرپذیری یادگیری ماشین را خواهید یافت. این اصول اساسی شما را برای تفسیرپذیر کردن مدل‌های یادگیری ماشین آماده می‌کنند. درونی کردن مفاهیم پایه همچنین به شما قدرت می‌دهد تا هر مقاله جدیدی درباره تفسیرپذیری که در سرور پیش‌چاپ arxiv.org در ۵ دقیقه گذشته از زمانی که شروع به خواندن این کتاب کرده‌اید منتشر شده (شاید در نرخ انتشار اغراق می‌کنم) را بهتر درک و ارزیابی کنید.

چگونه کتاب را بخوانیم

لازم نیست کتاب را از سر تا ته بخوانید، زیرا یادگیری ماشین تفسیرپذیر بیشتر یک کتاب مرجع است که اکثر فصل‌ها یک روش را توصیف می‌کنند. اگر تازه‌کار در تفسیرپذیری هستید، فقط توصیه می‌کنم ابتدا فصل‌های تفسیرپذیری، اهداف، و مروری بر روش‌ها را بخوانید تا بفهمید تفسیرپذیری چیست و «نقشه‌ای» داشته باشید که بتوانید هر روش را در آن قرار دهید.

کتاب به بخش‌های زیر سازماندهی شده است:

  • فصل‌های مقدماتی، شامل تعاریف تفسیرپذیری و مروری بر روش‌ها
  • مدل‌های تفسیرپذیر
  • روش‌های محلی مستقل از مدل
  • روش‌های سراسری مستقل از مدل
  • روش‌ها برای شبکه‌های عصبی
  • چشم‌انداز
  • اصطلاحات یادگیری ماشین

هر فصل روش با ساختار مشابهی دنبال می‌شود: پاراگراف اول روش را خلاصه می‌کند، و سپس توضیح شهودی ارائه می‌شود که به ریاضیات متکی نیست. سپس به نظریه روش می‌پردازیم تا درک عمیق‌تری از نحوه کار آن به دست آوریم، شامل ریاضیات و الگوریتم‌ها. من معتقدم که یک روش جدید بهتر است با استفاده از مثال‌ها فهمیده شود. بنابراین، هر روش روی داده‌های واقعی اعمال می‌شود. برخی می‌گویند که آماردانان افراد بسیار انتقادی هستند. برای من این درست است، زیرا هر فصل شامل بحث‌های انتقادی درباره مزایا و معایب روش تفسیر مربوطه است. این کتاب تبلیغی برای روش‌ها نیست، بلکه باید به شما کمک کند تصمیم بگیرید که آیا یک روش برای پروژه شما مناسب است یا خیر. در بخش آخر هر فصل، پیاده‌سازی‌های نرم‌افزاری موجود را فهرست کرده‌ام.

امیدوارم از خواندن لذت ببرید!

فصل ۲: تفسیرپذیری

عنوان اصلی: Interpretability
منبع: https://christophm.github.io/interpretable-ml-book/interpretability.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


این فصل مفاهیم تفسیرپذیری را معرفی می‌کند. اگرچه تعریف ریاضی دقیقی برای تفسیرپذیری وجود ندارد، اما من تعریف بیران و کاتن (Biran and Cotton 2017) را که میلر (Miller 2019) نیز از آن استفاده کرده است، می‌پسندم:

«تفسیرپذیری میزانی است که یک انسان می‌تواند علت یک تصمیم را درک کند.»

تعریف خوب دیگری از کیم، خانا و کویجو (Kim, Khanna, and Koyejo 2016) است:

«یک روش تفسیرپذیر است اگر کاربر بتواند نتایج آن روش را به‌طور صحیح و کارآمد پیش‌بینی کند.»

هرچه یک مدل یادگیری ماشین تفسیرپذیرتر باشد، درک اینکه چرا تصمیم‌ها یا پیش‌بینی‌های خاصی گرفته شده‌اند برای انسان آسان‌تر است. یک مدل نسبت به مدل دیگر تفسیرپذیرتر است اگر تصمیم‌های آن برای انسان قابل‌فهم‌تر از تصمیم‌های مدل دیگر باشد.

گاهی اوقات اصطلاح «توضیح‌پذیری» (explainable) را نیز در این زمینه می‌بینید، مانند «هوش مصنوعی توضیح‌پذیر» (explainable AI). تفاوت بین توضیح‌پذیری و تفسیرپذیری چیست؟ به‌طور کلی، پژوهشگران در این حوزه نمی‌توانند بر سر تعریف هیچ‌یک از این دو اصطلاح به توافق برسند (Flora et al. 2022). من با تعاریف روشر و همکاران (Roscher et al. 2020) موافقم:

تفسیرپذیری درباره نگاشت یک مفهوم انتزاعی از مدل‌ها به شکلی قابل‌درک است. توضیح‌پذیری اصطلاحی قوی‌تر است که نیازمند تفسیرپذیری به‌علاوه زمینه اضافی است. علاوه‌بر این، اصطلاح «توضیح» (explanation) معمولاً برای روش‌های محلی استفاده می‌شود که درباره «توضیح دادن» یک پیش‌بینی هستند. به هر حال، این اصطلاحات چنان مبهم هستند که رویکرد عملی این است که آن‌ها را به‌عنوان یک اصطلاح چتری ببینیم که «استخراج دانش مرتبط از یک مدل یادگیری ماشین در مورد روابط موجود در داده یا یادگرفته‌شده توسط مدل» را در برمی‌گیرد (Murdoch et al. 2019).

اهمیت تفسیرپذیری

اگر یک مدل یادگیری ماشین عملکرد خوبی دارد، چرا صرفاً به مدل اعتماد نکنیم و نادیده بگیریم که چرا تصمیم خاصی گرفته است؟ «مشکل این است که یک معیار واحد، مانند دقت دسته‌بندی، توصیف ناقصی از اکثر وظایف دنیای واقعی است.» (Doshi-Velez and Kim 2017)

بیایید عمیق‌تر به دلایل اهمیت تفسیرپذیری بپردازیم. وقتی صحبت از مدل‌سازی پیش‌بینی به‌میان می‌آید، باید یک مصالحه انجام دهید: آیا فقط می‌خواهید بدانید چه چیزی پیش‌بینی شده است؟ مثلاً احتمال اینکه یک مشتری از خدمات شما دست بکشد یا داروی خاصی برای بیمار چقدر مؤثر خواهد بود. یا می‌خواهید بدانید چرا این پیش‌بینی انجام شده است و احتمالاً برای تفسیرپذیری با افت عملکرد پیش‌بینی‌کننده هزینه بپردازید؟ در برخی موارد، اهمیتی ندارد که چرا تصمیمی گرفته شده است، کافی است بدانیم که عملکرد پیش‌بینی روی مجموعه داده آزمایش خوب بوده است. اما در موارد دیگر، دانستن «چرا» می‌تواند به شما کمک کند تا درباره مسئله، داده و دلیل شکست احتمالی مدل بیشتر بیاموزید. برخی مدل‌ها ممکن است نیازی به توضیح نداشته باشند چون در محیطی کم‌خطر استفاده می‌شوند، یعنی یک اشتباه عواقب جدی نخواهد داشت (مثلاً سیستم توصیه فیلم). همچنین ممکن است روش قبلاً به‌طور گسترده مطالعه و ارزیابی شده باشد (مثلاً تشخیص نویسه نوری). نیاز به تفسیرپذیری از ناقص بودن فرمول‌بندی مسئله ناشی می‌شود (Doshi-Velez and Kim 2017)، که به این معناست برای برخی مسائل یا وظایف، داشتن پیش‌بینی (چیستی) کافی نیست. مدل باید توضیح دهد که چگونه به این پیش‌بینی رسیده است (چرایی)، زیرا یک پیش‌بینی صحیح تنها بخشی از مسئله اصلی شما را حل می‌کند. دلایل زیر تقاضا برای تفسیرپذیری و توضیحات را ایجاد می‌کنند (Doshi-Velez and Kim 2017 و Miller 2017).

کنجکاوی و یادگیری انسان: انسان‌ها یک مدل ذهنی از محیط خود دارند که هنگام وقوع اتفاق غیرمنتظره به‌روز می‌شود. این به‌روزرسانی با یافتن توضیحی برای رویداد غیرمنتظره انجام می‌شود. برای مثال، یک انسان به‌طور غیرمنتظره احساس بیماری می‌کند و می‌پرسد: «چرا این‌قدر حالم بد است؟». او می‌آموزد که هر بار این توت‌های قرمز را می‌خورد، بیمار می‌شود. او مدل ذهنی خود را به‌روز می‌کند و نتیجه می‌گیرد که این توت‌ها باعث بیماری شده‌اند و بنابراین باید از آن‌ها پرهیز کرد. وقتی مدل‌های یادگیری ماشین مبهم در تحقیقات استفاده می‌شوند، یافته‌های علمی کاملاً پنهان می‌مانند اگر مدل فقط پیش‌بینی بدون توضیح ارائه دهد. برای تسهیل یادگیری و ارضای کنجکاوی درباره اینکه چرا پیش‌بینی‌ها یا رفتارهای خاصی توسط ماشین‌ها ایجاد می‌شوند، تفسیرپذیری و توضیحات حیاتی هستند. البته انسان‌ها برای هر اتفاقی که می‌افتد نیاز به توضیح ندارند. مثلاً اکثر افراد نیازی به درک نحوه کار رایانه ندارند. با این حال، رویدادهای غیرمنتظره ما را کنجکاو می‌کنند. برای مثال: چرا رایانه‌ام به‌طور غیرمنتظره خاموش می‌شود؟

ارتباط نزدیکی با یادگیری، میل انسان به یافتن معنا در جهان دارد. ما می‌خواهیم تناقض‌ها یا ناسازگاری‌ها بین عناصر ساختارهای دانش خود را هماهنگ کنیم. «چرا سگم مرا گاز گرفت حتی اگر هرگز قبلاً این کار را نکرده بود؟» یک انسان ممکن است بپرسد. تناقضی بین دانش درباره رفتار گذشته سگ و تجربه ناخوشایند تازه گاز گرفته شدن وجود دارد. توضیح دامپزشک این تناقض صاحب سگ را برطرف می‌کند: «سگ تحت استرس بود و به همین دلیل شما را گاز گرفت.» هرچه تصمیم یک ماشین بیشتر بر زندگی فرد تأثیر بگذارد، توضیح رفتار ماشین مهم‌تر است. اگر یک مدل یادگیری ماشین درخواست وام را رد کند، این ممکن است برای متقاضیان کاملاً غیرمنتظره باشد. آن‌ها تنها با نوعی توضیح می‌توانند این ناسازگاری بین انتظار و واقعیت را برطرف کنند. توضیحات لازم نیست واقعاً وضعیت را به‌طور کامل توضیح دهند، بلکه باید به یک علت اصلی بپردازند. مثال دیگر، توصیه محصول الگوریتمی است. شخصاً همیشه فکر می‌کنم چرا محصولات یا فیلم‌های خاصی الگوریتمی به من توصیه شده‌اند. اغلب واضح است: تبلیغات مرا در اینترنت دنبال می‌کنند چون اخیراً یک ماشین لباسشویی خریده‌ام، و می‌دانم که برای چند روز آینده تبلیغات ماشین لباسشویی مرا دنبال خواهد کرد. بله، منطقی است که دستکش پیشنهاد شود اگر من قبلاً یک کلاه زمستانی در سبد خریدم دارم. الگوریتم این فیلم خاص را توصیه می‌کند چون کاربرانی که فیلم‌های دیگری را که من دوست داشتم، دوست داشتند، از فیلم توصیه‌شده نیز لذت برده‌اند. به‌طور فزاینده، شرکت‌های اینترنتی توضیحات را به توصیه‌های خود اضافه می‌کنند. یک مثال خوب، توصیه محصولات است که بر اساس ترکیب‌های محصولاتی هستند که اغلب با هم خریداری می‌شوند، همان‌طور که در شکل ۲.۱ نشان داده شده است.

شکل ۲.۱: تصویری از محصولات توصیه‌شده که اغلب با هم خریداری می‌شوند.

شکل ۲.۱: تصویری از محصولات توصیه‌شده که اغلب با هم خریداری می‌شوند.

در بسیاری از رشته‌های علمی، تغییری از روش‌های کیفی به روش‌های کمی (مثلاً جامعه‌شناسی، روان‌شناسی) و همچنین به سمت یادگیری ماشین (زیست‌شناسی، ژنومیک) رخ می‌دهد. هدف علم کسب دانش است، اما بسیاری از مسائل با مجموعه داده‌های بزرگ و مدل‌های یادگیری ماشین جعبه سیاه حل می‌شوند. خود مدل به‌جای داده، منبع دانش می‌شود. تفسیرپذیری امکان استخراج این دانش اضافی که توسط مدل ضبط شده است را فراهم می‌کند.

ایمنی: مدل‌های یادگیری ماشین وظایف دنیای واقعی را بر عهده می‌گیرند که نیازمند اقدامات ایمنی و آزمایش هستند. یک خودروی خودران را تصور کنید که به‌طور خودکار دوچرخه‌سواران را بر اساس یک سیستم یادگیری عمیق (Deep Learning) تشخیص می‌دهد. شما می‌خواهید ۱۰۰٪ مطمئن شوید که انتزاعی که سیستم یاد گرفته است بدون خطا است، زیرا زیر گرفتن دوچرخه‌سواران بسیار بد است. یک توضیح ممکن است نشان دهد که مهم‌ترین ویژگی یادگرفته‌شده، تشخیص دو چرخ دوچرخه است، و این توضیح به شما کمک می‌کند درباره موارد خاص مانند دوچرخه‌هایی با کیف‌های جانبی که بخشی از چرخ‌ها را می‌پوشانند، فکر کنید.

بایاس‌ها و تبعیض: به‌طور پیش‌فرض، مدل‌های یادگیری ماشین بایاس‌ها را از داده‌های آموزشی می‌گیرند. این می‌تواند مدل‌های یادگیری ماشین شما را نژادپرست کند و علیه گروه‌های کم‌تر نمایندگی‌شده تبعیض قائل شود. تفسیرپذیری ابزار رفع‌اشکال مفیدی برای تشخیص بایاس در مدل‌های یادگیری ماشین است. ممکن است اتفاق بیفتد که مدل یادگیری ماشینی که برای تأیید یا رد خودکار درخواست‌های اعتبار آموزش داده‌اید، علیه اقلیتی که تاریخاً محروم شده است، تبعیض قائل شود. هدف اصلی شما این است که فقط به افرادی وام بدهید که در نهایت آن را بازپرداخت کنند. ناقص بودن فرمول‌بندی مسئله در این مورد در این واقعیت نهفته است که شما نه تنها می‌خواهید نکول وام را به حداقل برسانید، بلکه موظف هستید بر اساس برخی ویژگی‌های جمعیت‌شناختی خاص تبعیض قائل نشوید. این یک محدودیت اضافی است که بخشی از فرمول‌بندی مسئله شماست (اعطای وام به روشی کم‌خطر و مطابق با مقررات) که توسط تابع زیان که مدل یادگیری ماشین برای آن بهینه‌سازی شده است، پوشش داده نمی‌شود.

پذیرش اجتماعی: فرآیند یکپارچه‌سازی ماشین‌ها و الگوریتم‌ها در زندگی روزمره ما نیازمند تفسیرپذیری برای افزایش پذیرش اجتماعی است. مردم باورها، خواسته‌ها، نیت‌ها و غیره را به اشیاء نسبت می‌دهند. در یک آزمایش معروف، هایدر و سیمل (Heider and Simmel 1944) به شرکت‌کنندگان ویدیوهایی از اشکال نشان دادند که در آن یک دایره یک «در» را باز می‌کرد تا وارد یک «اتاق» شود (که صرفاً یک مستطیل بود). شرکت‌کنندگان اعمال اشکال را همان‌طور که اعمال یک عامل انسانی را توصیف می‌کنند، توصیف کردند و حتی نیت‌ها و احساسات و ویژگی‌های شخصیتی را به اشکال نسبت دادند. ربات‌ها یک مثال خوب هستند، مانند جاروبرقی ما که نامش را «دوج» گذاشتیم. اگر دوج گیر کند، فکر می‌کنم: «دوج می‌خواهد به نظافت ادامه دهد، اما از من کمک می‌خواهد چون گیر کرده است.» بعداً، وقتی دوج نظافت را تمام می‌کند و پایگاه خانگی را برای شارژ مجدد جستجو می‌کند، فکر می‌کنم: «دوج میل به شارژ شدن دارد و قصد دارد پایگاه خانگی را پیدا کند.» من همچنین ویژگی‌های شخصیتی را نسبت می‌دهم: «دوج کمی احمق است، اما به شیوه‌ای بامزه.» این‌ها افکار من هستند، به‌ویژه وقتی متوجه می‌شوم که دوج هنگام جاروبرقی کردن وظیفه‌شناسانه خانه، یک گلدان را واژگون کرده است. یک ماشین یا الگوریتم که پیش‌بینی‌های خود را توضیح می‌دهد، پذیرش بیشتری خواهد یافت.

توضیحات برای مدیریت تعاملات اجتماعی: توضیحات برای مدیریت تعاملات اجتماعی استفاده می‌شوند. با ایجاد معنای مشترک از چیزی، توضیح‌دهنده بر اعمال، احساسات و باورهای دریافت‌کننده توضیح تأثیر می‌گذارد. برای اینکه یک ماشین با ما تعامل کند، ممکن است نیاز داشته باشد احساسات و باورهای ما را شکل دهد. ماشین‌ها باید ما را «متقاعد» کنند تا بتوانند به هدف موردنظر خود برسند. من جاروبرقی روباتیک خود را به‌طور کامل نمی‌پذیرفتم اگر تا حدی رفتار خود را توضیح نمی‌داد. جاروبرقی معنای مشترکی از، مثلاً، یک «حادثه» مانند گیر کردن روی فرش حمام... دوباره، با توضیح اینکه گیر کرده است به‌جای اینکه صرفاً بدون اظهارنظر کار کردن را متوقف کند، ایجاد می‌کند. جالب است که ممکن است عدم تراز بین هدف ماشین توضیح‌دهنده (ایجاد اعتماد) و هدف دریافت‌کننده (درک پیش‌بینی یا رفتار) وجود داشته باشد. شاید توضیح کامل برای اینکه چرا دوج گیر کرد این باشد که باتری خیلی کم بود، یکی از چرخ‌ها درست کار نمی‌کند، و یک باگ وجود دارد که باعث می‌شود ربات بارها و بارها به یک نقطه برود حتی اگر مانعی در آن‌جا باشد. این دلایل (و چند مورد دیگر) باعث شد ربات گیر کند، اما او فقط توضیح داد که چیزی سر راه بوده است، و این برای من کافی بود تا به رفتار او اعتماد کنم و معنای مشترکی از آن حادثه پیدا کنم. راستی، دوج دوباره در حمام گیر کرد. شواهد در شکل ۲.۲. ما مجبوریم هر بار قبل از اینکه به دوج اجازه جاروبرقی کردن بدهیم، فرش‌ها را برداریم.

شکل ۲.۲: دوج، جاروبرقی ما، گیر کرد. به‌عنوان توضیحی برای حادثه، دوج به ما گفت که نیاز دارد روی سطح صافی باشد.

شکل ۲.۲: دوج، جاروبرقی ما، گیر کرد. به‌عنوان توضیحی برای حادثه، دوج به ما گفت که نیاز دارد روی سطح صافی باشد.

رفع اشکال: مدل‌های یادگیری ماشین تنها زمانی قابل رفع‌اشکال و حسابرسی هستند که قابل تفسیر باشند. حتی در محیط‌های کم‌خطر، مانند توصیه فیلم، توانایی تفسیر در مراحل تحقیق و توسعه و همچنین پس از استقرار ارزشمند است. بعداً، وقتی یک مدل در یک محصول استفاده می‌شود، ممکن است اشتباهاتی رخ دهد. یک تفسیر برای یک پیش‌بینی خطا به درک علت خطا کمک می‌کند. این مسیری برای نحوه رفع سیستم ارائه می‌دهد. یک مثال از یک دسته‌بندی‌کننده هاسکی در مقابل گرگ را در نظر بگیرید که برخی هاسکی‌ها را به اشتباه به‌عنوان گرگ دسته‌بندی می‌کند. با استفاده از روش‌های یادگیری ماشین تفسیرپذیر، متوجه می‌شوید که این طبقه‌بندی اشتباه به دلیل برف روی تصویر بوده است. دسته‌بندی‌کننده یاد گرفته است که از برف به‌عنوان ویژگی برای طبقه‌بندی تصاویر به‌عنوان «گرگ» استفاده کند، که ممکن است از نظر جداسازی گرگ‌ها از هاسکی‌ها در مجموعه داده آموزشی منطقی باشد اما در استفاده دنیای واقعی نه.

اگر بتوانید اطمینان حاصل کنید که مدل یادگیری ماشین می‌تواند تصمیمات را توضیح دهد، همچنین می‌توانید ویژگی‌های زیر را راحت‌تر بررسی کنید (Doshi-Velez and Kim 2017):

انصاف: اطمینان از اینکه پیش‌بینی‌ها بی‌طرفانه هستند و به‌طور ضمنی یا صریح علیه گروه‌های کم‌تر نمایندگی‌شده تبعیض قائل نمی‌شوند. حریم خصوصی: اطمینان از اینکه اطلاعات حساس در داده محافظت می‌شوند. قابلیت اطمینان یا استحکام: اطمینان از اینکه تغییرات کوچک در ورودی منجر به تغییرات بزرگ در پیش‌بینی نمی‌شوند. علیت: اطمینان از اینکه فقط روابط علّی شناسایی می‌شوند. اعتماد: برای انسان‌ها آسان‌تر است که به سیستمی که تصمیمات خود را توضیح می‌دهد، اعتماد کنند تا به یک جعبه سیاه.

گاهی اوقات ما به تفسیرپذیری نیاز نداریم.

وقتی تفسیرپذیری لازم نیست

سناریوهای زیر نشان می‌دهند چه زمانی به تفسیرپذیری مدل‌های یادگیری ماشین نیاز نداریم یا حتی نمی‌خواهیم.

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

تفسیرپذیری لازم نیست وقتی مسئله به‌خوبی مطالعه شده است. برخی کاربردها به‌اندازه کافی به‌خوبی مطالعه شده‌اند که تجربه عملی کافی با مدل وجود دارد، و مشکلات با مدل در طول زمان حل شده است. یک مثال خوب، یک مدل یادگیری ماشین برای تشخیص نویسه نوری است که تصاویر پاکت‌ها را پردازش می‌کند و آدرس‌ها را استخراج می‌کند. این سیستم‌ها برای سال‌های زیادی استفاده شده‌اند، و واضح است که کار می‌کنند. علاوه‌بر این، ممکن است علاقه‌ای به کسب بینش اضافی درباره وظیفه موردنظر نداشته باشیم.

تفسیرپذیری ممکن است افراد یا برنامه‌ها را قادر کند که سیستم را دستکاری کنند. مشکلات با کاربرانی که سیستم را فریب می‌دهند از عدم تطابق بین اهداف سازنده و کاربر یک مدل ناشی می‌شود. امتیازدهی اعتباری چنین سیستمی است زیرا بانک‌ها می‌خواهند اطمینان حاصل کنند که وام‌ها فقط به متقاضیانی داده می‌شود که احتمالاً آن را بازمی‌گردانند، و متقاضیان هدفشان دریافت وام است حتی اگر بانک نخواهد به آن‌ها وام بدهد. این عدم تطابق بین اهداف، انگیزه‌هایی برای متقاضیان ایجاد می‌کند تا سیستم را دستکاری کنند و شانس دریافت وام را افزایش دهند. اگر متقاضی بداند که داشتن بیش از دو کارت اعتباری بر امتیاز او تأثیر منفی می‌گذارد، او به‌سادگی کارت سوم خود را برمی‌گرداند تا امتیازش را بهبود بخشد و بعد از تأیید وام، کارت جدیدی تهیه می‌کند. در حالی که امتیاز او بهبود یافت، احتمال واقعی بازپرداخت وام بدون تغییر باقی ماند. سیستم تنها زمانی قابل دستکاری است که ورودی‌ها جانشین‌هایی برای یک ویژگی علّی باشند اما در واقع باعث نتیجه نشوند. هر زمان که ممکن باشد، باید از ویژگی‌های جانشین اجتناب کرد زیرا مدل‌ها را قابل دستکاری می‌کنند. برای مثال، گوگل سیستمی به نام روندهای آنفولانزای گوگل (Google Flu Trends) برای پیش‌بینی شیوع آنفولانزا توسعه داد. این سیستم جستجوهای گوگل را با شیوع آنفولانزا مرتبط می‌کرد – و عملکرد ضعیفی داشت. توزیع پرس‌وجوهای جستجو تغییر کرد، و روندهای آنفولانزای گوگل شیوع‌های زیادی از آنفولانزا را از دست داد. جستجوهای گوگل باعث آنفولانزا نمی‌شوند. وقتی مردم علائمی مانند «تب» را جستجو می‌کنند، این صرفاً یک همبستگی با شیوع واقعی آنفولانزا است. به‌طور ایده‌آل، مدل‌ها فقط باید از ویژگی‌های علّی استفاده کنند که قابل دستکاری نیستند.

توضیحات دوستانه برای انسان

بیایید عمیق‌تر شویم و کشف کنیم که ما انسان‌ها چه چیزی را به‌عنوان توضیحات «خوب» می‌بینیم و پیامدهای آن برای یادگیری ماشین تفسیرپذیر چیست. تحقیقات علوم انسانی می‌توانند به ما کمک کنند تا بفهمیم. میلر (Miller 2017) بررسی بزرگی از انتشارات درباره توضیحات انجام داده است، و این فصل بر اساس خلاصه او ساخته شده است.

در این فصل، می‌خواهم شما را از موارد زیر متقاعد کنم: به‌عنوان توضیحی برای یک رویداد، انسان‌ها توضیحات کوتاه (فقط ۱ یا ۲ علت) را ترجیح می‌دهند که وضعیت فعلی را با وضعیتی که در آن رویداد رخ نمی‌داد، مقایسه می‌کنند. به‌ویژه علل غیرعادی، توضیحات خوبی ارائه می‌دهند. توضیحات تعاملات اجتماعی بین توضیح‌دهنده و توضیح‌گیرنده (دریافت‌کننده توضیح) هستند، و بنابراین زمینه اجتماعی تأثیر زیادی بر محتوای واقعی توضیح دارد.

توضیح خوب چیست؟

یک توضیح پاسخ به یک سؤال چرایی است (Miller 2017).

چرا درمان روی بیمار اثر نکرد؟ چرا درخواست وام من رد شد؟ چرا هنوز با حیات بیگانه تماس نگرفته‌ایم؟

دو سؤال اول را می‌توان با یک توضیح «روزمره» پاسخ داد، در حالی که سؤال سوم از دسته «پدیده‌های علمی کلی‌تر و سؤالات فلسفی» است. ما بر توضیحات نوع «روزمره» تمرکز می‌کنیم زیرا آن‌ها مرتبط با یادگیری ماشین تفسیرپذیر هستند. در ادامه، اصطلاح «توضیح» به فرآیند اجتماعی و شناختی توضیح دادن اشاره دارد، اما همچنین به محصول این فرآیندها. توضیح‌دهنده می‌تواند انسان یا ماشین باشد. این بخش خلاصه میلر درباره توضیحات «خوب» را بیشتر فشرده می‌کند و پیامدهای مشخصی برای یادگیری ماشین تفسیرپذیر اضافه می‌کند.

توضیحات تقابلی هستند (Lipton 1990). انسان‌ها معمولاً نمی‌پرسند چرا یک پیش‌بینی خاص انجام شد، بلکه می‌پرسند چرا این پیش‌بینی به‌جای پیش‌بینی دیگری انجام شد. ما تمایل داریم به موارد خلاف واقع فکر کنیم، یعنی «اگر ورودی متفاوت بود، پیش‌بینی چگونه بود؟». برای پیش‌بینی قیمت خانه، صاحب خانه ممکن است علاقه‌مند باشد بداند چرا قیمت پیش‌بینی‌شده بالا بود در مقایسه با قیمت پایین‌تری که انتظار داشت. اگر درخواست وام من رد شود، اهمیتی نمی‌دهم که همه عواملی که به‌طور کلی به نفع یا علیه رد صحبت می‌کنند را بشنوم. من به عواملی در درخواستم علاقه‌مندم که باید تغییر کنند تا وام را دریافت کنم. من می‌خواهم تقابل بین درخواست من و نسخه‌ای از درخواستم که قبول می‌شد را بدانم. تشخیص اینکه توضیحات تقابلی اهمیت دارند، یک یافته مهم برای یادگیری ماشین توضیح‌پذیر است. شما می‌توانید از اکثر مدل‌های تفسیرپذیر توضیحی استخراج کنید که به‌طور ضمنی پیش‌بینی یک نمونه را با پیش‌بینی یک نمونه داده مصنوعی یا میانگین نمونه‌ها مقایسه می‌کند. پزشکان ممکن است بپرسند: «چرا دارو برای بیمار من اثر نکرد؟». و ممکن است بخواهند توضیحی که بیمارشان را با بیماری که دارو برایش اثر کرد و شبیه به بیمار پاسخ‌ندهنده است، مقایسه می‌کند. توضیحات تقابلی راحت‌تر از توضیحات کامل قابل درک هستند. یک توضیح کامل برای سؤال پزشک که چرا دارو اثر نمی‌کند ممکن است شامل باشد: بیمار ۱۰ سال است که این بیماری را دارد، ۱۱ ژن بیش از حد بیان می‌شوند، بدن بیمار خیلی سریع دارو را به مواد شیمیایی غیرمؤثر تبدیل می‌کند، ... یک توضیح تقابلی ممکن است بسیار ساده‌تر باشد: در مقایسه با بیمار پاسخ‌دهنده، بیمار پاسخ‌ندهنده ترکیب خاصی از ژن‌ها دارد که دارو را کمتر مؤثر می‌کند. بهترین توضیح کسی است که بیشترین تفاوت بین شیء موردنظر و شیء مرجع را برجسته کند. معنی این برای یادگیری ماشین تفسیرپذیر: انسان‌ها توضیح کاملی برای یک پیش‌بینی نمی‌خواهند، بلکه می‌خواهند مقایسه کنند که تفاوت‌ها با پیش‌بینی نمونه دیگر چه بود (می‌تواند مصنوعی باشد). ایجاد توضیحات تقابلی به کاربرد وابسته است زیرا نیازمند نقطه مرجعی برای مقایسه است. و این ممکن است به نقطه داده‌ای که باید توضیح داده شود وابسته باشد، اما همچنین به کاربری که توضیح را دریافت می‌کند. کاربر یک وب‌سایت پیش‌بینی قیمت خانه ممکن است بخواهد توضیحی از پیش‌بینی قیمت خانه تقابلی با خانه خودش یا شاید با خانه دیگری در وب‌سایت یا شاید با یک خانه میانگین در محله داشته باشد. راه‌حل برای ایجاد خودکار توضیحات تقابلی ممکن است شامل یافتن نمونه‌های اولیه یا کهن‌الگوها در داده نیز باشد.

توضیحات گزینشی هستند. مردم انتظار ندارند که توضیحات فهرست واقعی و کامل علل یک رویداد را پوشش دهند. ما عادت داریم یک یا دو علت را از تنوع علل ممکن به‌عنوان توضیح انتخاب کنیم. به‌عنوان شاهد، اخبار تلویزیون را روشن کنید: «کاهش قیمت سهام به واکنش روزافزون علیه محصول شرکت به دلیل مشکلات با آخرین به‌روزرسانی نرم‌افزار نسبت داده می‌شود.» «سوباسا و تیمش مسابقه را به دلیل دفاع ضعیف باختند: آن‌ها به حریفان خود فضای بیش از حد زیادی برای اجرای استراتژی‌شان دادند.» «افزایش بی‌اعتمادی به نهادهای مستقر و دولت ما عوامل اصلی‌ای هستند که مشارکت رأی‌دهندگان را کاهش داده‌اند.» برای مدل‌های یادگیری ماشین، مفید است اگر یک پیش‌بینی خوب بتوان از ویژگی‌های مختلف انجام داد. روش‌های مجموعه‌ای که چندین مدل با ویژگی‌های متفاوت (توضیحات متفاوت) را ترکیب می‌کنند، معمولاً عملکرد خوبی دارند زیرا میانگین‌گیری روی آن «داستان‌ها» پیش‌بینی‌ها را قوی‌تر و دقیق‌تر می‌کند. اما این همچنین به این معناست که بیش از یک توضیح گزینشی برای اینکه چرا یک پیش‌بینی خاص انجام شد، وجود دارد. معنی این برای یادگیری ماشین تفسیرپذیر: توضیح را کوتاه کنید، فقط ۱ تا ۳ دلیل بدهید، حتی اگر دنیا پیچیده‌تر باشد.

توضیحات اجتماعی هستند. آن‌ها بخشی از یک مکالمه یا تعامل بین توضیح‌دهنده و دریافت‌کننده توضیح هستند. زمینه اجتماعی محتوا و ماهیت توضیحات را تعیین می‌کند. اگر من می‌خواستم به یک فرد فنی توضیح دهم که چرا ارزهای دیجیتال ارزش زیادی دارند، چنین چیزهایی می‌گفتم: «دفتر کل غیرمتمرکز، توزیع‌شده و مبتنی بر بلاک‌چین، که نمی‌تواند توسط یک نهاد مرکزی کنترل شود، با افرادی که می‌خواهند ثروت خود را ایمن کنند، طنین‌انداز می‌شود، که تقاضا و قیمت بالا را توضیح می‌دهد.» اما به مادربزرگم می‌گفتم: «ببین، مادربزرگ: ارزهای دیجیتال کمی شبیه طلای رایانه‌ای هستند. مردم طلا را دوست دارند و برای آن پول زیادی می‌پردازند، و جوان‌ها طلای رایانه‌ای را دوست دارند و برای آن پول زیادی می‌پردازند.» معنی این برای یادگیری ماشین تفسیرپذیر: به محیط اجتماعی کاربرد یادگیری ماشین و مخاطب هدف خود توجه کنید. درست کردن بخش اجتماعی مدل یادگیری ماشین کاملاً به کاربرد خاص شما بستگی دارد. متخصصانی از علوم انسانی (مثلاً روان‌شناسان و جامعه‌شناسان) پیدا کنید تا به شما کمک کنند.

توضیحات بر غیرعادی تمرکز می‌کنند. مردم بیشتر بر علل غیرعادی برای توضیح رویدادها تمرکز می‌کنند (Kahneman and Tversky 1982). این‌ها علل‌ای هستند که احتمال کمی داشتند اما با این حال رخ دادند. حذف این علل غیرعادی به‌شدت نتیجه را تغییر می‌داد (توضیح خلاف واقع). انسان‌ها این نوع علل «غیرعادی» را به‌عنوان توضیحات خوب در نظر می‌گیرند. یک مثال از اشترامبل و کونونکو (Štrumbelj and Kononenko 2011) این است: فرض کنید ما مجموعه داده‌ای از موقعیت‌های آزمون بین معلمان و دانش‌آموزان داریم. دانش‌آموزان در یک دوره شرکت می‌کنند و بلافاصله پس از ارائه موفقیت‌آمیز، از دوره قبول می‌شوند. معلم این گزینه را دارد که به‌طور اضافی از دانش‌آموز سؤالاتی برای آزمایش دانش او بپرسد. دانش‌آموزانی که نمی‌توانند به این سؤالات پاسخ دهند، در دوره مردود می‌شوند. دانش‌آموزان می‌توانند سطوح مختلفی از آمادگی داشته باشند، که به احتمالات مختلفی برای پاسخ صحیح به سؤالات معلم (اگر تصمیم بگیرد دانش‌آموز را آزمایش کند) ترجمه می‌شود. ما می‌خواهیم پیش‌بینی کنیم که آیا دانش‌آموز از دوره قبول خواهد شد و پیش‌بینی خود را توضیح دهیم. شانس قبولی ۱۰۰٪ است اگر معلم سؤال اضافی نپرسد؛ در غیر این صورت، احتمال قبولی به سطح آمادگی دانش‌آموز و احتمال ناشی از پاسخ صحیح به سؤالات بستگی دارد. سناریو ۱: معلم معمولاً از دانش‌آموزان سؤالات اضافی می‌پرسد (مثلاً ۹۵ بار از ۱۰۰ بار). دانش‌آموزی که مطالعه نکرده است (۱۰٪ شانس قبولی در بخش سؤال) یکی از خوش‌شانس‌ها نبود و سؤالات اضافی دریافت می‌کند که نمی‌تواند به آن‌ها پاسخ صحیح دهد. چرا دانش‌آموز در دوره مردود شد؟ من می‌گویم که تقصیر دانش‌آموز بود که مطالعه نکرد. سناریو ۲: معلم به‌ندرت سؤالات اضافی می‌پرسد (مثلاً ۲ بار از ۱۰۰ بار). برای دانش‌آموزی که برای سؤالات آماده نشده است، احتمال بالایی برای قبولی از دوره پیش‌بینی می‌کنیم زیرا سؤالات بعید است. البته، یکی از دانش‌آموزان برای سؤالات آماده نشده است، که به او ۱۰٪ شانس قبولی در سؤالات می‌دهد. او بدشانس است و معلم سؤالات اضافی می‌پرسد که دانش‌آموز نمی‌تواند پاسخ دهد، و او مردود می‌شود. دلیل مردودی چیست؟ من استدلال می‌کنم که اکنون، توضیح بهتر این است که «چون معلم دانش‌آموز را آزمایش کرد.» بعید بود که معلم آزمایش کند، بنابراین معلم به‌طور غیرعادی رفتار کرد. معنی این برای یادگیری ماشین تفسیرپذیر: اگر یکی از ویژگی‌های ورودی برای یک پیش‌بینی به هر معنا غیرعادی بود (مانند یک دسته نادر از یک ویژگی طبقه‌ای) و ویژگی بر پیش‌بینی تأثیر گذاشت، باید در یک توضیح گنجانده شود، حتی اگر ویژگی‌های «عادی» دیگر همان تأثیر بر پیش‌بینی را داشته باشند که ویژگی غیرعادی. یک ویژگی غیرعادی در مثال پیش‌بینی قیمت خانه ما ممکن است این باشد که یک خانه نسبتاً گران دو بالکن دارد. حتی اگر برخی روش‌های انتساب بیابند که دو بالکن به همان اندازه اندازه بالاتر از میانگین خانه، محله خوب یا بازسازی اخیر به تفاوت قیمت کمک می‌کنند، ویژگی غیرعادی «دو بالکن» ممکن است بهترین توضیح برای اینکه چرا خانه این‌قدر گران است باشد.

توضیحات صادقانه هستند. توضیحات خوب در واقعیت (یعنی در موقعیت‌های دیگر) صادقانه به اثبات می‌رسند. اما به‌طور نگران‌کننده، این مهم‌ترین عامل برای یک توضیح «خوب» نیست. برای مثال، گزینشی بودن به نظر می‌رسد مهم‌تر از صداقت باشد. یک توضیحی که فقط یک یا دو علت ممکن را انتخاب می‌کند، به‌ندرت کل فهرست علل مرتبط را پوشش می‌دهد. گزینشی بودن بخشی از حقیقت را حذف می‌کند. درست نیست که فقط یک یا دو عامل، برای مثال، باعث سقوط بازار سهام شده‌اند، اما حقیقت این است که میلیون‌ها علت وجود دارند که بر میلیون‌ها نفر تأثیر می‌گذارند تا به‌گونه‌ای عمل کنند که در نهایت سقوطی ایجاد شود. معنی این برای یادگیری ماشین تفسیرپذیر: توضیح باید رویداد را تا حد امکان صادقانه پیش‌بینی کند، که در یادگیری ماشین گاهی اوقات به آن وفاداری گفته می‌شود. پس اگر بگوییم یک بالکن دوم قیمت خانه را افزایش می‌دهد، پس باید برای خانه‌های دیگر نیز صدق کند (یا حداقل برای خانه‌های مشابه). برای انسان‌ها، وفاداری یک توضیح به‌اندازه گزینشی بودن، تقابل و جنبه اجتماعی آن مهم نیست.

توضیحات خوب با باورهای قبلی توضیح‌گیرنده سازگار هستند. انسان‌ها تمایل دارند اطلاعاتی که با باورهای قبلی‌شان ناسازگار است را نادیده بگیرند. این اثر بایاس تأیید نامیده می‌شود (Nickerson 1998). توضیحات از این بایاس در امان نیستند. مردم تمایل دارند توضیحاتی که با باورهایشان موافق نیستند را کم‌ارزش کنند یا نادیده بگیرند. مجموعه باورها از شخصی به شخص دیگر متفاوت است، اما باورهای قبلی مبتنی بر گروه مانند جهان‌بینی‌های سیاسی نیز وجود دارد. معنی این برای یادگیری ماشین تفسیرپذیر: توضیحات خوب با باورهای قبلی سازگار هستند. ادغام این در یادگیری ماشین دشوار است و احتمالاً عملکرد پیش‌بینی را به‌شدت به خطر می‌اندازد. باور قبلی ما برای تأثیر اندازه خانه بر قیمت پیش‌بینی‌شده این است که هرچه خانه بزرگ‌تر باشد، قیمت بالاتر است. فرض کنیم یک مدل نیز یک اثر منفی از اندازه خانه بر قیمت پیش‌بینی‌شده برای چند خانه نشان می‌دهد. مدل این را یاد گرفته است زیرا عملکرد پیش‌بینی را بهبود می‌بخشد (به دلیل برخی تعاملات پیچیده)، اما این رفتار به‌شدت با باورهای قبلی ما در تضاد است. شما می‌توانید محدودیت‌های یکنواختی را اعمال کنید (یک ویژگی فقط می‌تواند بر پیش‌بینی در یک جهت تأثیر بگذارد) یا از چیزی مانند یک مدل خطی که این ویژگی را دارد، استفاده کنید.

توضیحات خوب کلی و محتمل هستند. علتی که می‌تواند رویدادهای زیادی را توضیح دهد، «کلی» نامیده می‌شود و می‌تواند یک توضیح خوب در نظر گرفته شود. توجه کنید که این با ادعای اینکه علل غیرعادی توضیحات خوبی می‌سازند، در تضاد است. همان‌طور که من می‌بینم، علل غیرعادی بر علل کلی پیروز می‌شوند. علل غیرعادی طبق تعریف در سناریوی داده‌شده نادر هستند. در غیاب یک رویداد غیرعادی، یک توضیح کلی به‌عنوان یک توضیح خوب در نظر گرفته می‌شود. همچنین به یاد داشته باشید که مردم تمایل دارند احتمالات رویدادهای مشترک را اشتباه قضاوت کنند. (جو یک کتابدار است. آیا احتمال بیشتری دارد که یک فرد خجالتی باشد یا یک فرد خجالتی که دوست دارد کتاب بخواند؟) یک مثال خوب این است که «خانه گران است چون بزرگ است»، که یک توضیح بسیار کلی و خوب برای اینکه چرا خانه‌ها گران یا ارزان هستند. معنی این برای یادگیری ماشین تفسیرپذیر: کلی بودن به‌راحتی با پشتیبانی ویژگی قابل اندازه‌گیری است، که تعداد نمونه‌هایی است که توضیح برای آن‌ها صدق می‌کند تقسیم بر تعداد کل نمونه‌ها.

فصل ۳: اهداف تفسیرپذیری

عنوان اصلی: Goals of Interpretability
منبع: https://christophm.github.io/interpretable-ml-book/goals.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


تفسیرپذیری خود هدف نیست، بلکه وسیله‌ای برای رسیدن به هدف است. انتخاب رویکرد تفسیرپذیری بستگی به اهداف خاص شما دارد که نیازمند بحث بیشتری است.¹ با الهام از Adadi و Berrada (2018)، سه هدف از تفسیرپذیری را بررسی می‌کنیم: بهبود مدل، توجیه مدل و پیش‌بینی‌ها، و کشف بینش‌های جدید.²

بهبود مدل

نکته: همیشه عملکرد را ارزیابی کنید

هنگام تعیین اهداف تفسیرپذیری، ابتدا معیارهای عملکرد مدل خود را ارزیابی کنید. این کار به شما کمک می‌کند تشخیص دهید که آیا هدف فعلی شما باید بهبود مدل باشد یا خیر.

می‌توانید از روش‌های تفسیرپذیری برای بهبود مدل استفاده کنید. در مقدمه، درباره پیش‌بینی‌کننده‌های Clever Hans صحبت کردیم که به مدل‌هایی اشاره دارد که یاد گرفته‌اند از «میانبرها» استفاده کنند، مانند اتکا به ویژگی‌های غیرعلّی برای پیش‌بینی. نکته پیچیده درباره این میانبرها این است که اغلب عملکرد مدل را کاهش نمی‌دهند—بلکه ممکن است آن را افزایش دهند. مثل اتکا به برف در پس‌زمینه برای طبقه‌بندی اینکه تصویر یک گرگ را نشان می‌دهد یا سگ (Ribeiro, Singh, and Guestrin 2016) یا پیش‌بینی گمراه‌کننده اینکه بیماران آسمی که به اورژانس بیمارستان مراجعه می‌کنند، احتمال کمتری برای مرگ ناشی از ذات‌الریه دارند (Caruana et al. 2015).³ تفسیرپذیری به اشکال‌زدایی مدل کمک می‌کند و مشخص می‌کند که مدل چه زمانی از چنین میانبرهای ناخواسته‌ای استفاده می‌کند یا اشتباهات دیگری مرتکب می‌شود. برخی از این اشکالات ممکن است به سادگی کدگذاری اشتباه ویژگی هدف یا خطا در مهندسی ویژگی باشد. آیا اثرات ویژگی‌ها با دانش حوزه‌ای شما در تضاد است؟ ممکن است کلاس‌های هدف را جابه‌جا کرده باشید. آیا ویژگی‌ای که می‌دانید مهم است، طبق بررسی‌های شما توسط مدل استفاده نمی‌شود؟ ممکن است در پردازش داده یا مهندسی ویژگی اشتباهی مرتکب شده باشید.

من همچنین در مسابقات یادگیری ماشین از روش‌های تفسیرپذیری برای شناسایی ویژگی‌های مهم استفاده کرده‌ام تا ایده‌هایی برای مهندسی ویژگی به دست آورم. به عنوان مثال، در مسابقه‌ای برای پیش‌بینی تأمین آب شرکت کردم و از طریق اهمیت ویژگی متوجه شدم که برف در کوه‌های اطراف، مهم‌ترین ویژگی است. بنابراین تصمیم گرفتم منابع جایگزین داده برف را امتحان کنم که ممکن است این ویژگی را حتی بهتر کند، و زمانی را صرف مهندسی ویژگی کردم. در نهایت، این کار به بهبود عملکرد مدل کمک کرد.

توجیه مدل و پیش‌بینی‌ها

یادگیری ماشین قابل تفسیر به توجیه مدل و پیش‌بینی‌های آن برای افراد یا نهادهای دیگر کمک می‌کند. تفکر درباره ذینفعان یک سیستم یادگیری ماشین مفید است (Tomsett et al. 2018):

  • سازندگان (Creators) سیستم را می‌سازند و مدل را آموزش می‌دهند.
  • اپراتورها (Operators) مستقیماً با سیستم تعامل دارند.
  • اجراکنندگان (Executors) بر اساس خروجی‌ها تصمیم می‌گیرند.
  • موضوعات تصمیم (Decision subjects) تحت تأثیر تصمیمات قرار می‌گیرند.
  • حسابرسان (Auditors) سیستم را حسابرسی و بررسی می‌کنند.
  • موضوعات داده (Data subjects) افرادی هستند که داده‌های آن‌ها برای آموزش مدل استفاده می‌شود.

این ذینفعان خواهان توجیه مدل و پیش‌بینی‌های آن هستند و ممکن است به انواع بسیار متفاوتی از توجیه نیاز داشته باشند.

یکی از خروجی‌های مسابقه یادگیری ماشینی که در آن شرکت کردم، تولید گزارش‌هایی بود که پیش‌بینی‌های تأمین آب را توضیح می‌داد. این گزارش‌ها و توضیحات برای هیدرولوژیست‌ها و مقامات رسمی است که باید بر اساس این پیش‌بینی‌های تأمین آب تصمیم بگیرند (اجراکنندگان). فرض کنید مدل یک تأمین آب غیرمعمول پایین را پیش‌بینی می‌کند؛ این به معنای آن است که مقامات باید طرح‌های اضطراری خشکسالی را اعلام کنند و تخصیص آب را تنظیم کنند. به جای اینکه کورکورانه به پیش‌بینی‌ها اعتماد کنند، تصمیم‌گیرنده ممکن است بخواهد با نگاه کردن به توضیحات اینکه چرا این پیش‌بینی خاص انجام شده، پیش‌بینی‌ها را تأیید کند. و اگر توضیح با دانش حوزه‌ای در تضاد باشد، تصمیم‌گیرنده ممکن است پیش‌بینی را زیر سؤال ببرد و بررسی کند.

به طور کلی، اعتراض به پیش‌بینی انجام شده توسط یک سیستم یادگیری ماشین، نیازمند تفسیرپذیری سیستم است. تصور کنید یک سیستم یادگیری ماشین درخواست وام را رد می‌کند. برای اینکه یک فرد (موضوع تصمیم) بتواند به آن رد اعتراض کند، باید توجیهی برای اینکه چرا آن پیش‌بینی انجام شده وجود داشته باشد. این مفهوم را recourse می‌نامند.

مثال دیگر: اگر یک شرکت بخواهد یک دستگاه پزشکی بسازد، باید از فرآیندهای نظارتی زیادی عبور کند تا نشان دهد که دستگاه ایمن و کارآمد است. اگر دستگاه به یادگیری ماشین متکی باشد، کارها پیچیده‌تر می‌شود زیرا شرکت همچنین باید نشان دهد که مدل یادگیری ماشین آنطور که در نظر گرفته شده کار می‌کند. یادگیری ماشین قابل تفسیر بخشی از راه‌حل برای توجیه مدل به نهادهای نظارتی (حسابرسان) است که یا دستگاه پزشکی را تأیید یا رد می‌کنند.

کشف بینش‌ها

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

یک مدل پیش‌بینی ریزش مشتری (churn prediction) پیش‌بینی می‌کند که احتمال لغو قرارداد تلفن همراه یک فرد چقدر است، به عنوان مثال. تیم بازاریابی ممکن است برای تصمیم‌گیری درباره کمپین‌های بازاریابی به مدل تکیه کند. اما بدون دانستن اینکه چرا احتمال دارد یک فرد قرارداد را لغو کند، طراحی یک پاسخ مؤثر دشوار است.

بیش از پیش، دانشمندان نیز یادگیری ماشین را برای سؤالات تحقیقاتی خود به کار می‌برند. به عنوان مثال، Zhang و همکاران (2019) از Random Forest برای پیش‌بینی محصول بادام باغ بر اساس مصرف کود استفاده کردند. پیش‌بینی کافی نیست: آن‌ها همچنین از روش‌های تفسیرپذیری برای استخراج اینکه ویژگی‌های مختلف، از جمله کود، چگونه بر محصول پیش‌بینی‌شده تأثیر می‌گذارند، استفاده کردند. برای استخراج روابط یادگرفته‌شده بین ویژگی‌ها و پیش‌بینی، به تفسیرپذیری نیاز دارید. در غیر این صورت، تنها چیزی که دارید یک تابع برای پیش‌بینی است.

نکته: چگونه از یادگیری ماشین در علم استفاده کنیم

استفاده از یادگیری ماشین در علم، یک سؤال فلسفی بسیار عمیق‌تر است و بیش از صرفاً تفکر درباره تفسیرپذیری نیاز دارد. به همین دلیل من و Timo Freiesleben کتابی را به توجیه یادگیری ماشین برای علم اختصاص داده‌ایم.

می‌توانید آن را رایگان اینجا بخوانید: ml-science-book.com


یادگیری ماشین قابل تفسیر نه تنها برای یادگیری درباره داده‌ها، بلکه برای یادگیری درباره مدل نیز مفید است. به عنوان مثال، اگر می‌خواهید بیاموزید که شبکه‌های عصبی کانولوشنال چگونه کار می‌کنند، می‌توانید از تفسیرپذیری برای مطالعه اینکه نورون‌های منفرد به چه مفاهیمی واکنش نشان می‌دهند، استفاده کنید.

اهداف شما در پروژه یادگیری ماشین چیست و تفسیرپذیری چگونه می‌تواند به شما کمک کند؟ اهداف شما تعیین می‌کند که از کدام رویکردها و روش‌های تفسیرپذیری استفاده کنید. در فصل بعد، به بررسی چشم‌انداز روش‌ها می‌پردازیم و بحث می‌کنیم که چگونه با اهداف شما مرتبط هستند.


¹ زمانی که محققان مدل‌ها یا روش‌های تفسیرپذیری جدیدی پیشنهاد می‌کنند، به ندرت درباره اهداف خاصی که آن‌ها را پشتیبانی می‌کنند، بحث می‌کنند. من خودم را در اینجا مستثنی نمی‌کنم: به عنوان مثال، این فصل درباره اهداف را تا ویرایش سوم کتاب معرفی نکردم.

² مقاله Adadi و Berrada (2018) علاوه بر این، «کنترل (control)» را معرفی کرد که به اشکال‌زدایی مدل و یافتن خطاها اشاره دارد، اما من آن را در زیرمجموعه «بهبود» قرار دادم.

³ یک مدل پیش‌بینی کرد که بیماران آسمی که با ذات‌الریه به اورژانس می‌آیند، احتمال کمتری برای مرگ ناشی از ذات‌الریه دارند، علی‌رغم اینکه آسم به عنوان یک عامل خطر برای ذات‌الریه شناخته می‌شود. فقط به لطف استفاده از یک مدل قابل تفسیر، محققان متوجه شدند که این مدل این رابطه را یاد گرفته است. اما این یک «میانبر» ناخواسته است: بیماران آسمی زودتر و تهاجمی‌تر با آنتی‌بیوتیک‌ها درمان می‌شدند، بنابراین در واقع احتمال کمتری برای ابتلا به ذات‌الریه شدید داشتند. مدل میانبر را یاد گرفته بود (آسم → کاهش خطر مرگ ناشی از ذات‌الریه)، زیرا ویژگی‌هایی درباره درمان بعدی نداشت.

فصل ۴: مروری بر روش‌ها

عنوان اصلی: Methods Overview
منبع: https://christophm.github.io/interpretable-ml-book/overview.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


این فصل مروری بر رویکردهای تفسیرپذیری ارائه می‌دهد. هدف این است که نقشه‌ای در اختیار شما قرار دهیم تا وقتی وارد جزئیات مدل‌ها و روش‌های مختلف می‌شوید، بتوانید جنگل را از میان درختان ببینید. شکل ۴.۱ طبقه‌بندی رویکردهای مختلف را نشان می‌دهد.

شکل ۴.۱

شکل ۴.۱: طبقه‌بندی مختصر روش‌های تفسیرپذیری که ساختار کتاب را منعکس می‌کند.

به طور کلی می‌توانیم بین تفسیرپذیری از طریق طراحی و تفسیرپذیری پسینی تمایز قائل شویم. تفسیرپذیری از طریق طراحی به این معناست که مدل‌هایی را آموزش می‌دهیم که ذاتاً قابل تفسیر هستند، مانند استفاده از رگرسیون لجستیک به جای جنگل تصادفی. تفسیرپذیری پسینی به این معناست که از یک روش تفسیرپذیری پس از آموزش مدل استفاده می‌کنیم. روش‌های تفسیر پسینی می‌توانند مدل-ناآگاه باشند، مانند اهمیت ویژگی با جایگشت، یا مدل-خاص، مانند تحلیل ویژگی‌های یادگرفته شده توسط یک شبکه عصبی. روش‌های مدل-ناآگاه را می‌توان به روش‌های موضعی که بر توضیح پیش‌بینی‌های فردی تمرکز دارند، و روش‌های سراسری که بر مجموعه داده‌ها متمرکز هستند، تقسیم کرد. این کتاب بر روش‌های پسینی مدل-ناآگاه تمرکز دارد اما مدل‌های پایه‌ای که از طریق طراحی قابل تفسیر هستند و روش‌های مدل-خاص برای شبکه‌های عصبی را نیز پوشش می‌دهد.

بیایید به هر دسته از تفسیرپذیری نگاه کنیم و همچنین نقاط قوت و ضعف آن‌ها را در ارتباط با اهداف تفسیری شما بررسی کنیم.

مدل‌های قابل تفسیر از طریق طراحی

تفسیرپذیری از طریق طراحی در سطح الگوریتم یادگیری ماشین تصمیم‌گیری می‌شود. اگر می‌خواهید یک الگوریتم یادگیری ماشین که مدل‌های قابل تفسیر تولید می‌کند، داشته باشید، الگوریتم باید جستجوی مدل‌ها را به آن‌هایی که قابل تفسیر هستند محدود کند. ساده‌ترین مثال رگرسیون خطی است: وقتی از روش حداقل مربعات معمولی برای برازش/آموزش یک مدل رگرسیون خطی استفاده می‌کنید، از الگوریتمی استفاده می‌کنید که مدل‌هایی خطی نسبت به ویژگی‌های ورودی تولید خواهد کرد. مدل‌هایی که از طریق طراحی قابل تفسیر هستند، مدل‌های ذاتاً یا فطرتاً قابل تفسیر نیز نامیده می‌شوند، شکل ۴.۲ را ببینید.

شکل ۴.۲

شکل ۴.۲: تفسیرپذیری از طریق طراحی به معنای استفاده از الگوریتم‌های یادگیری ماشین است که مدل‌های «ذاتاً قابل تفسیر» تولید می‌کنند.

این کتاب پایه‌ای‌ترین رویکردهای تفسیرپذیری از طریق طراحی را پوشش می‌دهد:

  • رگرسیون خطی: برازش یک مدل خطی با کمینه‌سازی مجموع خطاهای مربعی.
  • رگرسیون لجستیک: گسترش رگرسیون خطی برای دسته‌بندی با استفاده از یک تبدیل غیرخطی.
  • گسترش‌های مدل خطی: افزودن جریمه‌ها، تعاملات و عبارات غیرخطی برای انعطاف‌پذیری بیشتر.
  • درخت‌های تصمیم: تقسیم بازگشتی داده‌ها برای ایجاد مدل‌های مبتنی بر درخت.
  • قواعد تصمیم: استخراج قواعد اگر-آنگاه از داده‌ها.
  • RuleFit: ترکیب قواعد مبتنی بر درخت با رگرسیون Lasso برای یادگیری مدل‌های تنک مبتنی بر قاعده.

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

  • شبکه‌های عصبی مبتنی بر نمونه اولیه (Prototype) برای دسته‌بندی تصویر، به نام ProtoViT (Ma et al. 2024). این شبکه‌های عصبی به گونه‌ای آموزش داده می‌شوند که دسته‌بندی تصویر مجموع وزن‌داری از نمونه‌های اولیه (تصاویر خاصی از داده‌های آموزش) و نمونه‌های فرعی اولیه باشد.
  • Yang et al. (2024) مجموعه درختان ذاتاً قابل تفسیر را پیشنهاد کردند که درختان تقویت‌شده (مانند XGBoost) با ابرپارامترهای تنظیم‌شده هستند، مانند حداکثر عمق کم درخت، یک نمایش متفاوت که در آن اثرات ویژگی به اثرات اصلی و تعاملات تقسیم می‌شوند، و هرس اثرات. این رویکرد هم تفسیرپذیری از طریق طراحی و هم تفسیرپذیری پسینی را با هم ترکیب می‌کند.
  • تقویت مبتنی بر مدل (Model-based boosting) یک چارچوب مدل‌سازی افزایشی است. مدل آموزش‌دیده مجموع وزن‌داری از اثرات خطی، spline‌ها، کنده‌های درختی و سایر یادگیرندگان ضعیف است (Bühlmann and Hothorn 2007).
  • مدل‌های افزایشی تعمیم‌یافته با تشخیص خودکار تعاملات (Caruana et al. 2015).

اما مدل‌های ذاتاً قابل تفسیر چقدر قابل تفسیر هستند؟ رویکردهای مدل‌های قابل تفسیر به شدت متفاوت هستند و تفسیر آن‌ها نیز همین‌طور است. بیایید درباره حوزه تفسیرپذیری صحبت کنیم که به ما کمک می‌کند رویکردها را مرتب کنیم:

  • مدل به طور کامل قابل تفسیر است. مثال: یک درخت تصمیم کوچک را می‌توان به راحتی تجسم و درک کرد. یا یک مدل رگرسیون خطی با تعداد ضرایب نه چندان زیاد. «کاملاً قابل تفسیر» یک الزام سخت است و در عین حال کمی مبهم نیز هست. دیدگاه من این است که اصطلاح کاملاً قابل تفسیر ممکن است تنها برای ساده‌ترین مدل‌ها مانند رگرسیون خطی بسیار تنک یا درخت‌های بسیار کوتاه استفاده شود، اگر اصلاً استفاده شود.
  • بخش‌هایی از مدل قابل تفسیر هستند. در حالی که یک مدل رگرسیون با صدها ویژگی ممکن است «کاملاً قابل تفسیر» نباشد، هنوز می‌توانیم ضرایب مرتبط با ویژگی‌ها را به صورت جداگانه تفسیر کنیم. یا اگر یک لیست تصمیم بزرگ دارید، هنوز می‌توانید قواعد فردی را بررسی کنید.
  • پیش‌بینی‌های مدل قابل تفسیر هستند. برخی رویکردها به ما اجازه می‌دهند پیش‌بینی‌های فردی را تفسیر کنیم. فرض کنید یک الگوریتم یادگیری ماشین شبیه k-نزدیک‌ترین همسایه توسعه دهید، اما برای تصاویر. برای دسته‌بندی یک تصویر، k تصویر مشابه را بگیرید و رایج‌ترین کلاس را برگردانید. یک پیش‌بینی به طور کامل با نمایش k تصویر مشابه توضیح داده می‌شود. یا برای درخت‌های تصمیم، یک پیش‌بینی با برگرداندن لیست تصمیماتی که منجر به پیش‌بینی شد، توضیح داده می‌شود.

نکته: حوزه تفسیرپذیری روش‌ها را ارزیابی کنید

هنگام بررسی یک رویکرد تفسیرپذیری جدید، حوزه تفسیرپذیری را ارزیابی کنید. بپرسید که رویکرد در کدام سطوح (کاملاً قابل تفسیر، تفسیرپذیری جزئی، یا پیش‌بینی‌های قابل تفسیر) عمل می‌کند.

مدل‌هایی که از طریق طراحی قابل تفسیر هستند، معمولاً اشکال‌زدایی و بهبود آن‌ها آسان‌تر است زیرا بینش‌هایی درباره کارکرد درونی آن‌ها به دست می‌آوریم.

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

وقتی صحبت از کشف بینش‌ها می‌شود، مدل‌های قابل تفسیر ترکیبی هستند. آن‌ها استخراج بینش‌ها درباره خود مدل‌ها را آسان می‌کنند. اما وقتی صحبت از بینش‌های داده می‌شود، کار دشوارتر می‌شود زیرا نیاز به یک پیوند نظری بین ساختار مدل و داده وجود دارد. برای تفسیر مدل به جای داده، باید فرض کنید که ساختار مدل جهان را منعکس می‌کند – چیزی که آماردانان بسیار سخت بر روی آن کار می‌کنند و به فرضیات زیادی نیاز دارند. اما اگر مدلی با عملکرد پیش‌بینی بهتر وجود داشته باشد چه؟ باید استدلال کنید که چرا مدل قابل تفسیر داده‌ها را به درستی نمایش می‌دهد، حتی اگر عملکرد پیش‌بینی آن پایین‌تر باشد. علاوه بر این، اغلب مدل‌های متعددی با عملکرد مشابه اما تفسیرهای متفاوت وجود دارند که کار ما را دشوارتر می‌کند. به این اثر راشومون می‌گویند. مشکل این تکثر مدل این است که کاملاً نامشخص می‌کند که کدام مدل را تفسیر کنیم.

نکته: راشومون

فیلم ژاپنی راشومون از سال ۱۹۵۰ چهار نسخه متفاوت از یک داستان قتل را روایت می‌کند. در حالی که هر نسخه می‌تواند رویدادها را به خوبی توضیح دهد، با یکدیگر ناسازگار هستند. این پدیده اثر راشومون نامیده شد.

تفسیرپذیری پسینی

روش‌های پسینی پس از آموزش مدل اعمال می‌شوند. این روش‌ها می‌توانند مدل-ناآگاه یا مدل-خاص باشند:

  • مدل-ناآگاه: آنچه در داخل مدل است را نادیده می‌گیریم و تنها تحلیل می‌کنیم که چگونه خروجی مدل با توجه به تغییرات در ورودی‌های ویژگی تغییر می‌کند. برای مثال، جایگشت یک ویژگی و اندازه‌گیری میزان افزایش خطای مدل.
  • مدل-خاص: بخش‌هایی از مدل را تحلیل می‌کنیم تا آن را بهتر درک کنیم. این می‌تواند تحلیل این باشد که یک نرون در یک شبکه عصبی به چه نوع تصاویری بیشترین واکنش را نشان می‌دهد، یا اهمیت جینی در جنگل‌های تصادفی.

روش‌های پسینی مدل-ناآگاه

روش‌های مدل-ناآگاه بر اساس اصل SIPA کار می‌کنند: نمونه‌برداری از داده‌ها، انجام یک مداخله بر روی داده‌ها، دریافت پیش‌بینی‌ها برای داده‌های دستکاری‌شده، و تجمیع نتایج (Scholbeck et al. 2020). مثالی از این، اهمیت ویژگی با جایگشت است: یک نمونه داده می‌گیریم، با جایگشت آن بر روی داده مداخله می‌کنیم، پیش‌بینی‌های مدل را دریافت می‌کنیم، و خطای مدل را دوباره محاسبه و با خطای اصلی مقایسه می‌کنیم (تجمیع). آنچه این روش‌ها را مدل-ناآگاه می‌کند این است که نیازی به «نگاه کردن به داخل» مدل ندارند، مانند خواندن ضرایب یا وزن‌ها، همان‌طور که در شکل ۴.۳ نمایش داده شده است.

شکل ۴.۳

شکل ۴.۳: روش‌های تفسیر مدل-ناآگاه با ورودی‌ها و خروجی‌ها کار می‌کنند و داخلی‌های مدل را نادیده می‌گیرند.

تفسیر مدل-ناآگاه، تفسیر مدل را از آموزش مدل جدا می‌کند. با نگاه کردن به این موضوع از سطح بالاتر، فرآیند مدل‌سازی یک لایه دیگر به دست می‌آورد: از جهان شروع می‌شود که آن را در قالب داده ضبط می‌کنیم، از آن یک مدل یاد می‌گیریم. در بالای آن مدل، روش‌های تفسیرپذیری برای انسان‌ها داریم. شکل ۴.۴ را ببینید. برای روش‌های مدل-ناآگاه، این جداسازی را داریم، در حالی که برای تفسیرپذیری از طریق طراحی، لایه‌های مدل و تفسیرپذیری در یک لایه ادغام شده‌اند.

شکل ۴.۴

شکل ۴.۴: تصویر کلی از یادگیری ماشین قابل تفسیر (مدل-ناآگاه). دنیای واقعی از لایه‌های زیادی می‌گذرد تا به شکل توضیحات به انسان برسد.

جداسازی توضیحات از مدل یادگیری ماشین (= روش‌های تفسیر مدل-ناآگاه) مزایایی دارد (Ribeiro, Singh, and Guestrin 2016). بزرگ‌ترین نقطه قوت، انعطاف‌پذیری در هر دو انتخاب مدل و انتخاب روش تفسیر است. برای مثال، اگر اثرات ویژگی یک مدل XGBoost را با نمودار وابستگی جزئی (PDP) تجسم می‌کنید، حتی می‌توانید مدل پایه را تغییر دهید و همچنان از همان نوع تفسیر استفاده کنید. یا اگر دیگر PDP را دوست ندارید، می‌توانید از اثرات موضعی انباشته (ALE) بدون نیاز به تغییر مدل پایه XGBoost استفاده کنید. اما اگر از یک مدل رگرسیون خطی استفاده می‌کنید و ضرایب را تفسیر می‌کنید، تغییر به یک دسته‌بندی‌کننده مبتنی بر قاعده، وسیله تفسیر را نیز تغییر خواهد داد. برخی روش‌های مدل-ناآگاه حتی به شما انعطاف‌پذیری در نمایش ویژگی مورد استفاده برای ایجاد توضیحات می‌دهند: برای مثال، می‌توانید توضیحاتی را بر اساس بخش‌های تصویر به جای پیکسل‌ها هنگام توضیح خروجی‌های دسته‌بندی‌کننده تصویر ایجاد کنید.

روش‌های تفسیر مدل-ناآگاه را می‌توان به روش‌های موضعی و سراسری تقسیم کرد. روش‌های موضعی هدفشان توضیح پیش‌بینی‌های فردی است، در حالی که روش‌های سراسری توصیف می‌کنند که چگونه ویژگی‌ها به طور متوسط بر پیش‌بینی‌ها تأثیر می‌گذارند.

روش‌های پسینی مدل-ناآگاه موضعی

روش‌های تفسیر موضعی پیش‌بینی‌های فردی را توضیح می‌دهند. رویکردها در این دسته کاملاً متنوع هستند:

  • نمودارهای سِتِریس پاریبوس نشان می‌دهند که تغییر یک ویژگی چگونه پیش‌بینی را تغییر می‌دهد.
  • منحنی‌های انتظار شرطی فردی نشان می‌دهند که تغییر یک ویژگی چگونه پیش‌بینی چندین نقطه داده را تغییر می‌دهد.
  • مدل‌های جایگزین موضعی (LIME: لایم) یک پیش‌بینی را با جایگزینی مدل پیچیده با یک مدل موضعی قابل تفسیر توضیح می‌دهند.
  • قواعد محدود (anchors) قواعدی هستند که توصیف می‌کنند کدام مقادیر ویژگی یک پیش‌بینی را «لنگر» می‌کنند، به این معنا که صرف‌نظر از تعداد ویژگی‌های دیگری که تغییر می‌دهید، پیش‌بینی ثابت می‌ماند.
  • توضیحات خلاف واقع یک پیش‌بینی را با بررسی این‌که کدام ویژگی‌ها باید تغییر کنند تا به یک پیش‌بینی مطلوب برسیم، توضیح می‌دهند.
  • مقادیر شپلی پیش‌بینی را به صورت عادلانه به ویژگی‌های فردی نسبت می‌دهند.
  • SHAP (شپ) یک روش محاسباتی برای مقادیر شپلی است اما روش‌های تفسیر سراسری را نیز بر اساس ترکیب مقادیر شپلی در سراسر داده‌ها پیشنهاد می‌کند.

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

برای اشکال‌زدایی مدل، روش‌های موضعی نمایی «زوم‌شده» ارائه می‌دهند که می‌تواند برای درک موارد استثنا یا مطالعه پیش‌بینی‌های غیرمعمول مفید باشد. برای مثال، می‌توانید به توضیحات پیش‌بینی با بدترین خطای پیش‌بینی نگاه کنید و ببینید که آیا فقط یک نقطه داده دشوار برای پیش‌بینی است، یا شاید مدل شما به اندازه کافی خوب نیست، یا نقطه داده اشتباه برچسب‌گذاری شده است. فراتر از آن، روش‌های سراسری مدل-ناآگاه هستند که برای بهبود مدل مفیدترند.

وقتی صحبت از استفاده از روش‌های تفسیر موضعی برای توجیه پیش‌بینی‌های فردی می‌شود، مفید بودن آن‌ها متفاوت است: روش‌هایی مانند سِتِریس پاریبوس و توضیحات خلاف واقع می‌توانند برای توجیه پیش‌بینی‌های مدل بسیار مفید باشند زیرا به درستی پیش‌بینی‌های خام مدل را منعکس می‌کنند. روش‌های انتساب مانند SHAP یا LIME خودشان نوعی «مدل» (یا حداقل برآوردهای پیچیده‌تر) روی مدلی که در حال توضیح دادن آن هستند، هستند و بنابراین ممکن است برای اهداف توجیهی با اهمیت بالا مناسب نباشند (Rudin 2019).

روش‌های موضعی می‌توانند برای بینش‌های داده مفید باشند. روش‌های انتساب مانند مقادیر شپلی با یک مجموعه داده مرجع کار می‌کنند و بنابراین اجازه مقایسه پیش‌بینی فعلی با زیرمجموعه‌های مختلف را می‌دهند و امکان پرسیدن سؤالات مختلف را فراهم می‌کنند. به طور کلی، مفید بودن تفسیر مدل-ناآگاه برای هر دو روش موضعی و سراسری به عملکرد مدل بستگی دارد. نمودارهای سِتِریس پاریبوس و ICE نیز برای بینش‌های مدل مفید هستند.

روش‌های پسینی مدل-ناآگاه سراسری

روش‌های سراسری رفتار متوسط یک مدل یادگیری ماشین را در سراسر یک مجموعه داده توصیف می‌کنند. در این کتاب، تکنیک‌های تفسیر سراسری مدل-ناآگاه زیر را یاد خواهید گرفت:

  • نمودار وابستگی جزئی یک روش اثر ویژگی است.
  • نمودارهای اثر موضعی انباشته نیز اثرات ویژگی را تجسم می‌کنند، طراحی‌شده برای ویژگی‌های همبسته نیز.
  • تعامل ویژگی (H-statistic) میزانی که پیش‌بینی نتیجه اثرات مشترک ویژگی‌ها است را کمی می‌کند.
  • تجزیه تابعی یک ایده محوری تفسیرپذیری و یک تکنیک برای تجزیه توابع پیش‌بینی به بخش‌های کوچک‌تر است.
  • اهمیت ویژگی با جایگشت اهمیت یک ویژگی را به صورت افزایش در خطا وقتی ویژگی جایگشت می‌شود، اندازه‌گیری می‌کند.
  • حذف یک ویژگی (LOFO) یک ویژگی را حذف می‌کند و افزایش خطا را پس از آموزش مجدد مدل بدون آن ویژگی اندازه‌گیری می‌کند.
  • مدل‌های جایگزین مدل اصلی را با یک مدل ساده‌تر برای تفسیر جایگزین می‌کنند.
  • نمونه‌های اولیه و انتقادات نقاط داده نماینده یک توزیع هستند و می‌توانند برای بهبود تفسیرپذیری استفاده شوند.

دو دسته گسترده در روش‌های سراسری مدل-ناآگاه، اثرات ویژگی و اهمیت ویژگی هستند. اثرات ویژگی (PDP، ALE، H-statistic، تجزیه) درباره نشان دادن رابطه بین ورودی‌ها و خروجی‌ها هستند. اهمیت ویژگی (PFI، LOFO، اهمیت SHAP، ...) درباره رتبه‌بندی ویژگی‌ها بر اساس اهمیت است، که اهمیت توسط هر یک از روش‌ها به صورت متفاوتی تعریف می‌شود.

از آنجا که روش‌های تفسیر سراسری رفتار متوسط را توصیف می‌کنند، زمانی که مدل‌ساز می‌خواهد یک مدل را اشکال‌زدایی کند، به ویژه مفید هستند. به طور خاص، LOFO با روش‌های انتخاب ویژگی مرتبط است و به ویژه برای بهبود مدل مفید است.

برای توجیه مدل‌ها به ذینفعان، روش‌های تفسیر سراسری می‌توانند برخی خطوط کلی مانند اینکه کدام ویژگی‌ها مرتبط بودند را ارائه دهند. همچنین می‌توانید از روش‌های سراسری در ترکیب با مدل‌های ذاتاً قابل تفسیر استفاده کنید. برای مثال، در حالی که لیست‌های قاعده تصمیم توجیه پیش‌بینی‌های فردی را آسان می‌کنند، ممکن است بخواهید خود مدل را نیز با نشان دادن اینکه کدام ویژگی‌ها به طور کلی مهم بودند، توجیه کنید.

روش‌های سراسری اغلب به صورت مقادیر مورد انتظار بر اساس توزیع داده بیان می‌شوند. برای مثال، نمودار وابستگی جزئی، یک نمودار اثر ویژگی، پیش‌بینی مورد انتظار است وقتی همه ویژگی‌های دیگر حاشیه‌سازی شده‌اند. این همان چیزی است که این روش‌ها را برای درک مکانیزم‌های کلی در داده بسیار مفید می‌کند. من و همکارانم مقالاتی درباره PDP و PFI نوشتیم و اینکه چگونه می‌توانند برای استنتاج ویژگی‌های داده استفاده شوند (Molnar et al. 2023; Freiesleben et al. 2024).

نکته: سراسری را به گروهی تبدیل کنید

با اعمال روش‌های سراسری به زیرمجموعه‌هایی از داده‌های خود، می‌توانید روش‌های سراسری را به روش‌های «گروهی» یا «منطقه‌ای» تبدیل کنید. این را در عمل در مثال‌های این کتاب خواهیم دید.

روش‌های پسینی مدل-خاص

همان‌طور که از نام پیداست، روش‌های پسینی مدل-خاص پس از آموزش مدل اعمال می‌شوند اما فقط برای مدل‌های یادگیری ماشین خاصی کار می‌کنند، همان‌طور که در شکل ۴.۵ نمایش داده شده است. نمونه‌های زیادی از این دست وجود دارد، از اهمیت جینی برای جنگل‌های تصادفی تا محاسبه نسبت شانس برای رگرسیون لجستیک. این کتاب بر روش‌های تفسیر پسینی برای شبکه‌های عصبی تمرکز دارد.

شکل ۴.۵

شکل ۴.۵: روش‌های مدل-خاص مدل‌های پیچیده را با تحلیل مدل‌ها قابل تفسیرتر می‌کنند.

برای انجام پیش‌بینی با یک شبکه عصبی، داده‌های ورودی از لایه‌های زیادی از ضرب با وزن‌های یادگرفته‌شده و تبدیلات غیرخطی عبور می‌کنند. یک پیش‌بینی واحد می‌تواند شامل میلیون‌ها ضرب باشد، بسته به معماری شبکه عصبی. هیچ شانسی وجود ندارد که ما انسان‌ها بتوانیم نگاشت دقیق از ورودی داده به پیش‌بینی را دنبال کنیم. باید میلیون‌ها وزن را که به شیوه‌های پیچیده با هم تعامل دارند در نظر بگیریم تا پیش‌بینی یک شبکه عصبی را درک کنیم. برای تفسیر رفتار و پیش‌بینی‌های شبکه‌های عصبی، به روش‌های تفسیر خاصی نیاز داریم. شبکه‌های عصبی هدف جالبی برای تفسیر هستند زیرا شبکه‌های عصبی در لایه‌های پنهان خود ویژگی‌ها و مفاهیم را یاد می‌گیرند. همچنین می‌توانیم از گرادیان‌های آن‌ها برای روش‌های کارآمد محاسباتی استفاده کنیم.

بخش شبکه‌های عصبی تکنیک‌های زیر را پوشش می‌دهد که به سؤالات مختلفی پاسخ می‌دهند:

  • ویژگی‌های یادگرفته‌شده: شبکه عصبی چه ویژگی‌هایی یاد گرفت؟
  • نقشه‌های برجستگی: هر پیکسل چگونه به یک پیش‌بینی خاص کمک کرد؟
  • مفاهیم: شبکه عصبی چه مفاهیمی یاد گرفت؟
  • نمونه‌های متخاصم: چگونه می‌توانیم شبکه عصبی را فریب دهیم؟
  • نمونه‌های تأثیرگذار: یک نقطه داده آموزش چقدر برای یک پیش‌بینی مشخص تأثیرگذار بود؟

به طور کلی، بزرگ‌ترین نقطه قوت روش‌های مدل-خاص توانایی یادگیری درباره خود مدل‌ها است. این همچنین می‌تواند به بهبود مدل و توجیه آن برای دیگران کمک کند. وقتی صحبت از بینش‌های داده می‌شود، روش‌های مدل-خاص مشکلات مشابهی با مدل‌های ذاتاً قابل تفسیر دارند: آن‌ها به یک توجیه نظری نیاز دارند که چرا تفسیر مدل داده را منعکس می‌کند.

خطوط تار هستند

دسته‌بندی‌های مرتبی ارائه کرده‌ام. اما در واقعیت، خطوط بین از طریق طراحی و پسینی تار است. فقط چند نمونه:

  • آیا رگرسیون لجستیک یک مدل ذاتاً قابل تفسیر است؟ باید ضرایب را پس‌پردازش کنید تا نسبت شانس را تفسیر کنید. و اگر بخواهید اثرات مدل را در سطح احتمالات تفسیر کنید، باید اثرات حاشیه‌ای را محاسبه کنید که قطعاً می‌تواند به عنوان یک روش تفسیر پسینی دیده شود (که می‌تواند برای مدل‌های دیگر نیز اعمال شود).
  • مجموعه درختان تقویت‌شده قابل تفسیر در نظر گرفته نمی‌شوند. اما اگر حداکثر عمق درخت را روی ۱ تنظیم کنید، کنده‌های درختی تقویت‌شده به دست می‌آورید که چیزی شبیه یک مدل افزایشی تعمیم‌یافته به شما می‌دهد.
  • برای توضیح یک پیش‌بینی رگرسیون خطی، می‌توانید هر مقدار ویژگی را در ضریب آن ضرب کنید. به این‌ها اثرات گفته می‌شود. علاوه بر این، می‌توانید از هر اثر، میانگین اثر از داده‌ها را کم کنید. اگر این کارها را انجام دهید، مقادیر شپلی را محاسبه کرده‌اید که معمولاً مدل-ناآگاه در نظر گرفته می‌شوند.

نتیجه اخلاقی داستان. تفسیرپذیری یک مفهوم تار است. این تاری را بپذیرید، زیاد به یک رویکرد وابسته نشوید، اما با آزادی رویکردها را ترکیب و تطبیق دهید.

فصل ۵: داده‌ها و مدل‌ها

عنوان اصلی: Data and Models
منبع: https://christophm.github.io/interpretable-ml-book/data.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


در طول این کتاب، با دو مجموعه داده به‌طور مکرر روبرو خواهید شد. یکی درباره دوچرخه‌ها و دیگری درباره پنگوئن‌ها. من هر دو را دوست دارم. این فصل، داده‌ها و مدل‌هایی را که در این کتاب تفسیر خواهیم کرد، معرفی می‌کند.

اجاره دوچرخه (رگرسیون)

این مجموعه داده شامل تعداد روزانه دوچرخه‌های اجاره‌شده از شرکت اجاره دوچرخه Capital-Bikeshare در واشنگتن دی‌سی به همراه اطلاعات آب‌وهوایی و فصلی است. این داده‌ها با لطف Capital-Bikeshare به‌صورت آزاد در دسترس قرار گرفته‌اند. Fanaee-T و Gama (2014) داده‌های آب‌وهوایی و اطلاعات فصلی را به آن اضافه کردند. این داده‌ها را می‌توان از UCI Machine Learning Repository دانلود کرد. من مقداری پردازش روی داده‌ها انجام دادم و در نهایت به این ستون‌ها رسیدم:

  • تعداد دوچرخه‌ها، شامل هم کاربران عادی و هم ثبت‌شده. این تعداد به‌عنوان متغیر هدف در مسئله رگرسیون استفاده می‌شود (cnt).
  • فصل سال. یکی از بهار، تابستان، پاییز یا زمستان (season).
  • نشان‌دهنده اینکه آیا آن روز تعطیلی رسمی بوده یا نه (holiday).
  • نشان‌دهنده اینکه آیا آن روز روز کاری یا آخر هفته بوده است (workday).
  • وضعیت آب‌وهوایی در آن روز. یکی از: خوب، مه‌آلود، بد (weather).
  • دمای هوا به درجه سانتی‌گراد (temp).
  • رطوبت نسبی به درصد (۰ تا ۱۰۰) (hum).
  • سرعت باد به کیلومتر بر ساعت (windspeed).
  • تعداد دوچرخه‌های اجاره‌شده دو روز قبل (cnt_2d_bfr).

من یک روز را که رطوبت آن ۰ اندازه‌گیری شده بود حذف کردم، و همچنین دو روز اول را به دلیل نبود داده تعداد دوچرخه‌های دو روز قبل (cnt_2d_bfr) حذف کردم. در مجموع، داده‌های پردازش‌شده شامل ۷۲۸ روز هستند.

پیش‌بینی اجاره دوچرخه

از آنجایی که این مثال صرفاً برای نمایش روش‌های تفسیرپذیری است، من کمی آزادی عمل به خود دادم. فرض می‌کنم که ویژگی‌های آب‌وهوایی پیش‌بینی هستند (در واقعیت نیستند). این بدان معناست که مسئله پیش‌بینی ما شکل زیر را دارد: ما تعداد دوچرخه‌های اجاره‌شده فردا را بر اساس پیش‌بینی آب‌وهوا، اطلاعات فصلی، و تعداد دوچرخه‌هایی که دیروز اجاره شده‌اند، پیش‌بینی می‌کنیم.

من تمام مدل‌های رگرسیون را با استفاده از یک استراتژی ساده holdout آموزش دادم: ۲/۳ داده‌ها برای آموزش و ۱/۳ برای آزمایش. الگوریتم‌های یادگیری ماشین عبارت بودند از: random forest، درخت تصمیم CART، ماشین بردار پشتیبان، و رگرسیون خطی. جدول ۵.۱ نشان می‌دهد که ماشین بردار پشتیبان بهترین عملکرد را داشت، زیرا کمترین ریشه میانگین مربعات خطا (RMSE) و کمترین میانگین قدر مطلق خطا (MAE) را داشت. random forest کمی بدتر بود، و مدل رگرسیون خطی حتی بدتر. درخت تصمیم با فاصله زیادی در رتبه آخر قرار دارد و اصلاً خوب عمل نکرد.

جدول ۵.۱: مقایسه عملکرد مدل‌های اجاره دوچرخه روی داده‌های آزمایش با ریشه میانگین مربعات خطا (RMSE) و میانگین قدر مطلق خطا (MAE).

مدلRMSEMAE
SVM852628
Random Forest881672
Linear Regression948737
Decision Tree1056794

وابستگی ویژگی‌ها

برای بسیاری از روش‌های تفسیر، درک چگونگی همبستگی ویژگی‌ها اهمیت دارد. بنابراین، بیایید نگاهی به همبستگی پیرسون برای ویژگی‌های عددی بیندازیم. جدول ۵.۲ نشان می‌دهد که تنها همبستگی بزرگتر بین تعداد دو روز قبل و دما است. اما در مورد ویژگی‌های دسته‌ای چطور؟ و در مورد همبستگی غیرخطی چطور؟

برای درک وابستگی‌های غیرخطی، دو کار انجام خواهیم داد:

  1. تصویرسازی وابستگی خام دوبه‌دو (مثلاً نمودار پراکندگی)
  2. محاسبه اطلاعات متقابل نرمال‌شده (NMI) بین دو ویژگی.

جدول ۵.۲: همبستگی پیرسون دوبه‌دو بین ویژگی‌های عددی اجاره دوچرخه.

متغیر ۱متغیر ۲همبستگی
temphum0.13
tempwindspeed-0.16
humwindspeed-0.25
tempcnt_2d_bfr0.60
humcnt_2d_bfr0.06
windspeedcnt_2d_bfr-0.11

اطلاعات متقابل نرمال‌شده عددی بین ۰ و ۱ است. NMI برابر با ۰ به این معناست که ویژگی‌ها هیچ اطلاعاتی را به اشتراک نمی‌گذارند، در حالی که ۱ به این معناست که تمام تغییرات از وابستگی آن‌ها ناشی می‌شود. NMI می‌تواند برای ویژگی‌های با تعداد زیادی دسته/بازه به سمت بالا تورش داشته باشد (Mahmoudi و Jemielniak 2024). این بدان معناست که هرچه تعداد بازه‌ها/دسته‌ها بیشتر باشد، باید کمتر به مقدار بزرگ NMI اعتماد کنید. به همین دلیل است که ما فقط به NMI تکیه نمی‌کنیم، بلکه داده‌های خام را تصویرسازی کرده و همبستگی پیرسون را تحلیل می‌کنیم.

نکته: اطلاعات متقابل نرمال‌شده

اطلاعات متقابل بین دو متغیر تصادفی دسته‌ای $X$ و $Y$ به‌صورت زیر داده می‌شود:

$$I(X;Y) = \sum_{i \in \mathcal{X}} \sum_{j \in \mathcal{Y}} p(x_i, y_j) \log \frac{p(x_i, y_j)}{p(x_i)p(y_j)}$$

که در آن $i \in \mathcal{X}$ و $j \in \mathcal{Y}$. $p(x_i)$ احتمال اینکه ویژگی $X$ دسته $i$ را بگیرد است، و برای $Y$ نیز همین‌طور. $p(x_i, y_j)$ احتمال توأم اینکه ویژگی $X$ دسته $i$ و $Y$ دسته $j$ را بگیرند است.

اطلاعات متقابل نرمال‌شده، MI را که دامنه آن $[0, \infty)$ است به $[0, 1]$ مقیاس‌بندی می‌کند (NMI ممکن است در شرایط خاصی از این محدوده فراتر رود):

$$NMI(X;Y) = \frac{I(X;Y)}{\sqrt{H(X)H(Y)}}$$

که در آن

$$H(X) = -\sum_{i \in \mathcal{X}} p(x_i) \log p(x_i)$$

که در آن $\mathcal{X}$ مجموعه تمام دسته‌هایی است که $X$ می‌تواند بگیرد. برای استفاده از اطلاعات متقابل با ویژگی‌های عددی، مقادیر مشاهده‌شده $x_1, \ldots, x_n$ ویژگی $X$ را به بازه‌هایی با اندازه برابر گسسته‌سازی می‌کنیم. تعداد بازه‌ها با استفاده از قاعده Freedman-Diaconis تعیین می‌شود (Freedman و Diaconis 1981):

$$\text{bin width} = 2 \frac{IQR(x)}{n^{1/3}}$$

$$\text{number of bins} = \frac{\max(x) - \min(x)}{\text{bin width}}$$

$IQR(x)$ دامنه میان‌چارکی $x$ است، $n$ تعداد نمونه‌های داده، و ما به عدد صحیح بزرگتر بعدی گرد می‌کنیم.

اکنون بیایید نگاهی به داده‌های وابستگی خام و اطلاعات متقابل نرمال‌شده برای ویژگی‌ها در داده‌های اشتراک دوچرخه در شکل ۵.۱ بیندازیم.

شکل ۵.۱

شکل ۵.۱: اطلاعات متقابل نرمال‌شده و نمودارهای جفتی برای ویژگی‌ها در داده‌های اشتراک دوچرخه. من holiday و workday را برای خوانایی بهتر نمودارها حذف کردم.

تحلیل NMI به‌طور کلی برداشت حاصل از تحلیل همبستگی را تأیید می‌کند. علاوه بر این، ما بینش‌هایی درباره ویژگی‌های دسته‌ای به دست می‌آوریم: فصل سال با دما و تعداد دو روز قبل اطلاعات مشترک دارد، که تعجب‌آور نیست. نمودارهای جفتی نیز تأیید می‌کنند که ضرایب همبستگی معیارهای خوبی از وابستگی برای این مجموعه داده هستند، زیرا ویژگی‌های عددی الگوهای وابستگی عجیبی نشان نمی‌دهند، بلکه عمدتاً خطی هستند. برای مثال داده بعدی، تحلیل وابستگی شگفتی‌های بیشتری دارد.

پنگوئن‌های پالمر (دسته‌بندی)

برای دسته‌بندی، از داده‌های پنگوئن‌های پالمر استفاده خواهیم کرد. این مجموعه داده جذاب شامل اندازه‌گیری‌هایی از ۳۳۳ پنگوئن از مجمع‌الجزایر پالمر در قطب جنوب است (که در شکل ۵.۲ تصویرسازی شده است). این مجموعه داده توسط Gorman، Williams و Fraser (2014) جمع‌آوری و منتشر شد. مقاله تفاوت‌های ظاهری بین نر و ماده را، در میان چیزهای دیگر، مطالعه می‌کند. به همین دلیل است که ما از دسته‌بندی نر/ماده بر اساس اندازه‌گیری‌های بدن استفاده خواهیم کرد.

شکل ۵.۲

شکل ۵.۲: اثر هنری پنگوئن‌های پالمر توسط @allison_horst. (الف) سه گونه پنگوئن در داده‌ها. (ب) اندازه‌گیری‌های منقار.

هر سطر نشان‌دهنده یک پنگوئن است و شامل اطلاعات زیر است:

  • جنسیت پنگوئن (نر/ماده)، که هدف دسته‌بندی است (sex).
  • گونه پنگوئن، که یکی از Chinstrap، Gentoo یا Adelie است (species).
  • جرم بدن پنگوئن، بر حسب گرم اندازه‌گیری شده (body_mass_g).
  • طول منقار (نوک)، بر حسب میلی‌متر اندازه‌گیری شده (bill_length_mm).
  • عمق منقار، بر حسب میلی‌متر اندازه‌گیری شده (bill_depth_mm).
  • طول باله (دم)، بر حسب میلی‌متر اندازه‌گیری شده (flipper_length_mm).

۱۱ پنگوئن داده ناقص داشتند. از آنجا که هدف از این داده نمایش روش‌های یادگیری ماشین تفسیرپذیر است و نه مطالعه عمیق پنگوئن‌ها، من به سادگی داده‌های پنگوئن با مقادیر ناقص را حذف کردم. مجموعه داده با استفاده از بسته R پالمرپنگوئن‌ها بارگذاری می‌شود (Horst، Hill و Gorman 2020).

دسته‌بندی جنسیت پنگوئن (نر / ماده)

برای مثال‌های داده، من مدل‌های زیر را آموزش دادم، با استفاده از یک تقسیم ساده به داده‌های آموزش ۲/۳ و داده‌های آزمایش holdout ۱/۳. برای ارزیابی عملکرد مدل‌ها، من log loss و دقت را روی داده‌های آزمایش اندازه‌گیری کردم. نتایج در جدول ۵.۳ نشان داده شده است.

مدل رگرسیون لجستیک در واقع ۳ مدل است: ابتدا داده‌ها را بر اساس گونه تقسیم کردم، یک مدل رگرسیون لجستیک آموزش دادم، و نتایج عملکرد را ترکیب کردم. این همان کاری است که Gorman، Williams و Fraser (2014) در مقاله خود انجام دادند. این همچنین مدلی است که بهترین عملکرد را داشت. برای random forest و برای درخت تصمیم، من گونه را به‌عنوان یک ویژگی در نظر گرفتم. این برای درخت تصمیم خوب جواب نداد، اما عملکرد random forest نزدیک به مدل‌های رگرسیون لجستیک است، حداقل از نظر دقت.

جدول ۵.۳: مقایسه عملکرد مدل برای دسته‌بندی جنسیت پنگوئن (نر/ماده).

مدلLog_LossAccuracy
Logistic Regression (by Species)0.160.93
Random Forest0.190.92
Decision Tree1.230.86

وابستگی ویژگی‌ها

بیایید نگاهی بیندازیم به اینکه اندازه‌گیری‌های بدن پنگوئن چگونه با هم همبسته هستند.

جدول ۵.۴: همبستگی پیرسون دوبه‌دو بین ویژگی‌های عددی پنگوئن.

متغیر ۱متغیر ۲همبستگی
bill_depth_mmbill_length_mm-0.23
bill_depth_mmflipper_length_mm-0.58
bill_length_mmflipper_length_mm0.65
bill_depth_mmbody_mass_g-0.47
bill_length_mmbody_mass_g0.59
flipper_length_mmbody_mass_g0.87

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

شکل ۵.۳

شکل ۵.۳: همبستگی پیرسون دوبه‌دو بین ویژگی‌های عددی پنگوئن.

شکل ۵.۳ تصویر بسیار ظریف‌تری نسبت به آنچه همبستگی پیرسون نشان داد، ارائه می‌دهد. به‌عنوان مثال، اطلاعات متقابل نرمال‌شده بین جرم بدن و عمق منقار مشابه NMI بین جرم بدن و طول باله است. اما همبستگی بین جرم بدن و عمق منقار بسیار کمتر است. دلیل این است که همبستگی خطی پویایی‌ها را درک نمی‌کند، حداقل زمانی که همه پنگوئن‌ها را با هم قرار می‌دهیم. دلیل اینکه همبستگی خطی در اینجا خوب کار نمی‌کند، پارادوکس سیمپسون است. در پارادوکس سیمپسون یک روند در چندین گروه از داده‌ها ظاهر می‌شود، اما زمانی که همه داده‌ها را ترکیب می‌کنیم ناپدید می‌شود یا معکوس می‌شود. ترکیب همه داده‌های پنگوئن، یک همبستگی مثبت بین عمق منقار و جرم بدن را به همبستگی منفی تبدیل می‌کند، همان‌طور که در شکل ۵.۴ نشان داده شده است. دلیل این است که پنگوئن‌های Gentoo سنگین‌تر هستند و منقارهای عمیق‌تری دارند. اطلاعات متقابل این مشکل را حل می‌کند.

شکل ۵.۴

شکل ۵.۴: وزن پنگوئن در مقابل عمق منقار برای هر ۳ گونه. خطوط، خطوط رگرسیون برای پیش‌بینی عمق منقار از جرم بدن برای زیرمجموعه‌های مختلف پنگوئن‌ها هستند.

نکته‌ای درباره مدل‌سازی همه پنگوئن‌ها با هم: در سراسر کتاب، من پنگوئن‌ها را به‌طور پیش‌فرض به‌عنوان یک مجموعه داده در نظر خواهم گرفت و از گونه به‌عنوان یک ویژگی استفاده خواهم کرد. احتمالاً بهتر است همیشه پنگوئن‌ها را بر اساس گونه مدل‌سازی و تحلیل کنیم. با این حال، این یک تنش بسیار رایج در یادگیری ماشین است: اغلب، نمونه‌های داده متعلق به یک خوشه یا موجودیت هستند – به پیش‌بینی فروش برای فروشگاه‌های مختلف یا دسته‌بندی نمونه‌های آزمایشگاهی از دسته‌های یکسان فکر کنید – و ما باید تصمیم بگیریم که آیا از مدل‌های جداگانه استفاده کنیم یا از شناسه موجودیت به‌عنوان یک ویژگی استفاده کنیم.

فصل ۶: رگرسیون خطی

عنوان اصلی: Linear Regression
منبع: https://christophm.github.io/interpretable-ml-book/limo.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


مدل رگرسیون خطی، هدف را به صورت مجموع وزن‌دار ویژگی‌های ورودی پیش‌بینی می‌کند. خطی بودن رابطه یادگرفته‌شده، تفسیر را آسان می‌کند. رگرسیون خطی مدت‌های مدیدی است که توسط آماردانان، دانشمندان علوم رایانه، و دیگر افرادی که با مسائل کمّی سروکار دارند، مورد استفاده قرار گرفته است.

مدل‌های خطی می‌توانند برای مدل‌سازی وابستگی هدف رگرسیون $y$ به ویژگی‌ها $x$ استفاده شوند. رابطه یادگرفته‌شده را می‌توان برای یک نمونه منفرد $i$ به شکل زیر نوشت:

مدل

$$\hat{y}^{(i)} = \beta_0 + \beta_1 x^{(i)}_{1} + \beta_2 x^{(i)}_{2} + \ldots + \beta_p x^{(i)}_{p}$$

یا به صورت فشرده‌تر:

$$\hat{y}^{(i)} = \beta_0 + \sum_{j=1}^{p} \beta_j x^{(i)}_{j}$$

خروجی پیش‌بینی‌شده یک نمونه، مجموع وزن‌دار $p$ ویژگی آن است. بتاها ($\beta_1, \ldots, \beta_p$) نشان‌دهنده وزن‌ها یا ضرایب یادگرفته‌شده ویژگی‌ها هستند. اولین وزن در این مجموع، یعنی $\beta_0$، عرض از مبدأ (intercept) نامیده می‌شود و در هیچ ویژگی‌ای ضرب نمی‌شود. اپسیلون ($\epsilon$) خطایی است که همچنان مرتکب می‌شویم، یعنی تفاوت میان پیش‌بینی و خروجی واقعی:

$$y^{(i)} = \beta_0 + \sum_{j=1}^{p} \beta_j x^{(i)}_{j} + \epsilon^{(i)}$$

فرض بر این است که این خطاها از یک توزیع گاوسی پیروی می‌کنند، به این معنا که هم در جهت منفی و هم در جهت مثبت خطا داریم و خطاهای کوچک بسیار زیاد و خطاهای بزرگ کم رخ می‌دهند.

برآورد ضرایب

برای یافتن بهترین ضرایب، معمولاً مجموع مربعات تفاوت بین خروجی واقعی و خروجی برآوردشده را به حداقل می‌رسانیم:

$$\hat{\beta} = \arg\min_{\beta} \sum_{i=1}^{n} \left( y^{(i)} - \left(\beta_0 + \sum_{j=1}^{p} \beta_j x^{(i)}_{j} \right) \right)^2$$

در این‌جا به تفصیل درباره چگونگی یافتن وزن‌های بهینه بحث نمی‌کنیم، اما اگر علاقه‌مندید، می‌توانید فصل ۳٫۲ کتاب «The Elements of Statistical Learning» (Hastie 2009) یا یکی دیگر از منابع آنلاین درباره مدل‌های رگرسیون خطی را مطالعه کنید.

بزرگ‌ترین مزیت مدل‌های رگرسیون خطی، خطی بودن آن‌هاست: این ویژگی، رویه برآورد را ساده می‌کند و مهم‌تر از همه، این معادلات خطی تفسیری آسان‌فهم در سطح مؤلفه‌ها (یعنی وزن‌ها) دارند. این یکی از دلایل اصلی است که چرا مدل خطی و مدل‌های مشابه آن در حوزه‌های آکادمیک مانند پزشکی، جامعه‌شناسی، روان‌شناسی و بسیاری دیگر از حوزه‌های پژوهش کمّی، این‌قدر گسترده مورد استفاده قرار می‌گیرند. برای مثال، در حوزه پزشکی، نه‌تنها پیش‌بینی نتیجه بالینی یک بیمار مهم است، بلکه کمّی‌سازی تأثیر دارو و در عین حال در نظر گرفتن جنسیت، سن، و سایر ویژگی‌ها به شیوه‌ای تفسیرپذیر نیز اهمیت دارد.

وزن‌های برآوردشده همراه با فاصله اطمینان می‌آیند. فاصله اطمینان بازه‌ای برای برآورد وزن است که با سطح اطمینان مشخصی، وزن «واقعی» را در بر می‌گیرد. برای مثال، یک فاصله اطمینان ۹۵٪ برای وزنی برابر ۲ می‌تواند از ۱ تا ۳ باشد. تفسیر این بازه چنین است: اگر برآورد را ۱۰۰ بار با داده‌های نمونه‌گیری‌شده جدید تکرار کنیم، فاصله اطمینان در ۹۵ مورد از ۱۰۰ مورد، وزن واقعی را در بر خواهد گرفت، به شرط آنکه مدل رگرسیون خطی، مدل درستی برای داده‌ها باشد.

اینکه آیا مدل، مدل «درست» است یا نه، به این بستگی دارد که آیا روابط موجود در داده‌ها مفروضات مشخصی را برآورده می‌کنند یا نه؛ این مفروضات عبارت‌اند از: خطی بودن، نرمال بودن، هم‌واریانسی، استقلال، ثابت بودن ویژگی‌ها، و عدم چندگانگی خطی.

نکته: مفروضات اختیاری هستند. شما فقط برای به‌دست‌آوردن نتایج بیشتر از مدل خطی — مانند فاصله اطمینان — به این مفروضات نیاز دارید.

خطی بودن (Linearity)

مدل رگرسیون خطی، پیش‌بینی را مجبور می‌کند که یک ترکیب خطی از ویژگی‌ها باشد، که هم بزرگ‌ترین نقطه قوت و هم بزرگ‌ترین محدودیت آن است. خطی بودن به مدل‌های تفسیرپذیر منجر می‌شود. اثرات خطی را می‌توان به‌آسانی کمّی‌سازی و توصیف کرد. این اثرات جمع‌پذیرند، پس جدا کردن اثرات آسان است. اگر گمان می‌کنید بین ویژگی‌ها تعامل وجود دارد یا رابطه یک ویژگی با مقدار هدف غیرخطی است، می‌توانید جملات تعاملی اضافه کنید یا از اسپلاین‌های رگرسیونی (regression splines) استفاده کنید.

نرمال بودن (Normality)

فرض بر این است که خروجی هدف، به شرط ویژگی‌ها، از یک توزیع نرمال پیروی می‌کند. اگر این فرض نقض شود، فاصله‌های اطمینان برآوردشده برای وزن‌های ویژگی نامعتبر خواهند بود.

هم‌واریانسی (واریانس ثابت)

فرض بر این است که واریانس جملات خطا در سرتاسر فضای ویژگی‌ها ثابت است. فرض کنید می‌خواهید ارزش یک خانه را بر اساس مساحت آن (بر حسب متر مربع) پیش‌بینی کنید. شما یک مدل خطی برآورد می‌کنید که فرض می‌کند، صرف‌نظر از اندازه خانه، خطای اطراف پاسخ پیش‌بینی‌شده واریانس یکسانی دارد. این فرض در واقعیت اغلب نقض می‌شود. در مثال خانه، منطقی است که واریانس جملات خطا اطراف قیمت پیش‌بینی‌شده برای خانه‌های بزرگ‌تر بیشتر باشد، زیرا با قیمت‌های بالاتر، فضای بیشتری برای نوسان قیمت وجود دارد. فرض کنید خطای میانگین (تفاوت بین قیمت پیش‌بینی‌شده و قیمت واقعی) در مدل رگرسیون خطی شما ۵۰٬۰۰۰ یورو است. اگر هم‌واریانسی را فرض کنید، در واقع فرض کرده‌اید که این خطای میانگین ۵۰٬۰۰۰ یورویی برای خانه‌هایی که یک میلیون یورو قیمت دارند و خانه‌هایی که فقط ۴۰٬۰۰۰ یورو قیمت دارند یکسان است. این فرض غیرمنطقی است، زیرا به این معناست که می‌توانیم انتظار قیمت‌های منفی برای خانه داشته باشیم.

استقلال (Independence)

فرض بر این است که هر نمونه مستقل از سایر نمونه‌هاست. اگر اندازه‌گیری‌های تکراری انجام دهید، مانند چند آزمایش خون برای هر بیمار، نقاط داده مستقل نیستند. برای داده‌های وابسته، به مدل‌های رگرسیون خطی تخصصی‌تری نیاز دارید، مانند مدل‌های اثر مختلط (mixed effect models) یا معادلات تعمیم‌یافته برآورد (GEE). اگر از مدل رگرسیون خطی «معمولی» استفاده کنید، ممکن است نتیجه‌گیری نادرستی از مدل داشته باشید.

ثابت بودن ویژگی‌ها (Fixed features)

ویژگی‌های ورودی «ثابت» در نظر گرفته می‌شوند. ثابت به این معناست که آن‌ها به‌عنوان «مقادیر ثابت داده‌شده» رفتار می‌شوند و نه به‌عنوان متغیرهای آماری. این به این معناست که فرض می‌شود آن‌ها عاری از خطای اندازه‌گیری هستند. این فرضی نسبتاً غیرواقعی است. با این حال، بدون این فرض، مجبور بودید مدل‌های خطای اندازه‌گیری بسیار پیچیده‌ای برازش کنید که خطاهای اندازه‌گیری ویژگی‌های ورودی‌تان را لحاظ کنند. و معمولاً نمی‌خواهید این کار را انجام دهید.

عدم چندگانگی خطی (Absence of multicollinearity)

شما ویژگی‌های به‌شدت همبسته نمی‌خواهید، زیرا این امر برآورد وزن‌ها را مختل می‌کند. در موقعیتی که دو ویژگی به‌شدت همبسته باشند، برآورد وزن‌ها مشکل‌ساز می‌شود، زیرا اثرات ویژگی‌ها جمع‌پذیرند و تعیین اینکه اثرات را باید به کدام‌یک از ویژگی‌های همبسته نسبت داد، غیرممکن می‌شود.

تفسیر

تفسیر یک وزن در مدل رگرسیون خطی به نوع ویژگی مربوطه بستگی دارد.

ویژگی عددی: افزایش ویژگی عددی به اندازه یک واحد، خروجی برآوردشده را به اندازه وزن آن تغییر می‌دهد. نمونه‌ای از ویژگی عددی، مساحت یک خانه است.

ویژگی دودویی (باینری): ویژگی‌ای که برای هر نمونه یکی از دو مقدار ممکن را می‌گیرد. نمونه‌ای از این ویژگی «خانه دارای حیاط است» می‌باشد. یکی از این مقادیر به‌عنوان دسته مرجع در نظر گرفته می‌شود (در برخی زبان‌های برنامه‌نویسی با ۰ کدگذاری می‌شود)، مانند «بدون حیاط». تغییر ویژگی از دسته مرجع به دسته دیگر، خروجی برآوردشده را به اندازه وزن آن ویژگی تغییر می‌دهد.

ویژگی دسته‌ای با چند دسته: ویژگی‌ای با تعداد ثابتی از مقادیر ممکن. نمونه‌ای از این ویژگی «نوع کف‌پوش» است، با دسته‌های ممکن «موکت»، «لمینت» و «پارکت». راه‌حلی برای مواجهه با دسته‌های زیاد، کدگذاری وان-هات (one-hot encoding) است، به این معنا که هر دسته ستون دودویی مخصوص به خود را دارد. برای یک ویژگی دسته‌ای با $L$ دسته، تنها به $L-1$ ستون نیاز دارید، زیرا ستون $L$ام اطلاعات زائد خواهد داشت. برای مثال، وقتی ستون‌های ۱ تا $L-1$ همگی برای یک نمونه مقدار ۰ داشته باشند، می‌دانیم که ویژگی دسته‌ای این نمونه، دسته $L$ام را دارد. تفسیر هر دسته در این حالت همان تفسیر مربوط به ویژگی‌های دودویی است. برخی زبان‌ها، مانند R، به شما اجازه می‌دهند ویژگی‌های دسته‌ای را به روش‌های گوناگونی کدگذاری کنید، همان‌طور که بعداً در این فصل شرح داده می‌شود.

عرض از مبدأ $\hat{\beta}_{0}$: عرض از مبدأ، وزن ویژگی برای «ویژگی ثابت» است که برای همه نمونه‌ها همواره برابر ۱ است. بیشتر بسته‌های نرم‌افزاری به‌طور خودکار این ویژگی «۱» را برای برآورد عرض از مبدأ اضافه می‌کنند. تفسیر آن این‌گونه است: برای نمونه‌ای که تمام مقادیر ویژگی‌های عددی آن صفر و ویژگی‌های دسته‌ای آن در دسته‌های مرجع باشند، پیش‌بینی مدل برابر وزن عرض از مبدأ است. تفسیر عرض از مبدأ معمولاً اهمیتی ندارد، زیرا نمونه‌هایی با تمام مقادیر ویژگی برابر صفر اغلب معنایی ندارند. این تفسیر تنها زمانی معنادار است که ویژگی‌ها استانداردسازی شده باشند (میانگین صفر، انحراف معیار یک). در آن صورت، عرض از مبدأ نشان‌دهنده خروجی پیش‌بینی‌شده برای نمونه‌ای است که تمام ویژگی‌های آن در مقدار میانگین خود قرار دارند.

تفسیر ویژگی‌ها در مدل رگرسیون خطی را می‌توان با استفاده از قالب‌های متنی زیر خودکار کرد.

نکته: تفسیر ویژگی عددی: افزایش ویژگی $x_j$ به اندازه یک واحد، پیش‌بینی $y$ را به اندازه $\hat{\beta}_{j}$ واحد افزایش می‌دهد، در حالی که سایر مقادیر ویژگی ثابت بمانند. ویژگی دسته‌ای: تغییر ویژگی $x_j$ از دسته مرجع به دسته دیگر، پیش‌بینی $y$ را به اندازه $\hat{\beta}_{j}$ افزایش می‌دهد، در حالی که سایر ویژگی‌ها ثابت بمانند.

ضریب تعیین ($R^2$)

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

$$R^2 = 1 - \frac{SSE}{SST}$$

$SSE$ مجموع مربعات جملات خطا است:

$$SSE = \sum_{i=1}^{n} \left(y^{(i)} - \hat{y}^{(i)}\right)^2$$

$SST$ مجموع مربعات واریانس داده‌هاست:

$$SST = \sum_{i=1}^{n} \left(y^{(i)} - \bar{y}\right)^2$$

$SSE$ به شما می‌گوید که پس از برازش مدل خطی، چه مقدار واریانس باقی می‌ماند، که با مربعات تفاوت میان مقادیر پیش‌بینی‌شده و واقعی هدف اندازه‌گیری می‌شود. $SST$ واریانس کل خروجی هدف است. $R^2$ به شما می‌گوید که چه مقدار از واریانس شما را می‌توان با مدل خطی توضیح داد. $R^2$ معمولاً بین $0$ برای مدل‌هایی که اصلاً داده‌ها را توضیح نمی‌دهند و $1$ برای مدل‌هایی که تمام واریانس داده‌های شما را توضیح می‌دهند، قرار دارد. همچنین ممکن است $R^2$ بدون نقض هیچ قاعده ریاضی، مقداری منفی بگیرد. این زمانی رخ می‌دهد که $SSE$ بزرگ‌تر از $SST$ باشد، به این معنا که مدل روند داده‌ها را ثبت نمی‌کند و برازش آن به داده‌ها بدتر از استفاده از میانگین هدف به‌عنوان پیش‌بینی است.

مثال مترجم برای درک بهتر خوانندگان: فرض کنید می‌خواهیم قیمت چهار خانه را پیش‌بینی کنیم. قیمت‌های واقعی عبارت‌اند از ۱۰۰، ۲۰۰، ۳۰۰ و ۴۰۰ میلیون تومان، و میانگین آن‌ها ($\bar{y}$) برابر ۲۵۰ میلیون تومان است.

  • $SST$ با مقایسه هر قیمت واقعی با همین میانگین (۲۵۰) محاسبه می‌شود: $(100-250)^2 + (200-250)^2 + (300-250)^2 + (400-250)^2 = 22500+2500+2500+22500 = 50000$.
  • فرض کنید مدل ما قیمت‌ها را به‌ترتیب ۱۲۰، ۱۹۰، ۳۱۰ و ۳۸۰ میلیون تومان پیش‌بینی کرده است. $SSE$ با مقایسه هر پیش‌بینی با مقدار واقعی محاسبه می‌شود: $(100-120)^2 + (200-190)^2 + (300-310)^2 + (400-380)^2 = 400+100+100+400 = 1000$.
  • در نتیجه: $R^2 = 1 - \frac{1000}{50000} = 0.98$. یعنی مدل حدود ۹۸٪ از واریانس قیمت خانه‌ها را توضیح می‌دهد — عملکردی بسیار خوب.

حال اگر مدل به‌جای پیش‌بینی‌های خوب بالا، برای هر چهار خانه فقط عدد ۲۵۰ (میانگین) را پیش‌بینی کند، آنگاه $SSE$ برابر $SST$ (یعنی ۵۰۰۰۰) خواهد شد و $R^2 = 0$؛ یعنی مدل هیچ اطلاعاتی بیش از حدس زدن میانگین به ما نمی‌دهد. و اگر مدل حتی بدتر از این عمل کند — مثلاً پیش‌بینی‌هایی کاملاً نامرتبط با روند واقعی داده‌ها بدهد، به‌طوری که $SSE$ از $SST$ هم بزرگ‌تر شود — آنگاه $R^2$ منفی می‌شود، که نشان می‌دهد حتی حدس زدن میانگین ساده هم بهتر از این مدل عمل می‌کرد.

نکته‌ای وجود دارد: $R^2$ با افزایش تعداد ویژگی‌های مدل افزایش می‌یابد، حتی اگر آن ویژگی‌ها اصلاً اطلاعاتی درباره مقدار هدف نداشته باشند. به همین دلیل، بهتر است از $R^2$ تعدیل‌شده استفاده کنید، که تعداد ویژگی‌های مورد استفاده در مدل را نیز لحاظ می‌کند. محاسبه آن به این صورت است:

$$\bar{R}^2 = 1 - \left(1 - R^2\right) \frac{n - 1}{n - p - 1}$$

که در آن $p$ تعداد ویژگی‌ها و $n$ تعداد نمونه‌هاست.

توضیح مترجم: افزودن ویژگی‌های بیشتر به مدل همیشه نامطلوب نیست؛ اگر ویژگی جدید واقعاً با متغیر هدف ارتباط داشته باشد، می‌تواند مدل را بهتر کند. با این حال، باید توجه داشت که مقدار معمولاً با اضافه شدن ویژگی‌های جدید افزایش می‌یابد یا دست‌کم کاهش پیدا نمی‌کند. دلیلش این است که مدل با هر ویژگی جدید آزادی بیشتری برای تنظیم خود روی داده‌های آموزشی پیدا می‌کند و می‌تواند حتی از الگوهای بسیار کوچک یا تصادفی موجود در همان داده‌ها برای کاهش خطا استفاده کند. بنابراین افزایش همیشه به معنای بهتر شدن واقعی مدل نیست؛ گاهی فقط نشان می‌دهد مدل کمی بیشتر با داده‌های آموزشی هماهنگ شده است.

برای مثال، فرض کنید هدف پیش‌بینی حقوق کارمندان است. اگر مدل فقط از ویژگی years_experience استفاده کند، ممکن است مقدار R² = 0.60 و مقدار Adjusted R² = 0.59 به دست آید. این یک مدل ساده است که بخشی از تفاوت حقوق‌ها را با تجربه‌ی کاری توضیح می‌دهد. حال اگر ویژگی مهمی مثل job_level به مدل اضافه شود، ممکن است مقدار به 0.82 و مقدار Adjusted R² به 0.81 برسد. در این حالت، افزایش هر دو معیار نشان می‌دهد که ویژگی جدید واقعاً اطلاعات مفیدی درباره‌ی حقوق اضافه کرده است.

اما اگر به‌جای آن ویژگی بی‌ربطی مثل shoe_size به مدل اضافه شود، ممکن است مقدار کمی از 0.60 به 0.605 افزایش یابد، چون مدل از این ویژگی اضافه برای کاهش جزئی خطا در داده‌های آموزشی استفاده کرده است. با این حال، مقدار Adjusted R² ممکن است از 0.59 به 0.585 کاهش پیدا کند. این کاهش نشان می‌دهد که افزایش ناچیز ارزش پیچیده‌تر شدن مدل را نداشته و ویژگی جدید احتمالاً اطلاعات معناداری درباره‌ی حقوق اضافه نکرده است. بنابراین Adjusted R² به ما کمک می‌کند تشخیص دهیم آیا افزایش ناشی از اطلاعات واقعی بوده یا فقط نتیجه‌ی اضافه شدن ویژگی‌های بیشتر به مدل است.

تفسیر مدلی با $R^2$ (تعدیل‌شده) بسیار پایین معنادار نیست، زیرا چنین مدلی اساساً بخش زیادی از واریانس را توضیح نمی‌دهد. هیچ تفسیری از وزن‌ها در چنین حالتی معنادار نخواهد بود.

اهمیت ویژگی‌ها

اهمیت یک ویژگی در مدل رگرسیون خطی را می‌توان با قدر مطلق آماره t آن اندازه‌گیری کرد. آماره t، وزن برآوردشده است که با خطای استاندارد آن مقیاس‌بندی شده است.

$$t_{\hat{\beta}_{j}} = \frac{\hat{\beta}_{j}}{SE\!\left(\hat{\beta}_{j}\right)}$$

بیایید ببینیم این فرمول چه چیزی به ما می‌گوید: اهمیت یک ویژگی با افزایش وزن آن، افزایش می‌یابد. این منطقی است. هرچه وزن برآوردشده واریانس بیشتری داشته باشد (= هرچه نسبت به مقدار درست آن اطمینان کمتری داشته باشیم)، ویژگی کم‌اهمیت‌تر است. این نیز منطقی است.

مثال

در این مثال، از مدل رگرسیون خطی برای پیش‌بینی تعداد دوچرخه‌های اجاره‌شده در یک روز خاص، با توجه به اطلاعات آب‌وهوایی و تقویمی، استفاده می‌کنیم. برای تفسیر، وزن‌های برآوردشده رگرسیون را بررسی می‌کنیم. ویژگی‌ها شامل ویژگی‌های عددی و دسته‌ای هستند. جدول ۶.۱ برای هر ویژگی، وزن برآوردشده، خطای استاندارد برآورد، و قدر مطلق آماره t را نشان می‌دهد.

جدول ۶.۱: ضرایب، خطاهای استاندارد (SE)، و قدر مطلق آماره t برای مدل خطی پیش‌بینی‌کننده اجاره دوچرخه.

ویژگیوزنSE|t|
(عرض از مبدأ)۲۷۴۲٫۴۳۳۹٫۰۸٫۱
seasonSPRING۴۵۴٫۸۱۶۹٫۹۲٫۷
seasonSUMMER۲۶۳٫۳۲۱۸٫۷۱٫۲
seasonFALL۶۳۶٫۹۱۵۲٫۷۴٫۲
holidayY‎−۴۴۱٫۱۲۳۹٫۰۱٫۸
workdayY۲۴۲٫۰۱۰۱٫۹۲٫۴
weatherMISTY‎−۳۴۵٫۳۱۲۰٫۲۲٫۹
weatherBAD‎−۱۸۰۴٫۱۳۰۶٫۰۵٫۹
temp۵۱٫۰۱۰٫۳۵٫۰
hum‎−۲۱٫۷۴٫۵۴٫۸
windspeed‎−۴۶٫۵۹٫۵۴٫۹
cnt_2d_bfr۰٫۶۰٫۰۱۹٫۳

تفسیر یک ویژگی عددی (temp): افزایش دما به اندازه ۱ درجه سانتی‌گراد، تعداد پیش‌بینی‌شده دوچرخه‌ها را به اندازه ۵۱٫۰ افزایش می‌دهد، در حالی که سایر ویژگی‌ها ثابت بمانند.

تفسیر یک ویژگی دسته‌ای (weather): تعداد برآوردشده دوچرخه‌ها زمانی که هوا بد است (بارانی، برفی، یا طوفانی) ۱۸۰۴٫۱ واحد کمتر است، در مقایسه با هوای خوب — باز هم با این فرض که سایر ویژگی‌ها تغییر نمی‌کنند. زمانی که هوا مه‌آلود است، تعداد پیش‌بینی‌شده دوچرخه‌ها ۳۴۵٫۳ واحد کمتر از هوای خوب است، به شرط آنکه سایر ویژگی‌ها ثابت بمانند.

تمام این تفسیرها همیشه با این پانویس همراه‌اند که «سایر ویژگی‌ها ثابت بمانند»، به دلیل ماهیت مدل‌های رگرسیون خطی. هدف پیش‌بینی‌شده، یک ترکیب خطی از ویژگی‌های وزن‌دار است. معادله خطی برآوردشده، یک ابرصفحه (hyperplane) در فضای ویژگی/هدف است (در حالت یک ویژگی منفرد، یک خط ساده). وزن‌ها شیب (گرادیان) ابرصفحه را در هر جهت مشخص می‌کنند. نکته مثبت این است که جمع‌پذیری، تفسیر اثر هر ویژگی منفرد را از سایر ویژگی‌ها جدا می‌کند. این امر ممکن است زیرا تمام اثرات ویژگی‌ها (= وزن ضرب‌در مقدار ویژگی) در معادله با علامت جمع با هم ترکیب شده‌اند. اما از جنبه منفی، این تفسیر توزیع مشترک ویژگی‌ها را نادیده می‌گیرد. افزایش یک ویژگی بدون تغییر ویژگی دیگر می‌تواند به نقاط داده غیرواقعی، یا دست‌کم بعید، منجر شود. برای مثال، افزایش تعداد اتاق‌ها بدون افزایش هم‌زمان اندازه خانه ممکن است غیرواقعی باشد.

توضیح مترجم: برای نمونه، اگر بخواهیم قیمت یک آپارتمان را با دو ویژگی «متراژ» و «تعداد اتاق» پیش‌بینی کنیم، مدل خطی فرض می‌کند می‌توان تعداد اتاق را از ۲ به ۴ افزایش داد بدون آنکه متراژ تغییر کند. در عمل چنین آپارتمانی (با اتاق‌های بسیار کوچک) نادر یا غیرواقعی است؛ اما مدل خطی، بدون آگاهی از این همبستگی طبیعی میان ویژگی‌ها، همچنان چنین سناریویی را در تفسیر خود مجاز می‌شمارد.

هشدار — مقایسه وزن ویژگی‌هایی با مقیاس متفاوت: بزرگی یک ضریب به واحد اندازه‌گیری ویژگی مربوطه بستگی دارد و نمی‌توان آن را مستقیماً با ضریب ویژگی دیگری با واحد متفاوت مقایسه کرد. برای مثال، اگر وزن یک ویژگی بر حسب کیلوگرم برآورد شده باشد و همان ویژگی را به گرم تبدیل کنیم، ضریب ۱۰۰۰ برابر کوچک‌تر می‌شود — بدون آنکه اهمیت واقعی ویژگی تغییر کرده باشد.

نمودار وزن‌ها و نمودار اثر

تجسم‌هایی مانند نمودار وزن‌ها و نمودار اثر، درک مدل رگرسیون خطی را برای انسان آسان و سریع می‌کنند.

نمودار وزن‌ها

اطلاعات موجود در جدول وزن‌ها (برآورد وزن‌ها و واریانس آن‌ها) را می‌توان در قالب یک نمودار وزن‌ها به تصویر کشید. شکل ۶.۱ نتایج مدل رگرسیون خطی پیشین را نشان می‌دهد.

شکل ۶.۱

شکل ۶.۱: برآوردهای رگرسیون خطی برای داده‌های اجاره دوچرخه. وزن‌ها به‌صورت نقطه و فاصله‌های اطمینان ۹۵٪ به‌صورت خط نمایش داده شده‌اند.

نمودار وزن‌ها نشان می‌دهد که هوای بد اثر منفی قوی‌ای بر تعداد پیش‌بینی‌شده دوچرخه‌ها دارد. وزن فصل تابستان مثبت است، اما فاصله اطمینان ۹۵٪ آن شامل صفر می‌شود، پس تفاوت معناداری بین تابستان و زمستان، با ثابت نگه‌داشتن سایر ویژگی‌ها، وجود ندارد. از آنجا که مدل دما را نیز لحاظ می‌کند، ضریب تابستان در واقع بیانگر اثر افزوده فصل تابستان (فراتر از اثر دما) است. برخی از فاصله‌های اطمینان بسیار کوتاه‌اند و برآوردها به صفر نزدیک‌اند، با این حال اثر آن ویژگی‌ها از نظر آماری معنادار است. دما یکی از این نمونه‌هاست. مشکل نمودار وزن‌ها این است که ویژگی‌ها در مقیاس‌های متفاوتی اندازه‌گیری می‌شوند. در حالی که برای هوا، وزن برآوردشده تفاوت میان هوای خوب و بد را نشان می‌دهد، برای دما تنها افزایش ۱ درجه سانتی‌گراد را منعکس می‌کند. می‌توانید با استانداردسازی ویژگی‌ها (میانگین صفر و انحراف معیار یک) پیش از برازش مدل خطی، وزن‌های برآوردشده را قابل‌مقایسه‌تر کنید.

توضیح مترجم: برای مثال، اگر ضریب دما ۵۱ باشد و ضریب یک ویژگی دودویی مانند «هوای بد» ‎−۱۸۰۴ باشد، این دو عدد را نمی‌توان مستقیماً با هم مقایسه کرد؛ چون یکی به ازای «۱ درجه سانتی‌گراد» و دیگری به ازای «تغییر از هوای خوب به هوای بد» تعریف شده است. اما اگر پیش از برازش مدل، دما را استاندارد کنیم (یعنی از هر مقدار میانگین را کم و بر انحراف معیار تقسیم کنیم)، آنگاه ضریب دما نشان‌دهنده تغییر پیش‌بینی به ازای «یک انحراف معیار» تغییر در دما خواهد بود، که مقیاسی قابل‌مقایسه‌تر با ضرایب سایر ویژگی‌ها به دست می‌دهد.

هشدار — مقایسه وزن ویژگی‌هایی با مقیاس متفاوت: واحدی که یک ویژگی با آن اندازه‌گیری می‌شود، بر بزرگی ضرایب/وزن‌ها اثر می‌گذارد. برای مثال، اگر یک ویژگی را در ۱۰۰۰ ضرب کنید — مانند تبدیل از کیلوگرم به گرم — ضریب جدید به اندازه ضریب ۱ در ۱۰۰۰ کوچک‌تر خواهد شد.

نمودار اثر

وزن‌های مدل رگرسیون خطی زمانی معنادارتر تحلیل می‌شوند که در مقادیر واقعی ویژگی‌ها ضرب شوند. وزن‌ها به مقیاس ویژگی‌ها وابسته‌اند و اگر ویژگی‌ای مانند قد یک فرد را اندازه می‌گیرید و از متر به سانتی‌متر تغییر مقیاس دهید، متفاوت خواهند بود. وزن تغییر می‌کند، اما اثرات واقعی در داده‌های شما تغییری نمی‌کند. آگاهی از توزیع ویژگی در داده‌ها نیز مهم است، زیرا اگر واریانس بسیار کمی داشته باشد، به این معناست که تقریباً تمام نمونه‌ها سهم مشابهی از این ویژگی دارند. نمودار اثر می‌تواند به شما کمک کند بفهمید ترکیب وزن و ویژگی چه مقدار در پیش‌بینی‌های داده‌های شما سهیم است. برای شروع، اثرات را محاسبه می‌کنیم، که برابر است با وزن هر ویژگی ضرب‌در مقدار آن ویژگی برای یک نمونه:

$$\text{effect}^{(i)}_{j} = \hat{\beta}_{j} \cdot x^{(i)}_{j}$$

اثرات را می‌توان با نمودار جعبه‌ای، همان‌طور که در شکل ۶.۲ آمده، به تصویر کشید. جعبه در یک نمودار جعبه‌ای، بازه اثر برای نیمی از داده‌ها (از چارک ۲۵٪ تا چارک ۷۵٪ اثر) را در بر می‌گیرد. خط عمودی درون جعبه، اثر میانه است، یعنی ۵۰٪ از نمونه‌ها اثر کمتر و نیمه دیگر اثر بیشتری بر پیش‌بینی دارند. نقاط، نقاط پرت (outlier) هستند که به‌صورت نقاطی تعریف می‌شوند که بیش از ۱٫۵ برابر IQR (دامنه بین‌چارکی، یعنی تفاوت میان چارک اول و چارک سوم) بالاتر از چارک سوم، یا کمتر از ۱٫۵ برابر IQR پایین‌تر از چارک اول قرار دارند. دو خط افقی، که ویسکر پایینی و بالایی نامیده می‌شوند، نقاط زیر چارک اول و بالای چارک سوم را که پرت نیستند به هم متصل می‌کنند. اگر هیچ نقطه پرتی وجود نداشته باشد، ویسکرها تا مقادیر کمینه و بیشینه امتداد می‌یابند.

اثرات ویژگی‌های دسته‌ای را می‌توان در یک نمودار جعبه‌ای واحد خلاصه کرد، بر خلاف نمودار وزن‌ها که هر دسته سطر جداگانه خود را دارد.

شکل ۶.۲

شکل ۶.۲: نمودار اثر برای نتایج رگرسیون خطی داده‌های اجاره دوچرخه. نمودارهای جعبه‌ای، توزیع اثرات (= مقدار ویژگی ضرب‌در وزن ویژگی) را در سرتاسر داده‌ها برای هر ویژگی نشان می‌دهند.

بزرگ‌ترین سهم‌ها در تعداد مورد انتظار دوچرخه‌های اجاره‌شده، از ویژگی دما و تعداد دوچرخه‌های اجاره‌شده قبلی می‌آید. دما دامنه گسترده‌ای دارد از اینکه چقدر در پیش‌بینی سهیم است. ویژگی تعداد (count) از صفر تا سهم‌های مثبت بزرگ کشیده شده است. برای اثراتی با وزن منفی، نمونه‌هایی که اثر مثبت دارند همان‌هایی هستند که مقدار ویژگی منفی دارند. برای مثال، روزهایی با اثر منفی بزرگ سرعت باد، همان روزهایی هستند که سرعت باد بالایی داشته‌اند.

توضیح مترجم: این نکته کمی گیج‌کننده به نظر می‌رسد، اما دلیلش ساده است: وزن ویژگی سرعت باد منفی است. پس وقتی سرعت باد (مقدار ویژگی) زیاد باشد، حاصل‌ضرب «وزن منفی × مقدار زیاد» یک عدد منفی بزرگ می‌شود (اثر منفی شدید بر پیش‌بینی)، و برعکس، وقتی سرعت باد نزدیک صفر باشد، اثر آن نیز نزدیک صفر خواهد بود.

توضیح پیش‌بینی‌های منفرد با نمودار اثر

هر ویژگی از یک نمونه چه‌قدر در پیش‌بینی آن نمونه سهیم بوده است؟ برای پاسخ به این پرسش می‌توان اثرات آن نمونه را محاسبه کرد. تفسیر اثرات مختص یک نمونه، تنها در مقایسه با توزیع اثر هر ویژگی معنا پیدا می‌کند. می‌خواهیم پیش‌بینی مدل خطی را برای نمونه ششم از داده‌های دوچرخه توضیح دهیم. مقادیر ویژگی‌های این نمونه در جدول ۶.۲ نمایش داده شده‌اند.

جدول ۶.۲: مقادیر ویژگی برای نمونه ۶

ویژگیمقدار
seasonWINTER
holidayN
workdayY
weatherMISTY
temp‎−۰٫۰۵۲۷۲۳
hum۶۸٫۶۳۶۴
windspeed۸٫۱۸۲۸۴۴
cnt_2d_bfr۸۲۲
cnt۱۲۶۳

برای به‌دست‌آوردن اثرات ویژگی‌های این نمونه، باید مقادیر ویژگی‌های آن را در وزن‌های متناظرشان از مدل رگرسیون خطی ضرب کنیم. برای دمای ‎−۰٫۰۵ درجه سانتی‌گراد، اثر برابر است با $-0.05 \times 51.01 \approx -2.69$. این اثرات منفرد را به‌صورت علامت ضربدر به نمودار اثر اضافه می‌کنیم، که توزیع اثرات را در داده‌ها نشان می‌دهد، همان‌طور که در شکل ۶.۳ به تصویر کشیده شده است. این کار به ما امکان می‌دهد اثرات منفرد را با توزیع اثرات در داده‌ها مقایسه کنیم.

اگر پیش‌بینی‌های نمونه‌های داده آزمون را میانگین بگیریم، به میانگین ۴۴۵۲ می‌رسیم. در مقایسه، پیش‌بینی نمونه ششم کوچک است، زیرا تنها ۱۲۳۸ اجاره دوچرخه پیش‌بینی شده است. نمودار اثر دلیل این موضوع را آشکار می‌کند. نمودارهای جعبه‌ای توزیع اثرات را برای همه نمونه‌های مجموعه داده نشان می‌دهند؛ علامت‌های ضربدر، اثرات مربوط به نمونه ششم را نشان می‌دهند. نمونه ششم اثر دمای پایینی دارد، زیرا در این روز دما ۰ درجه بوده است که در مقایسه با بیشتر روزهای دیگر پایین است (و به یاد داشته باشید که وزن ویژگی دما مثبت است). همچنین، اثر ویژگی cnt_2d_bfr نیز در مقایسه با سایر نمونه‌های داده کوچک است، زیرا در اوایل سال ۲۰۱۱ دوچرخه‌های کمتری اجاره داده شده بود.

شکل ۶.۳

شکل ۶.۳: نمودار اثر برای یک پیش‌بینی مدل خطی برای داده‌های دوچرخه. نمودارهای جعبه‌ای توزیع کلی اثرات را نشان می‌دهند، در حالی که علامت‌های ضربدر اثرات مربوط به نمونه موردنظر را مشخص می‌کنند.

با جمع کردن اثر تمام ویژگی‌ها و عرض از مبدأ، پیش‌بینی نهایی این نمونه ۱۲۳۸ به دست می‌آید — در حالی که میانگین پیش‌بینی‌های مدل روی کل داده‌ها ۴۴۵۲ است. نمودار اثر به ما اجازه می‌دهد ببینیم چرا پیش‌بینی این نمونه خاص به‌طور قابل‌توجهی پایین‌تر از میانگین است.

کدگذاری ویژگی‌های دسته‌ای

چندین روش برای کدگذاری یک ویژگی دسته‌ای وجود دارد، و انتخاب هر روش بر تفسیر وزن‌ها اثر می‌گذارد. استاندارد در مدل‌های رگرسیون خطی، کدگذاری مرجع (treatment coding) است که در بیشتر موارد کافی است. استفاده از کدگذاری‌های مختلف در نهایت به معنای ساختن ماتریس‌های (طراحی) متفاوت از یک ستون واحد حاوی ویژگی دسته‌ای است. این بخش سه کدگذاری متفاوت را ارائه می‌دهد، اما کدگذاری‌های بسیار بیشتری نیز وجود دارند. در مثال زیر چهار نمونه و یک ویژگی دسته‌ای با سه دسته داریم. برای دو نمونه اول، ویژگی دسته $A$ را دارد؛ برای نمونه سوم، دسته $B$؛ و برای نمونه آخر، دسته $C$. پس بردار ما به این شکل است:

$$\begin{pmatrix} A \\ A \\ B \\ C \end{pmatrix}$$

کدگذاری مرجع (Treatment Coding)

در کدگذاری مرجع، وزن هر دسته، تفاوت برآوردشده در پیش‌بینی میان آن دسته و دسته مرجع است. عرض از مبدأ مدل خطی، میانگین دسته مرجع است (به شرط آنکه سایر ویژگی‌ها ثابت بمانند). ستون اول ماتریس طراحی، عرض از مبدأ است که همواره برابر ۱ است. ستون دوم نشان می‌دهد که آیا نمونه $i$ در دسته $B$ است یا نه، و ستون سوم نشان می‌دهد که آیا در دسته $C$ است یا نه. نیازی به ستونی برای دسته $A$ نیست، زیرا در آن صورت معادله خطی بیش‌ازحد مشخص (overspecified) می‌شد و راه‌حل یکتایی برای وزن‌ها یافت نمی‌شد. کافی است بدانیم نمونه‌ای نه در دسته $B$ و نه در دسته $C$ است.

$$\begin{pmatrix} A \\ A \\ B \\ C \end{pmatrix} \Rightarrow \begin{pmatrix} 1 & 0 & 0 \\ 1 & 0 & 0 \\ 1 & 1 & 0 \\ 1 & 0 & 1 \end{pmatrix}$$

توضیح مترجم برای درک بهتر: فرض کنید سه سطح شغلی داریم: مبتدی ($A$، دسته مرجع)، متوسط ($B$) و ارشد ($C$)، و می‌خواهیم حقوق ماهانه (بر حسب میلیون تومان) را پیش‌بینی کنیم. فرض کنید میانگین حقوق واقعی در داده‌ها این‌گونه باشد: مبتدی = ۱۰، متوسط = ۳۰، ارشد = ۸۰. در کدگذاری مرجع، مدل این‌گونه برازش می‌شود: عرض از مبدأ ($\hat{\beta}_{0}$) برابر ۱۰ (میانگین دسته مرجع، یعنی مبتدی) است؛ وزن دسته $B$ برابر $\hat{\beta}_{1} = 20$ (یعنی ۳۰ منهای ۱۰) است؛ و وزن دسته $C$ برابر $\hat{\beta}_{2} = 70$ (یعنی ۸۰ منهای ۱۰) است. برای پیش‌بینی حقوق یک کارمند ارشد، کافی است $10 + 70 = 80$ را محاسبه کنیم.

کدگذاری اثر (Effect Coding)

در کدگذاری اثر، وزن هر دسته، تفاوت برآوردشده $y$ میان آن دسته و میانگین کلی است (به شرط آنکه سایر ویژگی‌ها صفر یا در دسته مرجع باشند). ستون اول برای برآورد عرض از مبدأ استفاده می‌شود. وزن $\hat{\beta}_{0}$ که با عرض از مبدأ همراه است، نشان‌دهنده میانگین کلی است، و $\hat{\beta}_{1}$ که وزن ستون دوم است، تفاوت میان میانگین کلی و دسته $B$ را نشان می‌دهد. اثر کلی دسته $B$ برابر $\hat{\beta}_{0} + \hat{\beta}_{1}$ است. تفسیر دسته $C$ نیز به همین ترتیب است. برای دسته مرجع $A$، مقدار $-(\hat{\beta}_{1} + \hat{\beta}_{2})$ تفاوت آن با میانگین کلی است و $\hat{\beta}_{0} - (\hat{\beta}_{1} + \hat{\beta}_{2})$ اثر کلی آن است.

$$\begin{pmatrix} A \\ A \\ B \\ C \end{pmatrix} \Rightarrow \begin{pmatrix} 1 & -1 & -1 \\ 1 & -1 & -1 \\ 1 & 1 & 0 \\ 1 & 0 & 1 \end{pmatrix}$$

توضیح مترجم برای درک بهتر: با همان مثال حقوق سه سطح شغلی (مبتدی = ۱۰، متوسط = ۳۰، ارشد = ۸۰)، میانگین کلی برابر $\frac{10+30+80}{3} = 40$ است. در کدگذاری اثر: عرض از مبدأ ($\hat{\beta}_{0}$) برابر همین میانگین کلی، یعنی ۴۰، است؛ وزن دسته $B$ برابر $\hat{\beta}_{1} = 30 - 40 = -10$ است؛ و وزن دسته $C$ برابر $\hat{\beta}_{2} = 80 - 40 = 40$ است. برای پیش‌بینی حقوق یک کارمند متوسط، $40 + (-10) = 30$ را محاسبه می‌کنیم — دقیقاً همان میانگین واقعی این دسته. برای دسته مرجع (مبتدی)، حقوق پیش‌بینی‌شده برابر $40 - (-10 + 40) = 40 - 30 = 10$ است که باز هم با میانگین واقعی آن مطابقت دارد.

کدگذاری Dummy (بدون عرض از مبدأ)

$\hat{\beta}_{\ell}$ در این روش، میانگین برآوردشده $y$ برای هر دسته است (به شرط آنکه سایر مقادیر ویژگی صفر یا در دسته مرجع باشند). توجه کنید که در این‌جا عرض از مبدأ حذف شده است تا بتوان راه‌حل یکتایی برای وزن‌های مدل خطی یافت. راه دیگر برای رفع این مشکل چندگانگی خطی، حذف یکی از دسته‌ها است (همان‌طور که در کدگذاری مرجع انجام شد).

$$\begin{pmatrix} A \\ A \\ B \\ C \end{pmatrix} \Rightarrow \begin{pmatrix} 1 & 0 & 0 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}$$

توضیح مترجم برای درک بهتر: باز هم با همان مثال حقوق (مبتدی = ۱۰، متوسط = ۳۰، ارشد = ۸۰)، در کدگذاری Dummy دیگر خبری از عرض از مبدأ نیست؛ هر دسته وزن مستقل خودش را می‌گیرد که همان میانگین حقوق آن دسته است: $\hat{\beta}_{A} = 10$، $\hat{\beta}_{B} = 30$، $\hat{\beta}_{C} = 80$. برای پیش‌بینی حقوق هر کارمند، کافی است وزن دسته او را مستقیماً بخوانیم — بدون هیچ جمع یا تفریق اضافه‌ای، برخلاف دو روش قبلی.

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

مدل‌های خطی تنک (Sparse Linear Models)

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

لاسو (Lasso)

لاسو (Lasso) روشی خودکار و آسان برای وارد کردن تنکی به مدل رگرسیون خطی است. لاسو مخفف «least absolute shrinkage and selection operator» است و وقتی در یک مدل رگرسیون خطی به کار می‌رود، انتخاب ویژگی و منظم‌سازی (regularization) وزن‌های ویژگی‌های انتخاب‌شده را انجام می‌دهد. بیایید مسئله بهینه‌سازی‌ای را در نظر بگیریم که وزن‌ها بر اساس آن بهینه می‌شوند:

$$\min_{\beta} \sum_{i=1}^{n} \left(y^{(i)} - x^{(i)\top}\beta\right)^2$$

لاسو یک جمله به این مسئله بهینه‌سازی اضافه می‌کند:

$$\min_{\beta} \left( \sum_{i=1}^{n} \left(y^{(i)} - x^{(i)\top}\beta\right)^2 + \lambda |\beta|_{1} \right)$$

که در آن $|\beta|_{1} = \sum_{j=1}^{p} |\beta_j|$، یعنی نرم $L_1$ بردار ویژگی، به جریمه‌شدن وزن‌های بزرگ منجر می‌شود. از آنجا که از نرم $L_1$ استفاده می‌شود، بسیاری از وزن‌ها برآوردی برابر صفر می‌گیرند و بقیه کوچک‌تر می‌شوند. پارامتر $\lambda$ قدرت اثر منظم‌سازی را کنترل می‌کند و معمولاً با اعتبارسنجی متقاطع (cross-validation) تنظیم می‌شود. به‌ویژه وقتی $\lambda$ بزرگ باشد، بسیاری از وزن‌ها صفر می‌شوند. وزن‌های ویژگی را می‌توان به‌صورت تابعی از جمله جریمه $\lambda$ به تصویر کشید. هر وزن ویژگی با یک منحنی در شکل ۶.۴ نمایش داده می‌شود. با افزایش جریمه وزن‌ها، ویژگی‌های کمتر و کمتری برآورد وزن غیرصفر دریافت می‌کنند. این منحنی‌ها را مسیرهای منظم‌سازی (regularization paths) نیز می‌نامند.

شکل ۶.۴

شکل ۶.۴: اثر جمله جریمه $\lambda$ بر برآورد وزن‌ها در یک مدل خطی. عددی که بالای نمودار نوشته شده، تعداد وزن‌های غیرصفر است.

چه مقداری باید برای $\lambda$ انتخاب کنیم؟ اگر جمله جریمه را به‌عنوان یک پارامتر تنظیم در نظر بگیرید، می‌توانید با اعتبارسنجی متقاطع، $\lambda$ای را بیابید که خطای مدل را کمینه می‌کند. همچنین می‌توانید $\lambda$ را به‌عنوان پارامتری برای کنترل تفسیرپذیری مدل در نظر بگیرید. هرچه جریمه بزرگ‌تر باشد، ویژگی‌های کمتری در مدل حضور دارند (چون وزن آن‌ها صفر است)، و مدل بهتر قابل تفسیر است.

توضیح مترجم: یک نکته تکمیلی که در متن اصلی نیامده، تفاوت لاسو با رگرسیون ریج (Ridge) است: رگرسیون ریج نیز وزن‌ها را جریمه می‌کند، اما با نرم $L_2$ (مجموع مربعات وزن‌ها به‌جای مجموع قدر مطلق آن‌ها)، و این جریمه فقط وزن‌ها را کوچک می‌کند، نه دقیقاً صفر. به همین دلیل، ریج ابزاری برای کاهش بیش‌برازش است، اما بر خلاف لاسو، به‌طور طبیعی ویژگی‌ها را از مدل حذف نمی‌کند.

مثالی با لاسو

می‌خواهیم اجاره دوچرخه را با استفاده از لاسو پیش‌بینی کنیم. تعداد ویژگی‌هایی که می‌خواهیم در مدل داشته باشیم را از پیش تعیین می‌کنیم. ابتدا این عدد را برابر ۲ ویژگی قرار می‌دهیم تا نتایج جدول ۶.۳ را به دست آوریم.

جدول ۶.۳: برآورد وزن‌ها هنگام استفاده از لاسو با تعیین تعداد ویژگی‌ها برابر دو.

ویژگیوزن
seasonWINTER۰٫۰۰
seasonSPRING۰٫۰۰
seasonSUMMER۰٫۰۰
seasonFALL۰٫۰۰
holidayY۰٫۰۰
workdayY۰٫۰۰
weatherMISTY۰٫۰۰
weatherBAD۰٫۰۰
temp۲۲٫۴۵
hum۰٫۰۰
windspeed۰٫۰۰
cnt_2d_bfr۰٫۴۸

اولین دو ویژگی با وزن غیرصفر در مسیر لاسو، دما (temp) و تعداد قبلی (cnt_2d_bfr) هستند. حال بیایید ۵ ویژگی انتخاب کنیم. نتایج در جدول ۶.۴ آمده است. توجه کنید که وزن‌های «temp» و «cnt_2d_bfr» با مدل دوویژگی‌ای متفاوت‌اند. دلیل این امر این است که با کاهش $\lambda$، حتی ویژگی‌هایی که از قبل «در» مدل بودند نیز کمتر جریمه می‌شوند و ممکن است وزن مطلق بزرگ‌تری بگیرند. تفسیر وزن‌های لاسو مطابق با تفسیر وزن‌ها در مدل رگرسیون خطی است. تنها باید توجه کنید که آیا ویژگی‌ها استانداردسازی شده‌اند یا نه، زیرا این موضوع بر وزن‌ها اثر می‌گذارد. در این مثال، ویژگی‌ها توسط نرم‌افزار استانداردسازی شدند، اما وزن‌ها به‌طور خودکار به مقیاس اصلی ویژگی‌ها بازگردانده شدند.

جدول ۶.۴: برآورد وزن‌ها هنگام استفاده از لاسو با تعیین تعداد ویژگی‌ها برابر پنج.

ویژگیوزن
seasonWINTER‎−۲۴۹٫۳۷
seasonSPRING۰٫۰۰
seasonSUMMER۰٫۰۰
seasonFALL۰٫۰۰
holidayY۰٫۰۰
workdayY۰٫۰۰
weatherMISTY۰٫۰۰
weatherBAD‎−۷۸۹٫۷۴
temp۳۱٫۱۴
hum‎−۶٫۴۷
windspeed۰٫۰۰
cnt_2d_bfr۰٫۵۳

روش‌های دیگر برای تنکی در مدل‌های خطی

طیف گسترده‌ای از روش‌ها را می‌توان برای کاهش تعداد ویژگی‌ها در یک مدل خطی به کار برد.

روش‌های پیش‌پردازش:

  • ویژگی‌های انتخاب‌شده به‌صورت دستی: همیشه می‌توانید از دانش تخصصی برای انتخاب یا کنار گذاشتن برخی ویژگی‌ها استفاده کنید. عیب بزرگ این روش این است که خودکار نیست و به فردی نیاز دارید که داده‌ها را بشناسد.
  • انتخاب تک‌متغیره (Univariate selection): نمونه‌ای از آن ضریب همبستگی است. تنها ویژگی‌هایی را در نظر می‌گیرید که از آستانه مشخصی از همبستگی میان ویژگی و هدف عبور کنند. عیب این روش این است که ویژگی‌ها را تنها به‌تنهایی در نظر می‌گیرد. برخی ویژگی‌ها ممکن است تا زمانی که مدل خطی سایر ویژگی‌ها را لحاظ نکرده باشد، همبستگی‌ای نشان ندهند؛ چنین ویژگی‌هایی را با روش‌های انتخاب تک‌متغیره از دست می‌دهید.

روش‌های گام‌به‌گام:

  • انتخاب پیشرو (Forward selection): مدل خطی را با یک ویژگی برازش دهید. این کار را برای هر ویژگی انجام دهید. مدلی را انتخاب کنید که بهترین عملکرد را دارد (مثلاً بالاترین $R^2$). حال دوباره، برای ویژگی‌های باقی‌مانده، نسخه‌های مختلفی از مدل خود را با افزودن هر ویژگی به بهترین مدل فعلی برازش دهید. مدلی را که بهترین عملکرد را دارد انتخاب کنید. تا رسیدن به یک معیار توقف، مانند حداکثر تعداد ویژگی در مدل، ادامه دهید.
  • انتخاب پسرو (Backward selection): شبیه به انتخاب پیشرو است. اما به‌جای افزودن ویژگی، با مدلی شروع می‌کنید که همه ویژگی‌ها را دارد و بررسی می‌کنید کدام ویژگی را باید حذف کنید تا بیشترین افزایش عملکرد را به دست آورید. این کار را تا رسیدن به یک معیار توقف تکرار کنید.

توصیه من استفاده از لاسو است، زیرا می‌توان آن را خودکار کرد، همه ویژگی‌ها را به‌طور هم‌زمان در نظر می‌گیرد، و می‌توان آن را از طریق $\lambda$ کنترل کرد. لاسو برای رگرسیون لجستیک در طبقه‌بندی نیز کاربرد دارد.

مزایا

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

بسیاری از افراد از مدل‌های رگرسیون خطی استفاده می‌کنند. این یعنی در بسیاری از جاها، این روش برای مدل‌سازی پیش‌بینی و انجام استنتاج پذیرفته‌شده است. سطح بالایی از تجربه و تخصص جمعی درباره آن وجود دارد، از جمله منابع آموزشی درباره مدل‌های رگرسیون خطی و پیاده‌سازی‌های نرم‌افزاری. رگرسیون خطی را می‌توان در R، Python، Java، Julia، Scala، JavaScript و ... یافت.

از نظر ریاضی، برآورد وزن‌ها ساده است و تضمینی برای یافتن وزن‌های بهینه دارید (به شرط آنکه تمام مفروضات مدل رگرسیون خطی توسط داده‌ها برآورده شوند).

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

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

محدودیت‌ها

مدل‌های رگرسیون خطی تنها می‌توانند روابط خطی را نشان دهند، یعنی یک مجموع وزن‌دار از ویژگی‌های ورودی. هر رابطه غیرخطی یا تعامل باید به‌صورت دستی ساخته شود و به‌طور صریح به‌عنوان یک ویژگی ورودی به مدل داده شود.

مدل‌های خطی همچنین اغلب از نظر عملکرد پیش‌بینی چندان خوب نیستند، زیرا روابطی که می‌توانند یاد بگیرند بسیار محدود است و معمولاً پیچیدگی واقعیت را بیش‌ازحد ساده می‌کنند.

تفسیر یک وزن می‌تواند غیرشهودی باشد، زیرا به تمام ویژگی‌های دیگر بستگی دارد. ممکن است ویژگی‌ای که همبستگی مثبت بالایی با خروجی $Y$ دارد، در کنار ویژگی دیگری، وزن منفی در مدل خطی بگیرد، چون با ثابت نگه‌داشتن ویژگی همبسته دیگر، در فضای چندبعدی همبستگی منفی با $Y$ پیدا می‌کند. ویژگی‌های کاملاً همبسته حتی یافتن یک راه‌حل یکتا برای معادله خطی را غیرممکن می‌کنند. مثالی از این مورد: مدلی برای پیش‌بینی ارزش یک خانه دارید و ویژگی‌هایی مانند تعداد اتاق‌ها و متراژ خانه در آن هست. متراژ خانه و تعداد اتاق‌ها به‌شدت با هم همبسته‌اند: هرچه خانه بزرگ‌تر باشد، اتاق‌های بیشتری دارد. اگر هر دو ویژگی را در یک مدل خطی وارد کنید، ممکن است پیش بیاید که متراژ خانه پیش‌بینی‌کننده بهتری باشد و وزن مثبت بزرگی بگیرد. تعداد اتاق‌ها ممکن است در نهایت وزن منفی بگیرد، چون با فرض ثابت بودن متراژ خانه، افزایش تعداد اتاق‌ها می‌تواند ارزش خانه را کاهش دهد (مثلاً به‌خاطر کوچک‌تر شدن هر اتاق)، یا اینکه وقتی همبستگی خیلی قوی باشد، معادله خطی ناپایدارتر می‌شود.

توضیح مترجم برای درک بهتر: فرض کنید دو خانه با متراژ یکسان ۱۰۰ متر داریم، اما یکی ۳ اتاق دارد و دیگری ۵ اتاق. اگر متراژ ثابت بماند، خانه با ۵ اتاق یعنی اتاق‌های کوچک‌تر و شاید کم‌کاربردتر — که می‌تواند از نظر خریداران کمتر مطلوب باشد. به همین دلیل ممکن است مدل خطی، وزن منفی برای «تعداد اتاق» برآورد کند، در حالی که به‌طور شهودی انتظار داریم اتاق بیشتر همیشه بهتر باشد. این پارادوکس ظاهری، دقیقاً نتیجه همبستگی قوی میان متراژ و تعداد اتاق است.

با توجه به ویژگی‌هایی که یک توضیح خوب را می‌سازند — همان‌طور که در فصل «توضیحات انسان‌پسند» ارائه شد — مدل‌های خطی بهترین توضیحات را تولید نمی‌کنند. این توضیحات contrastive هستند، اما نمونه مرجع، نقطه داده‌ای است که در آن همه ویژگی‌های عددی صفرند و ویژگی‌های دسته‌ای در دسته‌های مرجع خود قرار دارند. این معمولاً یک نمونه مصنوعی و بی‌معناست که بعید است در داده‌ها یا واقعیت رخ دهد. یک استثنا وجود دارد: اگر همه ویژگی‌های عددی میانگین‌مرکزی شوند (ویژگی منهای میانگین آن ویژگی) و همه ویژگی‌های دسته‌ای با کدگذاری اثر (effect coding) کدگذاری شوند، نمونه مرجع همان نقطه داده‌ای است که در آن همه ویژگی‌ها مقدار میانگین خود را دارند. این نیز ممکن است نمونه‌ای غیرموجود باشد، اما دست‌کم می‌تواند محتمل‌تر یا معنادارتر باشد. در این حالت، وزن‌ها ضرب‌در مقادیر ویژگی‌ها (یعنی اثرات ویژگی‌ها) سهم هر ویژگی در پیش‌بینی خروجی را به‌صورت contrastive نسبت به «نمونه-میانگین» توضیح می‌دهند.

به‌طور پیش‌فرض، مدل‌های خطی توضیحات گزینشی (selective) تولید نمی‌کنند.

توضیح مترجم: توضیح گزینشی (selective explanation) یعنی توضیحی که فقط روی مهم‌ترین یکی-دو دلیل تمرکز می‌کند، همان‌طور که انسان‌ها معمولاً هنگام توضیح دادن یک رویداد عمل می‌کنند؛ مدل خطی چنین کاری نمی‌کند و سهم همه ویژگی‌ها را هم‌زمان گزارش می‌دهد.


در مجموع، رگرسیون خطی بهترین انتخاب است وقتی روابط واقعاً (یا تقریباً) خطی هستند، داده‌ها کافی نیستند برای مدل‌های پیچیده‌تر، یا تفسیرپذیری و اعتماد اولویت دارند. در غیر این صورت، روش‌های پیشرفته‌تر در کنار ابزارهای تفسیر مانند SHAP یا LIME می‌توانند بهتر باشند.


پانویس: این فصل رگرسیون خطی را از دیدگاه یک آماردان معرفی کرده است، با جمله خطای تصادفی $\epsilon$ به‌عنوان بخشی از تعریف مدل. با این حال، می‌توان رگرسیون خطی را بدون این جمله خطا نیز تعریف کرد و صرفاً آن را به‌عنوان یک تابع پیش‌بینی $\hat{y} = \beta_0 + \sum_j \beta_j x_j$ در نظر گرفت.

فصل ۷: رگرسیون لجستیک

عنوان اصلی: Logistic Regression
منبع: https://christophm.github.io/interpretable-ml-book/logistic.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


رگرسیون لجستیک احتمال‌ها را برای مسائل دسته‌بندی با دو نتیجه ممکن مدل می‌کند. این مدل بسط رگرسیون خطی برای نتایج دسته‌ای است.1

نکته: فقط به‌دنبال تفسیر درست مدل‌های رگرسیون لجستیک هستید؟ برای صرفه‌جویی در وقت و دردسر (لگاریتم شانس، کسی هست؟)، به راهنمای تقلب (cheat sheet) تفسیر رگرسیون لجستیک نویسنده مراجعه کنید.

از رگرسیون خطی برای دسته‌بندی استفاده نکنید

مدل رگرسیون خطی می‌تواند برای رگرسیون به‌خوبی کار کند، اما برای دسته‌بندی شکست می‌خورد. چرا؟ در حالت دو دسته، می‌توانید یکی از دسته‌ها را با ۰ و دیگری را با ۱ برچسب بزنید و رگرسیون خطی به کار ببرید. از نظر فنی این کار می‌کند و بیشتر برنامه‌های مدل خطی وزن‌هایی به شما می‌دهند. اما این رویکرد چند مشکل دارد:

مدل خطی احتمال خروجی نمی‌دهد، بلکه دسته‌ها را به‌عنوان عدد (۰ و ۱) در نظر می‌گیرد و بهترین ابرصفحه (که برای یک ویژگی، یک خط است) را برازش می‌کند که فاصله بین نقاط و ابرصفحه را کمینه کند. پس این مدل صرفاً بین نقاط درون‌یابی می‌کند و نمی‌توان آن را به‌عنوان احتمال تفسیر کرد.

یک مدل خطی همچنین برون‌یابی می‌کند و مقادیری زیر صفر و بالای یک به شما می‌دهد. این خود نشانه خوبی است که ممکن است رویکرد هوشمندانه‌تری برای دسته‌بندی وجود داشته باشد.

از آنجا که نتیجه پیش‌بینی‌شده احتمال نیست، بلکه یک درون‌یابی خطی بین نقاط است، هیچ آستانه معناداری وجود ندارد که بتوان دسته‌ها را از هم متمایز کرد، همان‌طور که در شکل ۷.۱ نشان داده شده است. توضیح خوبی درباره این مسئله در Stackoverflow ارائه شده است.

مدل‌های خطی به مسائل دسته‌بندی با چند دسته تعمیم نمی‌یابند. باید شروع کنید به برچسب‌گذاری دسته بعدی با ۲، سپس ۳ و به همین ترتیب. ممکن است دسته‌ها هیچ ترتیب معناداری نداشته باشند، اما مدل خطی ساختاری عجیب بر رابطه بین ویژگی‌ها و پیش‌بینی دسته‌ها تحمیل می‌کند. هرچه مقدار یک ویژگی با وزن مثبت بیشتر باشد، سهم بیشتری در پیش‌بینی دسته‌ای با عدد بالاتر دارد — حتی اگر دسته‌هایی که به‌طور اتفاقی عدد مشابهی گرفته‌اند، به هم نزدیک‌تر از سایر دسته‌ها نباشند.

شکل ۷.۱

شکل ۷.۱: برازش یک مدل خطی برای پیش‌بینی نوع تومور (شبیه‌سازی‌شده) بر اساس اندازه تومور. نقاط برای کاهش هم‌پوشانی کمی جیتر (jitter) داده شده‌اند. چپ: استفاده از آستانه ۰.۵ یک دسته‌بند قابل‌قبول به دست می‌دهد. راست) افزودن تنها دو نقطه داده دیگر، برآوردهای رگرسیون را کاملاً تغییر می‌دهد و آستانه ۰.۵ را بی‌معنا می‌کند. مدل همچنین پیش‌بینی‌هایی بزرگ‌تر از ۱ تولید می‌کند.

نظریه

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

تابع لجستیک

تابع لجستیک (که به آن تابع سیگمویید نیز گفته می‌شود) به صورت زیر تعریف می‌شود:

$$\text{logistic}(\mathbf{z}) = \frac{1}{1 + \exp(-\mathbf{z})}$$

این تابع هر عدد واقعی $z$ را به بازه $(0, 1)$ نگاشت می‌کند:

  • وقتی $z \to +\infty$، خروجی به ۱ نزدیک می‌شود.
  • وقتی $z \to -\infty$، خروجی به ۰ نزدیک می‌شود.
  • وقتی $z = 0$، خروجی دقیقاً $0.5$ است.

شکل ۷.۲

شکل ۷.۲: تابع لجستیک. این تابع هر ورودی حقیقی را به مقداری بین ۰ و ۱ تبدیل می‌کند و شکل S-مانند دارد.

مدل رگرسیون لجستیک

گام از رگرسیون خطی به رگرسیون لجستیک مستقیم است. در رگرسیون خطی، رابطه بین خروجی و ویژگی‌ها را با یک معادله خطی مدل می‌کردیم:

$$\hat{y}^{(i)} = \beta_0 + \beta_1 x^{(i)}_1 + \ldots + \beta_p x^{(i)}_p$$

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

$$\mathbb{P}(Y^{(i)}=1) = \text{logistic}\!\left(x^{(i)\top} \boldsymbol{\beta}\right) = \frac{1}{1 + \exp\!\left(-\left(\beta_0 + \beta_1 x^{(i)}_1 + \ldots + \beta_p x^{(i)}_p\right)\right)}$$

در این فرمول، $\mathbb{P}(Y^{(i)}=1)$ احتمال تعلق نمونه $i$ به دسته ۱ است.

مدل با بیشینه‌سازی درست‌نمایی (Maximum Likelihood Estimation) برازش می‌شود — یعنی ضرایبی پیدا می‌شوند که احتمال مشاهده داده‌های آموزشی را بیشینه کنند. برخلاف رگرسیون خطی، راه‌حل بسته (closed-form) وجود ندارد و از روش‌های بهینه‌سازی تکراری مانند گرادیان نزولی استفاده می‌شود.

بیایید دوباره مثال اندازه تومور را مرور کنیم. اما این بار، به‌جای مدل رگرسیون خطی، از مدل رگرسیون لجستیک استفاده می‌کنیم و منحنی برازشی به‌مراتب بهتری به دست می‌آوریم (شکل ۷.۳ را ببینید).

شکل ۷.۳

شکل ۷.۳: چپ: مدل رگرسیون لجستیک برازش‌شده برای پیش‌بینی دسته تومور از روی اندازه تومور، بر اساس داده‌های شبیه‌سازی‌شده تومور. راست: رگرسیون لجستیک حتی با افزودن دو نقطه پرت (outlier) نیز پایدار (robust) می‌ماند.

دسته‌بندی با رگرسیون لجستیک بهتر انجام می‌شود و در هر دو حالت می‌توانیم از آستانه $0.5$ استفاده کنیم. افزودن نقاط داده اضافی عملاً تأثیری بر منحنی برآوردشده ندارد.

تفسیر

تفسیر وزن‌ها در رگرسیون لجستیک از رگرسیون خطی پیچیده‌تر است، زیرا وزن‌ها دیگر به‌طور خطی روی احتمال تأثیر نمی‌گذارند. برای تفسیر، باید معادله را بازنویسی کنیم تا فقط ترکیب خطی در سمت راست باقی بماند.

لگاریتم شانس (Log-Odds)

نسبت $\frac{\mathbb{P}(Y=1)}{\mathbb{P}(Y=0)}$ را شانس (odds) می‌نامند: احتمال وقوع رویداد تقسیم بر احتمال عدم وقوع آن. اگر لگاریتم طبیعی این نسبت را بگیریم، به لگاریتم شانس (log-odds یا logit) می‌رسیم:

$$\ln\!\left(\frac{\mathbb{P}(Y=1)}{1-\mathbb{P}(Y=1)}\right) = \ln\!\left(\frac{\mathbb{P}(Y=1)}{\mathbb{P}(Y=0)}\right) = \beta_0 + \beta_1 x_1 + \ldots + \beta_p x_p$$

توضیح مترجم: این رابطه ادعای بزرگی است — چرا وقتی روی $p = \mathbb{P}(Y=1)$ تابع لجستیک اعمال شده، لگاریتمِ نسبتِ $\frac{p}{1-p}$ دقیقاً به همان ترکیب خطی $z = \beta_0 + \beta_1 x_1 + \ldots + \beta_p x_p$ برمی‌گردد که با آن شروع کرده بودیم؟ اثبات کامل و گام‌به‌گام این‌طور است:

گام ۱ — نقطه شروع. طبق تعریف مدل، $p$ برابر است با تابع لجستیک اعمال‌شده روی $z$: $$p = \text{logistic}(z) = \frac{1}{1+\exp(-z)}$$

گام ۲ — محاسبه $1-p$. برای ساده‌سازی، عبارت $1$ را با مخرج مشترک $1+\exp(-z)$ می‌نویسیم: $$1 - p = 1 - \frac{1}{1+\exp(-z)} = \frac{\left(1+\exp(-z)\right) - 1}{1+\exp(-z)} = \frac{\exp(-z)}{1+\exp(-z)}$$

گام ۳ — محاسبه نسبت شانس $\frac{p}{1-p}$. حالا کسر $p$ را بر کسر $1-p$ تقسیم می‌کنیم. چون هر دو کسر مخرج مشترک $1+\exp(-z)$ دارند، این مخرج در تقسیم ساده می‌شود: $$\frac{p}{1-p} = \frac{\dfrac{1}{1+\exp(-z)}}{\dfrac{\exp(-z)}{1+\exp(-z)}} = \frac{1}{1+\exp(-z)} \times \frac{1+\exp(-z)}{\exp(-z)} = \frac{1}{\exp(-z)}$$

از قاعده توان $\frac{1}{\exp(-z)} = \exp(z)$ (چون $\exp(-z) = 1/\exp(z)$)، نتیجه می‌گیریم: $$\text{odds} = \frac{p}{1-p} = \exp(z)$$

این خودش نکته‌ی مهمی است: شانس (odds) صرفاً $\exp$ از همان ترکیب خطی $z$ است — بدون هیچ نگاشت غیرخطی اضافه‌ای.

گام ۴ — گرفتن لگاریتم طبیعی از دو طرف. چون $\ln$ و $\exp$ معکوس یکدیگرند ($\ln(\exp(z)) = z$)، داریم: $$\ln\!\left(\frac{p}{1-p}\right) = \ln\!\left(\exp(z)\right) = z = \beta_0 + \beta_1 x_1 + \ldots + \beta_p x_p$$

یعنی دقیقاً همان رابطه بالا. به زبان ساده: تابع لجستیک و لگاریتمِ نسبتِ شانس (logit) دقیقاً معکوس ریاضی یکدیگرند — یکی $z$ را به $p$ می‌برد، دیگری $p$ را دقیقاً به همان $z$ برمی‌گرداند. به همین دلیل است که رگرسیون لجستیک را می‌توان این‌گونه توصیف کرد: «یک مدل خطی روی $z$، که از دریچه‌ی تابع لجستیک به احتمال $p$ نگاشت می‌شود، و از دریچه‌ی معکوسش (logit) دوباره به همان $z$ خطی بازمی‌گردد.»

این رابطه نشان می‌دهد که رگرسیون لجستیک در فضای لگاریتم شانس یک مدل خطی است. هر ضریب $\beta_j$ اثر خطی مستقیم بر لگاریتم شانس دارد. عالی! انگار خیلی هم به کارمان نمی‌آید!

هشدار — رگرسیون لجستیک ضربی است: در سطح احتمال، رگرسیون لجستیک نسبت به ویژگی‌ها خطی نیست؛ یعنی افزایش یک واحد در یک ویژگی، احتمال را به اندازه $\beta_j$ افزایش نمی‌دهد، بلکه احتمال را به‌صورت ضربی تغییر می‌دهد.

نسبت شانس (Odds Ratio)

با کمی جابه‌جایی جملات می‌توانیم بفهمیم پیش‌بینی چگونه تغییر می‌کند وقتی یکی از ویژگی‌ها، $X_j$، به اندازه یک واحد تغییر کند. برای این کار، ابتدا تابع $\exp$ را روی هر دو طرف معادله اعمال می‌کنیم:

$$\frac{\mathbb{P}(Y=1)}{1 - \mathbb{P}(Y = 1)} = \text{odds} = \exp\!\left(\beta_0 + \beta_1 x_1 + \ldots + \beta_p x_p\right)$$

حالا بررسی می‌کنیم که وقتی یکی از مقادیر ویژگی‌ها را یک واحد افزایش دهیم چه اتفاقی می‌افتد. اما به‌جای بررسی تفاضل، نسبت دو پیش‌بینی را بررسی می‌کنیم:

$$\frac{\text{odds}_{x_j+1}}{\text{odds}_{x_j}} = \frac{\exp\!\left(\beta_0 + \cdots + \beta_j(x_j+1) + \cdots + \beta_p x_p\right)}{\exp\!\left(\beta_0 + \cdots + \beta_j x_j + \cdots + \beta_p x_p\right)}$$

با استفاده از قاعده زیر:

$$\frac{\exp(a)}{\exp(b)} = \exp(a - b)$$

جملات مشترک حذف می‌شوند:

$$\frac{\text{odds}_{x_j+1}}{\text{odds}_{x_j}} = \exp\!\left(\beta_j(x_j+1) - \beta_j x_j\right) = \exp\!\left(\beta_j\right)$$

در نهایت، به چیزی به سادگی $\exp()$ از وزن یک ویژگی می‌رسیم. تغییر یک ویژگی به اندازه یک واحد، نسبت شانس (odds ratio) را به‌صورت ضربی، به اندازه $\exp(\beta_j)$، تغییر می‌دهد. می‌توانیم این را این‌طور هم تفسیر کنیم: تغییر $x^{(i)}_j$ به اندازه یک واحد، لگاریتم نسبت شانس را به اندازه مقدار وزن متناظر افزایش می‌دهد.

بیشتر افراد نسبت شانس را تفسیر می‌کنند، چون فکر کردن به لگاریتم یک عدد برای مغز کار سختی است. تفسیر نسبت شانس هم خودش به کمی عادت‌کردن نیاز دارد. برای مثال، اگر شانس برابر ۲ باشد، یعنی احتمال $Y=1$ دو برابر احتمال $Y=0$ است. اگر وزنی (لگاریتم نسبت شانس) برابر $0.7$ داشته باشید، افزایش یک واحد در ویژگی متناظر، شانس را در $\exp(0.7)$ (تقریباً ۲) ضرب می‌کند و شانس به ۴ تغییر می‌کند. اما معمولاً با خودِ شانس کار نمی‌کنید و وزن‌ها را فقط به‌صورت نسبت شانس تفسیر می‌کنید؛ چون برای محاسبه واقعی شانس باید مقداری برای هر ویژگی تعیین کنید، که فقط زمانی معنا دارد که بخواهید یک نمونه مشخص از داده‌ها را بررسی کنید.

برای درک بهتر (توضیح مترجم): فرض کنید مدلی برای پیش‌بینی احتمال ابتلا به یک بیماری بر اساس سن دارید و ضریب سن برابر $\beta = 0.05$ است، پس نسبت شانس برابر است با $\exp(0.05) \approx 1.05$؛ یعنی با هر یک سال افزایش سن، شانس ابتلا ۵٪ بیشتر می‌شود (نه احتمال، بلکه شانس). فرض کنید برای فردی ۴۰ ساله شانس ابتلا برابر ۰٫۲ است، که معادل احتمال $0.2/1.2 \approx 16.7%$ است. برای فردی ۴۱ ساله، شانس جدید تقریباً $0.2 \times 1.05 = 0.21$ می‌شود که معادل احتمال $0.21/1.21 \approx 17.4%$ است. همان‌طور که می‌بینید، افزایش احتمال (از ۱۶٫۷٪ به ۱۷٫۴٪) دقیقاً برابر ۵٪ نیست؛ به همین دلیل است که رگرسیون لجستیک در سطح احتمال خطی نیست، هرچند در سطح شانس ضربی و ساده است.

تفسیر بر اساس نوع ویژگی

ویژگی عددی: با افزایش یک واحد در $x_j$، با ثابت ماندن سایر ویژگی‌ها، شانس برآوردشده در $\exp(\beta_j)$ ضرب می‌شود.

ویژگی دودویی (باینری): یکی از دو مقدار ویژگی دسته مرجع است. تغییر $x_j$ از دسته مرجع به دسته دیگر، شانس برآوردشده را در $\exp(\beta_j)$ ضرب می‌کند.

ویژگی دسته‌ای با بیش از دو دسته: رویکرد متداول، کدگذاری یک‌داغ (one-hot encoding) است: برای ویژگی با $L$ دسته، $L-1$ ستون مصنوعی ایجاد می‌شود. دسته $L$ام دسته مرجع می‌شود. تفسیر هر دسته معادل تفسیر ویژگی دودویی است.

عرض از مبدأ $\beta_0$: وقتی تمام ویژگی‌های عددی صفر و تمام ویژگی‌های دسته‌ای در دسته مرجع باشند، شانس برآوردشده برابر $\exp(\beta_0)$ است. معمولاً تفسیر عرض از مبدأ اهمیت چندانی ندارد.

نکته: بهبود تفسیر با روش‌های مستقل از مدل اگر بخواهید نتیجه را در سطح احتمال تفسیر کنید، باید از روش‌های مستقل از مدل (model-agnostic)، مانند نمودار وابستگی جزئی، استفاده کنید.

مثال

از رگرسیون لجستیک برای پیش‌بینی جنسیت پنگوئن‌های Chinstrap بر اساس اندازه‌گیری‌های بدن استفاده می‌کنیم. داده‌های پنگوئن‌های پالمر در فصل ۵ معرفی شدند.

یکی از ویژگی‌ها chonkiness نام دارد — یک نسخه گسسته‌شده از جرم بدن (body_mass_g):

  • پنگوئن‌های سبک (صدک ۰ تا ۲۵): «Smol_Penguin»
  • پنگوئن‌های معمولی (صدک ۲۵ تا ۷۵): «Regular_Penguin»
  • پنگوئن‌های سنگین (صدک ۷۵ تا ۱۰۰): «Absolute_Unit»

معمولاً گسسته‌سازی ویژگی‌های پیوسته را توصیه نمی‌کنم، چون اطلاعات از دست می‌رود. در این مورد، از این گسسته‌سازی برای نمایش تفسیر یک ویژگی دسته‌ای در رگرسیون لجستیک استفاده کردم — و راستش را بخواهید، عاشق کلمه «chonky» هم هستم و دلم می‌خواست در یک کتاب درسی از آن استفاده کنم.

جدول ۷.۱: وزن‌های برآوردشده، نسبت‌های شانس متناظر، و خطاهای استاندارد مدل رگرسیون لجستیک برای پیش‌بینی جنسیت پنگوئن‌های Chinstrap.

ویژگیوزن ($\beta$)نسبت شانس ($\exp(\beta)$)خطای استاندارد
عرض از مبدأمقدار بزرگ
طول منقار (bill_length_mm)منفی0.59
عمق منقار (bill_depth_mm)
طول باله (flipper_length_mm)
Regular_Penguin (در برابر Smol)مثبت1.92
Absolute_Unit (در برابر Smol)منفی0.43

نمونه‌های تفسیر

ویژگی عددی: افزایش یک میلی‌متر در طول منقار، با ثابت ماندن سایر ویژگی‌ها، شانس ماده بودن در برابر نر بودن را در $0.59$ ضرب می‌کند — یعنی شانس ماده بودن کاهش می‌یابد.

ویژگی دسته‌ای: شانس ماده بودن برای پنگوئن‌های Regular نسبت به Smol، با ثابت ماندن سایر ویژگی‌ها، $1.92$ برابر بیشتر است. برای پنگوئن‌های Absolute_Unit نسبت به Smol، شانس ماده بودن $0.43$ برابر — یعنی کمتر — است.

تفسیر عرض از مبدأ

مقدار عرض از مبدأ بسیار بزرگ است. این به این دلیل است که باید برای وضعیتی تفسیر شود که تمام ویژگی‌های عددی برابر صفرند و ویژگی chonkiness در دسته مرجع (Smol) باشد — یعنی پنگوئنی با طول منقار، عمق منقار، و طول باله همگی صفر، که اصلاً واقعی نیست. اگر ویژگی‌ها استانداردسازی شوند، عرض از مبدأ معناپذیرتر می‌شود، یا می‌توان آن را نادیده گرفت.

مزایا

بسیاری از نقاط قوت و ضعف مدل رگرسیون خطی برای مدل رگرسیون لجستیک نیز صدق می‌کند.

از جنبه مثبت، مدل رگرسیون لجستیک تنها یک مدل دسته‌بندی نیست، بلکه احتمال هم به شما می‌دهد. این مزیت بزرگی نسبت به مدل‌هایی است که فقط دسته‌بندی نهایی را ارائه می‌دهند. دانستن اینکه یک نمونه ۹۹٪ احتمال تعلق به یک دسته دارد در برابر ۵۱٪، تفاوت بزرگی ایجاد می‌کند. با این حال، باید بررسی کنید که آیا احتمال‌ها کالیبره‌شده هستند یا نه — یعنی آیا ۶۰٪ واقعاً به معنای ۶۰٪ است.

رگرسیون لجستیک همچنین می‌تواند از دسته‌بندی دودویی به دسته‌بندی چندکلاسه بسط داده شود.

محدودیت‌ها

قدرت بیانی محدود: رگرسیون لجستیک فقط رابطه‌های خطی را در فضای لگاریتم شانس مدل می‌کند. برای گنجاندن اثرات تعاملی یا غیرخطی، باید ویژگی‌های جدید دستی به مدل اضافه شوند. این محدودیت باعث می‌شود در مسائل پیچیده عملکرد ضعیف‌تری نسبت به روش‌های پیشرفته‌تر داشته باشد.

تفسیر ضربی: تفسیر ضرایب در قالب نسبت شانس برای بسیاری دشوارتر از تفسیر جمعی رگرسیون خطی است. فهمیدن اینکه «شانس در $\exp(0.7) \approx 2$ ضرب می‌شود» به تمرین بیشتری نیاز دارد.

جداسازی کامل (Complete Separation): اگر یک ویژگی وجود داشته باشد که دو دسته را به‌طور کامل از هم جدا کند، رگرسیون لجستیک دیگر قابل آموزش نیست. ضریب آن ویژگی همگرا نمی‌شود، چون وزن بهینه برای آن، بی‌نهایت خواهد بود. این واقعاً کمی بدشانسی است، چون چنین ویژگی‌ای واقعاً مفید است. اما اگر قاعده‌ای ساده دو دسته را از هم جدا کند، اصلاً نیازی به یادگیری ماشین ندارید. مشکل جداسازی کامل را می‌توان با معرفی جریمه ضرایب (regularization) یا تعریف یک توزیع پیشین (prior) روی وزن‌ها حل کرد.

برای درک بهتر (توضیح مترجم): برای مثال، فرض کنید می‌خواهید بر اساس نمره یک آزمون پیش‌بینی کنید فردی قبول شده یا نه، و در داده‌های شما هرکس نمره‌اش بالای ۵۰ بوده قبول شده و هرکس نمره‌اش پایین ۵۰ بوده رد شده — بدون هیچ استثنایی. در این حالت، ویژگی «نمره» به‌تنهایی دو دسته را کاملاً از هم جدا می‌کند. مدل رگرسیون لجستیک تلاش می‌کند وزن این ویژگی را هرچه بزرگ‌تر کند تا مرز تصمیم را هرچه تیزتر و شبیه یک پله عمودی کند، اما هیچ‌گاه به وزن بهینه (که عملاً بی‌نهایت است) نمی‌رسد و فرایند بهینه‌سازی هیچ‌وقت همگرا نمی‌شود.

نرم‌افزار

من برای همه مثال‌ها از تابع glm در R استفاده کردم. رگرسیون لجستیک را می‌توان در هر زبان برنامه‌نویسی که برای تحلیل داده استفاده می‌شود پیدا کرد، مانند Python، Java، Stata، Matlab و غیره.

1

در واقع، رگرسیون لجستیک یک مدل رگرسیون است، چون خروجی آن پیوسته است. اما همراه با یک آستانه تصمیم‌گیری، مانند $0.5$، می‌توان از آن برای دسته‌بندی هم استفاده کرد.

فصل ۸: GLM، GAM و بیشتر

عنوان اصلی: GLM, GAM and more
منبع: https://christophm.github.io/interpretable-ml-book/extend-lm.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


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

این فصل قطعاً راهنمای قطعی شما برای گسترش مدل‌های خطی نیست. در عوض، مروری بر گسترش‌هایی مانند مدل‌های خطی تعمیم‌یافته (GLM) و مدل‌های جمعی تعمیم‌یافته (GAM) ارائه می‌دهد و کمی شهود به شما می‌دهد. پس از خواندن این فصل، باید یک مرور کلی محکم از چگونگی گسترش مدل‌های خطی داشته باشید. اگر می‌خواهید ابتدا بیشتر درباره مدل رگرسیون خطی بدانید، پیشنهاد می‌کنم — در صورتی که تاکنون نخوانده‌اید — فصل مربوط به مدل رگرسیون خطی را بخوانید.

بیایید فرمول مدل رگرسیون خطی را به یاد بیاوریم:

$$\hat{f}(\mathbf{x}) = \beta_0 + \beta_1 x_1 + \ldots + \beta_p x_p + \epsilon$$

مدل رگرسیون خطی فرض می‌کند پیش‌بینی یک نمونه را می‌توان با مجموع وزن‌دار $p$ ویژگی آن، به‌همراه یک متغیر تصادفی $\epsilon^{(i)}$ که از توزیع گاوسی پیروی می‌کند، بیان کرد. با فشردن داده‌ها درون این قالب سفت‌وسخت فرمول، تفسیرپذیری زیادی از مدل به‌دست می‌آوریم. اثرات ویژگی‌ها جمعی هستند — یعنی هیچ تعاملی وجود ندارد — و رابطه خطی است، و همین به ما اجازه می‌دهد رابطه بین یک ویژگی و خروجی مورد انتظار را در یک عدد واحد، یعنی وزن برآوردشده، فشرده کنیم.

اما یک مجموع وزن‌دار ساده برای بسیاری از مسائل پیش‌بینی دنیای واقعی بیش از حد محدودکننده است. در این فصل با سه مشکل مدل رگرسیون خطی کلاسیک و راه‌حل آن‌ها آشنا می‌شویم. مشکلات دیگری هم وجود دارند که ممکن است مفروضات را نقض کنند، اما ما روی سه موردی که در شکل ۸.۱ نشان داده شده‌اند تمرکز می‌کنیم.

شکل ۸.۱

شکل ۸.۱: سه فرض مدل خطی (سمت چپ): توزیع گاوسی خروجی با توجه به ویژگی‌ها، جمع‌پذیری (یعنی بدون تعامل) و رابطه خطی. واقعیت معمولاً پایبند این مفروضات نیست (سمت راست): خروجی‌ها ممکن است توزیع غیرگاوسی داشته باشند، ویژگی‌ها ممکن است با هم تعامل داشته باشند، و رابطه ممکن است غیرخطی باشد.


مشکل: خروجی هدف $y$ با توجه به ویژگی‌ها، توزیع گاوسی ندارد.

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

راه‌حل: مدل‌های خطی تعمیم‌یافته (GLM).


مشکل: ویژگی‌ها با یکدیگر تعامل دارند.

مثال: به‌طور میانگین، باران ملایم تأثیر منفی جزئی بر تمایل من به دوچرخه‌سواری دارد. اما در تابستان، در ساعات شلوغی، از باران استقبال می‌کنم، چون باعث می‌شود همه دوچرخه‌سواران هواخوش‌دوست خانه بمانند و مسیرهای دوچرخه‌سواری برای خودم خلوت شود! این یک تعامل بین زمان و آب‌وهواست که یک مدل کاملاً جمعی نمی‌تواند آن را نشان دهد.

راه‌حل: افزودن جملات تعاملی.


مشکل: رابطه واقعی بین ویژگی‌ها و $y$ خطی نیست.

مثال: بین ۰ تا ۲۵ درجه سانتی‌گراد، تأثیر دما بر تمایل من به دوچرخه‌سواری می‌تواند خطی باشد، یعنی افزایش از ۰ به ۱ درجه همان اندازه‌ای که تمایل به دوچرخه‌سواری را زیاد می‌کند که افزایش از ۲۰ به ۲۱ درجه. اما در دماهای بالاتر، انگیزه من برای دوچرخه‌سواری کم‌کم فروکش می‌کند و حتی کاهش می‌یابد — وقتی هوا خیلی گرم است، دوست ندارم دوچرخه‌سواری کنم.

راه‌حل‌ها: مدل‌های جمعی تعمیم‌یافته (GAM)؛ تبدیل ویژگی‌ها.

بررسی نقض مفروضات مدل خطی

می‌توانید این مشکلات، از جمله تعامل ویژگی‌ها، را به‌صورت تجربی با مقایسه راه‌حل‌ها با رگرسیون خطی ساده بررسی کنید: آیا مدل خطی شما روی داده‌های اعتبارسنجی، وقتی از یک جمله تعاملی استفاده می‌شود، عملکرد بهتری دارد؟

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

خروجی‌های غیرگاوسی — GLM ها

مدل رگرسیون خطی فرض می‌کند خروجی با توجه به ویژگی‌های ورودی از توزیع گاوسی پیروی می‌کند. این فرض بسیاری از حالت‌های واقعی را کنار می‌گذارد: خروجی می‌تواند یک دسته باشد (سرطانی در برابر سالم)، یک شمارش (تعداد فرزندان)، زمان تا وقوع رویداد (زمان خرابی یک ماشین)، یا توزیعی با چولگی شدید (درآمد خانوار). مدل‌های خطی تعمیم‌یافته (GLMs) این محدودیت را برطرف می‌کنند.

ایده اصلی GLM این است: مجموع وزن‌دار ویژگی‌ها را نگه داریم، اما اجازه دهیم توزیع خروجی غیرگاوسی باشد و میانگین مورد انتظار این توزیع را از طریق یک تابع پیوند (link function) به مجموع وزن‌دار متصل کنیم.

فرمول GLM

GLM رابطه زیر را مدل می‌کند:

$$g\!\left(\mathbb{E}[Y \mid \mathbf{x}]\right) = \beta_0 + \beta_1 x_1 + \ldots + \beta_p x_p = \mathbf{x}^T \boldsymbol{\beta}$$

که در آن $g$ تابع پیوند است. هر GLM از سه مؤلفه تشکیل شده:

  1. تابع پیوند $g$: میانگین توزیع را به پیش‌بینی خطی متصل می‌کند.
  2. پیش‌بینی خطی $\mathbf{x}^T\boldsymbol{\beta}$: همان مجموع وزن‌دار ویژگی‌هاست.
  3. توزیع احتمال از خانواده نمایی (exponential family): توزیع خروجی را مشخص می‌کند.

خانواده نمایی مجموعه‌ای از توزیع‌هاست که با یک فرمول پارامتری مشترک شامل یک عبارت نمایی، میانگین و واریانس توزیع، و چند پارامتر دیگر نوشته می‌شوند و شامل گاوسی، برنولی، پواسون، نمایی، گاما و بسیاری دیگر می‌شود. ویکی‌پدیا فهرست خوبی از توزیع‌های خانواده نمایی دارد و هر یک از آن‌ها را می‌توان برای GLM انتخاب کرد. بر اساس نوع خروجی، توزیع مناسب انتخاب می‌شود: اگر خروجی شمارش چیزی باشد (مثلاً تعداد فرزندان ساکن در یک خانه)، توزیع پواسون گزینه خوبی است؛ اگر خروجی همیشه مثبت باشد (مثلاً فاصله زمانی بین دو رویداد)، توزیع نمایی می‌تواند مناسب باشد.

مدل خطی کلاسیک حالت خاصی از GLM است که توزیع گاوسی و تابع پیوند همانی (identity) دارد — یعنی $g(x) = x$. توزیع گاوسی با دو پارامتر میانگین و واریانس مشخص می‌شود: میانگین مقداری است که به‌طور متوسط انتظار داریم، و واریانس نشان می‌دهد مقادیر چقدر حول این میانگین پراکنده‌اند. در مدل خطی، تابع پیوند، مجموع وزن‌دار ویژگی‌ها را به میانگین توزیع گاوسی متصل می‌کند. در چارچوب GLM، این ایده به هر توزیعی از خانواده نمایی و هر تابع پیوندی تعمیم می‌یابد.

رگرسیون لجستیک به‌عنوان GLM

رگرسیون لجستیک نیز یک GLM است: توزیع برنولی و تابع پیوند لاجیت (logit). رابطه آن:

$$\mathbf{x}^T\boldsymbol{\beta} = \ln\!\left(\frac{\mathbb{P}(Y=1\mid\mathbf{x})}{1-\mathbb{P}(Y=1\mid\mathbf{x})}\right)$$

که با معکوس‌گرفتن به فرمول آشنای رگرسیون لجستیک می‌رسیم:

$$\mathbb{P}(Y=1) = \frac{1}{1+\exp(-\mathbf{x}^T\boldsymbol{\beta})}$$

GLM پواسون برای داده‌های شمارشی

اگر خروجی یک شمارش باشد (عدد صحیح غیرمنفی)، توزیع پواسون و لگاریتم طبیعی به‌عنوان تابع پیوند انتخاب مناسبی هستند:

$$\ln\!\left(\mathbb{E}[Y\mid\mathbf{x}]\right) = \mathbf{x}^T\boldsymbol{\beta}$$

هر توزیع خانواده نمایی یک تابع پیوند «متعارف» (canonical link function) دارد که می‌توان آن را به‌طور ریاضی از خود توزیع استخراج کرد. چارچوب GLM این امکان را می‌دهد که تابع پیوند را مستقل از توزیع انتخاب کنید. اما چگونه تابع پیوند درست را انتخاب کنیم؟ دستور پخت کاملی وجود ندارد؛ باید هم دانش خود درباره توزیع متغیر هدف، هم ملاحظات نظری، و هم میزان برازش مدل به داده‌های واقعی را در نظر بگیرید. برای برخی توزیع‌ها، تابع پیوند متعارف می‌تواند به مقادیری منجر شود که برای آن توزیع نامعتبرند. برای نمونه، تابع پیوند متعارف توزیع نمایی، معکوس منفی (negative inverse) است که می‌تواند به پیش‌بینی‌های منفی خارج از دامنه توزیع نمایی بینجامد. از آنجا که می‌توانید هر تابع پیوندی را انتخاب کنید، راه‌حل ساده این است که تابعی دیگر برگزینید که دامنه توزیع را رعایت کند.

توضیح مترجم: منظور از تابع پیوند «متعارف» این است که اگر فرمول ریاضی توزیع منتخب را باز کنیم، یک تابع پیوند به‌طور طبیعی از دل آن بیرون می‌آید (مثلاً تابع لاجیت برای برنولی، یا لگاریتم برای پواسون). اما هیچ الزامی به استفاده از همین تابع «طبیعی» نیست؛ در GLM می‌توان تابع پیوند دیگری انتخاب کرد، به شرط آنکه پیش‌بینی‌ها همچنان در بازه معتبر برای آن توزیع باقی بمانند.

مثال: پیش‌بینی مصرف قهوه

فرض کنید داده‌ای از رفتار روزانه نوشیدن قهوه جمع‌آوری شده است (اگر قهوه دوست ندارید، تصور کنید ماجرا درباره چای یا چیز دیگری است). ویژگی‌ها عبارتند از: سطح استرس (۱ تا ۱۰)، کیفیت خواب شب قبل (۱ تا ۱۰)، و اینکه آیا آن روز روز کاری بوده یا نه. هدف پیش‌بینی تعداد فنجان‌های قهوه است. داده برای ۲۰۰ روز شبیه‌سازی شده: استرس و خواب به‌طور یکنواخت بین ۱ و ۱۰، و روز کاری با احتمال ۵۰-۵۰ تولید شده‌اند. برای هر روز، تعداد فنجان‌های قهوه از یک توزیع پواسون کشیده شده که پارامتر شدت آن ($\lambda$، که برابر با مقدار مورد انتظار توزیع پواسون نیز هست) تابعی از ویژگی‌های خواب، استرس و روز کاری است.

شکل ۸.۲

شکل ۸.۲: توزیع تعداد فنجان‌های قهوه در ۲۰۰ روز. در ۸۴ روز از ۲۰۰ روز اصلاً قهوه نخورده و در پرمصرف‌ترین روز، ۱۰ فنجان قهوه نوشیده شده است.

حال بیایید ساده‌لوحانه از یک مدل خطی برای پیش‌بینی تعداد فنجان‌های قهوه بر اساس سطح خواب، سطح استرس و روز کاری استفاده کنیم. اگر به‌اشتباه توزیع گاوسی را فرض کنیم چه اتفاقی می‌افتد؟ فرض نادرست می‌تواند برآوردها، به‌ویژه بازه‌های اطمینان وزن‌ها را نامعتبر کند. مشکل آشکارتر این است که پیش‌بینی‌ها با دامنه «مجاز» خروجی واقعی همخوانی ندارند، همان‌طور که شکل زیر نشان می‌دهد؛ مدل خطی منطقی نیست چون تعداد منفی فنجان قهوه پیش‌بینی می‌کند. همچنین ممکن است عملکرد مدل روی داده آزمون هم به‌سادگی ضعیف باشد.

شکل ۸.۳

شکل ۸.۳: رگرسیون خطی برای پیش‌بینی تعداد فنجان‌های قهوه: مدل پیش‌بینی‌های منفی تولید می‌کند که غیرممکن است.

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

شکل ۸.۴

شکل ۸.۴: GLM پواسون برای پیش‌بینی تعداد فنجان‌های قهوه: تمام پیش‌بینی‌ها غیرمنفی هستند. دیگر هیچ مقدار منفی از قهوه دیده نمی‌شود؛ نتیجه بسیار بهتر به نظر می‌رسد.

تفسیر وزن‌های GLM

در GLM پواسون با تابع پیوند لگاریتمی، رابطه زیر برقرار است:

$$\ln\!\left(\mathbb{E}[\text{coffee}\mid\text{str, slp, wrk}]\right) = \beta_0 + \beta_\text{str} x_\text{str} + \beta_\text{slp} x_\text{slp} + \beta_\text{wrk} x_\text{wrk}$$

با معکوس‌گرفتن تابع پیوند (exp):

$$\mathbb{E}[\text{coffee}\mid\text{str, slp, wrk}] = \exp\!\left(\beta_0 + \beta_\text{str} x_\text{str} + \beta_\text{slp} x_\text{slp} + \beta_\text{wrk} x_\text{wrk}\right)$$

چون همه وزن‌ها درون تابع نمایی هستند، تفسیر ضربی است، نه جمعی: $\exp(a+b) = \exp(a) \cdot \exp(b)$.

جدول ۸.۱: وزن‌های برآوردشده و $\exp(\text{وزن})$ برای GLM پواسون داده‌های قهوه.

ویژگیوزن ($\beta$)$\exp(\beta)$ [بازه اطمینان ۹۵٪]
عرض از مبدأ0.031.03 [0.65، 1.59]
استرس (stress)0.111.12 [1.06، 1.18]
خواب (sleep)-0.230.80 [0.76، 0.84]
روز کاری (workYES)0.982.66 [2.03، 3.53]

تفسیر: افزایش یک واحد استرس، تعداد انتظاری فنجان‌های قهوه را در عامل ۱.۱۲ ضرب می‌کند. افزایش یک واحد کیفیت خواب، آن را در ۰.۸۰ ضرب می‌کند. در روز کاری نسبت به روز تعطیل، به طور میانگین ۲.۶۶ برابر قهوه بیشتر نوشیده می‌شود. خلاصه اینکه هرچه استرس بیشتر، خواب کمتر و کار بیشتر باشد، قهوه بیشتری مصرف می‌شود.

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

تعاملات

مدل رگرسیون خطی فرض می‌کند اثر هر ویژگی مستقل از مقادیر سایر ویژگی‌هاست — یعنی هیچ تعاملی وجود ندارد. اما در بسیاری از مسائل واقعی تعاملات وجود دارند. برای مثال، در پیش‌بینی تعداد دوچرخه‌های اجاره‌شده، شاید تعامل بین دما و روز کاری وجود داشته باشد: در روزهای تعطیل، مردم برای تفریح دوچرخه می‌رانند و دما تأثیر زیادی دارد؛ اما در روزهای کاری، بسیاری صرف‌نظر از دما دوچرخه می‌رانند.

چگونه تعاملات را به مدل اضافه کنیم؟

راه‌حل ساده است: پیش از برازش مدل، یک ستون جدید به ماتریس ویژگی اضافه کنید که حاصلضرب دو ویژگی مورد نظر است.

تعامل ویژگی دسته‌ای × عددی:

فرض کنید ویژگی‌های «روز کاری» (work: Y/N) و «دما» (temp) داریم:

جدول ۸.۲: داده‌های خام

روز کاریدماهدف
N25...
N12...
Y30...
Y5...

جدول ۸.۳: ماتریس ورودی بدون تعامل

عرض از مبدأworkYtemp
1125
1012
1030
115

جدول ۸.۴: ماتریس ورودی با ستون تعامل workY.temp

عرض از مبدأworkYtempworkY.temp
112525
10120
10300
1155

ستون workY.temp برای روزهای غیرکاری صفر است و برای روزهای کاری برابر مقدار دماست. با این کدگذاری، مدل می‌تواند شیب متفاوتی برای دما در روزهای کاری و غیرکاری یاد بگیرد.

تعامل دو ویژگی دسته‌ای:

برای دو ویژگی دسته‌ای مثل روز کاری (Y/N) و آب‌وهوا (G=خوب، B=بد، M=مه‌آلود)، ستون‌های تعامل برای هر ترکیب ممکن از دسته‌ها (به‌جز دسته مرجع) ایجاد می‌شوند:

جدول ۸.۵: داده‌های خام دو ویژگی دسته‌ای

روز کاریآب‌وهواهدف
NB...
NG...
NM...
YB...

جدول ۸.۶: ماتریس ورودی با تعاملات دسته‌ای

عرض از مبدأworkYwthrGwthrMworkY.wthrGworkY.wthrM
110000
101000
100100
110000

برای دو ویژگی عددی، ستون تعامل کافی است که حاصلضرب مستقیم دو ویژگی باشد.

مثال: پیش‌بینی اجاره دوچرخه با تعامل

با اضافه کردن تعامل بین دما و روز کاری به مدل اجاره دوچرخه:

جدول ۸.۷: وزن‌های برآوردشده با ترم تعامل workdayY:temp

ویژگیوزنخطای استانداردبازه اطمینان ۹۵٪
عرض از مبدأ2385.1355.4[1686.8، 3083.5]
فصل بهار433.2168.5[102.1، 764.2]
فصل تابستان239.3216.9[-186.9، 665.5]
فصل پاییز618.0151.5[320.4، 915.6]
تعطیلی-434.7236.9[-900.1، 30.8]
روز کاری776.7200.6[382.5، 1171.0]
آب‌وهوای مه‌آلود-374.9119.5[-609.8، -140.0]
آب‌وهوای بد-1802.3303.2[-2398.2، -1206.4]
دما74.512.7[49.5، 99.5]
رطوبت-21.74.5[-30.6، -12.9]
سرعت باد-45.59.4[-64.0، -27.0]
تعداد دوچرخه ۲ روز قبل0.60.0[0.5، 0.6]
workdayY:temp-34.411.2[-56.4، -12.5]

ترم تعامل (workdayY:temp) با وزن ۳۴.۴− معنادار است — بازه اطمینان آن از صفر عبور نمی‌کند.

نکته مهم در تفسیر تعامل

نمی‌توان وزن تعامل را به‌تنهایی تفسیر کرد. برای فهمیدن اثر دما در یک روز کاری، باید هر دو وزن را جمع بزنیم:

  • شیب دما در روزهای غیرکاری: 74.5 (مستقیماً از جدول)
  • شیب دما در روزهای کاری: 74.5 + (-34.4) = 40.1

یعنی دما در روزهای کاری تأثیر کمتری (اما همچنان مثبت) دارد. این موضوع در نمودار زیر به وضوح قابل مشاهده است:

شکل ۸.۵

شکل ۸.۵: تعامل بین دما و روز کاری در پیش‌بینی اجاره دوچرخه. دو شیب متفاوت برای روزهای کاری (Y) و غیرکاری (N) نشان داده شده است.

اثرات غیرخطی — GAM ها

دنیا خطی نیست. خطی بودن در مدل‌های خطی به این معناست که فرقی نمی‌کند یک نمونه در یک ویژگی خاص چه مقداری داشته باشد؛ افزایش آن مقدار به اندازه یک واحد همیشه اثر یکسانی روی خروجی پیش‌بینی‌شده دارد. آیا منطقی است فرض کنیم افزایش دما به اندازه یک درجه در دمای ۱۰ درجه سانتی‌گراد، همان اثری را روی تعداد دوچرخه‌های اجاره‌شده دارد که افزایش دما وقتی از قبل ۳۰ درجه است؟ به‌طور شهودی، انتظار می‌رود افزایش دما از ۱۰ به ۱۱ درجه اثر مثبتی بر اجاره دوچرخه داشته باشد و افزایش از ۳۰ به ۳۱ درجه اثری منفی — که همان‌طور که در ادامه کتاب در مثال‌های متعدد خواهید دید، همین‌طور هم هست. ویژگی دما در بازه‌ای اثر خطی و مثبت روی تعداد دوچرخه‌های اجاره‌شده دارد، اما از نقطه‌ای به بعد این اثر تخت می‌شود و در دماهای بالا حتی منفی می‌شود. مدل خطی اهمیتی به این موضوع نمی‌دهد؛ آن به‌طور وظیفه‌شناسانه بهترین ابرصفحه خطی را (با کمینه‌کردن فاصله اقلیدسی) برازش می‌دهد.

می‌توانید روابط غیرخطی را با یکی از تکنیک‌های زیر مدل‌سازی کنید:

  • تبدیل ساده ویژگی (مثلاً لگاریتم)
  • گسسته‌سازی (دسته‌ای‌کردن) ویژگی
  • مدل‌های جمعی تعمیم‌یافته (GAMs)

پیش از پرداختن به جزئیات هر روش، بیایید با مثالی شروع کنیم که هر سه را نشان می‌دهد. من مجموعه‌داده اجاره دوچرخه را برداشتم و یک مدل خطی فقط با ویژگی دما آموزش دادم تا تعداد دوچرخه‌های اجاره‌شده را پیش‌بینی کند. شکل ۸.۶ شیب برآوردشده را با چهار روش نشان می‌دهد: مدل خطی استاندارد، مدل خطی با دمای تبدیل‌شده (لگاریتم)، مدل خطی با دمای دسته‌بندی‌شده به‌عنوان ویژگی دسته‌ای، و استفاده از اسپلاین‌های رگرسیونی (GAM). مدل خطی (بالا-چپ) به‌خوبی روی داده‌ها برازش نمی‌شود. یک راه‌حل، تبدیل ویژگی با مثلاً لگاریتم است (بالا-راست)، دسته‌ای‌کردن آن (پایین-چپ) که معمولاً تصمیم بدی است، یا استفاده از مدل‌های جمعی تعمیم‌یافته که می‌توانند به‌طور خودکار یک منحنی هموار برای دما برازش دهند (پایین-راست).

شکل ۸.۶

شکل ۸.۶: چهار مدل برای پیش‌بینی اجاره دوچرخه فقط با استفاده از دما. هر نقطه یک نمونه داده است و منحنی‌ها پیش‌بینی‌های مدل را نشان می‌دهند: (بالا-چپ) مدل خطی معمولی — برازش ضعیف؛ (بالا-راست) تبدیل لگاریتمی؛ (پایین-چپ) گسسته‌سازی ویژگی؛ (پایین-راست) GAM با اسپلاین — بهترین برازش.

۱. تبدیل ویژگی

یک روش ساده برای مدل‌سازی روابط غیرخطی، تبدیل ویژگی است. پرکاربردترین تبدیل، لگاریتم طبیعی است. استفاده از لگاریتم به این معناست که هر ده‌برابر شدن دما اثر خطی یکسانی روی تعداد دوچرخه‌ها دارد، پس تغییر از ۱ درجه سانتی‌گراد به ۱۰ درجه همان اثری را دارد که تغییر از ۰٫۱ به ۱ درجه (که به نظر عجیب می‌رسد). سایر گزینه‌های تبدیل شامل جذر، توان دوم، و تابع نمایی هستند.

با تبدیل ویژگی، ستون آن ویژگی در داده با تابعی از آن — مانند لگاریتم — جایگزین می‌شود و مدل خطی مثل همیشه برازش می‌شود. برخی نرم‌افزارهای آماری هم به شما اجازه می‌دهند تبدیل را مستقیماً در فراخوانی مدل خطی مشخص کنید. در انتخاب تبدیل می‌توانید خلاقانه عمل کنید. تفسیر ویژگی بر اساس تبدیل انتخاب‌شده تغییر می‌کند. اگر از تبدیل لگاریتمی استفاده کنید، تفسیر در یک مدل خطی این‌طور می‌شود: «اگر لگاریتم ویژگی یک واحد افزایش یابد، پیش‌بینی به اندازه وزن متناظر افزایش می‌یابد.» وقتی از یک GLM با تابع پیوندی غیر از تابع همانی استفاده می‌کنید، تفسیر پیچیده‌تر می‌شود، چون باید هر دو تبدیل را در تفسیر لحاظ کنید (مگر وقتی یکدیگر را خنثی کنند، مثل لگاریتم و تابع نمایی، که در آن صورت تفسیر ساده‌تر می‌شود).

۲. گسسته‌سازی ویژگی

روش دیگر برای رسیدن به یک اثر غیرخطی، گسسته‌سازی ویژگی است — یعنی تبدیل آن به ویژگی دسته‌ای. برای مثال، می‌توانید ویژگی دما را به ۲۰ بازه با سطوحی مانند $[-10, -5)$، $[-5, 0)$ و به همین ترتیب تقسیم کنید. وقتی به‌جای دمای پیوسته از دمای گسسته‌شده استفاده کنید، مدل خطی یک تابع پله‌ای برآورد می‌کند، چون هر سطح برآورد جداگانه خودش را می‌گیرد.

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

۳. مدل‌های جمعی تعمیم‌یافته (GAMs)

چرا به مدل خطی اجازه ندهیم روابط غیرخطی را خودش یاد بگیرد؟ این انگیزه اصلی GAMs است. GAM قید خطی بودن را حذف می‌کند و فرض می‌کند خروجی با مجموعی از توابع دلخواه هر ویژگی قابل مدل‌سازی است:

$$g\!\left[\mathbb{E}(Y \mid X = \mathbf{x})\right] = \beta_0 + f_1(x_1) + f_2(x_2) + \ldots + f_p(x_p)$$

این فرمول شبیه GLM است با این تفاوت که جمله خطی $\beta_j x_j$ با تابع انعطاف‌پذیر $f_j(x_j)$ جایگزین شده. مدل همچنان جمعی است — مجموع اثرات تک‌تک ویژگی‌هاست — اما هر ویژگی می‌تواند اثر غیرخطی داشته باشد. اثرات خطی نیز در این چارچوب جا می‌گیرند: کافی است $f_j$ را محدود به شکل $\beta_j x_j$ کنیم.

توضیح مترجم: فرق اصلی بین $\beta_j x_j$ و $f_j(x_j)$ در همین است که چند عدد لازم است تا اثر یک ویژگی توصیف شود. در مدل خطی، اثر دما را با یک عدد تنها ($\beta_{\text{temp}}$) خلاصه می‌کنیم — مثلاً «هر درجه افزایش دما، ۵۰ دوچرخه بیشتر». اما در GAM، اثر دما دیگر یک عدد نیست، بلکه یک تابع ($f_{\text{temp}}$) یا معادل آن یک منحنی است؛ یعنی به‌جای یک شیب ثابت برای همه دماها، مدل اجازه دارد شیب اثر دما در دماهای پایین مثبت باشد و در دماهای بالا منفی شود (دقیقاً همان چیزی که در ابتدای این بخش درباره ۱۰ در برابر ۳۰ درجه گفته شد). به همین دلیل هم تفسیر GAM سخت‌تر از مدل خطی است: باید به یک نمودار نگاه کنید، نه به یک عدد.

اسپلاین‌ها: ابزار یادگیری GAM

سؤال اساسی این است که چگونه توابع $f_j$ غیرخطی یاد گرفته می‌شوند. پاسخ را «اسپلاین‌ها» یا «توابع اسپلاین» می‌نامند. اسپلاین‌ها توابعی هستند که از ترکیب توابع پایه ساده‌تر ساخته می‌شوند و می‌توان با آن‌ها به توابع دیگر، پیچیده‌تر، تقریب زد — کمی شبیه روی‌هم‌گذاشتن آجرهای لگو برای ساختن چیزی پیچیده‌تر. راه‌های تعریف این توابع پایه اسپلاین به‌قدری زیادند که گیج‌کننده‌اند؛ اگر دوست دارید بیشتر درباره همه این روش‌ها بدانید، برایتان در این مسیر آرزوی موفقیت می‌کنم! اینجا قصد ندارم وارد جزئیات شوم، فقط می‌خواهم یک شهود بسازم. آنچه شخصاً بیشترین کمک را برای فهم اسپلاین‌ها به من کرد، تجسم تک‌تک توابع پایه و نگاه‌کردن به این بود که ماتریس داده چگونه تغییر می‌کند.

برای مدل‌سازی دما با اسپلاین، ستون دما از داده حذف و با چند ستون جدید (توابع پایه اسپلاین) جایگزین می‌شود — معمولاً تعداد توابع پایه بیشتر از این است؛ من فقط برای نمایش ساده‌تر، تعدادشان را کم کرده‌ام:

جدول ۸.۸: ماتریس داده برای GAM با ۴ تابع پایه اسپلاین برای دما

عرض از مبدأs(temp).1s(temp).2s(temp).3s(temp).4
11.33-0.70-0.39-1.64
11.33-0.69-0.37-1.62
11.30-0.57-0.25-1.47
11.32-0.67-0.35-1.59
11.33-0.70-0.39-1.64
11.35-0.82-0.53-1.81

مقدار هر نمونه در این ستون‌های جدید به مقدار دمای آن نمونه بستگی دارد. شکل این توابع پایه:

شکل ۸.۷

شکل ۸.۷: چهار تابع پایه اسپلاین برای ویژگی دما. هر تابع پایه بخشی از دامنه دما را پوشش می‌دهد.

GAM وزن‌هایی برای این توابع پایه یاد می‌گیرد:

عرض از مبدأs(temp).1s(temp).2s(temp).3s(temp).4
4519.6-922.04-740.592333.45611.39

برای درک بهتر (توضیح مترجم): بیایید همین محاسبه را برای یک نمونه از جدول ۸.۸ (سطر اول) دستی انجام دهیم. مقادیر چهار ستون اسپلاین برای این نمونه عبارت‌اند از $1.33،\ -0.70،\ -0.39،\ -1.64$. اثر دما برای این نمونه، یعنی $f_{\text{temp}}(x)$، از ضرب هر ستون در وزن متناظرش و جمع‌کردن نتایج به دست می‌آید: $$f_{\text{temp}}(x) = (1.33)(-922.04) + (-0.70)(-740.59) + (-0.39)(2333.45) + (-1.64)(611.39) \approx -1226 + 518 - 910 - 1003 = -2621$$ یعنی برای این نمونه‌ی خاص (دمای پایین)، اثر دما حدود ۲۶۲۱ واحد کمتر از میانگین پیش‌بینی است — دقیقاً همان الگویی که در شکل ۸.۸ برای دماهای نزدیک صفر درجه دیده می‌شود. نکته مهم این است که این چهار عدد وزن، هرکدام به‌تنهایی معنای مستقیم و قابل‌تفسیری ندارند؛ فقط وقتی همه را کنار هم و طبق مقادیر توابع پایه در شکل ۸.۷ جمع بزنیم، به یک عدد قابل‌فهم (سهم دما در پیش‌بینی) می‌رسیم.

منحنی اسپلاین نهایی، حاصلضرب توابع پایه در وزن‌هایشان و جمع آن‌هاست:

شکل ۸.۸

شکل ۸.۸: منحنی اسپلاین برازش‌یافته برای اثر دما بر تعداد دوچرخه‌های اجاره‌شده. اسپلاین‌ها معمولاً حول میانگین پیش‌بینی مرکزیده می‌شوند. مثلاً در صفر درجه سانتیگراد، تعداد پیش‌بینی‌شده دوچرخه حدود ۳۰۰۰ کمتر از میانگین است.

برای تفسیر اثرات هموار (smooth effects)، لازم است منحنی برازش‌یافته را بصری بررسی کنیم — یک عدد واحد کافی نیست. GAM همچنین یک جمله جریمه برای وزن‌ها اعمال می‌کند تا آن‌ها را نزدیک به صفر نگه دارد؛ این کار عملاً انعطاف‌پذیری اسپلاین‌ها را کاهش می‌دهد و از بیش‌برازش جلوگیری می‌کند. پارامتر هموارسازی که معمولاً برای کنترل انعطاف‌پذیری منحنی استفاده می‌شود، از طریق اعتبارسنجی متقاطع تنظیم می‌شود. اگر از بهینه‌سازی همراه با جمله جریمه صرف‌نظر کنیم، مدل‌سازی غیرخطی با اسپلاین‌ها چیزی شبیه مهندسی ویژگی (feature engineering) خیال‌پردازانه به نظر می‌رسد.

توضیح مترجم: این جمله جریمه دقیقاً همان دلیلی است که GAM بین دو خطر افراطی تعادل برقرار می‌کند. اگر هیچ جریمه‌ای وجود نداشت، مدل آزاد بود هر پیچ‌وتابی را که حتی نویز تصادفی داده‌ها ایجاد کرده دنبال کند و یک منحنی بسیار پرتاب‌وتاب (بیش‌برازش‌شده) بسازد که روی داده‌های آموزشی عالی عمل می‌کند اما روی داده‌های جدید ضعیف است. اگر جریمه خیلی زیاد باشد، منحنی آن‌قدر «صاف» می‌شود که تقریباً به یک خط راست (یعنی همان مدل خطی ساده) برمی‌گردد و اثرات غیرخطی واقعی داده از دست می‌روند (کم‌برازش). پارامتر هموارسازی دقیقاً محل این تعادل را کنترل می‌کند، و اعتبارسنجی متقاطع کمک می‌کند مقداری برای آن انتخاب شود که نه بیش‌برازش کند و نه کم‌برازش.

مزایا

تمام این گسترش‌های مدل خطی یک دنیای کامل در خود هستند. هر مشکلی که با مدل خطی ساده داشته باشید، احتمالاً گسترشی وجود دارد که آن را برطرف کند.

بیشتر این روش‌ها چند دهه سابقه دارند؛ برای مثال، عمر GAM‌ها تقریباً به ۳۰ سال می‌رسد. بسیاری از پژوهشگران و متخصصان صنعت با مدل‌های خطی تجربه بسیار زیادی دارند و این روش‌ها در بسیاری از جوامع علمی به‌عنوان روش استاندارد و پذیرفته‌شده مدل‌سازی شناخته می‌شوند.

علاوه بر پیش‌بینی، این مدل‌ها امکان استنتاج آماری را فراهم می‌کنند — با فرض اینکه مفروضات نقض نشده باشند: فاصله اطمینان برای وزن‌ها، آزمون معناداری، فاصله اطمینان پیش‌بینی، و بسیاری موارد دیگر.

نرم‌افزارهای آماری معمولاً رابط‌های بسیار خوبی برای برازش GLM، GAM، و مدل‌های خطی تخصصی دارند.

تیرگی بسیاری از مدل‌های یادگیری ماشین ناشی از: ۱) نداشتن تنکی — تعداد زیادی ویژگی استفاده می‌شود؛ ۲) اثرات غیرخطی — یک عدد برای توصیف کافی نیست؛ و ۳) تعاملات بین ویژگی‌هاست. گسترش‌های معرفی‌شده در این فصل یک گذار تدریجی از مدل‌های کاملاً تفسیرپذیر به مدل‌های انعطاف‌پذیرتر را ممکن می‌سازند.

محدودیت‌ها

پیچیدگی گزینه‌ها: تعداد روش‌های موجود برای گسترش مدل‌های خطی می‌تواند گیج‌کننده باشد، حتی برای متخصصان. جوامع مختلف علمی اغلب نام‌های متفاوتی برای روش‌هایی دارند که کمابیش یک کار می‌کنند.

کاهش تفسیرپذیری: هر تغییری در مدل خطی ساده، آن را کمتر تفسیرپذیر می‌کند. تابع پیوند غیر همانی در GLM تفسیر را پیچیده می‌کند؛ تعاملات نیز همین‌طور؛ اثرات غیرخطی در GAM دیگر با یک عدد قابل خلاصه‌سازی نیستند.

وابستگی به مفروضات: GLM، GAM، و سایر روش‌ها همگی مفروضاتی درباره فرایند تولید داده دارند. اگر این مفروضات نقض شوند، تفسیر وزن‌ها دیگر معتبر نیست.

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

نکته: از ابزارهای مستقل از مدل استفاده کنید هرچه با تبدیل‌ها، تعاملات، و اثرات هموار بیشتر از رگرسیون خطی محض فاصله بگیرید، احتمالاً بیشتر به ابزارهای مستقل از مدل (model-agnostic) مانند نمودار وابستگی جزئی برای تحلیل مدل نیاز خواهید داشت.

نرم‌افزار

تمام مثال‌های این فصل با زبان R پیاده‌سازی شدند. برای GAM از بسته gam استفاده شد، اگرچه گزینه‌های دیگری نیز وجود دارند. R تعداد باورنکردنی بسته برای گسترش رگرسیون خطی دارد و در این زمینه بی‌رقیب است.

در Python، پیاده‌سازی‌هایی از GAM مانند pyGAM وجود دارد، اگرچه به بلوغ اکوسیستم R نرسیده‌اند. بسته PiML در پایتون نیز نسخه‌های گوناگونی از GAM را پیاده‌سازی می‌کند.

گسترش‌های بیشتر

در ادامه فهرستی از مشکلات رایج با مدل‌های خطی و نام راه‌حل‌های آن‌ها برای جستجو ارائه می‌شود:

  • داده‌ها IID نیستند (مثلاً اندازه‌گیری‌های تکراری از یک بیمار): به دنبال Mixed Models یا Generalized Estimating Equations بگردید.
  • خطاهای ناهمسانی واریانس (مثلاً در پیش‌بینی قیمت خانه، خطا برای خانه‌های گران‌تر بزرگ‌تر است): به دنبال Robust Regression بگردید.
  • نقاط پرت تأثیرگذار: به دنبال Robust Regression بگردید.
  • پیش‌بینی زمان تا وقوع رویداد (با مشاهدات سانسورشده): به دنبال Parametric Survival Models، Cox Regression، یا Survival Analysis بگردید.
  • خروجی دسته‌ای (چند دسته): برای دو دسته از رگرسیون لجستیک استفاده کنید؛ برای بیشتر به دنبال Multinomial Regression بگردید.
  • دسته‌های مرتب (مثلاً نمرات تحصیلی): به دنبال Proportional Odds Model بگردید.
  • خروجی شمارشی (مثلاً تعداد فرزندان): به دنبال Poisson Regression بگردید. اگر صفر خیلی فراوان است: Zero-Inflated Poisson Regression یا Hurdle Model.
  • استنتاج علّی (کدام ویژگی‌ها باید در مدل باشند؟): به دنبال Causal Inference و Mediation Analysis بگردید.
  • داده‌های ناقص: به دنبال Multiple Imputation بگردید.
  • ادغام دانش پیشین: به دنبال Bayesian Inference بگردید.

فصل ۹: درخت تصمیم

عنوان اصلی: Decision Tree
منبع: https://christophm.github.io/interpretable-ml-book/tree.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


مدل‌های خطی و لجستیک در شرایطی که رابطه بین ویژگی‌ها و خروجی غیرخطی است یا ویژگی‌ها با یکدیگر تعامل دارند، عملکرد ضعیفی دارند. درخت‌های تصمیم این مشکل را به شیوه‌ای کاملاً متفاوت حل می‌کنند: داده را بر اساس مقادیر آستانه‌ای ویژگی‌ها به زیرمجموعه‌هایی تقسیم می‌کنند و در هر زیرمجموعه پیش‌بینی ثابتی ارائه می‌دهند. درخت‌های تصمیم هم برای رگرسیون و هم برای دسته‌بندی به کار می‌روند.

یک درخت تصمیم از گره‌ها (nodes) و یال‌ها (edges) تشکیل شده است:

  • گره ریشه (root node): نقطه شروع درخت؛ شامل تمام داده‌های آموزشی است.
  • گره‌های داخلی (split nodes): هر گره داده را بر اساس یک قانون «اگر ویژگی $j$ از آستانه $c$ کمتر/بیشتر باشد» به دو شاخه تقسیم می‌کند.
  • گره‌های برگ (leaf nodes یا terminal nodes): انتهای درخت؛ پیش‌بینی نهایی ارائه می‌دهند.

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

الگوریتم CART

پرکاربردترین الگوریتم آموزش درخت تصمیم، CART (Classification and Regression Trees) است. مدل ریاضی آن به صورت زیر است:

$$\hat{f}(\mathbf{x}) = \sum_{m=1}^{M} c_m \cdot \mathbf{1}{\mathbf{x} \in R_m}$$

که در آن:

  • $M$ تعداد گره‌های برگ است.
  • $R_m$ ناحیه‌ای از فضای ویژگی است که با برگ $m$ متناظر است.
  • $c_m$ مقدار پیش‌بینی‌شده در برگ $m$ است (میانگین مقادیر هدف در رگرسیون، یا دسته اکثریت در دسته‌بندی).
  • $\mathbf{1}{\mathbf{x} \in R_m}$ تابع نشانگر است که ۱ می‌شود اگر نمونه $\mathbf{x}$ در ناحیه $R_m$ باشد.

هر نمونه دقیقاً در یک ناحیه $R_m$ قرار می‌گیرد.

برای درک بهتر (توضیح مترجم): فرض کنید می‌خواهیم قیمت خانه را با دو ویژگی «متراژ» و «تعداد اتاق» پیش‌بینی کنیم و درخت فقط دو تقسیم دارد. اگر متراژ کمتر از ۸۰ باشد، وارد برگ $R_1$ می‌شویم که میانگین قیمت آن ۱۵۰ میلیون تومان است ($c_1 = 150$)؛ در غیر این صورت به تقسیم بعدی می‌رویم و بسته به تعداد اتاق، وارد $R_2$ ($c_2 = 220$) یا $R_3$ ($c_3 = 300$) می‌شویم. برای خانه‌ای با متراژ ۶۰، تابع نشانگر فقط برای $R_1$ برابر ۱ و برای بقیهٔ نواحی برابر صفر است؛ بنابراین $\hat{f}(\mathbf{x}) = c_1 = 150$. یعنی فرمول بالا صرفاً می‌گوید: «ببین نمونه در کدام برگ افتاده و مقدار همان برگ را برگردان.»

چگونه تقسیم‌بندی‌ها انتخاب می‌شوند؟

CART در هر مرحله، تقسیمی را انتخاب می‌کند که معیار زیر را بیشینه کاهش دهد:

  • رگرسیون: واریانس خروجی در هر شاخه.
  • دسته‌بندی: ناخالصی گینی (Gini impurity) یا آنتروپی اطلاعات.

مثال مترجم برای درک بهتر خوانندگان: فرض کنید در یک گره ۱۰ نمونه داریم: ۵ تای آن‌ها کلاس «مثبت» و ۵ تای دیگر کلاس «منفی» هستند. ناخالصی گینی این گره برابر است با $1 - (0.5^2 + 0.5^2) = 0.5$، یعنی بیشترین مقدار ممکن (کاملاً ناخالص). حالا اگر با یک تقسیم، گره را به دو زیرگره تبدیل کنیم که در یکی ۴ نمونهٔ «مثبت» و ۱ نمونهٔ «منفی» باشد و در دیگری ۱ نمونهٔ «مثبت» و ۴ نمونهٔ «منفی»، ناخالصی گینی هر زیرگره برابر $1 - (0.8^2 + 0.2^2) = 0.32$ می‌شود که کمتر از ۰٫۵ اولیه است. CART دقیقاً چنین تقسیمی را ترجیح می‌دهد، چون ناخالصی را کاهش می‌دهد و کلاس‌های هر زیرگره را «خالص‌تر» می‌کند.

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

برای ویژگی‌های دسته‌ای، الگوریتم گروه‌بندی‌های مختلف از دسته‌ها را می‌آزماید تا بهترین تقسیم را بیابد. پس از یافتن بهترین نقطهٔ برش برای هر ویژگی، الگوریتم آن ویژگی را انتخاب می‌کند که بهترین تفکیک را از نظر واریانس یا ناخالصی گینی ایجاد کند و این تقسیم را به درخت اضافه می‌کند.

برای معرفی دقیق‌تر CART، کتاب «The Elements of Statistical Learning» (Hastie 2009) توصیه می‌شود؛ در این فصل تمرکز اصلی بر CART است، اما تفسیر برای بیشتر انواع دیگر درخت‌های تصمیم مشابه است.

شکل ۹.۱

شکل ۹.۱: ساختار یک درخت تصمیم مصنوعی. هر گره داخلی یک قانون تقسیم بر اساس یک ویژگی و آستانه دارد. برگ‌ها مقادیر پیش‌بینی را نگه می‌دارند.

تفسیر

تفسیر قاعده‌محور

برای تفسیر پیش‌بینی یک نمونه، کافی است مسیر آن از ریشه تا برگ را دنبال کنیم. هر گره داخلی یک شرط «اگر—آنگاه» است و تمام شرط‌ها با AND به هم متصل می‌شوند:

«اگر ویژگی $x_j$ [کمتر/بیشتر] از آستانه $c$ باشد و ... آنگاه پیش‌بینی برابر میانگین مقادیر هدف نمونه‌های آن برگ است.»

این قالب تفسیر کاملاً ساده و شهودی است — هر کسی می‌تواند مسیر تصمیم‌گیری را گام به گام دنبال کند.

اهمیت ویژگی‌ها

اهمیت هر ویژگی در درخت تصمیم با میزان کاهشی که آن ویژگی در ناخالصی (واریانس یا گینی) ایجاد کرده اندازه‌گیری می‌شود. اگر ویژگی $j$ در چند گره مختلف مورد استفاده قرار گرفته، مجموع کاهش‌های ناشی از تمام آن تقسیم‌ها جمع می‌شود. در نهایت این اعداد به نحوی مقیاس می‌شوند که مجموعشان ۱۰۰ باشد و هر عدد سهم آن ویژگی از اهمیت کلی مدل را نشان دهد.

هشدار: اهمیت گینی (Gini importance) به نفع ویژگی‌های عددی و ویژگی‌های دسته‌ای با دسته‌های زیاد تورش دارد (Strobl et al. 2008). برای ارزیابی دقیق‌تر، استفاده از اهمیت ویژگی مبتنی بر جایگشت (permutation feature importance) توصیه می‌شود.

تجزیه پیش‌بینی بر اساس ویژگی‌ها

یکی از قابلیت‌های جالب درخت تصمیم این است که می‌توان پیش‌بینی هر نمونه را به سهم هر ویژگی تجزیه کرد. گره ریشه میانگین کلی داده‌های آموزشی ($\bar{y}$) را پیش‌بینی می‌کند. هر تقسیم در مسیر نمونه تا برگ، مقداری به این میانگین اضافه یا از آن کم می‌کند:

$$\hat{f}(\mathbf{x}) = \bar{y} + \sum_{d=1}^{D} \text{split.contrib}(d, \mathbf{x}) = \bar{y} + \sum_{j=1}^{p} \text{feat.contrib}(j, \mathbf{x})$$

که در آن:

  • $D$ عمق درخت (تعداد گره‌های داخلی در مسیر) است.
  • $\text{split.contrib}(d, \mathbf{x})$ سهم تقسیم $d$ام در پیش‌بینی نمونه $\mathbf{x}$ است.
  • $\text{feat.contrib}(j, \mathbf{x})$ مجموع سهم تمام تقسیم‌هایی است که از ویژگی $j$ استفاده کرده‌اند.

یک ویژگی ممکن است چندین بار در مسیر ظاهر شود؛ سهم‌های آن جمع می‌شوند. ویژگی‌هایی که اصلاً در مسیر نمونه استفاده نشده‌اند سهم صفر دارند. این تجزیه نوعی توضیح محلی (local explanation) برای هر پیش‌بینی منفرد فراهم می‌کند.

مثال مترجم برای درک بهتر خوانندگان: فرض کنید میانگین قیمت همهٔ خانه‌های داده‌ی آموزشی ($\bar{y}$) برابر ۲۰۰ میلیون تومان است. برای خانه‌ای خاص، اولین تقسیم بر اساس متراژ است و چون متراژ خانه بزرگ‌تر از آستانه است، ۳۰ میلیون تومان به پیش‌بینی اضافه می‌شود. تقسیم دوم بر اساس تعداد اتاق‌هاست و چون تعداد اتاق کمتر از آستانه است، ۱۰ میلیون تومان از پیش‌بینی کم می‌شود. پیش‌بینی نهایی برابر است با $200 + 30 - 10 = 220$ میلیون تومان. اگر متراژ در مسیر دیگری هم دوباره استفاده شده باشد، سهم آن تقسیم هم به سهم قبلی «متراژ» اضافه می‌شود؛ در نهایت می‌توانیم بگوییم مثلاً «متراژ» ۳۵ میلیون تومان و «تعداد اتاق» منفی ۱۵ میلیون تومان در پیش‌بینی این خانهٔ خاص سهیم بوده‌اند.

مثال

از داده‌های اجاره دوچرخه برای پیش‌بینی تعداد دوچرخه‌های اجاره‌شده در یک روز مشخص با یک درخت تصمیم استفاده می‌کنیم. حداکثر عمق مجاز درخت را ۲ در نظر گرفته‌ایم:

شکل ۹.۲

شکل ۹.۲: درخت تصمیم با عمق ۲ برای پیش‌بینی تعداد دوچرخه‌های اجاره‌شده روزانه. دو ویژگی انتخاب‌شده عبارتند از تعداد دوچرخه‌های اجاره‌شده دو روز پیش (cnt_2d_bfr) و دما.

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

برای درخت‌های عمیق‌تر، اهمیت ویژگی‌ها به این صورت رتبه‌بندی می‌شود:

شکل ۹.۳

شکل ۹.۳: اهمیت ویژگی‌ها در درخت تصمیم عمیق‌تر برای داده‌های اجاره دوچرخه. تعداد دوچرخه دو روز قبل مهم‌ترین ویژگی است، سپس دما، فصل، و آب‌وهوا.

مزایا

گرفتن تعاملات: ساختار درختی به‌طور طبیعی تعاملات بین ویژگی‌ها را نشان می‌دهد؛ هر تقسیم در یک گره فرزند، تنها برای زیرمجموعه‌ای از داده‌ها اعمال می‌شود که از مسیر خاصی آمده‌اند.

گروه‌بندی طبیعی: تقسیم داده به گروه‌های مجزا اغلب شهودی‌تر از خط‌الرأس‌های چند‌بُعدی در رگرسیون خطی است.

قابلیت تجسم: درخت را می‌توان به‌راحتی رسم کرد و هر کسی بدون دانش آماری می‌تواند آن را بفهمد. برای درخت‌های کم‌عمق (یک تا سه سطح)، تفسیر بسیار آسان است.

توضیحات انسان‌پسند: ساختار درخت تصمیم توضیح‌هایی خوب، آن‌گونه که در فصل «توضیحات انسان‌پسند» تعریف شده، تولید می‌کند. این ساختار به‌طور طبیعی ما را به فکر کردن دربارهٔ پیش‌بینی هر نمونه به شکل خلاف‌واقع (counterfactual) دعوت می‌کند: «اگر یک ویژگی بزرگ‌تر/کوچک‌تر بود، پیش‌بینی به‌جای y2 برابر y1 می‌شد.» این توضیحات contrastive هستند، چون همیشه می‌توان پیش‌بینی یک نمونه را با سناریوهای «چه می‌شد اگر» مرتبط (که همان برگ‌های دیگر درخت هستند) مقایسه کرد. اگر درخت کوتاه باشد — مثلاً یک تا سه تقسیم عمق داشته باشد — توضیح‌های حاصل selective هم هستند: درختی با عمق سه، حداکثر به سه ویژگی و نقطهٔ تقسیم برای توضیح پیش‌بینی یک نمونه نیاز دارد. صداقت (truthfulness) پیش‌بینی به عملکرد پیش‌بینی درخت بستگی دارد. توضیح‌های درخت‌های کوتاه بسیار ساده و کلی هستند، چون در هر تقسیم، نمونه یا به یک برگ می‌رود یا به برگ دیگر، و تصمیم‌های دودویی به‌راحتی قابل‌فهم‌اند.

بی‌نیازی به تبدیل ویژگی: در مدل‌های خطی، گاهی لازم است از یک ویژگی لگاریتم گرفته شود. اما درخت تصمیم با هر تبدیل یکنوای یک ویژگی، به همان خوبی کار می‌کند و نیازی به نرمال‌سازی یا استانداردسازی نیست.

مقیاس ویژگی اهمیتی ندارد: CART و سایر الگوریتم‌های درخت نسبت به مقیاس و تبدیل‌های یکنوای ویژگی‌ها ناوردا (invariant) هستند. برای مثال، تبدیل واحد یک ویژگی از کیلوگرم به گرم (ضرب در ۱۰۰۰) مقدار نقطهٔ تقسیم را تغییر می‌دهد، اما ساختار کلی درخت بدون تغییر باقی می‌ماند.

تصمیم‌های دودویی ساده: درخت‌های کم‌عمق (۱ تا ۳ تقسیم) فقط به تعداد کمی ویژگی نیاز دارند و بسیار آسان درک می‌شوند.

محدودیت‌ها

ضعف در روابط خطی: وقتی رابطه واقعی بین ویژگی و خروجی خطی است، درخت تصمیم مجبور است آن را با یک تابع پله‌ای تقریب بزند. این تقریب ناکارآمد است و به تقسیم‌بندی‌های بسیار زیادی نیاز دارد تا به دقت یک خط مستقیم برسد.

ناپیوستگی پیش‌بینی‌ها (فقدان صافی): تغییرات جزئی در یک ویژگی ورودی می‌تواند تأثیر بزرگی روی پیش‌بینی داشته باشد، که معمولاً مطلوب نیست. فرض کنید درختی برای پیش‌بینی قیمت یک خانه، متراژ را یکی از ویژگی‌های تقسیم‌کننده انتخاب کرده و تقسیم دقیقاً در نقطهٔ ۱۰۰٫۵ متر مربع رخ می‌دهد. کاربری را تصور کنید که از این درخت برای برآورد قیمت خانه‌اش استفاده می‌کند: او خانه را اندازه می‌گیرد، به این نتیجه می‌رسد که مساحت آن ۹۹ متر مربع است، آن را در ماشین‌حساب قیمت وارد می‌کند و پیش‌بینی ۲۰۰٬۰۰۰ یورو دریافت می‌کند. سپس متوجه می‌شود که فراموش کرده یک انباری کوچک با مساحت ۲ متر مربع را اندازه بگیرد. این انباری دیوار شیب‌دار دارد، بنابراین کاربر مطمئن نیست که باید کل مساحت آن را حساب کند یا فقط نیمی از آن را. پس تصمیم می‌گیرد هر دو حالت ۱۰۰ و ۱۰۱ متر مربع را امتحان کند. نتیجه: ماشین‌حساب قیمت به ترتیب ۲۰۰٬۰۰۰ و ۲۰۵٬۰۰۰ یورو خروجی می‌دهد، که کاملاً ضدشهودی است، چرا که از ۹۹ به ۱۰۰ متر مربع هیچ تغییری در پیش‌بینی رخ نداده بود.

ناپایداری: درخت تصمیم واریانس بالایی دارد. تغییرات کوچک در داده‌های آموزشی می‌توانند ساختار کاملاً متفاوتی از درخت ایجاد کنند، چون هر تقسیم بعدی به نتیجه تقسیم‌های قبلی وابسته است. این ناپایداری یکی از دلایل اصلی محبوبیت جنگل تصادفی (Random Forest) است که با ترکیب درخت‌های متعدد این واریانس را کاهش می‌دهد.

مشکل مقیاس‌پذیری با عمق: تعداد گره‌های برگ با عمق به‌سرعت افزایش می‌یابد. یک درخت دودویی با عمق $d$ حداکثر $2^d$ گره برگ دارد. درخت با عمق ۱۰ می‌تواند تا ۱۰۲۴ برگ داشته باشد — تفسیر چنین درختی دیگر ممکن نیست.

نرم‌افزار

برای مثال‌های این فصل از بستهٔ rpart در R استفاده شده که الگوریتم CART (Classification and Regression Trees) را پیاده‌سازی می‌کند. CART در زبان‌های برنامه‌نویسی مختلف، از جمله Python، در دسترس است. باید توجه داشت که CART الگوریتمی نسبتاً قدیمی و تا حدی منسوخ‌شده است و الگوریتم‌های جدید و جالبی برای برازش درخت‌ها وجود دارند. برای مروری بر برخی از بسته‌های R مربوط به درخت تصمیم، می‌توانید به صفحهٔ CRAN Task View یادگیری ماشین و یادگیری آماری زیر کلیدواژهٔ «Recursive Partitioning» مراجعه کنید. در Python، بستهٔ imodels الگوریتم‌های مختلفی برای رشد درخت‌های تصمیم (مثلاً برازش حریصانه در برابر بهینه)، هرس درخت‌ها، و منظم‌سازی درخت‌ها ارائه می‌دهد.


درخت تصمیم انتخاب ایده‌آلی است وقتی تفسیرپذیری اولویت اول است، داده‌ها تعاملات غیرخطی دارند، یا می‌خواهیم یک مدل بصری برای ارائه به ذینفعان غیرفنی داشته باشیم. برای عملکرد پیش‌بینی بهتر، روش‌های گروهی مانند جنگل تصادفی یا گرادیان بوستینگ ترجیح دارند.

فصل ۱۰: قوانین تصمیم

عنوان اصلی: Decision Rules
منبع: https://christophm.github.io/interpretable-ml-book/rules.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


یک قانون تصمیم یک عبارت ساده IF-THEN است که از یک شرط (که پیش‌شرط یا antecedent نیز نامیده می‌شود) و یک پیش‌بینی تشکیل شده است. برای مثال:

اگر امروز باران ببارد و ماه آوریل باشد (شرط)، آن‌گاه فردا هم باران خواهد بارید (پیش‌بینی).

یک قانون تصمیم واحد یا ترکیبی از چند قانون می‌توانند برای پیش‌بینی به کار روند.

قوانین تصمیم از یک ساختار کلی پیروی می‌کنند: اگر شرایطی برآورده شود، آن‌گاه پیش‌بینی خاصی انجام می‌شود. قوانین تصمیم احتمالاً تفسیرپذیرترین مدل‌های پیش‌بینی هستند: ساختار IF-THEN آن‌ها از نظر معنایی شبیه زبان طبیعی و شیوهٔ فکر کردن ماست، به شرطی که شرط از ویژگی‌های قابل‌فهم ساخته شده باشد، طول شرط کوتاه باشد (تعداد کمی زوج ویژگی=مقدار که با AND ترکیب شده‌اند) و تعداد قوانین زیاد نباشد. در برنامه‌نویسی، نوشتن قوانین IF-THEN کاملاً طبیعی است. نکتهٔ جدید در یادگیری ماشین این است که این قوانین تصمیم توسط یک الگوریتم یاد گرفته می‌شوند.

تصور کنید از یک الگوریتم برای یادگیری قوانین تصمیم به‌منظور پیش‌بینی ارزش یک خانه (low، ok یا high) استفاده می‌کنیم. یکی از قوانینی که این مدل می‌آموزد می‌تواند این باشد: اگر خانه‌ای بزرگ‌تر از ۱۰۰ متر مربع باشد و باغ داشته باشد، آن‌گاه ارزش آن بالا است. به بیان رسمی‌تر:

اگر size>100 AND garden=1 آن‌گاه value=high.

بیایید این قانون تصمیم را تجزیه کنیم:

  • size>100 اولین شرط در بخش IF است.
  • garden=1 دومین شرط در بخش IF است.
  • این دو شرط با یک «AND» به هم متصل شده‌اند تا شرط جدیدی بسازند. هر دو باید درست باشند تا قانون اعمال شود.
  • نتیجهٔ پیش‌بینی‌شده (بخش THEN) برابر value=high است.

یک قانون تصمیم دست‌کم از یک عبارت ویژگی=مقدار در شرط استفاده می‌کند، بدون هیچ محدودیتی بر تعداد عباراتی که می‌توان با «AND» بیشتر به آن افزود. استثنا، قانون پیش‌فرض است که هیچ بخش IF صریحی ندارد و زمانی اعمال می‌شود که هیچ قانون دیگری اعمال نشود؛ در ادامه دربارهٔ آن بیشتر توضیح خواهیم داد.

سودمندی یک قانون تصمیم معمولاً با دو عدد خلاصه می‌شود: پوشش (support) و دقت (accuracy).

پوشش یا support یک قانون: درصد نمونه‌هایی که شرط یک قانون برای آن‌ها صدق می‌کند، پوشش نامیده می‌شود. برای نمونه، قانون size=big AND location=good THEN value=high را برای پیش‌بینی ارزش خانه در نظر بگیرید. فرض کنید ۱۰۰ خانه از ۱۰۰۰ خانه بزرگ و در موقعیت خوب باشند؛ در این صورت پوشش این قانون ۱۰٪ است. بخش پیش‌بینی (THEN) در محاسبهٔ پوشش اهمیتی ندارد.

دقت یا confidence یک قانون: دقت یک قانون معیاری است از اینکه قانون تا چه اندازه در پیش‌بینی کلاس درست برای نمونه‌هایی که شرط آن اعمال می‌شود، دقیق است. برای مثال: فرض کنید از ۱۰۰ خانه‌ای که قانون size=big AND location=good THEN value=high برای آن‌ها اعمال می‌شود، ۸۵ خانه value=high، ۱۴ خانه value=ok و ۱ خانه value=low دارند؛ در این صورت دقت قانون ۸۵٪ است.

معمولاً یک موازنه (trade-off) میان دقت و پوشش وجود دارد: با افزودن ویژگی‌های بیشتر به شرط، می‌توانیم به دقت بالاتری برسیم اما پوشش را از دست می‌دهیم.

برای ساختن یک طبقه‌بند خوب جهت پیش‌بینی ارزش خانه، ممکن است لازم باشد نه فقط یک قانون، بلکه شاید ۱۰ یا ۲۰ قانون یاد بگیرید. در این صورت اوضاع می‌تواند پیچیده‌تر شود و ممکن است با یکی از مشکلات زیر روبه‌رو شوید:

  • قوانین می‌توانند همپوشانی داشته باشند: چه می‌شود اگر بخواهم ارزش یک خانه را پیش‌بینی کنم و دو یا چند قانون اعمال شوند و پیش‌بینی‌های متناقضی به من بدهند؟
  • هیچ قانونی اعمال نمی‌شود: چه می‌شود اگر بخواهم ارزش یک خانه را پیش‌بینی کنم و هیچ‌کدام از قوانین اعمال نشوند؟

دو راهبرد اصلی برای ترکیب چندین قانون وجود دارد: فهرست‌های تصمیم (ordered، مرتب) و مجموعه‌های تصمیم (unordered، نامرتب). هر دو راهبرد راه‌حل‌های متفاوتی برای مسئلهٔ همپوشانی قوانین ارائه می‌دهند.

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

یک مجموعه تصمیم (decision set) شبیه دموکراسی قوانین است، با این تفاوت که برخی قوانین ممکن است قدرت رأی بیشتری داشته باشند. در یک مجموعه، قوانین یا متقابلاً منحصربه‌فرد (mutually exclusive) هستند یا راهبردی برای حل تعارض وجود دارد، مانند رأی‌گیری اکثریت که ممکن است با دقت هر قانون یا معیارهای کیفیت دیگر وزن‌دهی شود. وقتی چند قانون همزمان اعمال شوند، تفسیرپذیری می‌تواند آسیب ببیند.

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

روش‌های زیادی برای یادگیری قوانین از داده وجود دارد و این کتاب فاصلهٔ زیادی تا پوشش‌دادن همهٔ آن‌ها دارد. این فصل سه مورد از آن‌ها را نشان می‌دهد. این الگوریتم‌ها به گونه‌ای انتخاب شده‌اند که طیف گسترده‌ای از ایده‌های کلی برای یادگیری قوانین را پوشش دهند، بنابراین هر سه رویکردهای بسیار متفاوتی را نمایندگی می‌کنند.

۱. OneR قوانین را از یک ویژگی واحد یاد می‌گیرد. OneR با سادگی، تفسیرپذیری و کاربردش به‌عنوان یک معیار مرجع (benchmark) شناخته می‌شود. ۲. پوشش ترتیبی (Sequential covering) یک رویهٔ کلی است که به‌صورت تکراری قوانین را یاد می‌گیرد و نقاط داده‌ای را که توسط قانون جدید پوشش داده شده‌اند، حذف می‌کند. این رویه توسط بسیاری از الگوریتم‌های یادگیری قانون استفاده می‌شود. ۳. فهرست‌های قانون بیزی (Bayesian Rule Lists) الگوهای پرتکرار از‌پیش‌استخراج‌شده را با استفاده از آمار بیزی در یک فهرست تصمیم ترکیب می‌کنند. استفاده از الگوهای از‌پیش‌استخراج‌شده رویکردی رایج در بسیاری از الگوریتم‌های یادگیری قانون است.

بیایید با ساده‌ترین رویکرد شروع کنیم: استفاده از تنها بهترین ویژگی برای یادگیری قوانین.

یادگیری قانون از یک ویژگی واحد (OneR)

الگوریتم OneR (Holte, 1993) یکی از ساده‌ترین الگوریتم‌های استخراج قانون است. از میان همهٔ ویژگی‌ها، OneR ویژگی‌ای را انتخاب می‌کند که بیشترین اطلاعات را دربارهٔ نتیجهٔ مورد نظر حمل می‌کند و از این ویژگی، قوانین تصمیم می‌سازد.

با وجود نام OneR که مخفف «یک قانون» (One Rule) است، این الگوریتم بیش از یک قانون تولید می‌کند: در واقع به ازای هر مقدار منحصربه‌فرد ویژگیِ انتخاب‌شده، یک قانون ساخته می‌شود. نام مناسب‌تر برای آن OneFeatureRule (قانونِ یک‌ویژگی) بود.

این الگوریتم ساده و سریع است:

۱. ویژگی‌های پیوسته را با انتخاب بازه‌های مناسب، گسسته کنید. ۲. برای هر ویژگی:

  • یک جدول متقاطع بین مقادیر ویژگی و نتیجهٔ (دسته‌ای) بسازید.
  • برای هر مقدار ویژگی، قانونی بسازید که رایج‌ترین کلاس نمونه‌هایی را که آن مقدار ویژگی خاص را دارند پیش‌بینی کند (این کلاس را می‌توان از جدول متقاطع خواند).
  • خطای کل قوانینِ آن ویژگی را محاسبه کنید. ۳. ویژگی‌ای را که کمترین خطای کل را دارد، انتخاب کنید.

OneR همیشه تمام نمونه‌های مجموعه داده را پوشش می‌دهد، زیرا از تمام سطوح ویژگی انتخاب‌شده استفاده می‌کند. مقادیر گم‌شده را می‌توان یا به‌عنوان یک مقدار ویژگی اضافی در نظر گرفت یا از پیش جایگزین (impute) کرد.

یک مدل OneR در واقع یک درخت تصمیم با تنها یک تقسیم است. این تقسیم لزوماً دودویی (binary) نیست، برخلاف CART، بلکه به تعداد مقادیر منحصربه‌فرد ویژگی بستگی دارد.

نکته: OneR معیار مرجع خوبی برای مقایسه با مدل‌های پیچیده‌تر است.

بیایید مثالی را ببینیم که در آن بهترین ویژگی توسط OneR انتخاب می‌شود. جدول ۱۰.۱ یک مجموعه دادهٔ مصنوعی دربارهٔ خانه‌ها را با اطلاعاتی دربارهٔ ارزش، موقعیت، اندازه، و اینکه آیا نگهداری حیوان خانگی مجاز است یا نه نشان می‌دهد. ما به یادگیری یک مدل ساده برای پیش‌بینی ارزش خانه علاقه‌مندیم.

جدول ۱۰.۱: مجموعه دادهٔ مصنوعی برای ارزش خانه.

موقعیتاندازهحیوان خانگیارزش
خوبکوچکبلهبالا
خوببزرگخیربالا
خوببزرگخیربالا
بدمتوسطخیرمتوسط
خوبمتوسطفقط گربهمتوسط
خوبکوچکفقط گربهمتوسط
بدمتوسطبلهمتوسط
بدکوچکبلهپایین
بدمتوسطبلهپایین
بدکوچکخیرپایین

OneR قوانین را بر اساس جداول متقاطع بین هر ویژگی و نتیجه می‌سازد. جدول ۱۰.۲ سه جدول متقاطع را نشان می‌دهد.

جدول ۱۰.۲: جداول متقاطع بین هر ویژگی و هدف.

ارزش=پایینارزش=متوسطارزش=بالا
اندازه=بزرگ۰۰۲
اندازه=متوسط۱۳۰
اندازه=کوچک۲۱۱
حیوان=خیر۱۱۲
حیوان=فقط گربه۰۲۰
حیوان=بله۲۱۱
موقعیت=بد۳۲۰
موقعیت=خوب۰۲۳

برای هر ویژگی، سطر به سطر جدول را بررسی می‌کنیم: هر مقدار ویژگی، بخش IF یک قانون است؛ رایج‌ترین کلاس برای نمونه‌های دارای آن مقدار ویژگی، پیش‌بینی (بخش THEN) آن قانون است. برای مثال، ویژگی اندازه با سطوح کوچک، متوسط و بزرگ سه قانون تولید می‌کند. برای هر ویژگی، نرخ خطای کل قوانین تولیدشده را که مجموع خطاهاست، محاسبه می‌کنیم. ویژگی موقعیت مقادیر ممکن بد و خوب را دارد. رایج‌ترین مقدار برای خانه‌های در موقعیت بد پایین است و وقتی از پایین به‌عنوان پیش‌بینی استفاده کنیم، دو اشتباه می‌کنیم چون دو خانه ارزش متوسط دارند. مقدار پیش‌بینی‌شده برای خانه‌های در موقعیت خوب بالا است، و باز هم دو اشتباه می‌کنیم چون دو خانه ارزش متوسط دارند. خطایی که با ویژگی موقعیت مرتکب می‌شویم برابر ۴/۱۰ است، برای ویژگی اندازه ۳/۱۰ و برای ویژگی حیوان خانگی ۴/۱۰. ویژگی اندازه قوانینی با کمترین خطا تولید می‌کند و برای مدل نهایی OneR استفاده خواهد شد:

اگر size=small آن‌گاه value=low اگر size=medium آن‌گاه value=ok اگر size=big آن‌گاه value=high

برای درک بهتر (توضیح مترجم): به زبان ساده، OneR فقط یک سؤال می‌پرسد و بر اساس پاسخ آن تصمیم می‌گیرد. در مثال بالا آن سؤال «اندازهٔ خانه چقدر است؟» است، چون در مقایسه با «موقعیت» و «حیوان خانگی»، پاسخ به همین یک سؤال کمترین تعداد اشتباه (۳ اشتباه از ۱۰ خانه) را ایجاد می‌کند؛ بنابراین OneR این ویژگی را بر دو ویژگی دیگر ترجیح می‌دهد، حتی اگر ترکیب چند ویژگی با هم می‌توانست دقت بالاتری بدهد.

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

هشدار — استفاده از داده اعتبارسنجی: همیشه مدل انتخاب‌شده را با یک مجموعهٔ اعتبارسنجی جداگانه بررسی کنید تا مطمئن شوید روی داده‌های دیده‌نشده هم خوب عمل می‌کند، حتی اگر مدل شما یک «قانون واحد» ساده باشد.

مسئلهٔ دیگر، تساوی (ties) است، یعنی زمانی که دو ویژگی خطای کل یکسانی داشته باشند. OneR این تساوی‌ها را یا با انتخاب اولین ویژگی با کمترین خطا یا ویژگی‌ای که کمترین p-value را در یک آزمون کای‌دو (chi-squared) دارد، حل می‌کند.

مثال

بیایید OneR را روی داده‌های واقعی امتحان کنیم. از داده‌های پنگوئن‌های پالمر برای آزمایش الگوریتم OneR استفاده می‌کنیم. تمام ویژگی‌های پیوسته ورودی به ۵ کوانتیل گسسته شدند. قوانین ساخته‌شده توسط الگوریتم یادگیری OneR در جدول ۱۰.۳ نشان داده شده‌اند.

جدول ۱۰.۳: قانون یادگرفته‌شده توسط OneR برای طبقه‌بندی جنسیت پنگوئن.

bill_depth_mmپیش‌بینی
(13.1, 14.7]ماده
(14.7, 16.3]نر
(16.3, 18]ماده
(18, 19.6]نر
(19.6, 21.2]نر

ویژگی bill_depth_mm (عمق منقار) توسط OneR به‌عنوان بهترین ویژگی پیش‌بینی‌کننده انتخاب شد. برای درک بهتر عملکرد این تک‌قانون، بیایید نگاهی به جدول متقاطع بین ویژگی گسسته‌شدهٔ bill_depth_mm و گونهٔ پنگوئن بیندازیم؛ به جدول ۱۰.۴ مراجعه کنید.

جدول ۱۰.۴: ماتریس درهم‌ریختگی برای قانون طبقه‌بندی جنسیت پنگوئن که توسط OneR یافت شده است.

bill_depth_mmمادهنر
[13.1, 14.7)۸۶.۷٪ (۱۳)۱۳.۳٪ (۲)
[14.7, 16.3)۳۸.۵٪ (۱۰)۶۱.۵٪ (۱۶)
[16.3, 18)۷۲.۰٪ (۱۸)۲۸.۰٪ (۷)
[18, 19.6)۳۴.۴٪ (۱۱)۶۵.۶٪ (۲۱)
[19.6, 21.2)۰٪ (۰)۱۰۰٪ (۱۲)

می‌بینیم که این ویژگی به‌ویژه برای طبقه‌بندی پنگوئن‌هایی با منقار عمیق مفید است. پنگوئن‌هایی با عمق منقار بیش از ۱.۹۸ سانتی‌متر به احتمال زیاد نر هستند. منقارهای بسیار کم‌عمق احتمال زیادی می‌دهند که با یک پنگوئن ماده سروکار داریم. نکتهٔ احتیاط: این مدل گونه (species) را نادیده می‌گیرد، یا بهتر بگوییم همهٔ گونه‌ها را با هم قاطی می‌کند. برای رفع این مشکل، می‌توانستیم یک مدل جداگانه برای هر گونه آموزش دهیم.

OneR ذاتاً از وظایف رگرسیون پشتیبانی نمی‌کند. اما می‌توانیم یک وظیفهٔ رگرسیون را با بریدن (cutting) خروجی پیوسته به بازه‌ها، به یک وظیفهٔ دسته‌بندی تبدیل کنیم. از این ترفند برای پیش‌بینی تعداد دوچرخه‌های اجاره‌شده با OneR استفاده می‌کنیم، با بریدن تعداد دوچرخه‌ها به چهار چارک آن (۰ تا ۲۵٪، ۲۵ تا ۵۰٪، ۵۰ تا ۷۵٪ و ۷۵ تا ۱۰۰٪). جدول ۱۰.۵ ویژگی انتخاب‌شده پس از برازش مدل OneR را نشان می‌دهد: ویژگی انتخاب‌شده تعداد کرایهٔ دوچرخهٔ روز قبل است.

جدول ۱۰.۵: قانون طبقه‌بندی OneR برای داده‌های کرایهٔ دوچرخه.

cnt_2d_bfrپیش‌بینی
(13.3, 1760][22, 3193]
(1760, 3500][22, 3193]
(3500, 5240](4551, 5978.5]
(5240, 6980](5978.5, 8714]
(6980, 8720](5978.5, 8714]

اکنون از الگوریتم سادهٔ OneR به سمت رویه‌ای پیچیده‌تر حرکت می‌کنیم که از قوانین با شرط‌های پیچیده‌تر متشکل از چند ویژگی استفاده می‌کند: پوشش ترتیبی (Sequential Covering).

پوشش ترتیبی (Sequential Covering)

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

ایده ساده است: نخست، قانون خوبی پیدا کنید که برای برخی از نقاط داده اعمال می‌شود. تمام نقاط داده‌ای را که توسط این قانون پوشش داده شده‌اند حذف کنید. یک نقطهٔ داده زمانی پوشش‌داده‌شده است که شرط‌ها برای آن اعمال شوند، فارغ از اینکه آن نقطه به‌درستی طبقه‌بندی شده باشد یا نه. یادگیری قانون و حذف نقاط پوشش‌داده‌شده را با نقاط باقی‌مانده تکرار کنید تا نقطه‌ای باقی نماند یا شرط توقف دیگری برآورده شود. نتیجه یک فهرست تصمیم است. به این رویکردِ یادگیری مکرر قانون و حذف نقاط پوشش‌داده‌شده، «جداسازی و تسخیر» (separate-and-conquer) گفته می‌شود.

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

  • با یک فهرست خالی از قوانین (rlist) شروع کنید.
  • یک قانون $r$ یاد بگیرید.
  • تا زمانی که فهرست قوانین زیر یک آستانهٔ کیفیت مشخص باشد (یا نمونه‌های مثبت هنوز پوشش داده نشده باشند):
    • قانون $r$ را به rlist اضافه کنید.
    • تمام نقاط داده‌ای را که توسط قانون $r$ پوشش داده شده‌اند حذف کنید.
    • روی داده‌های باقی‌مانده، قانون دیگری یاد بگیرید.
  • فهرست تصمیم را برگردانید.

مراحل الگوریتم پوشش ترتیبی

شکل ۱۰.۱: مراحل الگوریتم پوشش ترتیبی. در گام نخست، یک قانون که بخشی از داده را به‌خوبی پوشش می‌دهد پیدا می‌شود (مربع مشکی رسم‌شده دور نمونه‌ها). در گام دوم، تمام نمونه‌های درون آن ناحیه از داده حذف می‌شوند. در گام سوم، الگوریتم روی داده‌های باقی‌مانده به دنبال قانون بعدی می‌گردد.

برای نمونه: وظیفه و مجموعه داده‌ای برای پیش‌بینی ارزش خانه‌ها بر اساس اندازه، موقعیت، و اینکه آیا نگهداری حیوان خانگی مجاز است یا نه داریم. اولین قانونی که یاد می‌گیریم این است: اگر size=big و location=good، آن‌گاه value=high. سپس تمام خانه‌های بزرگ در موقعیت خوب را از مجموعه داده حذف می‌کنیم. با داده‌های باقی‌مانده، قانون بعدی را یاد می‌گیریم؛ شاید: اگر location=good، آن‌گاه value=ok. توجه کنید که این قانون روی داده‌ای یاد گرفته می‌شود که دیگر خانه‌های بزرگ در موقعیت خوب را ندارد، و فقط خانه‌های متوسط و کوچک در موقعیت خوب باقی مانده‌اند.

برای مسائل چندکلاسه، رویکرد باید تغییر کند. نخست، کلاس‌ها بر اساس فراوانیِ فزاینده مرتب می‌شوند. الگوریتم پوشش ترتیبی با کم‌تکرارترین کلاس شروع می‌کند، برای آن یک قانون یاد می‌گیرد، تمام نمونه‌های پوشش‌داده‌شده را حذف می‌کند، سپس به سراغ دومین کلاس کم‌تکرار می‌رود، و به همین ترتیب ادامه می‌دهد. کلاس جاری همیشه به‌عنوان کلاس مثبت در نظر گرفته می‌شود و تمام کلاس‌های با فراوانی بالاتر در کلاس منفی ترکیب می‌شوند. آخرین کلاس همان قانون پیش‌فرض است. به این رویکرد در دسته‌بندی، راهبرد یک-در-برابر-همه (one-versus-all) نیز گفته می‌شود.

چگونه یک قانون واحد یاد می‌گیریم؟ الگوریتم OneR در اینجا کارساز نیست، چون همیشه کل فضای ویژگی را پوشش می‌دهد. اما راه‌های دیگر زیادی وجود دارد. یک امکان، یادگیری یک قانون واحد از یک درخت تصمیم با جست‌وجوی پرتوی (beam search) است:

  • یک درخت تصمیم (با CART یا الگوریتم دیگری برای یادگیری درخت) یاد بگیرید.
  • از گره ریشه شروع کنید و به‌طور بازگشتی خالص‌ترین گره را انتخاب کنید (مثلاً گره‌ای با کمترین نرخ طبقه‌بندی نادرست).
  • کلاس اکثریت گرهٔ پایانی به‌عنوان پیش‌بینی قانون و مسیر منتهی به آن گره به‌عنوان شرط قانون استفاده می‌شود.

یادگیری یک قانون با جست‌وجوی یک مسیر در درخت تصمیم

شکل ۱۰.۲: قانونی که با جست‌وجوی یک مسیر در یک درخت تصمیم یاد گرفته شده است. نتیجه این می‌شود: اگر location=good و size=big، آن‌گاه value=high.

یادگیری یک قانون واحد یک مسئلهٔ جست‌وجو است، که در آن فضای جست‌وجو، فضای همهٔ قوانین ممکن است. هدف جست‌وجو، یافتن بهترین قانون بر اساس معیاری مشخص است. راهبردهای جست‌وجوی متفاوت زیادی وجود دارد: کوه‌نوردی (hill-climbing)، جست‌وجوی پرتوی (beam search)، جست‌وجوی جامع (exhaustive search)، جست‌وجوی بهترین-اول (best-first search)، جست‌وجوی مرتب (ordered search)، جست‌وجوی تصادفی (stochastic search)، جست‌وجوی بالا-به-پایین (top-down)، جست‌وجوی پایین-به-بالا (bottom-up) و غیره.

RIPPER (Repeated Incremental Pruning to Produce Error Reduction، Cohen, 1995) یکی از انواع الگوریتم پوشش ترتیبی است. RIPPER کمی پیچیده‌تر است و از یک مرحلهٔ پس‌پردازش (هرس قوانین) برای بهینه‌سازی فهرست (یا مجموعهٔ) تصمیم استفاده می‌کند. RIPPER می‌تواند در حالت مرتب یا نامرتب اجرا شود و فهرست تصمیم یا مجموعهٔ تصمیم تولید کند.

مثال‌ها

نخست، قوانین را برای وظیفهٔ طبقه‌بندی جنسیت پنگوئن استخراج می‌کنیم. قوانین به‌همراه قانون پیش‌فرض در جدول ۱۰.۶ چاپ شده‌اند. تفسیر آن ساده است: برای پیش‌بینی یک نمونهٔ جدید، از بالای فهرست شروع کنید و بررسی کنید آیا یک قانون اعمال می‌شود. اگر شرط‌ها برقرار باشند، گونه‌ای که در سمت راست قانون آمده را پیش‌بینی کنید. اگر برقرار نباشند، به قانون بعدی بروید تا به یک طبقه‌بندی برسید. قانون پیش‌فرض تضمین می‌کند که همیشه یک پیش‌بینی وجود داشته باشد.

جدول ۱۰.۶: قوانین یادگرفته‌شده توسط JRip برای وظیفهٔ طبقه‌بندی پنگوئن.

قوانین
(body_mass_g ≤ 3700) و (bill_depth_mm ≤ 18.5) ⟹ جنس=ماده
(bill_depth_mm ≤ 14.8) و (body_mass_g ≤ 5200) ⟹ جنس=ماده
(body_mass_g ≤ 3850) و (bill_length_mm ≤ 36.9) ⟹ جنس=ماده
⟹ جنس=نر (قانون پیش‌فرض)

RIPPER راهی مشخص برای حل تعارض میان قوانین دارد: قوانین را به‌ترتیب اعمال می‌کند. این تنها یکی از راهبردهای کلی ممکن است؛ راهبردهای دیگر از استفاده از قانونی با اختصاصی‌ترین بخش IF تا استفاده از قانونی با بالاترین دقت (precision) را نیز شامل می‌شوند.

وقتی RIPPER را برای پیش‌بینی تعداد کرایهٔ دوچرخه روی یک وظیفهٔ رگرسیون به کار می‌بریم، چند قانون یافت می‌شود. از آنجا که RIPPER فقط برای دسته‌بندی کار می‌کند، تعداد دوچرخه‌ها باید به یک نتیجهٔ دسته‌ای تبدیل شود؛ این کار با بریدن تعداد دوچرخه‌ها به چارک‌ها انجام شده است. برای مثال، بازهٔ $[4548, 5956]$ تعداد پیش‌بینی‌شدهٔ دوچرخه‌ها را بین ۴۵۴۸ و ۵۹۵۶ پوشش می‌دهد. جدول ۱۰.۷ فهرست تصمیمِ قوانین یادگرفته‌شده را نشان می‌دهد. تفسیر باز هم همان است: اگر شرط‌ها برقرار باشند، بازهٔ سمت راست را برای تعداد دوچرخه‌ها پیش‌بینی می‌کنیم. من از قوانین تصمیم این مثال چندان راضی نیستم. ماهیت ویژگی cnt_2d_bfr تعدیل روند کلی کرایهٔ دوچرخه است. cnt و cnt_2d_bfr رابطه‌ای خطی دارند که قوانین تصمیم به‌سختی می‌توانند آن را بازتاب دهند.

جدول ۱۰.۷: قوانین JRip برای وظیفهٔ کرایهٔ دوچرخه.

قوانین
(cnt_2d_bfr ≤ 5729) و (cnt_2d_bfr ≥ 4780) و (temp ≤ 26) ⟹ cnt=(4551,5978.5]
(temp ≥ 14) و (cnt_2d_bfr ≤ 5515) و (hum ≤ 63) و (cnt_2d_bfr ≥ 3574) و (temp ≤ 27) ⟹ cnt=(4551,5978.5]
(cnt_2d_bfr ≥ 3544) و (cnt_2d_bfr ≤ 3915) و (temp ≥ 17) و (temp ≤ 28) ⟹ cnt=(4551,5978.5]
(cnt_2d_bfr ≤ 5336) و (cnt_2d_bfr ≥ 2914) و (weather = GOOD) و (temp ≥ 7) ⟹ cnt=(3193,4551]
(cnt_2d_bfr ≤ 4833) و (cnt_2d_bfr ≥ 2169) و (hum ≤ 72) و (workday = Y) ⟹ cnt=(3193,4551]
(cnt_2d_bfr ≤ 4097) و (season = WINTER) ⟹ cnt=[22,3193]
(cnt_2d_bfr ≤ 4570) و (temp ≤ 13) ⟹ cnt=[22,3193]
(hum ≥ 88) و (season = FALL) ⟹ cnt=[22,3193]
(cnt_2d_bfr ≤ 3351) و (cnt_2d_bfr ≥ 2710) ⟹ cnt=[22,3193]
⟹ cnt=(5978.5,8714] (قانون پیش‌فرض)

فهرست‌های قانون بیزی (Bayesian Rule Lists)

در این بخش، رویکرد دیگری برای یادگیری یک فهرست تصمیم نشان داده می‌شود که این دستورالعمل کلی را دنبال می‌کند:

۱. الگوهای پرتکرار را از داده از پیش استخراج کنید تا به‌عنوان شرط قوانین تصمیم استفاده شوند. ۲. یک فهرست تصمیم را از میان زیرمجموعه‌ای از قوانین از‌پیش‌استخراج‌شده یاد بگیرید.

رویکرد مشخصی که این دستورالعمل را دنبال می‌کند، فهرست‌های قانون بیزی (Letham et al., 2015) یا به‌اختصار BRL نامیده می‌شود. BRL از آمار بیزی برای یادگیری فهرست‌های تصمیم از الگوهای پرتکراری استفاده می‌کند که با الگوریتم FP-tree (Borgelt, 2005) از‌پیش استخراج شده‌اند.

اما بیایید آرام‌آرام با گام اول BRL شروع کنیم.

پیش‌استخراج الگوهای پرتکرار

یک الگوی پرتکرار (frequent pattern) هم‌رخدادی مکرر مقادیر ویژگی است. به‌عنوان یک مرحلهٔ پیش‌پردازش برای الگوریتم BRL، از ویژگی‌ها (در این مرحله به نتیجهٔ هدف نیازی نیست) استفاده می‌کنیم و الگوهای پرتکرار را از آن‌ها استخراج می‌کنیم. یک الگو می‌تواند یک مقدار ویژگی واحد مانند size=medium یا ترکیبی از مقادیر ویژگی مانند size=medium AND location=bad باشد.

فراوانی یک الگو با پوشش (support) آن در مجموعه داده اندازه‌گیری می‌شود:

$$Support(\mathbf{x}_j=A)=\frac{1}{n}\sum_{i=1}^nI(x^{(i)}_{j}=A)$$

که در آن $A$ مقدار ویژگی، $n$ تعداد نقاط داده در مجموعه داده، و $I$ تابع نشانگر (indicator function) است که اگر ویژگی $x_j$ نمونهٔ $i$ سطح $A$ داشته باشد ۱ و در غیر این صورت ۰ برمی‌گرداند. در مجموعه‌داده‌ای از ارزش خانه‌ها، اگر ۲۰٪ خانه‌ها بالکن نداشته باشند و ۸۰٪ یک یا چند بالکن داشته باشند، پوشش الگوی balcony=0 برابر ۲۰٪ خواهد بود. پوشش را می‌توان برای ترکیب مقادیر ویژگی نیز اندازه گرفت، برای مثال برای balcony=0 AND pets=allowed.

الگوریتم‌های زیادی برای یافتن چنین الگوهای پرتکراری وجود دارند، برای مثال Apriori یا FP-Growth. اینکه کدام‌یک را استفاده کنید چندان اهمیتی ندارد؛ تنها سرعت یافتن الگوها متفاوت است، اما الگوهای به‌دست‌آمده همیشه یکسان‌اند.

اجازه دهید ایدهٔ کلی‌ای از نحوهٔ کار الگوریتم Apriori در یافتن الگوهای پرتکرار ارائه دهم. در واقع، الگوریتم Apriori از دو بخش تشکیل شده است، که بخش نخست الگوهای پرتکرار را می‌یابد و بخش دوم از آن‌ها قوانین انجمنی (association rules) می‌سازد. برای الگوریتم BRL، ما فقط به الگوهای پرتکراری که در بخش نخست Apriori تولید می‌شوند علاقه‌مندیم.

در گام نخست، الگوریتم Apriori با تمام مقادیر ویژگی‌ای شروع می‌کند که پوششی بزرگ‌تر از حداقل پوشش تعیین‌شده توسط کاربر دارند. اگر کاربر بگوید حداقل پوشش باید ۱۰٪ باشد و تنها ۵٪ خانه‌ها size=big داشته باشند، آن مقدار ویژگی را حذف می‌کنیم و فقط size=medium و size=small را به‌عنوان الگو نگه می‌داریم. این به این معنا نیست که خانه‌ها از داده حذف می‌شوند؛ فقط یعنی size=big به‌عنوان یک الگوی پرتکرار بازگردانده نمی‌شود. بر اساس الگوهای پرتکرار با یک مقدار ویژگی واحد، الگوریتم Apriori به‌طور تکراری تلاش می‌کند ترکیب‌هایی از مقادیر ویژگی با مرتبهٔ فزاینده پیدا کند. الگوها با ترکیب عبارت‌های ویژگی=مقدار با عملگر منطقی AND ساخته می‌شوند، مثلاً size=medium AND location=bad. الگوهای تولیدشده‌ای که پوششی کمتر از حداقل پوشش داشته باشند حذف می‌شوند. در پایان، تمام الگوهای پرتکرار را در اختیار داریم.

هر زیرمجموعه‌ای از شرط‌های یک الگوی پرتکرار نیز پرتکرار است، که به آن ویژگی Apriori گفته می‌شود. این موضوع شهوداً منطقی است: با حذف یک شرط از یک الگو، الگوی کاسته‌شده تنها می‌تواند تعداد نقاط دادهٔ بیشتر یا برابر را پوشش دهد، نه کمتر. برای مثال، اگر ۲۰٪ خانه‌ها size=medium AND location=good باشند، آن‌گاه پوشش خانه‌هایی که فقط size=medium هستند ۲۰٪ یا بیشتر خواهد بود. از ویژگی Apriori برای کاهش تعداد الگوهایی که باید بررسی شوند استفاده می‌شود: فقط در صورتی که یک الگو پرتکرار باشد، نیاز داریم الگوهای مرتبهٔ بالاتر را بررسی کنیم.

اکنون گام پیش‌استخراج شرط‌ها برای الگوریتم فهرست‌های قانون بیزی به پایان رسیده است. اما پیش از رفتن به گام دوم BRL، مایلم به راه دیگری برای یادگیری قانون بر پایهٔ الگوهای از‌پیش‌استخراج‌شده اشاره کنم. رویکردهای دیگر پیشنهاد می‌کنند نتیجهٔ موردعلاقه نیز در فرآیند استخراج الگوی پرتکرار گنجانده شود و بخش دوم الگوریتم Apriori، که قوانین IF-THEN می‌سازد، نیز اجرا شود. از آنجا که این الگوریتم بدون‌نظارت (unsupervised) است، بخش THEN نیز شامل مقادیر ویژگی‌ای می‌شود که به آن‌ها علاقه‌ای نداریم. اما می‌توانیم قوانینی را فیلتر کنیم که فقط نتیجهٔ موردعلاقه در بخش THEN آن‌ها باشد. این قوانین از پیش یک مجموعهٔ تصمیم را تشکیل می‌دهند، اما امکان مرتب‌کردن، هرس، حذف یا ترکیب دوبارهٔ آن‌ها هم وجود دارد.

با این حال، در رویکرد BRL، ما با الگوهای پرتکرار کار می‌کنیم و بخش THEN و چگونگی چیدن الگوها در یک فهرست تصمیم را با استفاده از آمار بیزی یاد می‌گیریم.

یادگیری فهرست‌های قانون بیزی

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

توزیع احتمال پسینِ فهرست‌ها این امکان را می‌دهد که بگوییم یک فهرست تصمیم مشخص، با توجه به فرضیات کوتاهی و میزان برازش آن با داده، چقدر محتمل است. هدف ما یافتن فهرستی است که این احتمال پسین را بیشینه کند. از آنجا که یافتن مستقیمِ دقیقِ بهترین فهرست از توزیع فهرست‌ها ممکن نیست، BRL دستورالعمل زیر را پیشنهاد می‌کند:

۱. یک فهرست تصمیم اولیه تولید کنید که به‌طور تصادفی از توزیع پیشین کشیده شده است. ۲. فهرست را به‌طور تکراری با افزودن، جابه‌جایی یا حذف قوانین تغییر دهید، به‌گونه‌ای که فهرست‌های حاصل از توزیع پسینِ فهرست‌ها پیروی کنند. ۳. از میان فهرست‌های نمونه‌برداری‌شده، فهرستی را با بیشترین احتمال بر اساس توزیع پسین انتخاب کنید.

بیایید الگوریتم را از نزدیک‌تر بررسی کنیم: الگوریتم با پیش‌استخراج الگوهای مقدار ویژگی با الگوریتم FP-Growth شروع می‌شود. BRL چند فرض دربارهٔ توزیع هدف و توزیع پارامترهایی که توزیع هدف را تعریف می‌کنند در نظر می‌گیرد (این همان آمار بیزی است). اگر با آمار بیزی آشنا نیستید، لازم نیست خیلی درگیر جزئیات زیر شوید؛ نکتهٔ مهم این است که بدانید رویکرد بیزی راهی است برای ترکیب دانش یا نیازهای موجود (به‌اصطلاح توزیع‌های پیشین) همراه با برازش به داده. در مورد فهرست‌های تصمیم، رویکرد بیزی منطقی است، چون فرضیات پیشین، فهرست‌های تصمیم را به سمت کوتاه‌بودن و داشتن قوانین کوتاه سوق می‌دهند.

هدف، نمونه‌برداری از فهرست‌های تصمیم $d$ از توزیع پسین زیر است:

$$p(d \mid \mathbf{x}, \mathbf{y}, A, \alpha, \lambda, \eta) \propto p(\mathbf{y} \mid \mathbf{x}, d, \alpha) \cdot p(d \mid A, \lambda, \eta)$$

که در آن $d$ یک فهرست تصمیم، $\mathbf{x}$ ویژگی‌ها، $\mathbf{y}$ هدف، $A$ مجموعهٔ شرط‌های از‌پیش‌استخراج‌شده، $\lambda$ طول انتظاری پیشین فهرست‌های تصمیم، $\eta$ تعداد انتظاری پیشین شرط‌ها در هر قانون، و $\alpha$ شبه‌شمار پیشین (prior pseudo-count) برای کلاس‌های مثبت و منفی است که بهتر است روی $(1,1)$ ثابت شود.

$$p(d \mid \mathbf{x}, \mathbf{y}, A, \alpha, \lambda, \eta)$$

نشان می‌دهد که با توجه به داده‌های مشاهده‌شده و فرضیات پیشین، یک فهرست تصمیم چقدر محتمل است. این عبارت متناسب است با درستنمایی نتیجهٔ $Y$ با توجه به فهرست تصمیم و داده، ضربدر احتمال آن فهرست با توجه به فرضیات پیشین و شرط‌های از‌پیش‌استخراج‌شده.

$$p(\mathbf{y} \mid \mathbf{x}, d, \alpha)$$

درستنمایی $y$ مشاهده‌شده با توجه به فهرست تصمیم و داده است. BRL فرض می‌کند $y$ توسط یک توزیع Dirichlet-Multinomial تولید شده است. هرچه فهرست تصمیم $d$ داده را بهتر توضیح دهد، این درستنمایی بزرگ‌تر است.

$$p(d \mid A, \lambda, \eta)$$

توزیع پیشین فهرست‌های تصمیم است. این توزیع، به‌صورت ضربی، یک توزیع پواسون بریده‌شده (پارامتر $\lambda$) برای تعداد قوانین در فهرست و یک توزیع پواسون بریده‌شده (پارامتر $\eta$) برای تعداد مقادیر ویژگی در شرط‌های قوانین را ترکیب می‌کند.

اگر یک فهرست تصمیم هم نتیجهٔ $y$ را خوب توضیح دهد و هم با توجه به فرضیات پیشین محتمل باشد، احتمال پسین بالایی خواهد داشت.

برآوردها در آمار بیزی همیشه کمی دشوارند، چون معمولاً نمی‌توانیم مستقیماً پاسخ درست را محاسبه کنیم، بلکه باید کاندیداها را نمونه‌برداری کنیم، آن‌ها را ارزیابی کنیم و برآوردهای پسینِ خود را با روش زنجیرهٔ مارکوف مونت‌کارلو به‌روزرسانی کنیم. برای فهرست‌های تصمیم، این کار حتی دشوارتر است، چون باید از توزیع فهرست‌های تصمیم نمونه‌برداری کنیم. نویسندگان BRL پیشنهاد می‌کنند ابتدا یک فهرست تصمیم اولیه بکشیم و سپس آن را به‌طور تکراری تغییر دهیم تا نمونه‌هایی از فهرست‌های تصمیم را از توزیع پسینِ فهرست‌ها (یک زنجیرهٔ مارکوف از فهرست‌های تصمیم) تولید کنیم. نتایج به‌طور بالقوه به فهرست تصمیم اولیه وابسته‌اند، بنابراین توصیه می‌شود این رویه تکرار شود تا تنوع خوبی از فهرست‌ها تضمین شود. مقدار پیش‌فرض در پیاده‌سازی نرم‌افزار، ۱۰ بار است. دستورالعمل زیر نحوهٔ ساخت یک فهرست تصمیم اولیه را نشان می‌دهد:

  • الگوها با استفاده از FP-Growth از‌پیش استخراج می‌شوند.
  • پارامتر طول فهرست $m$ از یک توزیع پواسون بریده‌شده نمونه‌برداری می‌شود.
  • برای قانون پیش‌فرض: پارامتر توزیع Dirichlet-Multinomial مقدار هدف ($\theta_0$) نمونه‌برداری می‌شود (یعنی قانونی که وقتی هیچ قانون دیگری اعمال نشود به کار می‌رود).
  • برای قانون $j=1,\ldots,m$ در فهرست تصمیم:
    • پارامتر طول قانون $l$ (تعداد شرط‌ها) برای قانون $j$ نمونه‌برداری می‌شود.
    • یک شرط با طول $l_j$ از میان شرط‌های از‌پیش‌استخراج‌شده نمونه‌برداری می‌شود.
    • پارامتر توزیع Dirichlet-Multinomial برای بخش THEN (یعنی برای توزیع نتیجهٔ هدف با توجه به قانون) نمونه‌برداری می‌شود.
  • برای هر مشاهده در مجموعه داده:
    • قانونی از فهرست تصمیم که نخست اعمال می‌شود (از بالا به پایین) پیدا می‌شود.
    • نتیجهٔ پیش‌بینی‌شده از توزیع احتمال (دوجمله‌ای) پیشنهادشده توسط قانونِ اعمال‌شده کشیده می‌شود.

گام بعدی، تولید فهرست‌های جدید زیاد با شروع از این نمونهٔ اولیه است تا نمونه‌های زیادی از توزیع پسینِ فهرست‌های تصمیم به دست آید.

فهرست‌های تصمیم جدید با شروع از فهرست اولیه و سپس با جابه‌جاییِ تصادفی یک قانون به موقعیت دیگری در فهرست، یا افزودن یک قانون از میان شرط‌های از‌پیش‌استخراج‌شده به فهرست تصمیم جاری، یا حذف یک قانون از فهرست تصمیم، نمونه‌برداری می‌شوند. اینکه کدام قانون جابه‌جا، اضافه یا حذف شود، به‌طور تصادفی انتخاب می‌شود. در هر گام، الگوریتم احتمال پسینِ فهرست تصمیم (ترکیبی از دقت و کوتاهی) را ارزیابی می‌کند. الگوریتم متروپلیس-هستینگز (Metropolis Hastings) تضمین می‌کند که فهرست‌های تصمیمی نمونه‌برداری شوند که احتمال پسین بالایی دارند. این رویه، نمونه‌های زیادی از توزیع فهرست‌های تصمیم در اختیار ما می‌گذارد. الگوریتم BRL از میان این نمونه‌ها، فهرست تصمیمی را با بیشترین احتمال پسین انتخاب می‌کند.

مثال‌ها

بحث نظری به پایان رسید؛ حالا بیایید روش BRL را در عمل ببینیم. مثال‌ها از نسخهٔ سریع‌تر BRL به نام Scalable Bayesian Rule Lists (SBRL؛ Yang, Rudin, and Seltzer, 2017) استفاده می‌کنند. از الگوریتم SBRL برای پیش‌بینی گونهٔ پنگوئن‌ها استفاده می‌کنیم. برای اینکه الگوریتم SBRL کار کند، لازم بود همهٔ ویژگی‌های ورودی را گسسته کنم. این کار را با دسته‌بندی ویژگی‌های پیوسته بر اساس فراوانی مقادیر با کوانتیل‌ها انجام دادم. قوانین نمایش‌داده‌شده در جدول ۱۰.۸ به‌دست می‌آیند.

جدول ۱۰.۸: قوانین مدل SBRL.

قوانین
اگر {body_mass_g=[5100,6300]} آن‌گاه p(نر) = 0.083
در غیر این صورت اگر {species=Gentoo} آن‌گاه p(نر) = 0.873
در غیر این صورت اگر {body_mass_g=[3900,5100)} آن‌گاه p(نر) = 0.066
در غیر این صورت اگر {bill_depth_mm=[15.9,18.7)} آن‌گاه p(نر) = 0.876
در غیر این صورت (قانون پیش‌فرض) آن‌گاه p(نر) = 0.333

شرط‌ها از میان الگوهایی انتخاب شدند که با الگوریتم FP-Growth از‌پیش استخراج شده بودند. جدول زیر بخشی از انبار شرط‌هایی را نشان می‌دهد که الگوریتم SBRL می‌توانست از میان آن‌ها برای ساخت فهرست تصمیم انتخاب کند. حداکثر تعداد مقادیر ویژگی مجاز در یک شرط، که به‌عنوان کاربر تعیین کردم، دو بود. جدول ۱۰.۹ نمونه‌ای از ده الگو را نشان می‌دهد.

جدول ۱۰.۹: نمونه‌ای از شرط‌های از‌پیش‌استخراج‌شده برای وظیفهٔ طبقه‌بندی پنگوئن.

شرط‌های پیش‌استخراج‌شده
species=Gentoo, bill_depth_mm=[13.1, 15.9)
body_mass_g=[2700, 3900)
bill_depth_mm=[13.1, 15.9), bill_length_mm=[41.3, 50.4)
bill_length_mm=[41.3, 50.4)
flipper_length_mm=[172, 192), body_mass_g=[3900, 5100)
bill_depth_mm=[15.9, 18.7), flipper_length_mm=[211, 231]
species=Adelie
species=Adelie, bill_depth_mm=[15.9, 18.7)
bill_depth_mm=[18.7, 21.5], flipper_length_mm=[172, 192)
species=Adelie, bill_length_mm=[41.3, 50.4)

تُنُکی (sparsity) پادشاه است: قوانین کمتر و کوتاه‌تر، تفسیر مدل را بهتر می‌کنند. اما یک موازنه (trade-off) با پیچیدگی و در نتیجه با عملکرد پیش‌بینی وجود دارد.

توضیح مترجم: بخش فهرست‌های قانون بیزی چند فرمول دارد که ممکن است در نگاه اول پیچیده به نظر برسند؛ اما ایدهٔ پشت همهٔ آن‌ها یک قاعدهٔ ساده و بسیار معروف در آمار به نام قاعدهٔ بیز (Bayes' theorem) است:

$$\underbrace{p(\text{فرضیه} \mid \text{داده})}_{\text{پسین (posterior)}} ;\propto; \underbrace{p(\text{داده} \mid \text{فرضیه})}_{\text{درست‌نمایی (likelihood)}} \times \underbrace{p(\text{فرضیه})}_{\text{پیشین (prior)}}$$

به زبان ساده: باور نهایی ما دربارهٔ یک «فرضیه» (اینجا: یک فهرست تصمیم خاص) از ترکیب دو چیز به دست می‌آید — باور اولیهٔ ما پیش از دیدن داده («پیشین»، مثلاً اینکه فهرست‌های کوتاه‌تر را ترجیح می‌دهیم) و اینکه آن فرضیه چقدر خوب با داده‌های واقعی جور در می‌آید («درست‌نمایی»). هرچه یک فهرست هم کوتاه‌تر باشد و هم داده را بهتر توضیح دهد، احتمال پسین آن بالاتر می‌رود. تصویر زیر همین رابطهٔ بین پیشین، درست‌نمایی و پسین را به‌صورت هندسی نشان می‌دهد: ناحیهٔ اشتراکِ «فرضیه» و «داده» (که همان پسین است) از ضرب سهم هر کدام به دست می‌آید.

اثبات تصویری قاعدهٔ بیز: رابطهٔ پیشین، درست‌نمایی و پسین

شکل ۱۰.۳: نمایش هندسی قاعدهٔ بیز. مربع کل، همهٔ حالت‌های ممکن را نشان می‌دهد؛ نوار آبی سهم «فرضیه» (اینجا معادل پیشین $p(d\mid A,\lambda,\eta)$)، نوار زرد سهم «داده» (معادل درست‌نمایی $p(\mathbf{y}\mid\mathbf{x},d,\alpha)$)، و ناحیهٔ سبز اشتراک آن دو (معادل پسین $p(d\mid\mathbf{x},\mathbf{y},A,\alpha,\lambda,\eta)$) است. منبع: Wikimedia Commons (کمیل کولاسینسکی، دامنهٔ عمومی).

مثال مترجم برای درک بهتر خوانندگان: فرض کنید در مثال ارزش خانه، از الگوریتم FP-Growth دو الگوی پرتکرار به‌دست آمده: size=big با پوشش (Support) ۰.۳ (یعنی طبق فرمول $Support(\mathbf{x}_j=A)=\frac{1}{n}\sum_{i=1}^nI(x^{(i)}_j=A)$، از هر ۱۰ خانه، ۳ تای آن‌ها بزرگ هستند) و location=good AND size=big با پوشش ۰.۲. فرض کنید BRL می‌خواهد بین دو فهرست تصمیمِ کاندیدا یکی را انتخاب کند:

  • فهرست A (کوتاه، یک قانون): اگر size=big آن‌گاه value=high؛ در غیر این صورت value=ok. این فهرست ۹۰٪ نمونه‌ها را درست پیش‌بینی می‌کند.
  • فهرست B (طولانی، پنج قانون با شرط‌های ترکیبی): همان دقت ۹۰٪ را دارد، اما با پنج قانون و شرط‌های تا سه‌تایی.

طبق فرمول پسین، $p(\mathbf{y}\mid\mathbf{x},d,\alpha)$ (درست‌نمایی) برای هر دو فهرست تقریباً یکسان است، چون هر دو ۹۰٪ داده را درست توضیح می‌دهند. اما $p(d\mid A,\lambda,\eta)$ (پیشین) برای فهرست A بسیار بزرگ‌تر است، چون توزیع پواسون بریده‌شدهٔ روی طول فهرست ($\lambda$) و طول شرط‌ها ($\eta$) به فهرست‌های کوتاه‌تر احتمال بیشتری می‌دهد. در نتیجه، حاصل‌ضرب درست‌نمایی در پیشین — یعنی احتمال پسین — برای فهرست A بزرگ‌تر خواهد بود و BRL آن را ترجیح می‌دهد؛ دقیقاً همان چیزی که در جعبهٔ «تُنُکی پادشاه است» بالا گفته شد.

مزایا

این بخش دربارهٔ مزایای کلیِ قوانین IF-THEN بحث می‌کند.

قوانین IF-THEN به‌راحتی تفسیر می‌شوند. آن‌ها احتمالاً تفسیرپذیرترین مدل‌های تفسیرپذیر هستند. این ادعا فقط زمانی صادق است که تعداد قوانین کم باشد، شرط‌های قوانین کوتاه باشند (حداکثر ۳ شرط، به نظر من)، و قوانین در یک فهرست تصمیم یا یک مجموعهٔ تصمیمِ بدون همپوشانی سازمان‌دهی شده باشند.

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

پیش‌بینی با قوانین IF-THEN سریع است، چون فقط باید چند عبارت باینری بررسی شوند تا مشخص شود کدام قوانین اعمال می‌شوند.

قوانین تصمیم در برابر تبدیل‌های تک‌نوای (monotonic transformations) ویژگی‌های ورودی مقاوم هستند، چون فقط آستانهٔ داخل شرط‌ها تغییر می‌کند. همچنین در برابر داده‌های پرت مقاوم‌اند، چون تنها اهمیت دارد که یک شرط اعمال می‌شود یا نه.

قوانین IF-THEN معمولاً مدل‌های تُنُک (sparse) تولید می‌کنند، به این معنا که ویژگی‌های زیادی در آن‌ها گنجانده نمی‌شود. این قوانین تنها ویژگی‌های مرتبط را برای مدل انتخاب می‌کنند. برای مثال، یک مدل خطی به‌طور پیش‌فرض به هر ویژگی ورودی یک وزن اختصاص می‌دهد؛ اما ویژگی‌های نامرتبط را می‌توان به‌سادگی توسط قوانین IF-THEN نادیده گرفت.

قوانین ساده، مانند قوانین OneR، می‌توانند به‌عنوان معیار مرجع (baseline) برای الگوریتم‌های پیچیده‌تر استفاده شوند.

محدودیت‌ها

این بخش به کاستی‌های کلیِ قوانین IF-THEN می‌پردازد.

تحقیقات و ادبیات مربوط به قوانین IF-THEN بر دسته‌بندی متمرکز است و رگرسیون را تقریباً به‌طور کامل نادیده می‌گیرد. اگرچه همیشه می‌توان یک هدف پیوسته را به بازه‌ها تقسیم کرد و آن را به یک مسئلهٔ دسته‌بندی تبدیل کرد، همیشه بخشی از اطلاعات از دست می‌رود. به‌طور کلی، رویکردهایی که هم برای رگرسیون و هم برای دسته‌بندی قابل استفاده باشند، جذاب‌ترند.

اغلب اوقات، ویژگی‌ها نیز باید دسته‌ای باشند. یعنی ویژگی‌های عددی باید دسته‌بندی شوند اگر بخواهید از آن‌ها استفاده کنید. راه‌های زیادی برای بریدن یک ویژگی پیوسته به بازه‌ها وجود دارد، اما این کار بی‌اهمیت نیست و سؤالات زیادی بدون پاسخ روشن به همراه دارد. ویژگی به چند بازه تقسیم شود؟ معیار تقسیم چیست: طول ثابت بازه‌ها، کوانتیل‌ها یا چیز دیگری؟ دسته‌بندی ویژگی‌های پیوسته موضوعی بی‌اهمیت نیست که اغلب نادیده گرفته می‌شود، و افراد فقط از نزدیک‌ترین روش در دسترس استفاده می‌کنند (همان‌طور که من در مثال‌ها انجام دادم).

بسیاری از الگوریتم‌های قدیمی‌تر یادگیری قانون مستعد بیش‌برازش هستند. الگوریتم‌های ارائه‌شده در اینجا همگی دست‌کم چند محافظ در برابر بیش‌برازش دارند: OneR محدود است چون فقط می‌تواند از یک ویژگی استفاده کند (فقط زمانی مشکل‌ساز است که آن ویژگی سطوح بسیار زیادی داشته باشد یا ویژگی‌های زیادی وجود داشته باشند، که معادل مسئلهٔ آزمون چندگانه است)، RIPPER هرس انجام می‌دهد، و فهرست‌های قانون بیزی یک توزیع پیشین بر فهرست‌های تصمیم اعمال می‌کنند.

قوانین تصمیم، مانند درخت‌های تصمیم، در توصیف روابط خطی میان ویژگی‌ها و خروجی ضعیف عمل می‌کنند. این مشکلی است که با درخت‌های تصمیم مشترک است. درخت‌ها و قوانین تصمیم فقط می‌توانند توابع پیش‌بینیِ پله‌ای تولید کنند، که در آن‌ها تغییرات پیش‌بینی همیشه جهش‌های گسسته هستند و هرگز منحنی‌های صاف نیستند. این موضوع با این مسئله مرتبط است که ورودی‌ها باید دسته‌ای باشند؛ در درخت‌های تصمیم، این کار به‌طور ضمنی از طریق تقسیم‌کردن ویژگی‌ها انجام می‌شود.

نرم‌افزار و جایگزین‌ها

OneR در بستهٔ R به نام OneR پیاده‌سازی شده است، که برای مثال‌های این کتاب استفاده شد. OneR همچنین در کتابخانهٔ یادگیری ماشین Weka پیاده‌سازی شده و به همین دلیل در Java، R و Python در دسترس است.

RIPPER نیز در Weka پیاده‌سازی شده است. برای مثال‌ها، از پیاده‌سازی R مربوط به JRIP در بستهٔ RWeka استفاده کردم.

SBRL به‌صورت یک بستهٔ R (که برای مثال‌ها استفاده کردم)، در Python، یا به‌صورت یک پیاده‌سازی C در دسترس است.

علاوه بر این، توصیه می‌کنم بستهٔ imodels را نیز بررسی کنید که مدل‌های مبتنی بر قانون مانند فهرست‌های قانون بیزی، CORELS، OneR، فهرست‌های قانون حریصانه و موارد دیگر را در قالب یک بستهٔ Python با رابط یکپارچهٔ سازگار با scikit-learn پیاده‌سازی می‌کند.

تلاش نمی‌کنم همهٔ جایگزین‌های یادگیری مجموعه‌ها و فهرست‌های قانون تصمیم را فهرست کنم، اما به چند کار جامع اشاره می‌کنم. کتاب Foundations of Rule Learning نوشتهٔ Fürnkranz، Gamberger و Lavrač (۲۰۱۲) را توصیه می‌کنم. این کتابی مفصل دربارهٔ یادگیری قوانین است، برای کسانی که می‌خواهند عمیق‌تر به این موضوع بپردازند. این کتاب چارچوبی جامع برای اندیشیدن دربارهٔ یادگیری قوانین ارائه می‌دهد و بسیاری از الگوریتم‌های یادگیری قانون را معرفی می‌کند. همچنین بررسی یادگیرنده‌های قانون Weka را توصیه می‌کنم که RIPPER، M5Rules، OneR، PART و بسیاری دیگر را پیاده‌سازی می‌کنند.

قوانین IF-THEN را می‌توان در مدل‌های خطی نیز به کار برد، همان‌طور که در فصل مربوط به الگوریتم برازش قانون در این کتاب توضیح داده شده است.

فصل ۱۱: برازش قانون

عنوان اصلی: RuleFit
منبع: https://christophm.github.io/interpretable-ml-book/rulefit.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


الگوریتم برازش قانون (Friedman و Popescu، ۲۰۰۸) مدل‌های خطی تنکی می‌آموزد که اثرات تعاملی میان ویژگی‌ها را به‌صورت خودکار و در قالب قوانین تصمیم شناسایی و در خود جای می‌دهند.

مدل رگرسیون خطی تعامل میان ویژگی‌ها را در نظر نمی‌گیرد. آیا خوب نبود مدلی داشتیم که به‌سادگی و تفسیرپذیریِ مدل‌های خطی باشد، اما تعاملات میان ویژگی‌ها را نیز در خود جای دهد؟ برازش قانون دقیقاً همین شکاف را پر می‌کند. برازش قانون یک مدل خطی تنک می‌آموزد که هم ویژگی‌های اصلی و هم تعدادی ویژگی جدید را در بر می‌گیرد؛ این ویژگی‌های جدید همان قوانین تصمیم هستند. این ویژگی‌های تازه، تعاملات میان ویژگی‌های اصلی را ضبط می‌کنند. برازش قانون این ویژگی‌ها را به‌صورت خودکار از روی درخت‌های تصمیم تولید می‌کند. هر مسیر در یک درخت را می‌توان با ترکیب تصمیم‌های تقسیم (split) در قالب یک قانون بازنویسی کرد؛ به شکل ۱۱.۱ نگاه کنید. پیش‌بینیِ گره‌ها کنار گذاشته می‌شود و فقط شرط‌های تقسیم در قوانین تصمیم استفاده می‌شوند:

از یک درخت با ۳ گره پایانی، ۴ قانون قابل تولید است.

شکل ۱۱.۱: از یک درخت با ۳ گره پایانی، ۴ قانون قابل تولید است.

توضیح مترجم: نکتهٔ کلیدی این‌جا این است که قانون فقط از گره‌های پایانی (برگ) ساخته نمی‌شود، بلکه از هر گرهی که در مسیر درخت قرار دارد — از جمله گره‌های میانی — نیز یک قانون ساخته می‌شود. برای همین یک درخت با ۳ برگ (که یعنی ۲ گرهٔ تصمیم دارد) به‌جای ۳ قانون، ۴ قانون تولید می‌کند.

مثال مترجم برای درک بهتر خوانندگان: فرض کنید درختی داریم با این ساختار: ابتدا شرط temp > 12؛ اگر برقرار بود، سپس شرط hum <= 80. از این درخت چهار قانون قابل استخراج است:

۱. temp > 12 → ۱ وگرنه ۰ (از گرهٔ ریشه) ۲. temp <= 12 → ۱ وگرنه ۰ (شاخهٔ مخالف همان گره) ۳. temp > 12 AND hum <= 80 → ۱ وگرنه ۰ (مسیر تا برگ اول) ۴. temp > 12 AND hum > 80 → ۱ وگرنه ۰ (مسیر تا برگ دوم)

همان‌طور که می‌بینید، حتی شرط تنهای temp > 12 (بدون ادامهٔ مسیر تا یک برگ) هم یک قانون جداگانه محسوب می‌شود. برای نمایش بصری ساختار «ریشه ← شاخه‌ها ← برگ‌ها» در یک درخت تصمیم، می‌توانید این آموزش تصویری دربارهٔ درخت‌های تصمیم را ببینید.

این درخت‌های تصمیم از کجا می‌آیند؟ درخت‌ها برای پیش‌بینی متغیر هدف مورد نظر آموزش داده می‌شوند. این کار تضمین می‌کند که تقسیم‌بندی‌ها برای وظیفهٔ پیش‌بینی معنادار باشند. هر الگوریتمی که تعداد زیادی درخت تولید کند، مثلاً یک جنگل تصادفی، می‌تواند برای برازش قانون به کار رود. هر درخت به قوانین تصمیم تجزیه می‌شود که به‌عنوان ویژگی‌های اضافی در یک مدل رگرسیون خطی تنک (Lasso) استفاده می‌شوند.

مقالهٔ برازش قانون از داده‌های مسکن بوستون برای نمایش این ایده استفاده کرده است: هدف پیش‌بینی میانهٔ ارزش خانه در یک محلهٔ بوستون است. یکی از قوانین تولیدشده توسط برازش قانون این است: اگر تعداد اتاق‌ها > ۶.۶۴ و غلظت اکسید نیتریک < ۰.۶۷ آن‌گاه ۱ وگرنه ۰.

برازش قانون همچنین یک معیار اهمیت ویژگی ارائه می‌دهد که به شناسایی جملات خطی و قوانینی که برای پیش‌بینی‌ها اهمیت دارند کمک می‌کند. اهمیت ویژگی از روی وزن‌های مدل رگرسیون محاسبه می‌شود. این معیار اهمیت را می‌توان برای ویژگی‌های اصلی (که هم به‌صورت «خام» و هم احتمالاً در بسیاری از قوانین تصمیم استفاده شده‌اند) تجمیع کرد.

برازش قانون همچنین نمودارهای وابستگی جزئی (partial dependence plots) را معرفی می‌کند تا میانگین تغییر پیش‌بینی در اثر تغییر یک ویژگی را نشان دهد. نمودار وابستگی جزئی یک روش مستقل از مدل است که با هر مدلی قابل استفاده است و در فصل نمودارهای وابستگی جزئی توضیح داده شده است.

تفسیر و مثال

از آنجا که برازش قانون در نهایت یک مدل خطی برآورد می‌کند، تفسیر آن همانند مدل‌های خطی «معمولی» است. تنها تفاوت این است که این مدل ویژگی‌های جدیدی دارد که از قوانین تصمیم مشتق شده‌اند. قوانین تصمیم ویژگی‌های دودویی هستند: مقدار ۱ به این معناست که همهٔ شرط‌های قانون برقرارند؛ در غیر این صورت مقدار ۰ است. برای جملات خطی در برازش قانون، تفسیر همانند مدل‌های رگرسیون خطی است: اگر ویژگی به اندازهٔ یک واحد افزایش یابد، پیش‌بینی به اندازهٔ وزن متناظر آن ویژگی تغییر می‌کند.

در این مثال از برازش قانون برای پیش‌بینی تعداد دوچرخه‌های کرایه‌شده در یک روز مشخص استفاده می‌کنیم. جدول ۱۱.۱ پنج مورد از قوانینی را که برازش قانون تولید کرده، به همراه وزن Lasso و اهمیت آن‌ها نشان می‌دهد. نحوهٔ محاسبه بعداً در این فصل توضیح داده می‌شود. مهم‌ترین قانون این بود: «temp بیشتر از ۱۲ و hum کمتر یا مساوی ۸۶»، با وزن ۶۲۶. تفسیر آن این است: اگر دما بیشتر از ۱۲ درجه و رطوبت کمتر یا مساوی ۸۶٪ باشد، پیش‌بینی تعداد دوچرخه‌ها به اندازهٔ ۶۲۶ افزایش می‌یابد، به شرطی که مقادیر سایر ویژگی‌ها ثابت بمانند. در مجموع، از ۸ ویژگی اصلی، ۳۶۸ قانون از این دست ایجاد شد؛ عدد نسبتاً بزرگی! اما به لطف Lasso، تنها ۳۳ مورد از این ۳۶۸ قانون وزنی متفاوت از صفر دارند.

جدول ۱۱.۱: قوانین تولیدشده توسط برازش قانون به همراه وزن‌هایشان در مدل خطی.

توصیفوزناهمیت
temp بیشتر از ۱۲ و hum کمتر یا مساوی ۸۶626311
cnt_2d_bfr بیشتر از ۵۳۸۲ و hum کمتر یا مساوی ۸۰661299
cnt_2d_bfr بیشتر از ۲۷۰۳ و weather در {"GOOD"}426213
cnt_2d_bfr بیشتر از ۵۰۴۷ و temp بیشتر از ۹376178
۴ ≤ windspeed ≤ ۲۴-32161

محاسبهٔ اهمیت‌های سراسری ویژگی‌ها نشان می‌دهد که دما و روند زمانی مهم‌ترین ویژگی‌ها هستند، همان‌طور که در شکل ۱۱.۲ نمایش داده شده است. سنجهٔ اهمیت ویژگی، هم اهمیت جملهٔ خام ویژگی و هم اهمیت همهٔ قوانین تصمیمی که آن ویژگی در آن‌ها ظاهر می‌شود را در بر می‌گیرد.

اهمیت ویژگی‌ها در برازش قانون

شکل ۱۱.۲: سنجه‌های اهمیت ویژگی برای مدل برازش قانون در پیش‌بینی تعداد دوچرخه‌ها. مهم‌ترین ویژگی‌ها برای پیش‌بینی‌ها، تعداد قبلی، رطوبت و دما بودند.

الگوی تفسیر

تفسیر مشابه مدل‌های خطی است: پیش‌بینی به اندازهٔ $\beta_j$ تغییر می‌کند اگر ویژگی $X_j$ به اندازهٔ یک واحد تغییر کند، به شرطی که همهٔ ویژگی‌های دیگر ثابت بمانند. تفسیر وزن یک قانون تصمیم حالت خاصی از همین قاعده است: اگر همهٔ شرط‌های قانون تصمیم $r_k$ برقرار باشند، پیش‌بینی به اندازهٔ $\alpha_k$ (وزن آموخته‌شدهٔ قانون $r_k$ در مدل خطی) تغییر می‌کند.

برای دسته‌بندی (با استفاده از رگرسیون لجستیک به‌جای رگرسیون خطی): اگر همهٔ شرط‌های قانون تصمیم $r_k$ برقرار باشند، نسبت شانس (odds) برای رویداد در مقابل عدم رویداد در ضریب $\alpha_k$ ضرب می‌شود.

توضیح مترجم: این‌جا با حالت رگرسیون خطی فرق دارد. در رگرسیون خطی، وزن به‌صورت جمعی به پیش‌بینی اضافه می‌شود (مثلاً پیش‌بینی ۶۲۶ واحد بیشتر می‌شود). اما در رگرسیون لجستیک، اثر روی نسبت شانس (odds) ضربی است، نه جمعی.

مثال مترجم برای درک بهتر خوانندگان: فرض کنید $\alpha_k = 1.5$ برای قانونی است که شرایطش برقرار است. تفسیر درست این است: «odds جدید = ۱.۵ × odds قبلی» — یعنی نسبت شانس ۵۰٪ افزایش می‌یابد، نه این‌که عدد ۱.۵ به odds قبلی اضافه شود.

⚠️ مراقب برون‌یابی (extrapolation) باشید

عبارت «به شرطی که همهٔ ویژگی‌های دیگر ثابت بمانند» در اینجا کمی نامعقول است، چرا که یک ویژگی می‌تواند هم یک مؤلفهٔ خطی داشته باشد و هم در چند قانون ظاهر شود. تغییر ویژگی اصلی در این صورت چند مؤلفهٔ مدل را همزمان تغییر می‌دهد؛ بنابراین در واقع همهٔ ویژگی‌های مدل ثابت نمی‌مانند.

توضیح مترجم: برای مثال، اگر ویژگی «دما» هم به‌صورت خطی در مدل حضور داشته باشد و هم در قوانینی مثل «دما > ۱۲» یا «دما > ۹ و cnt_2d_bfr > ۵۰۴۷» به کار رفته باشد، افزایش یک واحدی دما می‌تواند هم‌زمان جملهٔ خطی و چند قانون را فعال یا غیرفعال کند. در این حالت نمی‌توان گفت «فقط دما تغییر کرده و بقیهٔ ویژگی‌ها ثابت مانده‌اند»، چون خودِ قوانین از جنس همان دما ساخته شده‌اند.

نظریه

بیایید عمیق‌تر به جزئیات فنی الگوریتم برازش قانون بپردازیم. برازش قانون از دو مؤلفه تشکیل شده است: مؤلفهٔ اول «قوانین» را از روی درخت‌های تصمیم می‌سازد، و مؤلفهٔ دوم یک مدل خطی را با ویژگی‌های اصلی و قوانین جدید به‌عنوان ورودی برازش می‌کند (از همین‌رو نام اصلی «RuleFit» یا «برازش قانون»).

گام ۱: تولید قوانین

یک قانون چه شکلی دارد؟ قوانین تولیدشده توسط الگوریتم شکل ساده‌ای دارند. برای مثال: اگر $x_2 < 3$ و $x_5 < 7$ آن‌گاه ۱ وگرنه ۰.

قوانین با تجزیهٔ درخت‌های تصمیم ساخته می‌شوند: هر مسیر به یک گره در درخت را می‌توان به یک قانون تصمیم تبدیل کرد. درخت‌های مورد استفاده برای قوانین، برای پیش‌بینی متغیر هدف برازش می‌شوند. بنابراین تقسیم‌بندی‌ها و قوانین حاصل، برای پیش‌بینی همان متغیری که به آن علاقه‌مندید بهینه شده‌اند. کافی است تصمیم‌های دودویی‌ای را که به یک گرهٔ خاص می‌رسند با «AND» به هم زنجیر کنید — و یک قانون به دست می‌آید. مطلوب است که تعداد زیادی قانون متنوع و معنادار تولید شود. برای برازش یک مجموعهٔ درخت‌های تصمیم از طریق رگرسیون یا دسته‌بندی متغیر هدف $\mathbf{y}$ با ویژگی‌های اصلی $\mathbf{X}$، از تقویت گرادیانی (gradient boosting) استفاده می‌شود. هر درخت حاصل به چند قانون تبدیل می‌شود.

توضیح مترجم: تقویت گرادیانی یک روش ساخت مجموعهٔ درخت است که در آن درخت‌ها یکی‌یکی و پی‌درپی ساخته می‌شوند؛ هر درخت جدید سعی می‌کند خطاهای باقی‌ماندهٔ درخت(های) قبلی را جبران کند، نه این‌که از صفر دوباره کل مسئله را حل کند. نتیجهٔ نهایی، مجموع وزن‌دارِ پیش‌بینی همهٔ این درخت‌هاست. برای نمایش بصری این ایده — که چطور هر درخت جدید روی خطای درخت‌های قبلی می‌سازد — می‌توانید به این توضیح تصویری الگوریتم تقویت گرادیانی مراجعه کنید.

نه‌فقط درخت‌های تقویت‌شده، بلکه هر الگوریتم مجموعهٔ درختی می‌تواند برای تولید درخت‌های برازش قانون استفاده شود. یک مجموعهٔ درخت را می‌توان با این فرمول کلی توصیف کرد:

$$\hat{f}(\mathbf{x}) = a_0 + \sum_{m=1}^M a_m \hat{f}_m(\mathbf{x})$$

$M$ تعداد درخت‌ها و $\hat{f}_m(\mathbf{x})$ تابع پیش‌بینی $m$امین درخت است. مقادیر $a$ وزن‌ها هستند. مجموعه‌های بگ‌شده (bagged)، جنگل تصادفی، AdaBoost و MART مجموعه‌های درختی تولید می‌کنند و می‌توانند برای برازش قانون استفاده شوند.

قوانین را از تمام درخت‌های مجموعه می‌سازیم. هر قانون $r_m$ به این شکل است:

$$r_m(\mathbf{x}) = \prod_{j \in \mathrm{T}_m} I(x_j \in s_{jm})$$

توضیح مترجم: این فرمول چیز پیچیده‌ای نیست — فقط راه ریاضی نوشتنِ «AND» است. چون هر $I(\cdot)$ فقط مقدار ۰ یا ۱ می‌گیرد، حاصل‌ضرب چند تا از این‌ها فقط زمانی ۱ می‌شود که همهٔ آن‌ها هم‌زمان ۱ باشند (دقیقاً مثل AND منطقی). اگر حتی یکی از شرط‌ها صفر باشد، کل حاصل‌ضرب صفر می‌شود.

مثال مترجم برای درک بهتر خوانندگان: برای نمونه‌ای با temp=20، hum=70، windspeed=15 و قانون $I(\mathrm{temp}>15) \cdot I(\mathrm{hum}<80)$: چون $I(20>15)=1$ و $I(70<80)=1$، حاصل‌ضرب برابر $1 \times 1 = 1$ است (قانون فعال است). اما اگر hum=90 بود: $I(90<80)=0$، پس حاصل‌ضرب برابر $1 \times 0 = 0$ می‌شد (قانون غیرفعال).

که در آن $\mathrm{T}_m$ مجموعهٔ ویژگی‌های استفاده‌شده در $m$امین درخت است، $I$ تابع اندیکاتور است که وقتی ویژگی $x_j$ در زیرمجموعهٔ مشخص‌شدهٔ مقادیر $s_{jm}$ برای ویژگی $j$ام (بر اساس تقسیم‌بندی‌های درخت) باشد برابر ۱ و در غیر این صورت برابر ۰ است. برای ویژگی‌های عددی، $s_{jm}$ یک بازه در محدودهٔ مقادیر ویژگی است. این بازه یکی از دو حالت زیر را دارد:

$$x_{s_{jm},\mathrm{lower}} < x_j$$

$$x_j < x_{s_{jm},\mathrm{upper}}$$

تقسیم‌بندی‌های بیشتر روی همان ویژگی می‌تواند به بازه‌های پیچیده‌تری منجر شود. برای ویژگی‌های دسته‌ای، زیرمجموعهٔ $s$ شامل برخی دسته‌های خاص همان ویژگی است.

مثالی ساخته‌شده برای دادهٔ کرایهٔ دوچرخه:

$$r_{17}(\mathbf{x}) = I(x_{\mathrm{temp}} < 15) \cdot I(x_{\mathrm{weather}} \in {\mathrm{good}, \mathrm{misty}}) \cdot I(10 \leq x_{\mathrm{windspeed}} < 20)$$

این قانون اگر هر سه شرط برقرار باشند ۱ برمی‌گرداند، در غیر این صورت ۰. برازش قانون همهٔ قوانین ممکن را از یک درخت استخراج می‌کند، نه فقط از گره‌های برگ. بنابراین قانون دیگری که ساخته می‌شود این است:

$$r_{18}(\mathbf{x}) = I(x_{\mathrm{temp}} < 15) \cdot I(x_{\mathrm{weather}} \in {\mathrm{good}, \mathrm{misty}})$$

در مجموع، تعداد قوانین تولیدشده از یک مجموعهٔ $M$ درخت که هرکدام $t_m$ گرهٔ پایانی دارند، برابر است با:

$$K = \sum_{m=1}^M 2(t_m - 1)$$

یک ترفند که نویسندگان برازش قانون معرفی کرده‌اند این است که درخت‌ها را با عمق تصادفی می‌آموزند تا قوانین متنوعی با طول‌های مختلف تولید شوند. توجه کنید که مقدار پیش‌بینی‌شده در هر گره را کنار می‌گذاریم و فقط شرط‌هایی را که ما را به یک گره می‌رسانند نگه می‌داریم، و سپس از روی آن‌ها یک قانون می‌سازیم. وزن‌دهی قوانین تصمیم در گام ۲ برازش قانون انجام می‌شود.

راه دیگری برای نگاه به گام ۱: برازش قانون مجموعهٔ جدیدی از ویژگی‌ها را از روی ویژگی‌های اصلی شما تولید می‌کند. این ویژگی‌ها دودویی هستند و می‌توانند تعاملات نسبتاً پیچیده‌ای از ویژگی‌های اصلی شما را نمایش دهند. قوانین به‌گونه‌ای انتخاب می‌شوند که برای وظیفهٔ پیش‌بینی مفید باشند. قوانین به‌صورت خودکار از روی ماتریس متغیرهای همراه $\mathbf{X}$ تولید می‌شوند. به بیان ساده می‌توانید قوانین را ویژگی‌های جدیدی بر پایهٔ ویژگی‌های اصلی خود در نظر بگیرید.

💡 شرط‌های کمتر، تفسیرپذیری بهتر

برای تفسیرپذیری بهتر، تعداد شرط‌ها در هر قانون را بین ۱ تا ۳ نگه دارید.

گام ۲: مدل خطی تنک

در گام ۱ تعداد بسیار زیادی قانون به دست می‌آورید. از آنجا که گام اول را می‌توان صرفاً یک تبدیل ویژگی در نظر گرفت، هنوز کار برازش مدل تمام نشده است. همچنین می‌خواهید تعداد قوانین را کاهش دهید. علاوه بر قوانین، همهٔ ویژگی‌های «خام» مجموعه‌دادهٔ اصلی شما نیز در مدل خطی تنک استفاده خواهند شد. هر قانون و هر ویژگی اصلی به یک ویژگی در مدل خطی تبدیل می‌شود و یک برآورد وزن دریافت می‌کند. ویژگی‌های خام اصلی اضافه می‌شوند چون درخت‌ها در بازنمایی روابط خطی سادهٔ میان $Y$ و $X_j$ ضعیف عمل می‌کنند. پیش از آموزش مدل خطی تنک، ویژگی‌های اصلی را وینزوریزه (winsorize) می‌کنیم تا در برابر داده‌های پرت مقاوم‌تر باشند:

$$l_j^*(x_j) = \min(\delta_j^+, \max(\delta_j^-, x_j))$$

که در آن $\delta_j^-$ و $\delta_j^+$ کوانتیل‌های $\delta$ توزیع دادهٔ $\mathbf{x}_j$ هستند. انتخاب مقدار ۰.۰۵ برای $\delta$ به این معناست که هر مقداری از ویژگی $X_j$ که در ۵٪ پایین‌ترین یا ۵٪ بالاترین مقادیر قرار دارد، به‌ترتیب در کوانتیل ۵٪ یا ۹۵٪ محدود می‌شود. به‌عنوان یک قاعدهٔ سرانگشتی، می‌توانید $\delta = 0.025$ را انتخاب کنید.

توضیح مترجم: وینزوریزه کردن یعنی به‌جای حذف مقادیر پرت، آن‌ها را «هَرَس» می‌کنیم — یعنی مقادیر خیلی بزرگ را با بزرگ‌ترین مقدار قابل‌قبول (مثلاً کوانتیل ۹۷.۵٪) و مقادیر خیلی کوچک را با کوچک‌ترین مقدار قابل‌قبول (کوانتیل ۲.۵٪) جایگزین می‌کنیم. داده حذف نمی‌شود، فقط «سقف» و «کف» می‌گیرد. برای مقایسهٔ بصری توزیع داده پیش و پس از وینزوریزه کردن، می‌توانید این مقاله دربارهٔ وینزوریزه کردن را ببینید.

مثال مترجم برای درک بهتر خوانندگان: فرض کنید ستون windspeed این مقادیر را دارد: [2, 5, 8, 10, 12, 60]. اگر کوانتیل ۹۵٪ برابر ۱۵ باشد، مقدار پرت ۶۰ به ۱۵ تبدیل می‌شود: [2, 5, 8, 10, 12, 15]. میانگین و انحراف معیار دیگر تحت‌تأثیر آن مقدار عجیب ۶۰ نیستند.

علاوه بر این، جملات خطی باید نرمال‌سازی شوند تا اهمیت پیشینی یکسانی با یک قانون تصمیم معمولی داشته باشند:

$$l_j(x_j) = 0.4 \cdot \frac{l^*_j(x_j)}{\mathrm{std}(l^*_j(x_j))}$$

عدد $0.4$ میانگین انحراف معیار قوانین با توزیع پوششیِ یکنواخت $s_k \sim U(0, 1)$ است.

توضیح مترجم (استخراج ریاضی اضافه): یک قانون تصمیم، متغیری دودویی با احتمال موفقیت $s$ (پوشش) است، پس انحراف معیارش $\sqrt{s(1-s)}$ است. اگر فرض کنیم پوشش $s$ به‌طور یکنواخت بین ۰ و ۱ پخش شده، میانگین این انحراف معیار روی همهٔ مقادیر ممکن $s$ برابر است با:

$$\int_0^1 \sqrt{s(1-s)},ds = \frac{\pi}{8} \approx 0.393 \approx 0.4$$

یعنی عدد $0.4$ صرفاً «انحراف معیار متوسط یک قانون تصادفی معمولی» است، و هدف از ضرب کردن جمله‌های خطی در این عدد این است که مقیاس ویژگی‌های خام (که می‌توانند هر بازه‌ای داشته باشند، مثلاً دما بین ۰ تا ۴۰) با مقیاس قوانین صفر/یک قابل‌مقایسه شود.

هر دو نوع ویژگی را ترکیب می‌کنیم تا ماتریس ویژگی جدیدی بسازیم و یک مدل خطی تنک با Lasso و ساختار زیر آموزش دهیم:

$$\hat{f}(\mathbf{x}) = \hat{\beta}_0 + \sum_{k=1}^K \hat{\alpha}_k r_k(\mathbf{x}) + \sum_{j=1}^p \hat{\beta}_j l_j(x_j)$$

که در آن $\hat{\alpha}_k$ وزن برآوردشده برای قانون $k$ و $\hat{\beta}_j$ وزن ویژگی اصلی $j$ است. از آنجا که برازش قانون از Lasso استفاده می‌کند، تابع زیان محدودیت اضافه‌ای می‌گیرد که برخی وزن‌ها را وادار به گرفتن برآورد صفر می‌کند:

$$({\hat{\alpha}}_1^K, {\hat{\beta}}_0^p) = \arg\min_{{\hat{\alpha}}_1^K, {\hat{\beta}}_0^p} \sum_{i=1}^n L(y^{(i)}, \hat{f}(\mathbf{x}^{(i)}))$$

$$+ \lambda \cdot \left(\sum_{k=1}^K |\hat{\alpha}_k| + \sum_{j=1}^p |\hat{\beta}_j|\right)$$

نتیجه یک مدل خطی است که برای همهٔ ویژگی‌های اصلی و همهٔ قوانین، اثرات خطی دارد. تفسیر آن مانند مدل‌های خطی است؛ تنها تفاوت این است که برخی از ویژگی‌ها اکنون قوانین دودویی هستند.

گام ۳ (اختیاری): اهمیت ویژگی

برای جملات خطی ویژگی‌های اصلی، اهمیت ویژگی با استفاده از پیش‌بین استانداردشده اندازه‌گیری می‌شود:

$$I_j = |\hat{\beta}_j| \cdot \mathrm{std}(l_j(x_j))$$

که در آن $\hat{\beta}_j$ وزن حاصل از مدل Lasso و $\mathrm{std}(l_j(x_j))$ انحراف معیار جملهٔ خطی روی داده است.

برای جملات قانون تصمیم، اهمیت با فرمول زیر محاسبه می‌شود:

$$I_k = |\hat{\alpha}_k| \cdot \sqrt{s_k(1-s_k)}$$

که در آن $\hat{\alpha}_k$ وزن Lasso مرتبط با قانون تصمیم و $s_k$ پوشش (support) ویژگی در داده است، یعنی درصد نقاط داده‌ای که قانون تصمیم برای آن‌ها اعمال می‌شود (که در آن $r_k(\mathbf{x})=1$):

$$s_k = \frac{1}{n} \sum_{i=1}^n r_k(\mathbf{x}^{(i)})$$

یک ویژگی هم می‌تواند به‌صورت جملهٔ خطی ظاهر شود و هم احتمالاً در بسیاری از قوانین تصمیم. چگونه اهمیت کلی یک ویژگی را اندازه‌گیری کنیم؟ اهمیت $J_j(\mathbf{x}_j)$ یک ویژگی را می‌توان برای هر پیش‌بینی منفرد اندازه گرفت:

$$J_j(x_j) = I_j(x_j) + \sum_{k \mid x_j \in r_k} \frac{I_k(r_k)}{m_k}$$

که در آن $I_j$ اهمیت جملهٔ خطی و $I_k$ اهمیت قوانین تصمیمی است که $X_j$ در آن‌ها ظاهر می‌شود، و $m_k$ تعداد ویژگی‌های تشکیل‌دهندهٔ قانون $r_k$ است. جمع اهمیت ویژگی روی همهٔ نمونه‌ها، اهمیت سراسری ویژگی را به دست می‌دهد:

$$J_j(\mathbf{x}_j) = \sum_{i=1}^n J_j(x^{(i)}_j)$$

توضیح مترجم: وقتی یک قانون از چند شرط تشکیل شده (مثلاً «temp > 12 AND hum <= 86» که $m_k=2$ ویژگی دارد)، منطقی نیست کل اهمیت آن قانون را به‌طور کامل به هر دو ویژگی نسبت بدهیم — چون این کار اهمیت را دوبار می‌شمارد. به همین دلیل اهمیت قانون به‌طور مساوی بین ویژگی‌های تشکیل‌دهنده‌اش تقسیم می‌شود.

مثال مترجم برای درک بهتر خوانندگان: طبق جدول ۱۱.۱، قانون «temp > 12 & hum <= 86» اهمیت $I_k=311$ دارد و از ۲ ویژگی تشکیل شده ($m_k=2$). پس این قانون به اهمیت کلی temp مقدار $311/2=155.5$ اضافه می‌کند، و همان مقدار ۱۵۵.۵ به اهمیت کلی hum نیز اضافه می‌شود. این عدد بعداً با سهم این دو ویژگی از جمله‌های خطی و سایر قوانینی که در آن‌ها ظاهر شده‌اند، جمع می‌شود تا اهمیت نهایی و سراسری هر ویژگی به دست بیاید.

می‌توان زیرمجموعه‌ای از نمونه‌ها را انتخاب کرد و اهمیت ویژگی را برای آن گروه محاسبه کرد.

مزایا

برازش قانون به‌طور خودکار تعاملات ویژگی را به مدل‌های خطی اضافه می‌کند. بنابراین، مشکل مدل‌های خطی را که نیازمند افزودن دستی جملات تعاملی هستند حل می‌کند، و تا حدی نیز به مسئلهٔ مدل‌سازی روابط غیرخطی کمک می‌کند.

برازش قانون هم وظایف دسته‌بندی و هم رگرسیون را پشتیبانی می‌کند.

قوانین تولیدشده به‌راحتی تفسیرپذیرند، چون قوانین تصمیم دودویی هستند. یا قانون برای یک نمونه صدق می‌کند یا نه. تفسیرپذیری خوب فقط زمانی تضمین می‌شود که تعداد شرط‌های درون یک قانون زیاد نباشد. یک قانون با ۱ تا ۳ شرط منطقی به نظر می‌رسد. این یعنی حداکثر عمق ۳ برای درخت‌های مجموعهٔ درختی.

حتی اگر مدل قوانین زیادی داشته باشد، همهٔ آن‌ها برای هر نمونه اعمال نمی‌شوند. برای یک نمونهٔ منفرد، تنها تعداد کمی قانون (با وزن غیرصفر) اعمال می‌شود. این ویژگی، تفسیرپذیری محلی را بهبود می‌بخشد.

برازش قانون مجموعه‌ای از ابزارهای تشخیصی مفید پیشنهاد می‌کند. این ابزارها مستقل از مدل هستند، بنابراین می‌توانید آن‌ها را در بخش روش‌های مستقل از مدل این کتاب بیابید: اهمیت ویژگی، نمودارهای وابستگی جزئی و تعاملات ویژگی.

محدودیت‌ها

گاهی برازش قانون تعداد زیادی قانون تولید می‌کند که در مدل Lasso وزن غیرصفر می‌گیرند. تفسیرپذیری با افزایش تعداد ویژگی‌های موجود در مدل کاهش می‌یابد. یک راه‌حل امیدوارکننده، اجبار به یکنواختی (monotonic) اثرات ویژگی است، به این معنا که افزایش یک ویژگی باید به افزایش پیش‌بینی منجر شود.

یک نکتهٔ روایی: مقالات ادعا می‌کنند که عملکرد برازش قانون خوب است — اغلب نزدیک به عملکرد پیش‌بینی جنگل تصادفی! — اما در معدود مواردی که شخصاً آن را امتحان کرده‌ام، عملکرد ناامیدکننده بود. پس فقط کافی است برای مسئلهٔ خودتان امتحانش کنید و ببینید چطور عمل می‌کند.

محصول نهایی فرایند برازش قانون یک مدل خطی با ویژگی‌های اضافهٔ فانتزی (قوانین تصمیم) است. اما از آنجا که این یک مدل خطی است، تفسیر وزن‌ها همچنان غیرشهودی است. این مدل همان «پانویس» مدل رگرسیون خطی معمولی را با خود دارد: «... به شرطی که همهٔ ویژگی‌ها ثابت بمانند.» وقتی قوانین همپوشان دارید، این موضوع کمی پیچیده‌تر می‌شود. برای مثال، یکی از قوانین تصمیم (ویژگی‌ها) برای پیش‌بینی دوچرخه می‌تواند این باشد: «temp > 10» و قانون دیگری می‌تواند «temp > 15 & weather='GOOD'» باشد. اگر هوا خوب و دما بالای ۱۵ درجه باشد، دما به‌طور خودکار بالای ۱۰ درجه نیز هست. در مواردی که قانون دوم صدق کند، قانون اول نیز صدق می‌کند. تفسیر وزن برآوردشده برای قانون دوم این است: «با فرض ثابت ماندن همهٔ ویژگی‌های دیگر، پیش‌بینی تعداد دوچرخه‌ها با خوب بودن هوا و دمای بالای ۱۵ درجه به اندازهٔ $\beta_2$ افزایش می‌یابد.» اما اکنون کاملاً روشن می‌شود که عبارت «همهٔ ویژگی‌های دیگر ثابت» مشکل‌ساز است، چون اگر قانون ۲ صدق کند، قانون ۱ نیز صدق می‌کند و این تفسیر بی‌معنا می‌شود.

نرم‌افزار و جایگزین‌ها

الگوریتم برازش قانون در R پیاده‌سازی شده است (Fokkema، ۲۰۲۰ — به پیوست د مراجعه کنید)، و می‌توانید نسخهٔ Python آن را در گیت‌هاب بیابید.

چارچوب بسیار مشابهی به نام skope-rules وجود دارد؛ این ماژول پایتون نیز قوانین را از مجموعه‌های درختی استخراج می‌کند. تفاوت آن در نحوهٔ یادگیری قوانین نهایی است: نخست، skope-rules قوانین با عملکرد پایین را بر اساس آستانه‌های بازخوانی (recall) و دقت (precision) حذف می‌کند. سپس، قوانین تکراری و مشابه با انتخابی بر پایهٔ تنوع جملات منطقی (متغیر + عملگر بزرگ‌تر/کوچک‌تر) و عملکرد (نمرهٔ F1) قوانین حذف می‌شوند. این گام نهایی به Lasso متکی نیست، بلکه فقط بر نمرهٔ F1 خارج از کیسه (out-of-bag) و جملات منطقی تشکیل‌دهندهٔ قوانین تکیه دارد.

بستهٔ imodels نیز پیاده‌سازی‌هایی از دیگر مجموعه‌قوانین، مانند مجموعه‌قوانین بیزی، مجموعه‌قوانین تقویت‌شده (Boosted) و مجموعه‌قوانین SLIPPER را به‌عنوان یک بستهٔ پایتون با رابط یکپارچهٔ scikit-learn در بر دارد. علاوه بر این، تقویت مبتنی بر مدل (model-based boosting) (Bühlmann و Hothorn، ۲۰۰۷ — به پیوست د مراجعه کنید) نیز وجود دارد که امکان ترکیب مؤلفه‌های خطی و مؤلفه‌های قانون را فراهم می‌کند و در بستهٔ R به نام mboost پیاده‌سازی شده است.

فصل ۱۲: نمودارهای Ceteris Paribus

عنوان اصلی: Ceteris Paribus Plots
منبع: https://christophm.github.io/interpretable-ml-book/ceteris-paribus.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


نمودارهای Ceteris Paribus (CP) (Kuźba و همکاران، ۲۰۱۹) نشان می‌دهند که تغییر در یک ویژگی واحد، پیش‌بینی یک نقطه داده را چطور تغییر می‌دهد.

نمودارهای Ceteris Paribus یکی از ساده‌ترین تحلیل‌هایی هستند که می‌توان انجام داد، با وجود نام لاتین پیچیده‌اش، که به معنای «سایر شرایط مساوی» است1 و یعنی یک ویژگی را تغییر می‌دهیم اما بقیه را دست‌نخورده نگه می‌داریم. این روش آن‌قدر ساده است چون فقط به یک ویژگی در هر لحظه نگاه می‌کند، مقادیر آن را به‌طور نظام‌مند تغییر می‌دهد، و نشان می‌دهد پیش‌بینی در سراسر بازهٔ آن ویژگی چگونه تغییر می‌کند. اما Ceteris Paribus روش مدل‌مستقلی است که برای شروع کتاب عالی است، چون اصول پایه‌ای تفسیر مدل‌مستقل را آموزش می‌دهد. همچنین، سادگی آن نباید فریبتان دهد: با ترکیب خلاقانهٔ چند منحنی Ceteris Paribus2، می‌توانید مدل‌ها را مقایسه کنید، ویژگی‌ها را مقایسه کنید، و مدل‌های دسته‌بندی چندکلاسه را بررسی کنید. منحنی‌های CP بلوک‌های سازندهٔ منحنی‌های Individual Conditional Expectation و نمودارهای وابستگی جزئی هستند، همان‌طور که در شکل ۱۲.۱ نشان داده شده است.

  • نمودارهای ICE، نمودارهای CP هستند که همهٔ منحنی‌های CP را برای کل مجموعه داده در بر دارند.
  • یک نمودار وابستگی جزئی (PDP) میانگین همهٔ منحنی‌های CP یک مجموعه داده است.

Ceteris Paribus، ICE و PDP.

شکل ۱۲.۱: رابطه میان Ceteris Paribus، ICE و PDP.


الگوریتم

بیایید با الگوریتم Ceteris Paribus شروع کنیم. این بخش نمونهٔ کوچکی هم هست از این‌که چطور وقتی از ریاضیات استفاده می‌کنیم، چیزها ممکن است پیچیده‌تر از آنچه واقعاً هستند به نظر برسند. الگوریتم زیر برای ویژگی‌های عددی است:

ورودی: نقطه داده $\mathbf{x}^{(i)}$ برای توضیح و ویژگی $j$

۱. یک شبکه مقادیر با فاصله مساوی بسازید: $z_1, \ldots, z_K$، که معمولاً $z_1 = \min(\mathbf{x}_j)$ و $z_K = \max(\mathbf{x}_j)$ است.

۲. برای هر مقدار شبکه $z_k \in \{z_1, \ldots, z_K\}$:

  • یک نقطه داده جدید بسازید $\mathbf{x}^{(i)}_{x_j := z_k}$.
  • پیش‌بینی $\hat{f}(\mathbf{x}^{(i)}_{x_j := z_k})$ را به دست آورید.

۳. منحنی‌های CP را نمایش دهید:

  • خطی برای نقاط داده $\left\{z_k,\; \hat{f}(\mathbf{x}^{(i)}_{x_j := z_k})\right\}_{k=1}^{K}$ رسم کنید.
  • نقطه‌ای برای نقطه داده اصلی $\left(x_j^{(i)},\; \hat{f}(\mathbf{x}^{(i)})\right)$ رسم کنید.

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

و برای یک ویژگی دسته‌ای:

۱. فهرست دسته‌های منحصربه‌فرد $z_1, \ldots, z_K$ را بسازید.

۲. برای هر دسته $z_k \in \{z_1, \ldots, z_K\}$:

  • یک نقطه داده جدید $\mathbf{x}^{(i)}_{x_j := z_k}$ بسازید.
  • پیش‌بینی $\hat{f}(\mathbf{x}^{(i)}_{x_j := z_k})$ را به دست آورید.

۳. یک نمودار میله‌ای یا نقطه‌ای بسازید که دسته‌ها روی محور افقی و پیش‌بینی‌ها روی محور عمودی قرار بگیرند.

اما این توضیح پیچیده‌تر از آنچه لازم بود به نظر می‌رسید. بیایید نمودارهای CP را با چند مثال ملموس‌تر کنیم.


مثال‌ها

برای اولین مثال، به جنگل تصادفی‌ای نگاه می‌کنیم که احتمال مادگی یک پنگوئن را پیش‌بینی می‌کند. اولین پنگوئن در مجموعه داده آزمون را بررسی می‌کنیم، یک پنگوئن که عمق منقارش چند میلی‌متر است (با جنسیت واقعی مشخص). شکل ۱۲.۲ نشان می‌دهد که کاهش عمق منقار این پنگوئن، ابتدا احتمال پیش‌بینی‌شدهٔ مادگی را کمی افزایش می‌دهد، اما سپس آن را به‌شدت کاهش می‌دهد.

نمودار Ceteris Paribus برای عمق منقار و یک پنگوئن.

شکل ۱۲.۲: نمودار Ceteris Paribus برای عمق منقار و یک پنگوئن. خط، مقدار پیش‌بینی‌شده برای این پنگوئن خاص را هنگام تغییر عمق منقار نشان می‌دهد. عمق منقار واقعی پنگوئن با یک نقطه مشخص شده است.

از آن‌جا که این یک وظیفهٔ دسته‌بندی دودویی است، نمایش $\mathbb{P}(Y = \text{male})$ کاری زائد خواهد بود -- چراکه این مقدار فقط معکوس نمودار $\mathbb{P}(Y = \text{female})$ خواهد بود. اما اگر بیش از دو کلاس داشتیم، می‌توانستیم منحنی‌های Ceteris Paribus را برای همهٔ کلاس‌ها در یک نمودار رسم کنیم.

دوباره باید به یاد داشته باشیم که تغییر یک ویژگی می‌تواند وابستگی آن را با ویژگی‌های دیگر بشکند. نگاه‌کردن به همبستگی و دیگر معیارهای وابستگی می‌تواند مفید باشد. عمق منقار با جرم بدن و طول بال‌چه همبسته است. پس هنگام نگاه‌کردن به شکل ۱۲.۲، باید مراقب باشیم کاهش‌های شدید عمق منقار را در این نمودار Ceteris Paribus بیش از حد تفسیر نکنیم.

توضیح مترجم: «Ceteris paribus» عبارتی لاتین به معنای «سایر شرایط ثابت/مساوی» است. این اصطلاح در اقتصاد و علوم اجتماعی هم رایج است و به این معناست که وقتی اثر یک متغیر را بررسی می‌کنیم، فرض می‌کنیم بقیهٔ متغیرها تغییر نمی‌کنند -- دقیقاً همان کاری که این نمودارها انجام می‌دهند: فقط یک ویژگی را تغییر می‌دهند و بقیهٔ ویژگی‌های نقطهٔ داده را ثابت نگه می‌دارند.

فراتر از وابستگی‌های زوجی نگاه کنید

شکل ۱۲.۳ مثالی را نشان می‌دهد که در آن به‌طور مصنوعی ویژگی عمق منقار سبک‌ترین پنگوئن گونهٔ Gentoo را تغییر می‌دهیم. این نقطه داده وقتی فقط به ترکیب جرم بدن و عمق منقار نگاه کنیم، واقع‌بینانه است. همچنین وقتی فقط به عمق منقار و گونه نگاه کنیم نیز واقع‌بینانه است. اما وقتی عمق منقار جدید، جرم بدن و گونه را با هم در نظر بگیریم، غیرواقعی است.

نمودار پراکندگی عمق منقار و جرم بدن. دستکاری عمق منقار یک پنگوئن می‌تواند یک نقطه داده غیرواقعی ایجاد کند.

شکل ۱۲.۳: نمودار پراکندگی عمق منقار و جرم بدن. دستکاری عمق منقار یک پنگوئن می‌تواند یک نقطه داده غیرواقعی ایجاد کند.

سپس، مدل SVM‌ای را بررسی می‌کنیم که تعداد دوچرخه‌های اجاره‌شده را بر اساس اطلاعات آب‌وهوایی و فصلی پیش‌بینی می‌کند. یک روز از یک فصل خاص را با شرایط آب‌وهوایی معین انتخاب می‌کنیم و می‌بینیم تغییر ویژگی‌ها چگونه پیش‌بینی را تغییر می‌دهد. اما این بار آن را برای همهٔ ویژگی‌ها نمایش می‌دهیم، به شکل ۱۲.۴ نگاه کنید. تغییر تعداد دوچرخه‌های اجاره‌شده در ۲ روز قبل، بیشترین تأثیر را بر پیش‌بینی می‌گذارد. همچنین، دمای بالاتر برای اجارهٔ دوچرخهٔ بیشتر بهتر بوده است. اگر پیش‌بینی برای یک روز غیرکاری بود، مدل SVM تعداد اجارهٔ کمتری پیش‌بینی می‌کرد.

نحوهٔ تغییر پیش‌بینی تعداد اجارهٔ دوچرخه با تغییر تک‌تک ویژگی‌ها.

شکل ۱۲.۴: نحوهٔ تغییر پیش‌بینی تعداد اجارهٔ دوچرخه با تغییر تک‌تک ویژگی‌ها.

نسخهٔ مینیمال با Sparkline

نمودارهای CP را می‌توان در قالب Sparkline بسته‌بندی کرد؛ یک نمودار خطی مینیمالیستی که با کار (Tufte، ۱۹۸۳) رایج شد.

به‌طور کلی، نمودارهای CP نشان می‌دهند که تغییرات ویژگی -- از تغییرات کوچک تا تغییرات بزرگ در همهٔ جهت‌ها -- چگونه روی پیش‌بینی اثر می‌گذارد. با مقایسهٔ همهٔ ویژگی‌ها در کنار هم با یک محور عمودی مشترک، می‌توانیم ببینیم کدام ویژگی تأثیر بیشتری بر پیش‌بینی این نقطه داده دارد. با این حال، همبستگی میان ویژگی‌ها یک نگرانی است، به‌خصوص هنگام تفسیر منحنی CP دور از مقدار اصلی (که با نقطه مشخص شده است). برای مثال، افزایش دما تا ۳۰ درجهٔ سلسیوس اما ثابت نگه‌داشتن فصل، کاملاً غیرواقعی خواهد بود.

نمودارهای Ceteris Paribus بسیار انعطاف‌پذیرند. می‌توانیم منحنی‌های CP را برای مدل‌های مختلف محاسبه کنیم تا بفهمیم آن‌ها چگونه با ویژگی‌ها متفاوت رفتار می‌کنند. در شکل ۱۲.۵، نمودارهای Ceteris Paribus را برای مدل‌های مختلف در پیش‌بینی کرایهٔ دوچرخه مقایسه می‌کنیم.

منحنی‌های Ceteris Paribus برای وظیفهٔ پیش‌بینی کرایهٔ دوچرخه در مدل‌های مختلف: مدل خطی، جنگل تصادفی، SVM و درخت تصمیم.

شکل ۱۲.۵: منحنی‌های Ceteris Paribus برای وظیفهٔ پیش‌بینی کرایهٔ دوچرخه در مدل‌های مختلف: مدل خطی، جنگل تصادفی، SVM و درخت تصمیم.

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

در مقایسه‌ها خلاق باشید

نمودارهای Ceteris Paribus ساده‌اند، اما وقتی چند منحنی CP را با هم ترکیب کنید، به‌طرز شگفت‌انگیزی روشنگرند:

  • ویژگی‌ها را مقایسه کنید.
  • مدل‌های حاصل از الگوریتم‌های یادگیری ماشین متفاوت یا با تنظیمات فراپارامتری متفاوت را مقایسه کنید.
  • احتمال کلاس‌ها را مقایسه کنید.
  • نقاط داده متفاوت را مقایسه کنید (به منحنی‌های ICE هم نگاه کنید).
  • داده را زیرمجموعه‌بندی کنید (مثلاً بر اساس یک ویژگی دودویی) و منحنی‌های CP را مقایسه کنید.

نقاط قوت

نمودارهای Ceteris Paribus فوق‌العاده ساده برای پیاده‌سازی و درک هستند. این ویژگی آن‌ها را نقطهٔ شروع خوبی برای مبتدیان می‌سازد، اما همچنین برای انتقال تفسیرپذیری مدل‌مستقل به دیگران، به‌خصوص افراد غیرمتخصص، مناسب است.

نمودارهای CP می‌توانند محدودیت‌های روش‌های تخصیص‌محور را جبران کنند. روش‌های مبتنی بر تخصیص مانند SHAP یا LIME نشان نمی‌دهند تابع پیش‌بینی نسبت به تغییرات محلی چقدر حساس است. نمودارهای Ceteris Paribus می‌توانند مکمل تکنیک‌های تخصیص‌محور باشند و هنگام تفسیر پیش‌بینی‌های فردی، تصویری کامل ارائه دهند.

نمودارهای Ceteris Paribus بلوک‌های سازندهٔ انعطاف‌پذیری هستند. آن‌ها بلوک‌های سازندهٔ سایر روش‌های تفسیر هستند، اما همچنین می‌توانید در ترکیب این خطوط در میان مدل‌ها، کلاس‌ها، تنظیمات فراپارامتری و ویژگی‌ها خلاقیت به خرج دهید تا بینش‌های ظریفی دربارهٔ پیش‌بینی‌های مدل ایجاد کنید.

محدودیت‌ها

نمودارهای Ceteris Paribus فقط تغییر یک ویژگی را در هر لحظه نشان می‌دهند. این یعنی نمی‌بینیم دو ویژگی چگونه با هم تعامل دارند. البته می‌توانید دو ویژگی را تغییر دهید، به‌خصوص اگر یکی پیوسته و دیگری دودویی باشد، و آن‌ها را در همان نمودار CP رسم کنید. اما این فرآیندی دستی‌تر است.

وقتی ویژگی‌ها همبسته باشند، تفسیر آسیب می‌بیند. وقتی ویژگی‌ها همبسته‌اند، همهٔ بخش‌های منحنی محتمل نیستند یا حتی ممکن است کاملاً غیرواقعی باشند. این مشکل را می‌توان با محدودکردن بازهٔ نمودارهای Ceteris Paribus به بازه‌های کوتاه‌تر، دست‌کم برای ویژگی‌های همبسته، کاهش داد. اما این هم به معنای آن است که به یک مدل یا رویه‌ای نیاز داریم که به ما بگوید این بازه‌ها چه هستند.

به‌طور کلی، باید در تفسیر علّی محتاط بود؛ یا اگر تفسیر علّی می‌خواهید، مطمئن شوید خودِ مدل علّی است. این مشکل در همهٔ روش‌های تفسیر وجود دارد، اما خطر تفسیر علّی نادرست ممکن است در نمودارهای CP بیشتر باشد، چون آستانهٔ نمایش این نمودارها به افراد غیرمتخصص پایین‌تر است.

نرم‌افزار و جایگزین‌ها

همهٔ نمودارهای این فصل با بستهٔ R به نام ceterisParibus ساخته شده‌اند. این بسته پیاده‌سازی Python هم دارد. همچنین می‌توانید با هر ابزاری که بتواند نمودارهای ICE تولید کند، مانند ICEBox و iml، نمودارهای CP نیز بسازید؛ کافی است یک «مجموعه داده» ارائه دهید که فقط شامل همان یک نقطه دادهٔ موردنظر باشد. با این حال، بستهٔ ceterisParibus مناسب‌تر است چون مقایسهٔ منحنی‌های Ceteris Paribus را ساده‌تر می‌کند.

1

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

2

منظور از «منحنی CP» یک خط واحد است، و منظور از «نمودار CP» نموداری است که یک یا چند منحنی CP را نشان می‌دهد.

فصل ۱۳: انتظار شرطی فردی (ICE)

عنوان اصلی: Individual Conditional Expectation (ICE)
منبع: https://christophm.github.io/interpretable-ml-book/ice.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


نمودارهای انتظار شرطی فردی (Individual Conditional Expectation یا ICE) یک خط برای هر نمونه نشان می‌دهند که مشخص می‌کند پیش‌بینی آن نمونه هنگام تغییر یک ویژگی چگونه تغییر می‌کند.

یک نمودار ICE (Goldstein و همکاران، ۲۰۱۵) وابستگی پیش‌بینی به یک ویژگی را برای هر نمونه به‌طور جداگانه به تصویر می‌کشد، به‌طوری‌که برای هر نمونهٔ مجموعه داده یک خط به دست می‌آید. مقادیر یک خط (و یک نمونه) را می‌توان با ثابت نگه‌داشتن همهٔ ویژگی‌های دیگر، ساختن نسخه‌های جدیدی از این نمونه با جایگزینی مقدار آن ویژگی با مقادیری از یک شبکه، و گرفتن پیش‌بینی از مدل جعبه‌سیاه برای این نمونه‌های تازه‌ساخته‌شده، محاسبه کرد. نتیجه، مجموعه‌ای از نقاط برای یک نمونه است که شامل مقدار ویژگی از شبکه و پیش‌بینی متناظر آن است. به‌عبارت دیگر، نمودارهای ICE همهٔ منحنی‌های Ceteris Paribus یک مجموعه داده را در یک نمودار واحد نشان می‌دهند.

مثال‌ها

شکل ۱۳.۱ نمودارهای ICE را برای پیش‌بینی اجارهٔ دوچرخه نشان می‌دهد. مدل پیش‌بینی زیربنایی یک جنگل تصادفی است. به نظر می‌رسد همهٔ منحنی‌ها روندی مشابه دارند، بنابراین تعامل آشکاری وجود ندارد.

نمودارهای ICE پیش‌بینی اجارهٔ دوچرخه بر اساس دما، رطوبت و سرعت باد.

شکل ۱۳.۱: نمودارهای ICE پیش‌بینی اجارهٔ دوچرخه بر اساس دما، رطوبت و سرعت باد.

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

شکل ۱۳.۲: منحنی‌های ICE برای جنگل تصادفی پیش‌بینی‌کنندهٔ اجارهٔ دوچرخه. خطوط بر اساس فصل رنگ‌آمیزی شده‌اند. بالای نمودارهای ICE، نمودارهای جعبه‌ای توزیع رطوبت به تفکیک فصل را نشان می‌دهند.

اما می‌توانیم با تغییردادن نمودار ICE، تعامل‌های احتمالی را نیز بررسی کنیم. شکل ۱۳.۲ دوباره نمودار ICE رطوبت را نشان می‌دهد، با این تفاوت که این بار خطوط بر اساس فصل رنگ‌آمیزی شده‌اند. این نمودار چند نکته را نشان می‌دهد: اول -- که جای تعجب ندارد -- فصل‌های مختلف «عرض از مبدأ» متفاوتی دارند. یعنی، برای مثال، روزهای زمستان پیش‌بینی کمتری دارند و تابستان بیشترین پیش‌بینی را، مستقل از رطوبت. اما شکل ۱۳.۲ همچنین نشان می‌دهد که اثر رطوبت برای فصل‌های مختلف متفاوت است: در زمستان، افزایش رطوبت فقط به‌طور جزئی تعداد پیش‌بینی‌شدهٔ اجارهٔ دوچرخه را کاهش می‌دهد. برای تابستان، اجارهٔ پیش‌بینی‌شدهٔ دوچرخه بین رطوبت نسبی ۲۰٪ تا ۶۰٪ تقریباً ثابت می‌ماند و بالاتر از ۶۰٪ به‌طور قابل توجهی افت می‌کند. اثرات رطوبت برای بهار و پاییز به نظر می‌رسد ترکیبی از «ثبات زمستان» و «افت تابستان» باشند. با این حال، همان‌طور که نمودارهای جعبه‌ای در شکل ۱۳.۲ نشان می‌دهند، نباید اثرات رطوبت بسیار پایین را برای تابستان و پاییز بیش از حد تفسیر کنیم.

از شفافیت و رنگ استفاده کنید

اگر خطوط در یک نمودار به‌شدت روی هم قرار می‌گیرند، می‌توانید آن‌ها را کمی شفاف کنید. اگر این کار کمکی نکرد، شاید بهتر باشد سراغ نمودار وابستگی جزئی بروید. با رنگ‌آمیزی خطوط بر اساس مقدار یک ویژگی دیگر، می‌توانید تعامل‌ها را بررسی کنید.

بیایید به وظیفهٔ دسته‌بندی پنگوئن‌ها برگردیم و ببینیم پیش‌بینی هر نمونه چگونه با ویژگی bill_length_mm (طول منقار) مرتبط است. جنگل تصادفی‌ای را تحلیل می‌کنیم که احتمال مادگی یک پنگوئن را بر اساس اندازه‌گیری‌های بدنی پیش‌بینی می‌کند. شکل ۱۳.۳ یک نمودار ICE نسبتاً زشت است. اما گاهی واقعیت همین است. دلیل آن این است که مدل برای اکثر پنگوئن‌ها نسبتاً مطمئن است و بین ۰ و ۱ می‌پرد.

نمودار ICE احتمال پنگوئن گونهٔ Adelie بر اساس طول منقار. هر خط نشان‌دهندهٔ یک پنگوئن است.

شکل ۱۳.۳: نمودار ICE احتمال پنگوئن گونهٔ Adelie بر اساس طول منقار. هر خط نشان‌دهندهٔ یک پنگوئن است.

نمودار ICE مرکزی‌شده (c-ICE)

نمودارهای ICE با یک مشکل روبه‌رو هستند: گاهی تشخیص این‌که آیا منحنی‌های ICE به این دلیل بین نقاط داده متفاوت‌اند که از پیش‌بینی‌های متفاوتی شروع می‌شوند، دشوار است. یک راه‌حل ساده این است که منحنی‌ها را در یک نقطهٔ مشخص از ویژگی مرکزی‌سازی کنیم و فقط تفاوت پیش‌بینی نسبت به آن نقطه را نمایش دهیم. نموداری که از این کار حاصل می‌شود، نمودار ICE مرکزی‌شده (c-ICE) نامیده می‌شود. لنگرانداختن منحنی‌ها در انتهای پایینی ویژگی، انتخاب خوبی است. هر منحنی این‌گونه تعریف می‌شود:

$$ICE^{(i)}_j(x_j) = \hat{f}(x_j, \mathbf{x}^{(i)}_{-j}) - \hat{f}(a, \mathbf{x}_{-j}^{(i)})$$

که در آن $\hat{f}$ مدل برازش‌شده و $a$ نقطهٔ لنگر است.

بیایید نگاهی به یک نمودار ICE مرکزی‌شده برای دما در پیش‌بینی اجارهٔ دوچرخه بیندازیم:

نمودارهای ICE مرکزی‌شدهٔ تعداد پیش‌بینی‌شدهٔ دوچرخه‌ها بر اساس دما. خطوط تفاوت پیش‌بینی را نسبت به پیش‌بینی در حداقل دمای مشاهده‌شده نشان می‌دهند.

شکل ۱۳.۴: نمودارهای ICE مرکزی‌شدهٔ تعداد پیش‌بینی‌شدهٔ دوچرخه‌ها بر اساس دما. خطوط تفاوت پیش‌بینی را نسبت به پیش‌بینی در حداقل دمای مشاهده‌شده نشان می‌دهند.

نمودارهای ICE مرکزی‌شده مقایسهٔ منحنی‌های نمونه‌های مختلف را آسان‌تر می‌کنند. این می‌تواند زمانی مفید باشد که نه به‌دنبال تغییر مطلق یک مقدار پیش‌بینی‌شده، بلکه به‌دنبال تفاوت پیش‌بینی نسبت به یک نقطهٔ ثابت از بازهٔ ویژگی باشیم.

نمودار ICE مشتقی (d-ICE)

راه دیگری که می‌تواند تشخیص بصری ناهمگنی را آسان‌تر کند، نگاه‌کردن به مشتقات فردی تابع پیش‌بینی نسبت به یک ویژگی است. نموداری که از این کار حاصل می‌شود، نمودار ICE مشتقی (d-ICE) نامیده می‌شود. مشتقات یک تابع (یا منحنی) به شما می‌گویند که آیا تغییری رخ می‌دهد و در چه جهتی رخ می‌دهد. با نمودار ICE مشتقی، به‌راحتی می‌توان بازه‌هایی از مقادیر ویژگی را یافت که در آن‌ها پیش‌بینی‌های جعبه‌سیاه برای (دست‌کم برخی) نمونه‌ها تغییر می‌کند. اگر بین ویژگی موردبررسی $X_j$ و سایر ویژگی‌ها $X_{-j}$ تعاملی وجود نداشته باشد، آنگاه تابع پیش‌بینی را می‌توان این‌گونه بیان کرد:

$$\hat{f}(\mathbf{x}) = \hat{f}(x_j, \mathbf{x}_C) = g(x_j) + h(\mathbf{x}_{-j}), \quad\text{with}\quad\frac{\partial \hat{f}(\mathbf{x})}{\partial x_j} = g'(x_j)$$

بدون تعامل، مشتقات جزئی فردی باید برای همهٔ نمونه‌ها یکسان باشند. اگر متفاوت باشند، به‌دلیل وجود تعامل است و در نمودار d-ICE قابل مشاهده می‌شود. علاوه بر نمایش منحنی‌های فردی مشتق تابع پیش‌بینی نسبت به ویژگی $j$، نمایش انحراف معیار مشتق نیز کمک می‌کند تا مناطقی از ویژگی $j$ که در آن‌ها ناهمگنی در مشتقات برآوردشده وجود دارد، برجسته شوند. محاسبهٔ نمودار ICE مشتقی زمان زیادی می‌برد و از نظر عملی چندان کاربردی نیست.

نقاط قوت

منحنی‌های انتظار شرطی فردی درک‌شان بدیهی و آسان است. هر خط، پیش‌بینی‌های یک نمونه را هنگام تغییر ویژگی موردنظر نشان می‌دهد.

منحنی‌های ICE می‌توانند روابط ناهمگن را آشکار کنند.

محدودیت‌ها

منحنی‌های ICE تنها می‌توانند یک ویژگی را به‌طور معنادار نمایش دهند، چون نمایش دو ویژگی نیازمند رسم چند سطح روی‌هم‌قرارگرفته خواهد بود و در نمودار چیزی قابل مشاهده نخواهد بود.

منحنی‌های ICE از مشکل همبستگی رنج می‌برند: اگر ویژگی موردنظر با سایر ویژگی‌ها همبسته باشد، برخی نقاط روی خطوط ممکن است بر اساس توزیع مشترک ویژگی‌ها، نقاط داده نامعتبری باشند.

اگر تعداد زیادی منحنی ICE رسم شود، نمودار می‌تواند شلوغ شود و چیزی قابل مشاهده نخواهد بود. راه‌حل: یا به خطوط کمی شفافیت اضافه کنید یا فقط نمونه‌ای از خطوط را رسم کنید.

در نمودارهای ICE ممکن است دیدن میانگین کار آسانی نباشد. این مشکل راه‌حل ساده‌ای دارد: منحنی‌های انتظار شرطی فردی را با نمودار وابستگی جزئی ترکیب کنید.

نرم‌افزار و جایگزین‌ها

نمودارهای ICE در بسته‌های R به نام‌های iml (Molnar، Bischl و Casalicchio، ۲۰۱۸) (که برای این مثال‌ها استفاده شده)، ICEbox و pdp پیاده‌سازی شده‌اند. بستهٔ دیگر R به نام condvis نیز کاری بسیار مشابه ICE انجام می‌دهد. در Python، می‌توانید از PiML (Sudjianto و همکاران، ۲۰۲۳) استفاده کنید.

فصل ۱۴: LIME

عنوان اصلی: LIME
منبع: https://christophm.github.io/interpretable-ml-book/lime.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


مدل‌های جانشین محلی (Local Surrogate Models) مدل‌های تفسیرپذیری هستند که برای توضیح پیش‌بینی‌های فردی یک مدل جعبه سیاه به کار می‌روند. LIME (Local Interpretable Model-agnostic Explanations — توضیحات محلی تفسیرپذیر مستقل از مدل)، که توسط Ribeiro، Singh و Guestrin (2016) پیشنهاد شده، روشی برای برازش مدل‌های جانشین محلی است.

ایده اصلی ساده است: به جای تلاش برای تفسیر مدل پیچیده در کل فضا، یک مدل تفسیرپذیر ساده‌تر را فقط در همسایگی نقطه مورد نظر برازش می‌دهیم.

دستورالعمل LIME:

۱. نمونه‌ای را که می‌خواهید توضیح دهید انتخاب کنید. ۲. مجموعه داده‌ای اختلال‌یافته (perturbed) بسازید و پیش‌بینی مدل جعبه سیاه را برای آن‌ها به دست آورید. ۳. به نمونه‌های اختلال‌یافته بر اساس نزدیکی به نمونه اصلی وزن دهید. ۴. یک مدل تفسیرپذیر وزن‌دار (مثلاً رگرسیون خطی) روی مجموعه داده وزن‌دار آموزش دهید. ۵. مدل محلی را برای توضیح پیش‌بینی نمونه اصلی تفسیر کنید.


پایه ریاضی

توضیح LIME برای یک نمونه $\mathbf{x}$ با حل مسئله بهینه‌سازی زیر به دست می‌آید:

$$\text{explanation}(\mathbf{x}) = \arg\min_{g ,\in, \mathcal{G}} ;\mathcal{L}\!\left(\hat{f},, g,, \pi_{\mathbf{x}}\right) + \Omega(g)$$

که در آن:

  • $\hat{f}$: مدل جعبه سیاه که می‌خواهیم توضیح دهیم.
  • $g \in \mathcal{G}$: مدل جانشین تفسیرپذیر (مثلاً رگرسیون خطی یا درخت تصمیم کوچک) از فضای مدل‌های تفسیرپذیر $\mathcal{G}$.
  • $\mathcal{L}(\hat{f}, g, \pi_{\mathbf{x}})$: تابع خطا که اندازه می‌گیرد $g$ تا چه حد پیش‌بینی‌های $\hat{f}$ را در همسایگی $\mathbf{x}$ (با وزن‌دهی $\pi_{\mathbf{x}}$) تقریب می‌زند.
  • $\Omega(g)$: پیچیدگی مدل $g$ (مثلاً تعداد ویژگی‌های غیرصفر در رگرسیون خطی).
  • $\pi_{\mathbf{x}}$: تابع مجاورت (kernel) که نزدیکی نمونه‌های اختلال‌یافته به $\mathbf{x}$ را اندازه می‌گیرد.

هدف این است که مدل $g$ را بیابیم که هم به خوبی $\hat{f}$ را در محلی از $\mathbf{x}$ تقریب بزند و هم پیچیدگی پایینی داشته باشد.


LIME برای داده‌های جدولی

داده‌های جدولی در قالب جداول هستند که هر سطر یک نمونه و هر ستون یک ویژگی است. تعریف «همسایگی» برای داده‌های جدولی چالش‌برانگیز است.

LIME با نمونه‌گیری از توزیع نرمال حول هر ویژگی، نمونه‌های اختلال‌یافته می‌سازد. این کار با در نظر گرفتن میانگین و انحراف معیار هر ویژگی از مجموعه آموزشی انجام می‌شود. سپس نمونه‌های اختلال‌یافته توسط مدل جعبه سیاه برچسب‌گذاری شده و با توجه به فاصله از نمونه اصلی وزن می‌گیرند.

شکل ۱۴.۱ فرآیند LIME را برای داده‌های جدولی با دو ویژگی نشان می‌دهد:

فرآیند LIME برای داده‌های جدولی

شکل ۱۴.۱: الگوریتم LIME برای داده‌های جدولی. الف) سطح پیش‌بینی بر اساس ویژگی‌های $x_1$ و $x_2$. کلاس پیش‌بینی‌شده: ۱ (تیره) یا ۰ (روشن). ب) نمونه مورد نظر (نقطه بزرگ) و داده‌های نمونه‌برداری‌شده (نقاط کوچک). ج) وزن‌دهی نمونه‌ها بر اساس فاصله از نمونه اصلی. د) علامت‌های (+/−) طبقه‌بندی مدل محلی آموزش‌یافته از نمونه‌های وزن‌دار را نشان می‌دهند. خط سفید مرز تصمیم ($P(c=1)=0.5$) را مشخص می‌کند.

مشکل پهنای کرنل

یک مشکل بزرگ در LIME تبلایی برای داده‌های جدولی، انتخاب پهنای کرنل (kernel width) است. پهنای کرنل تعیین می‌کند که همسایگی چقدر گسترده باشد — کرنل باریک فقط نمونه‌های بسیار نزدیک را در نظر می‌گیرد، در حالی که کرنل پهن اثر وزن‌دهی را از بین می‌برد. LIME به‌طور پیش‌فرض پهنای کرنل را برابر $0.75 \times \sqrt{p}$ قرار می‌دهد، که در آن $p$ تعداد ویژگی‌هاست — اما منطق روشنی برای این انتخاب وجود ندارد.

شکل ۱۴.۲ نشان می‌دهد که پهنای کرنل‌های مختلف چه توضیحات متفاوتی برای همان نمونه تولید می‌کنند:

تأثیر پهنای کرنل بر توضیحات LIME

شکل ۱۴.۲: توضیح پیش‌بینی نمونه $x = 1.6$ با پهناهای کرنل مختلف. پیش‌بینی‌های مدل با خط ضخیم نشان داده شده و توزیع داده با نقاط روی محور افقی مشخص است. سه مدل جانشین محلی با پهناهای کرنل مختلف محاسبه شده‌اند.

مثال: داده پنگوئن

شکل ۱۴.۳ توضیحات LIME را برای دو نمونه از مجموعه داده پنگوئن نشان می‌دهد:

توضیحات LIME برای داده پنگوئن

شکل ۱۴.۳: توضیحات LIME برای دو نمونه از مجموعه داده پنگوئن. محور افقی اثر ویژگی را نشان می‌دهد که برابر وزن ضربدر مقدار واقعی ویژگی است.

فصل ۱۵: توضیحات خلاف واقع

عنوان اصلی: Counterfactual Explanations
منبع: https://christophm.github.io/interpretable-ml-book/counterfactual.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


نویسندگان: Susanne Dandl و Christoph Molnar

توضیح خلاف واقع، یک موقعیت علّی را به این شکل بیان می‌کند: «اگر X رخ نداده بود، Y هم رخ نمی‌داد.» برای مثال: «اگر یک جرعه از آن قهوه داغ نمی‌نوشیدم، زبانم نمی‌سوخت.» رویداد Y سوختن زبان است و علت X نوشیدن قهوه داغ. تفکر خلاف واقع مستلزم تصور یک واقعیت فرضی است که با آنچه واقعاً رخ داده در تضاد است—جهانی که در آن قهوه‌ای ننوشیده‌ام—و از همین‌رو این نام را به خود گرفته است. توانایی تفکر خلاف واقع از جمله ویژگی‌هایی است که انسان را از سایر جانوران متمایز می‌کند.

در یادگیری ماشین تفسیرپذیر، توضیحات خلاف واقع برای تبیین پیش‌بینی‌های نمونه‌های منفرد به کار می‌روند.1 همان‌طور که در شکل ۱۵.۱ نشان داده شده، رابطه میان ورودی‌ها و پیش‌بینی از منظر گرافی ساده است: مقادیر ویژگی‌ها، پیش‌بینی را رقم می‌زنند. حتی اگر در واقعیت رابطه میان ورودی‌ها و پیامد مورد پیش‌بینی لزوماً علّی نباشد، می‌توانیم ورودی‌های مدل را به‌مثابه علت پیش‌بینی در نظر بگیریم.

شکل ۱۵.۱: روابط علّی میان ورودی‌های یک مدل یادگیری ماشین و پیش‌بینی‌های آن، زمانی که مدل صرفاً به‌عنوان یک Black Box در نظر گرفته می‌شود. ورودی‌ها پیش‌بینی را ایجاد می‌کنند (و این لزوماً رابطه علّی واقعی داده‌ها را منعکس نمی‌کند).

با توجه به این گراف ساده، به‌راحتی می‌توان دید که چگونه می‌توان حالت‌های خلاف واقع را برای پیش‌بینی‌های مدل‌های یادگیری ماشین شبیه‌سازی کرد: کافی است مقادیر ویژگی‌های یک نمونه را پیش از پیش‌بینی تغییر دهیم و بررسی کنیم که پیش‌بینی چگونه دگرگون می‌شود. ما به سناریوهایی علاقه داریم که در آن‌ها پیش‌بینی به‌شکل معناداری تغییر می‌کند—مانند تغییر برچسب پیش‌بینی‌شده (برای مثال، تأیید یا رد درخواست اعتبار)، یا رسیدن به یک آستانه مشخص (برای مثال، احتمال سرطان به ۱۰٪ برسد). توضیح خلاف واقع یک پیش‌بینی، کوچک‌ترین تغییر در مقادیر ویژگی‌هایی را توصیف می‌کند که پیش‌بینی را به یک خروجی از پیش تعریف‌شده تبدیل می‌کند.

هم روش‌های مستقل از مدل (model-agnostic) و هم روش‌های وابسته به مدل برای توضیحات خلاف واقع وجود دارند، اما در این فصل بر روش‌های مستقل از مدل تمرکز می‌کنیم—روش‌هایی که تنها با ورودی‌ها و خروجی‌های مدل کار می‌کنند و به ساختار درونی مدل‌های خاص نیازی ندارند.

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

در مثال اول، پیتر برای دریافت وام درخواست می‌دهد و نرم‌افزار بانکی مبتنی بر یادگیری ماشین درخواست او را رد می‌کند. او می‌خواهد بداند چرا درخواستش رد شده و چگونه می‌تواند شانس خود را افزایش دهد. پرسش «چرا» را می‌توان به‌صورت یک سؤال خلاف واقع بازنویسی کرد: کوچک‌ترین تغییر در ویژگی‌ها (درآمد، تعداد کارت‌های اعتباری، سن، …) که پیش‌بینی را از «رد» به «تأیید» تبدیل کند، چیست؟ یک پاسخ ممکن این است: اگر درآمد سالانه پیتر ۱۰٬۰۰۰ واحد بیشتر بود، وام دریافت می‌کرد. یا اگر کارت‌های اعتباری کمتری داشت و پنج سال پیش وامی را نکول نکرده بود، موفق می‌شد. پیتر هرگز از دلایل رد شدن آگاه نخواهد شد، چرا که بانک انگیزه‌ای برای شفافیت ندارد—اما این داستان دیگری است.

در مثال دوم، می‌خواهیم مدلی را که یک پیامد پیوسته پیش‌بینی می‌کند با توضیحات خلاف واقع تبیین کنیم. آنا می‌خواهد آپارتمانش را اجاره دهد، اما مطمئن نیست چه اجاره‌ای تعیین کند؛ بنابراین تصمیم می‌گیرد یک مدل یادگیری ماشین برای پیش‌بینی اجاره آموزش دهد—چون آنا یک دانشمند داده است و مسائل را این‌گونه حل می‌کند. پس از وارد کردن اطلاعات مربوط به متراژ، موقعیت مکانی، مجاز بودن حیوانات خانگی و غیره، مدل به او می‌گوید که می‌تواند ۹۰۰ یورو اجاره بگیرد. او انتظار ۱۰۰۰ یورو یا بیشتر داشت، اما به مدلش اعتماد دارد و تصمیم می‌گیرد با تغییر مقادیر ویژگی‌های آپارتمان بررسی کند که چطور می‌تواند ارزش آن را افزایش دهد. متوجه می‌شود که اگر آپارتمان ۱۵ متر مربع بزرگ‌تر بود، اجاره آن از ۱۰۰۰ یورو فراتر می‌رفت—اطلاعات جالب، اما غیرقابل اجرا، چون نمی‌تواند آپارتمانش را بزرگ‌تر کند. در نهایت، با تغییر تنها ویژگی‌هایی که در اختیار اوست (آشپزخانه مبله/غیرمبله، مجاز بودن حیوانات خانگی، نوع کف، و غیره)، درمی‌یابد که اگر حیوانات خانگی را بپذیرد و پنجره‌هایی با عایق‌بندی بهتر نصب کند، می‌تواند ۱۰۰۰ یورو اجاره بگیرد. آنا به‌طور شهودی با توضیحات خلاف واقع کار کرده تا به پیامد دلخواهش برسد. توجه داشته باشید که آنا با مدل پیش‌بینی اجاره کار کرده و لزوماً به این علاقه‌ای نداشته که آیا این عوامل در «دنیای واقعی» واقعاً علت اجاره بالاتر هستند یا نه.

⚠️ هشدار توضیحات خلاف واقع (به‌عنوان یک روش IML) به‌تنهایی از ادعاهای علّی درباره دنیای واقعی پشتیبانی نمی‌کنند. برای چنین ادعاهایی به یک مدل علّی نیاز است.

توضیحات خلاف واقع برای انسان‌ها قابل فهم هستند، زیرا نسبت به نمونه جاری تضادگرایانه‌اند و انتخابی عمل می‌کنند—یعنی معمولاً بر تعداد کمی از تغییرات ویژگی تمرکز دارند. با این حال، توضیحات خلاف واقع از «اثر راشومون» رنج می‌برند. راشومون فیلم ژاپنی است که در آن قتل یک سامورایی توسط افراد مختلف روایت می‌شود؛ هر روایت به‌خوبی پیامد را توضیح می‌دهد، اما روایت‌ها با یکدیگر در تناقض‌اند. همین اتفاق می‌تواند برای توضیحات خلاف واقع نیز رخ دهد، چرا که معمولاً چندین توضیح خلاف واقع متفاوت وجود دارد. هر توضیح «داستان» متفاوتی از چگونگی رسیدن به یک پیامد خاص تعریف می‌کند. یک توضیح ممکن است تغییر ویژگی A را پیشنهاد دهد، در حالی که توضیح دیگری A را ثابت نگه می‌دارد اما ویژگی B را تغییر می‌دهد—که این یک تناقض است. این مسئله چندگانگی حقیقت را می‌توان یا با گزارش تمام توضیحات خلاف واقع حل کرد، یا با داشتن معیاری برای ارزیابی و انتخاب بهترین آن‌ها.

از آنجا که به معیارها اشاره کردیم، چگونه یک توضیح خلاف واقع خوب را تعریف کنیم؟ ابتدا، کاربر یک تغییر معنادار در پیش‌بینی نمونه مورد نظر تعریف می‌کند (واقعیت جایگزین). بدیهی‌ترین شرط این است که نمونه خلاف واقع تا حد امکان به پیش‌بینی از پیش تعریف‌شده نزدیک باشد. یافتن چنین نمونه‌ای همیشه ممکن نیست. برای مثال، در یک مسئله دسته‌بندی دوکلاسه با یک کلاس نادر و یک کلاس پرتکرار، مدل ممکن است همواره نمونه را به کلاس پرتکرار اختصاص دهد و تغییر برچسب به کلاس نادر از نظر عملی ناممکن باشد. بنابراین می‌خواهیم این شرط را تخفیف دهیم. در مثال دسته‌بندی، می‌توانیم به‌دنبال توضیحی باشیم که در آن احتمال پیش‌بینی‌شده کلاس نادر از ۲٪ کنونی به ۱۰٪ افزایش یابد. سؤال این است: کوچک‌ترین تغییر در ویژگی‌ها برای رساندن احتمال از ۲٪ به ۱۰٪ (یا نزدیک به آن) چیست؟

💡 نکته: از احتمالات استفاده کنید در مسائل دسته‌بندی، بهتر است توضیح خلاف واقع بر اساس احتمالات پیش‌بینی‌شده تعریف شود، نه برچسب‌های کلاس.

معیار کیفی دیگر این است که توضیح خلاف واقع باید تا حد امکان از نظر مقادیر ویژگی به نمونه اصلی شبیه باشد. فاصله میان دو نمونه را می‌توان با فاصله منهتن یا فاصله گاور (برای ویژگی‌های ترکیبی گسسته و پیوسته) اندازه‌گیری کرد. توضیح خلاف واقع نه تنها باید به نمونه اصلی نزدیک باشد، بلکه باید تعداد کمتری از ویژگی‌ها را تغییر دهد. برای سنجش این ویژگی، می‌توان تعداد ویژگی‌های تغییریافته را شمرد یا به‌زبان ریاضی، نرم $\ell_0$ میان توضیح خلاف واقع و نمونه اصلی را محاسبه کرد.

سومین معیار، تولید چندین توضیح خلاف واقع متنوع است تا فرد ذی‌نفع به شیوه‌های مختلفی برای رسیدن به پیامد دلخواه دسترسی داشته باشد. برای مثال، در مثال وام، یک توضیح ممکن است فقط دو برابر کردن درآمد را پیشنهاد دهد، در حالی که توضیح دیگری نقل مکان به شهری مجاور همراه با افزایش اندک درآمد را مطرح کند. این تنوع به افراد مختلف این امکان را می‌دهد که ویژگی‌هایی را تغییر دهند که برای شرایطشان عملی‌تر است.

آخرین شرط این است که مقادیر ویژگی در توضیح خلاف واقع باید محتمل باشند. توضیحی که متراژ آپارتمان را منفی یا تعداد اتاق‌ها را ۲۰۰ عدد پیشنهاد دهد، بی‌معناست. بهتر است توضیح خلاف واقع با توزیع مشترک داده‌ها سازگار باشد؛ برای مثال، آپارتمانی با ۱۰ اتاق و ۲۰ متر مربع مطلوب نیست. در حالت ایده‌آل، اگر متراژ افزایش می‌یابد، افزایش تعداد اتاق‌ها هم باید پیشنهاد شود.

تولید توضیحات خلاف واقع

ساده‌ترین رویکرد برای تولید توضیحات خلاف واقع، جستجوی آزمون و خطاست: مقادیر ویژگی نمونه مورد نظر را به‌صورت تصادفی تغییر می‌دهیم تا زمانی که خروجی مطلوب پیش‌بینی شود—درست مثل آنا که به‌دنبال نسخه‌ای از آپارتمانش می‌گشت که اجاره بیشتری داشته باشد. اما روش‌های بهتری هم وجود دارند. ابتدا یک تابع خسارت بر اساس معیارهای ذکرشده تعریف می‌کنیم. این تابع نمونه مورد نظر، یک توضیح خلاف واقع کاندیدا، و پیامد (خلاف واقع) مطلوب را به‌عنوان ورودی می‌گیرد. سپس با بهینه‌سازی این تابع، توضیح خلاف واقعی می‌یابیم که خسارت را کمینه می‌کند. بسیاری از روش‌ها چنین رویکردی دارند، اما در تعریف تابع خسارت و روش بهینه‌سازی با یکدیگر تفاوت دارند.

در ادامه، بر دو روش تمرکز می‌کنیم: روش Wachter، Mittelstadt، و Russell (2018) که توضیحات خلاف واقع را به‌عنوان یک روش تفسیری معرفی کردند، و روش Dandl و همکاران (2020) که هر چهار معیار ذکرشده را در نظر می‌گیرد.

روش Wachter و همکاران

Wachter و همکاران پیشنهاد می‌کنند تابع خسارت زیر را کمینه کنیم:

$$L(x, x', y', \lambda) = \lambda \cdot (\hat{f}(x') - y')^2 + d(x, x')$$

جمله اول، فاصله درجه دوم میان پیش‌بینی مدل برای توضیح خلاف واقع $x'$ و پیامد مطلوب $y'$ است که کاربر باید از پیش تعریف کند. جمله دوم، فاصله $d$ میان نمونه مورد تفسیر $x$ و توضیح خلاف واقع $x'$ است. این تابع خسارت می‌سنجد که پیش‌بینی توضیح خلاف واقع چقدر از پیامد از پیش تعریف‌شده فاصله دارد و توضیح خلاف واقع چقدر با نمونه اصلی تفاوت دارد. تابع فاصله $d$ به‌صورت فاصله منهتن وزن‌دار با وزن‌های متناسب با معکوس انحراف مطلق میانه (MAD) هر ویژگی تعریف می‌شود:

$$d(x, x') = \sum_{j=1}^{p} \frac{|x_j - x'_j|}{\text{MAD}_j}$$

فاصله کل، مجموع فاصله‌های ویژگی‌به‌ویژگی است—یعنی قدر مطلق اختلاف مقادیر ویژگی میان نمونه $x$ و توضیح خلاف واقع $x'$. این فاصله‌ها با معکوس انحراف مطلق میانه ویژگی $j$ در مجموعه داده مقیاس‌بندی می‌شوند:

$$\text{MAD}_j = \text{median}_{i \in {1,\ldots,n}}(|x_{i,j} - \text{median}_{l \in {1,\ldots,n}}(x_{l,j})|)$$

میانه یک بردار، مقداری است که نیمی از عناصر بزرگ‌تر و نیمی کوچک‌تر از آن هستند. MAD معادل واریانس یک ویژگی است، با این تفاوت که به جای استفاده از میانگین به‌عنوان مرکز و جمع مربعات فاصله‌ها، از میانه به‌عنوان مرکز و جمع قدر مطلق فاصله‌ها استفاده می‌شود. این تابع فاصله نسبت به فاصله اقلیدسی در برابر داده‌های پرت مقاوم‌تر است. مقیاس‌بندی با MAD برای یکسان‌سازی مقیاس ویژگی‌ها ضروری است—نباید فرقی کند که متراژ آپارتمان به متر مربع اندازه‌گیری شده یا به فوت مربع.

پارامتر $\lambda$ تعادل میان فاصله در پیش‌بینی (جمله اول) و فاصله در مقادیر ویژگی (جمله دوم) را برقرار می‌کند. برای یک مقدار مشخص از $\lambda$، بهینه‌سازی تابع خسارت یک توضیح خلاف واقع $x'$ برمی‌گرداند. مقدار بزرگ‌تر $\lambda$ به معنای ترجیح توضیحاتی است که پیش‌بینی‌شان به $y'$ نزدیک‌تر است، در حالی که مقدار کوچک‌تر به معنای ترجیح توضیحاتی است که از نظر مقادیر ویژگی به $x$ شبیه‌ترند. نویسندگان پیشنهاد می‌کنند به‌جای انتخاب مستقیم $\lambda$، یک بازه تحمل $\epsilon$ تعریف شود که تعیین می‌کند پیش‌بینی توضیح خلاف واقع چقدر می‌تواند از $y'$ فاصله داشته باشد:

$$|\hat{f}(x') - y'| \leq \epsilon$$

برای کمینه کردن این تابع خسارت، می‌توان از هر الگوریتم بهینه‌سازی مناسبی مانند Nelder-Mead استفاده کرد. اگر به گرادیان‌های مدل دسترسی داشته باشیم، می‌توان از روش‌های گرادیانی مانند ADAM بهره گرفت. نمونه مورد تفسیر $x$، خروجی مطلوب $y'$ و پارامتر بازه تحمل $\epsilon$ باید از پیش تعیین شوند. تابع خسارت برای $x'$ کمینه می‌شود و توضیح خلاف واقع (به‌صورت محلی) بهینه $x'$ بازگردانده می‌شود، در حالی که $\lambda$ به‌تدریج افزایش می‌یابد تا راه‌حل کافی درون بازه تحمل یافت شود:

$$\underset{x'}{\arg\min} \max_{\lambda > 0} L(x, x', y', \lambda)$$

به‌طور خلاصه، دستورالعمل تولید توضیحات خلاف واقع به این شکل است:

۱. نمونه مورد تفسیر $x$، پیامد مطلوب $y'$، بازه تحمل $\epsilon$، و یک مقدار اولیه کوچک برای $\lambda$ را انتخاب کنید. ۲. یک نمونه تصادفی به‌عنوان توضیح خلاف واقع اولیه انتخاب کنید. ۳. با این نقطه شروع، تابع خسارت را بهینه کنید. ۴. تا زمانی که $|\hat{f}(x') - y'| > \epsilon$:

  • $\lambda$ را افزایش دهید.
  • با توضیح خلاف واقع فعلی به‌عنوان نقطه شروع، بهینه‌سازی را ادامه دهید. ۵. توضیح خلاف واقعی که تابع خسارت را کمینه می‌کند، بازگردانید. ۶. گام‌های ۲ تا ۴ را تکرار کنید و فهرست توضیحات خلاف واقع یا بهترین آن‌ها را بازگردانید.

این روش دارای چند محدودیت است. تنها معیارهای اول و دوم را در نظر می‌گیرد و معیارهای سوم و چهارم («توضیحات با تغییرات کم و مقادیر ویژگی محتمل») را نادیده می‌گیرد. نرم $\ell_0$ راه‌حل‌های تنک را ترجیح نمی‌دهد، چرا که تغییر ۱۰ ویژگی به اندازه ۱ همان فاصله را ایجاد می‌کند که تغییر یک ویژگی به اندازه ۱۰. همچنین، ترکیب‌های غیرواقعی مقادیر ویژگی جریمه نمی‌شوند.

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

اکنون به روشی می‌پردازیم که این مشکلات را برطرف می‌کند.

روش Dandl و همکاران

Dandl و همکاران پیشنهاد می‌کنند به‌طور همزمان یک تابع خسارت چهار هدفه را کمینه کنیم:

$$\underset{x'}{\arg\min} ; (o_1(x'), o_2(x'), o_3(x'), o_4(x'))$$

هر یک از چهار هدف $o_1$ تا $o_4$ با یکی از چهار معیار ذکرشده متناظر است. هدف اول $o_1$ می‌خواهد پیش‌بینی توضیح خلاف واقع $x'$ تا حد ممکن به پیش‌بینی مطلوب $y'$ نزدیک باشد. بنابراین فاصله میان $\hat{f}(x')$ و $y'$ را با متریک منهتن (نرم $\ell_1$) کمینه می‌کنیم:

$$o_1(x') = \begin{cases} 0 & \text{if } \hat{f}(x') \in y' \\ \inf_{y \in y'} |\hat{f}(x') - y| & \text{otherwise} \end{cases}$$

هدف دوم $o_2$ می‌خواهد توضیح خلاف واقع تا حد ممکن به نمونه $x$ شبیه باشد. این هدف فاصله میان $x'$ و $x$ را با فاصله گاور اندازه می‌گیرد:

$$o_2(x') = \frac{1}{p} \sum_{j=1}^{p} \delta_G(x_j, x'_j)$$

که در آن $p$ تعداد ویژگی‌هاست. مقدار $\delta_G$ بسته به نوع ویژگی $j$ متفاوت است:

$$\delta_G(x_j, x'_j) = \begin{cases} \frac{|x_j - x'_j|}{\text{range}_j} & \text{if } x_j \text{ is numerical} \\ \mathbb{1}_{x_j \neq x'_j} & \text{if } x_j \text{ is categorical} \end{cases}$$

تقسیم فاصله یک ویژگی عددی بر $\text{range}_j$ (بازه مشاهده‌شده آن)، مقدار $\delta_G$ را برای تمام ویژگی‌ها بین صفر و یک مقیاس‌بندی می‌کند.

فاصله گاور می‌تواند هم ویژگی‌های عددی و هم طبقه‌ای را مدیریت کند، اما تعداد ویژگی‌های تغییریافته را نمی‌شمارد. بنابراین با یک هدف سوم $o_3$ تعداد ویژگی‌های تغییریافته را با نرم $\ell_0$ می‌شماریم:

$$o_3(x') = |x - x'|_0$$

با کمینه کردن $o_3$ به سومین معیار—تغییرات تنک در ویژگی‌ها—دست می‌یابیم.

هدف چهارم $o_4$ می‌خواهد توضیحات خلاف واقع ترکیب‌های محتملی از مقادیر ویژگی داشته باشند. می‌توانیم از داده‌های آموزشی یا مجموعه داده دیگری برای تخمین این محتمل بودن استفاده کنیم. این مجموعه داده را $X_{\text{obs}}$ می‌نامیم. به‌عنوان تقریبی از محتمل بودن، $o_4$ میانگین فاصله گاور میان $x'$ و نزدیک‌ترین نقطه مشاهده‌شده $x^{[1]}$ را اندازه می‌گیرد:

$$o_4(x') = \frac{1}{p} \sum_{j=1}^{p} \delta_G(x_j^{[1]}, x'_j)$$

در مقایسه با روش Wachter و همکاران، $o_4$ جمله‌های تعادل/وزن‌دهی مانند $\lambda$ ندارد. ما نمی‌خواهیم چهار هدف $o_1$، $o_2$، $o_3$ و $o_4$ را با جمع و وزن‌دهی در یک هدف واحد ترکیب کنیم، بلکه می‌خواهیم هر چهار را به‌طور همزمان بهینه کنیم.

چگونه؟ از الگوریتم ژنتیک مرتب‌سازی غیرمسلط (Deb و همکاران، ۲۰۰۲)، که به اختصار NSGA-II نامیده می‌شود، استفاده می‌کنیم. NSGA-II یک الگوریتم الهام‌گرفته از طبیعت است که قانون «بقای اصلح» داروین را پیاده می‌کند. شایستگی یک توضیح خلاف واقع با بردار مقادیر هدف آن یعنی $(o_1, o_2, o_3, o_4)$ سنجیده می‌شود—هرچه مقادیر هدف کمتر باشد، توضیح «شایسته‌تر» است.

الگوریتم از چهار گامی تشکیل شده که تا رسیدن به یک معیار توقف—مثلاً حداکثر تعداد تکرار/نسل—تکرار می‌شوند. شکل ۱۵.۲ چهار گام یک نسل را نمایش می‌دهد.

شکل ۱۵.۲: نمایش یک نسل از الگوریتم NSGA-II.

در نسل اول، گروهی از توضیحات خلاف واقع کاندیدا با تغییر تصادفی برخی ویژگی‌ها نسبت به نمونه مورد تفسیر $x$ مقداردهی اولیه می‌شوند. با ادامه مثال اعتبار، یک توضیح ممکن است افزایش ۳۰٬۰۰۰ یورویی درآمد را پیشنهاد دهد، در حالی که توضیح دیگری عدم نکول در پنج سال گذشته و کاهش ۱۰ ساله سن را مطرح کند. تمام مقادیر ویژگی دیگر برابر با مقادیر $x$ هستند. سپس هر کاندیدا با چهار تابع هدف ارزیابی می‌شود. از میان آن‌ها، برخی کاندیداها به‌صورت تصادفی انتخاب می‌شوند، با این تفاوت که کاندیداهای شایسته‌تر احتمال انتخاب بیشتری دارند. این کاندیداها به‌صورت دوتایی با هم ترکیب می‌شوند تا فرزندانی مشابه آن‌ها تولید کنند—از طریق میانگین‌گیری مقادیر ویژگی‌های عددی یا تقاطع ویژگی‌های طبقه‌ای. علاوه بر این، مقادیر ویژگی فرزندان کمی جهش می‌یابند تا فضای ویژگی به‌طور کامل کاوش شود.

از دو گروه حاصل—یکی والدین و دیگری فرزندان—تنها نیمه بهتر با دو الگوریتم مرتب‌سازی انتخاب می‌شود. الگوریتم مرتب‌سازی غیرمسلط، کاندیداها را بر اساس مقادیر هدف‌شان رتبه‌بندی می‌کند. اگر کاندیداها به یک اندازه خوب باشند، الگوریتم مرتب‌سازی فاصله تراکمی آن‌ها را بر اساس تنوع‌شان رتبه‌بندی می‌کند.

با توجه به رتبه‌بندی این دو الگوریتم، امیدوارترین و/یا متنوع‌ترین نیمه از کاندیداها انتخاب می‌شود. این مجموعه برای نسل بعدی استفاده می‌شود و فرآیند انتخاب، ترکیب و جهش از نو آغاز می‌شود. با تکرار این گام‌ها، به‌تدریج به یک مجموعه متنوع از کاندیداهای امیدوارکننده با مقادیر هدف پایین نزدیک می‌شویم. از این مجموعه می‌توانیم رضایت‌بخش‌ترین توضیحات را انتخاب کنیم، یا با برجسته کردن اینکه کدام ویژگی‌ها و با چه تکراری تغییر یافته‌اند، خلاصه‌ای از تمام توضیحات ارائه دهیم.

مثال

مثال زیر بر اساس مثال مجموعه داده اعتبار در Dandl و همکاران (2020) است. مجموعه داده ریسک اعتباری آلمان در پلتفرم چالش‌های یادگیری ماشین kaggle.com در دسترس است. نویسندگان یک ماشین بردار پشتیبان (با هسته پایه شعاعی) برای پیش‌بینی احتمال خوب بودن ریسک اعتباری مشتری آموزش دادند. مجموعه داده متناظر دارای ۵۲۲ مشاهده کامل و نه ویژگی حاوی اطلاعات اعتباری و مشتری است.

هدف، یافتن توضیحات خلاف واقع برای مشتری با مقادیر ویژگی نشان‌داده‌شده در جدول ۱۵.۱ است.

جدول ۱۵.۱: مقادیر ویژگی یک مشتری خاص

سنجنسیتشغلمسکنپس‌اندازمبلغمدتهدف
۵۸زنغیرماهرآزادکم۶۱۴۳۴۸خودرو

مدل SVM احتمال خوب بودن ریسک اعتباری این شخص را ۲۴.۲٪ پیش‌بینی می‌کند. توضیحات خلاف واقع باید پاسخ دهند که چه تغییراتی در ویژگی‌های ورودی لازم است تا احتمال پیش‌بینی‌شده به بیش از ۵۰٪ برسد. جدول ۱۵.۲ ده توضیح خلاف واقع برتر را نشان می‌دهد. پنج ستون اول تغییرات ویژگی پیشنهادی را نشان می‌دهند (تنها ویژگی‌های تغییریافته نمایش داده شده‌اند)، سه ستون بعدی مقادیر هدف ($o_1$ در تمام موارد برابر صفر است) و ستون آخر احتمال پیش‌بینی‌شده را نشان می‌دهد.

جدول ۱۵.۲: ده توضیح خلاف واقع برتر برای مشتری مورد نظر

سنجنسیتشغلمبلغمدت$o_2$$o_3$$o_4$$\hat{f}(x')$
ماهر‎−۲۰0.10820.0360.501
ماهر‎−۲۴0.11420.0290.525
ماهر‎−۲۲0.11120.0330.513
‎−۶ماهر‎−۲۴0.12630.0180.505
‎−۳ماهر‎−۲۴0.12030.0240.515
‎−۱ماهر‎−۲۴0.11630.0270.522
‎−۳مرد‎−۲۴0.19530.0120.501
‎−۶مرد‎−۲۵0.20230.0110.501
‎−۳۰مردماهر‎−۲۴0.28540.0050.590
‎−۴مرد‎−۱۲۵۴‎−۲۴0.20440.0020.506

تمام توضیحات خلاف واقع احتمالات پیش‌بینی‌شده بیش از ۵۰٪ دارند و هیچ‌کدام بر دیگری مسلط نیستند. نامسلط بودن به این معناست که هیچ توضیحی در تمام هدف‌ها مقادیر کوچک‌تری از دیگری ندارد—می‌توان آن‌ها را به‌عنوان مجموعه‌ای از راه‌حل‌های مبادله‌ای در نظر گرفت.

همه توضیحات کاهش مدت از ۴۸ ماه به حداقل ۲۳ ماه را پیشنهاد می‌دهند. برخی پیشنهاد می‌کنند که این زن باید به جای غیرماهر، ماهر شود. برخی توضیحات حتی تغییر جنسیت از زن به مرد را پیشنهاد می‌دهند که نشان‌دهنده سوگیری جنسیتی مدل است. این تغییر همواره با کاهش سن بین یک تا ۳۰ سال همراه است. همچنین می‌بینیم که برخی توضیحات که چهار ویژگی را تغییر می‌دهند، نزدیک‌ترین به داده‌های آموزشی هستند.

نقاط قوت

تفسیر توضیحات خلاف واقع کاملاً روشن است: اگر مقادیر ویژگی یک نمونه طبق توضیح خلاف واقع تغییر کند، پیش‌بینی به پیامد از پیش تعریف‌شده تبدیل می‌شود. هیچ فرض اضافی وجود ندارد و هیچ جادویی در پس‌زمینه رخ نمی‌دهد. این ویژگی همچنین به این معناست که توضیحات خلاف واقع نسبت به روش‌هایی مانند LIME—که مشخص نیست تا چه اندازه می‌توان مدل محلی را برای تفسیر بسط داد—کمتر خطرناک هستند.

روش خلاف واقع یک نمونه جدید می‌سازد، اما می‌توانیم توضیح را با گزارش اینکه کدام مقادیر ویژگی تغییر کرده‌اند خلاصه کنیم. این دو گزینه برای گزارش نتایج به ما می‌دهد: می‌توان نمونه خلاف واقع را کامل گزارش داد، یا تنها ویژگی‌هایی را که میان نمونه مورد نظر و توضیح خلاف واقع تفاوت دارند برجسته کرد.

این روش به داده‌ها یا مدل دسترسی نیاز ندارد—تنها به تابع پیش‌بینی مدل نیاز است که حتی از طریق یک API وب هم قابل استفاده است. این ویژگی برای شرکت‌هایی که توسط طرف‌های ثالث حسابرسی می‌شوند یا می‌خواهند بدون افشای مدل یا داده‌ها توضیحاتی برای کاربران ارائه دهند، جذاب است. توضیحات خلاف واقع تعادلی میان تبیین پیش‌بینی‌های مدل و حفاظت از منافع مالک مدل برقرار می‌کنند.

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

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

توضیحات خلاف واقع برای هدف توجیه—به‌ویژه جبران— مفید هستند، چرا که صادقانه و ساده‌اند. بر خلاف سایر روش‌های تفسیر، مانند مقادیر شپلی، صرفاً تخمینی از چیزی نیستند؛ بلکه نمونه‌های داده جدیدی هستند که می‌توانیم گزارش کنیم مدل برای آن‌ها چه پیش‌بینی می‌کند.

محدودیت‌ها

برای هر نمونه معمولاً چندین توضیح خلاف واقع یافت می‌شود (اثر راشومون). این موضوع ناخوشایند است—اکثر مردم توضیحات ساده را به پیچیدگی دنیای واقعی ترجیح می‌دهند. همچنین یک چالش عملی است: فرض کنید ۲۳ توضیح خلاف واقع برای یک نمونه تولید کرده‌ایم. آیا همه را گزارش می‌دهیم؟ فقط بهترین را؟ اگر همه نسبتاً خوب اما بسیار متفاوت باشند چطور؟ پاسخ این پرسش‌ها باید برای هر پروژه جداگانه تعیین شود. البته داشتن چندین توضیح خلاف واقع هم می‌تواند مفید باشد، چرا که انسان‌ها می‌توانند آن‌هایی را انتخاب کنند که با دانش قبلی‌شان همخوانی دارد.

توضیحات خلاف واقع برای کسب بینش درباره مدل و داده چندان مفید نیستند، چرا که هر توضیح تنها مربوط به یک نمونه و یک پیش‌بینی خلاف واقع است—دیدی بسیار محدود، حتی در مقایسه با سایر روش‌های محلی.

نرم‌افزار و جایگزین‌ها

روش توضیحات خلاف واقع چند هدفه Dandl و همکاران در یک مخزن GitHub پیاده‌سازی شده است.

در بسته Python به نام Alibi، نویسندگان یک روش خلاف واقع ساده و همچنین یک روش توسعه‌یافته که از نمونه‌های اولیه کلاس برای بهبود تفسیرپذیری و همگرایی خروجی‌های الگوریتم استفاده می‌کند، پیاده‌سازی کرده‌اند (Van Looveren و Klaise، ۲۰۲۱).

Karimi و همکاران (2020) نیز یک پیاده‌سازی Python از الگوریتم MACE خود را در یک مخزن GitHub ارائه داده‌اند. آن‌ها معیارهای لازم برای توضیحات خلاف واقع مناسب را به فرمول‌های منطقی ترجمه کردند و از حل‌کننده‌های ارضاپذیری برای یافتن توضیحاتی که این معیارها را برآورده می‌کنند استفاده نمودند.

Mothilal، Sharma، و Tan (2020) ابزار DiCE (توضیحات خلاف واقع متنوع) را برای تولید مجموعه‌ای متنوع از توضیحات خلاف واقع بر اساس فرآیندهای نقطه‌ای دترمینانتی توسعه دادند. DiCE هم یک روش مستقل از مدل و هم یک روش مبتنی بر گرادیان را پیاده‌سازی می‌کند.

روش دیگری برای جستجوی توضیحات خلاف واقع، الگوریتم Growing Spheres توسط Laugel و همکاران (2017) است. آن‌ها در مقاله‌شان از اصطلاح «خلاف واقع» استفاده نمی‌کنند، اما روش کاملاً مشابه است. آن‌ها نیز یک تابع خسارت تعریف می‌کنند که توضیحاتی را با کمترین تغییر در مقادیر ویژگی ترجیح می‌دهد. به جای بهینه‌سازی مستقیم این تابع، پیشنهاد می‌کنند ابتدا کره‌ای در اطراف نقطه مورد نظر رسم کنیم، نقاطی درون آن نمونه‌برداری کنیم و بررسی کنیم آیا یکی از آن‌ها پیش‌بینی مطلوب را ایجاد می‌کند. سپس کره را بر اساس نتیجه منقبض یا منبسط می‌کنند تا یک توضیح خلاف واقع (تنک) یافت و بازگردانده شود.

لنگرها (Anchors) توسط Ribeiro، Singh، و Guestrin (2018) نقطه مقابل توضیحات خلاف واقع هستند؛ فصل مربوط به قوانین محدوده‌دار (لنگرها) را ببینید.

«خلاف واقع» اصطلاحی است که در زمینه‌های مختلف معانی متفاوتی دارد. در استنتاج علّی، این اصطلاح معنای متفاوتی دارد و به مداخلات علّی فرضی مرتبط است.

1

راهنمای واژگان: در این متن، واژه «خلاف واقع» معادل Counterfactual به کار رفته است.

فصل ۱۶: قوانین محدوده‌دار (Anchors)

عنوان اصلی: Scoped Rules (Anchors)
منبع: https://christophm.github.io/interpretable-ml-book/anchors.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


نویسندگان اصلی: Tobias Goerke و Magdalena Lang (با ویرایش‌های بعدی توسط Christoph Molnar)

روش انکر (Anchors) پیش‌بینی‌های تکی هر مدل طبقه‌بندی جعبه سیاه را با یافتن یک قانون تصمیم که پیش‌بینی را به‌اندازه کافی «محدود» (anchor) می‌کند، توضیح می‌دهد. یک قانون زمانی یک پیش‌بینی را محدود می‌کند که تغییر در سایر مقادیر ویژگی بر پیش‌بینی تأثیری نداشته باشد. انکرز از تکنیک‌های یادگیری تقویتی در ترکیب با یک الگوریتم جستجوی گراف استفاده می‌کند تا تعداد فراخوانی‌های مدل (و در نتیجه زمان اجرای مورد نیاز) را به حداقل برساند، در حالی که همچنان قادر به بازیابی از بهینه‌های محلی است. Ribeiro، Singh و Guestrin (2018) الگوریتم انکرز را ارائه کردند — همان پژوهشگرانی که الگوریتم لایم (LIME) را معرفی کردند.

مانند نسخه پیشین خود، رویکرد انکرز یک استراتژی مبتنی بر اختلال (perturbation-based) را برای تولید توضیحات محلی برای پیش‌بینی‌های مدل‌های یادگیری ماشین جعبه سیاه به کار می‌گیرد. با این حال، به جای مدل‌های جانشین مورد استفاده در لایم، توضیحات حاصل به‌صورت قوانین IF-THEN ساده و قابل فهم، به نام anchor (محدوده)، بیان می‌شوند. این قوانین قابل استفاده مجدد هستند زیرا دامنه‌دار (scoped) می‌باشند: انکرها شامل مفهوم پوشش (coverage) هستند که به‌دقت مشخص می‌کند این قوانین برای کدام نمونه‌های دیگر (حتی مشاهده‌نشده) اعمال می‌شوند. یافتن انکرها شامل یک مسئله اکتشاف یا بندبند چندبازویی (multi-armed bandit) است که ریشه در رشته یادگیری تقویتی دارد. بدین منظور، همسایگان یا اختلال‌ها برای هر نمونه‌ای که توضیح داده می‌شود ایجاد و ارزیابی می‌شوند. این کار به رویکرد اجازه می‌دهد تا ساختار جعبه سیاه و پارامترهای داخلی آن را نادیده بگیرد، به‌طوری که این موارد هم مشاهده‌نشده و هم تغییرنیافته باقی بمانند. بنابراین، الگوریتم مستقل از مدل (model-agnostic) است، به این معنا که می‌توان آن را برای هر کلاسی از مدل‌ها به کار برد.

در مقاله خود، نویسندگان هر دو الگوریتم خود را مقایسه می‌کنند و نشان می‌دهند که چگونه هر یک برای استخراج نتایج، به همسایگی یک نمونه مراجعه می‌کند. برای این منظور، شکل ۱۶.۱ هر دو روش لایم و انکرز را در توضیح محلی یک طبقه‌بند دودویی پیچیده (که ‎- یا + را پیش‌بینی می‌کند) با استفاده از دو نمونه نمایشی نشان می‌دهد. نتایج لایم نشان نمی‌دهند که چقدر وفادار هستند، زیرا لایم صرفاً یک مرز تصمیم خطی را یاد می‌گیرد که مدل را با توجه به فضای اختلال $\mathcal{D}$ به بهترین شکل تقریب می‌زند. با همان فضای اختلال، رویکرد انکرز توضیحاتی را می‌سازد که پوشش آن‌ها با رفتار مدل تطبیق داده شده است، و رویکرد مرزهای آن‌ها را به‌وضوح بیان می‌کند. بنابراین، آن‌ها ذاتاً وفادار هستند و دقیقاً بیان می‌کنند که برای کدام نمونه‌ها معتبرند. این ویژگی باعث می‌شود انکرها به‌ویژه شهودی و قابل درک باشند.

شکل ۱۶.۱: لایم در مقابل انکرز — یک تصویرسازی نمایشی. برگرفته از شکل Ribeiro, Singh, and Guestrin (2018).

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

ویژگیمقدار
سن۲۰
جنسیتزن
کلاساول
قیمت بلیت۳۰۰$
سایر ویژگی‌ها...
زنده ماندtrue

جدول ۱۶.۱: نمونه مورد توضیح

و توضیح انکر متناظر این است:

اگر SEX = female و Class = first آنگاه پیش‌بینی Survived = true با دقت ۹۷٪ و پوشش ۱۵٪

این مثال نشان می‌دهد که چگونه انکرها می‌توانند بینش‌های اساسی در مورد پیش‌بینی یک مدل و استدلال زیربنایی آن ارائه دهند. نتیجه نشان می‌دهد که کدام ویژگی‌ها توسط مدل در نظر گرفته شده‌اند که در این مورد، زن و کلاس اول هستند. انسان‌ها که برای صحت بسیار مهم هستند، می‌توانند از این قانون برای اعتبارسنجی رفتار مدل استفاده کنند. anchor additionally به ما می‌گوید که این قانون برای ۱۵٪ از نمونه‌های فضای اختلال اعمال می‌شود. در آن موارد، توضیح ۹۷٪ دقیق است، به این معنا که محمولات نمایش‌داده‌شده تقریباً به‌تنهایی مسئول خروجی پیش‌بینی‌شده هستند.

یک انکر $A$ به‌صورت رسمی به این شکل تعریف می‌شود:

$$ \mathbb{E}_{\mathcal{D}_\mathbf{x}(\mathbf{z}|A)}[1_{\hat{f}(\mathbf{x})=\hat{f}(\mathbf{z})}] \geq \tau; A(\mathbf{x})=1 $$

که در آن:

  • $\mathbf{x}$ نشان‌دهنده نمونه‌ای است که توضیح داده می‌شود (مثلاً یک سطر در یک مجموعه داده جدولی).
  • $A$ مجموعه‌ای از محمولات (predicates) است، یعنی قانون یا anchor حاصل، به‌طوری که $A(\mathbf{x})=1$ وقتی همه محمولات ویژگی تعریف‌شده توسط $A$ با مقادیر ویژگی $\mathbf{x}$ مطابقت داشته باشند.
  • $\hat{f}$ مدل طبقه‌بندی را نشان می‌دهد که باید توضیح داده شود (مثلاً یک مدل شبکه عصبی مصنوعی). می‌توان از آن برای پیش‌بینی برچسب $\mathbf{x}$ و اختلالات آن پرس‌وجو کرد.
  • $\mathcal{D}_{\mathbf{x}} (\cdot|A)$ توزیع همسایگان $\mathbf{x}$ را نشان می‌دهد که با $A$ مطابقت دارند.
  • $0 \leq \tau \leq 1$ یک آستانه دقت را مشخص می‌کند. فقط قوانینی که وفاداری محلی حداقل $\tau$ را به دست آورند، نتیجه معتبر در نظر گرفته می‌شوند.

توصیف رسمی ممکن است دلهره‌آور باشد و می‌توان آن را به زبان ساده بیان کرد:

با توجه به نمونه $\mathbf{x}$ که باید توضیح داده شود، باید قانون یا anchor $A$ را یافت به‌طوری که برای $\mathbf{x}$ قابل اعمال باشد، در حالی که همان کلاس پیش‌بینی‌شده برای $\mathbf{x}$ برای کسری حداقل $\tau$ از همسایگان $\mathbf{x}$ که همان $A$ برای آن‌ها قابل اعمال است، پیش‌بینی شود. دقت یک قانون از ارزیابی همسایگان یا اختلالات (با پیروی از $\mathcal{D}_\mathbf{x} (\mathbf{z}|A)$) با استفاده از مدل یادگیری ماشین ارائه‌شده (که با تابع نشانگر $1_{\hat{f}(\mathbf{x}) = \hat{f}(\mathbf{z})}$ نشان داده می‌شود) حاصل می‌شود.

نکته — تنظیم دقیق آستانه دقت آستانه دقت $\tau$ را wisely تنظیم کنید: $\tau$ بالاتر قوانین قوی‌تری را تضمین می‌کند، اما ممکن است پوشش را کاهش دهد. با مقادیر مختلف آزمایش کنید تا بین دقت و پوشش تعادل برقرار کنید.

یافتن انکرها

اگرچه توصیف ریاضی انکرها ممکن است واضح و مستقیم به نظر برسد، ساخت قوانین خاص غیرممکن است. این کار مستلزم ارزیابی $1_{\hat{f}(\mathbf{x}) = \hat{f}(\mathbf{z})}$ برای همه $\mathbf{z} \in \mathcal{D}_\mathbf{x}(\cdot|A)$ است که در فضاهای ورودی پیوسته یا بزرگ امکان‌پذیر نیست. بنابراین، نویسندگان پیشنهاد می‌کنند پارامتر $0 \leq \delta \leq 1$ را برای ایجاد یک تعریف احتمالی معرفی کنند. به این ترتیب، نمونه‌ها تا زمانی که اطمینان آماری در مورد دقت آن‌ها حاصل شود، کشیده می‌شوند. تعریف احتمالی به این صورت است:

$$\mathbb{P}(prec(A) \geq \tau) \geq 1 - \delta \quad \textrm{with} \quad prec(A) = \mathbb{E}_{\mathcal{D}_\mathbf{x}(\mathbf{z}|A)}[1_{\hat{f}(\mathbf{x}) = \hat{f}(\mathbf{z})}]$$

دو تعریف قبلی با مفهوم پوشش (coverage) ترکیب و گسترش می‌یابند. منطق آن شامل یافتن قوانینی است که ترجیحاً برای بخش بزرگی از فضای ورودی مدل قابل اعمال باشند. پوشش به‌صورت رسمی به‌عنوان احتمال اعمال یک anchor برای همسایگانش، یعنی فضای اختلال آن، تعریف می‌شود:

$$cov(A) = \mathbb{E}_{\mathcal{D}_{(\mathbf{x})}}[A(\mathbf{z})]$$

گنجاندن این عنصر به تعریف نهایی anchor منجر می‌شود که بیشینه‌سازی پوشش را در نظر می‌گیرد:

$$\underset{A :\textrm{s.t.};\mathbb{P}(prec(A) \geq \tau) \geq 1 - \delta}{\textrm{max}} cov(A)$$

بنابراین، این رویکرد برای قانونی تلاش می‌کند که بالاترین پوشش را در میان همه قوانین واجد شرایط (همه آن‌هایی که آستانه دقت را با توجه به تعریف احتمالی برآورده می‌کنند) داشته باشد. این قوانین مهم‌تر در نظر گرفته می‌شوند، زیرا بخش بزرگ‌تری از مدل را توصیف می‌کنند. توجه داشته باشید که قوانین با محمولات بیشتر تمایل به دقت بالاتری نسبت به قوانین با محمولات کمتر دارند. به‌طور خاص، قانونی که هر ویژگی $\mathbf{x}$ را تثبیت می‌کند، همسایگی ارزیابی‌شده را به نمونه‌هایی یکسان کاهش می‌دهد. بنابراین، مدل همه همسایگان را به‌طور یکسان طبقه‌بندی می‌کند و دقت قانون $1$ خواهد بود. در عین حال، قانونی که ویژگی‌های زیادی را تثبیت می‌کند، بیش از حد خاص است و فقط برای تعداد کمی از نمونه‌ها قابل اعمال است. از این رو، یک مبادله بین دقت و پوشش وجود دارد.

رویکرد انکرز از چهار مؤلفه اصلی برای یافتن توضیحات استفاده می‌کند.

تولید کاندیدا (Candidate Generation): کاندیداهای توضیح جدید تولید می‌کند. در دور اول، به ازای هر ویژگی $\mathbf{x}$ یک کاندیدا ایجاد می‌شود که مقدار مربوطه از اختلالات ممکن را تثبیت می‌کند. در هر دور دیگر، بهترین کاندیداهای دور قبلی با یک محمول ویژگی که هنوز در آن موجود نیست، گسترش می‌یابند.

شناسایی بهترین کاندیدا (Best Candidate Identification): قوانین کاندیدا از نظر اینکه کدام قانون $\mathbf{x}$ را بهترین توضیح می‌دهد مقایسه می‌شوند. بدین منظور، اختلالاتی که با قانون مشاهده‌شده مطابقت دارند ایجاد و با فراخوانی مدل ارزیابی می‌شوند. با این حال، این فراخوانی‌ها باید برای محدود کردن سربار محاسباتی به حداقل برسند. به همین دلیل، در هسته این مؤلفه، یک بندبند چندبازویی اکتشاف محض (pure-exploration Multi-Armed Bandit - MAB) وجود دارد. به‌طور دقیق‌تر، الگوریتم KL-LUCB توسط Kaufmann و Kalyanakrishnan (2013) است. MABها برای کاوش و بهره‌برداری کارآمد از استراتژی‌های مختلف (که در قیاس با ماشین‌های Slot، arm نامیده می‌شوند) با استفاده از انتخاب ترتیبی به کار می‌روند. در این تنظیم، هر قانون کاندیدا به‌عنوان یک arm قابل کشیدن دیده می‌شود. هر بار که کشیده می‌شود، همسایگان مربوطه ارزیابی می‌شوند و بدین‌وسیله اطلاعات بیشتری در مورد بازده (در اینجا دقت) قانون کاندیدا به دست می‌آوریم. دقت thus بیان می‌کند که قانون چقدر نمونه مورد توضیح را به خوبی توصیف می‌کند.

اعتبارسنجی دقت کاندیدا (Candidate Precision Validation): در صورت عدم اطمینان آماری مبنی بر اینکه کاندیدا از آستانه $\tau$ فراتر رفته است، نمونه‌های بیشتری می‌گیرد.

جستجوی پرتو اصلاح‌شده (Modified Beam Search): همه مؤلفه‌های فوق در یک جستجوی پرتو (beam search) که یک الگوریتم جستجوی گراف و گونه‌ای از الگوریتم جستجوی سطح اول (breadth-first) است، مونتاژ می‌شوند. این جستجو $B$ بهترین کاندیدای هر دور را به دور بعد منتقل می‌کند (که $B$ عرض پرتو (Beam Width) نامیده می‌شود). سپس از این $B$ قانون برتر برای ایجاد قوانین جدید استفاده می‌شود. جستجوی پرتو حداکثر $featureCount(\mathbf{x})$ دور انجام می‌دهد، زیرا هر ویژگی فقط یک بار می‌تواند در یک قانون گنجانده شود. بنابراین، در هر دور $i$، کاندیداهایی با دقیقاً $i$ محمول تولید می‌کند و $B$ بهترین آن‌ها را انتخاب می‌کند. بنابراین، با تنظیم $B$ بالا، الگوریتم احتمال بیشتری دارد که از بهینه‌های محلی جلوگیری کند. در عوض، این کار به تعداد بالایی فراخوانی مدل نیاز دارد و در نتیجه بار محاسباتی را افزایش می‌دهد.

این چهار مؤلفه در شکل ۱۶.۲ نشان داده شده‌اند.

شکل ۱۶.۲: مؤلفه‌های الگوریتم انکرز و ارتباط متقابل آن‌ها (ساده‌شده)

این رویکرد دستورالعملی به‌ظاهر کامل برای استخراج کارآمد اطلاعات آماری معتبر درباره اینکه چرا یک سیستم نمونه‌ای را به‌گونه‌ای که کرده طبقه‌بندی کرده است، به نظر می‌رسد. این روش به‌طور سیستماتیک با ورودی مدل آزمایش می‌کند و با مشاهده خروجی‌های مربوطه نتیجه‌گیری می‌کند. این روش بر روش‌های یادگیری ماشین مستقر و پژوهش‌شده (MABها) برای کاهش تعداد فراخوانی‌های مدل تکیه می‌کند. این امر به نوبه خود زمان اجرای الگوریتم را به‌شدت کاهش می‌دهد.

پیچیدگی و زمان اجرا

دانستن رفتار زمان اجرای مجانبی رویکرد انکرز به ارزیابی این که چقدر خوب روی مسائل خاص عمل می‌کند کمک می‌کند. فرض کنید $B$ عرض پرتو و $p$ تعداد همه ویژگی‌ها باشد. سپس الگوریتم انکرز تابع زیر است:

$$\mathcal{O}(B \cdot p^2 + p^2 \cdot \mathcal{O}_{\textrm{MAB} [B \cdot p, B]})$$

این کران از هایپرپارامترهای مستقل از مسئله، مانند اطمینان آماری $\delta$، انتزاع می‌کند. نادیده گرفتن هایپرپارامترها به کاهش پیچیدگی کران کمک می‌کند (برای اطلاعات بیشتر به مقاله اصلی مراجعه کنید). از آنجایی که MAB در هر دور $B$ بهترین را از بین $B \cdot p$ کاندیدا استخراج می‌کند، اکثر MABها و زمان اجرای آن‌ها عامل $p^2$ را بیش از هر پارامتر دیگری ضرب می‌کنند.

بنابراین آشکار می‌شود: کارایی الگوریتم زمانی که ویژگی‌های زیادی وجود دارند کاهش می‌یابد.

مثال داده‌های جدولی

داده‌های جدولی داده‌های ساختاریافته‌ای هستند که توسط جداول نمایش داده می‌شوند، که در آن ستون‌ها ویژگی‌ها و سطرها نمونه‌ها را نشان می‌دهند. برای مثال، از داده‌های اجاره دوچرخه برای نشان دادن پتانسیل رویکرد انکرز در توضیح پیش‌بینی‌های یادگیری ماشین برای نمونه‌های انتخاب‌شده استفاده می‌کنیم. برای این کار، رگرسیون را به یک مسئله طبقه‌بندی تبدیل می‌کنیم و یک جنگل تصادفی را به‌عنوان مدل جعبه سیاه خود آموزش می‌دهیم. این مدل باید طبقه‌بندی کند که آیا تعداد دوچرخه‌های اجاره‌شده بالاتر یا پایین‌تر از خط روند است. همچنین از ویژگی‌های اضافی مانند تعداد روزهای از سال ۲۰۱۱ به‌عنوان روند زمانی، ماه و روز هفته استفاده می‌کنیم.

قبل از ایجاد توضیحات انکر، باید یک تابع اختلال تعریف کرد. یک راه آسان برای انجام این کار استفاده از یک فضای اختلال پیش‌فرض شهودی برای موارد توضیح جدولی است که می‌تواند با نمونه‌گیری از، مثلاً، داده‌های آموزشی ساخته شود. هنگام ایجاد اختلال در یک نمونه، این رویکرد پیش‌فرض مقادیر ویژگی‌هایی را که مشمول محمولات انکر هستند حفظ می‌کند، در حالی که ویژگی‌های غیرثابت را با مقادیر گرفته‌شده از نمونه تصادفی دیگر با احتمال مشخصی جایگزین می‌کند. این فرآیند نمونه‌های جدیدی تولید می‌کند که مشابه نمونه توضیح‌داده‌شده هستند اما برخی مقادیر را از نمونه‌های تصادفی دیگر اقتباس کرده‌اند. بنابراین، آن‌ها شبیه همسایگان نمونه توضیح‌داده‌شده هستند.

شکل ۱۶.۳: انکرها در حال توضیح شش نمونه از مجموعه داده اجاره دوچرخه. هر سطر نمایانگر یک توضیح یا anchor است، و هر میله محمولات ویژگی موجود در آن را نشان می‌دهد. محور x دقت یک قانون را نشان می‌دهد، و ضخامت یک میله با پوشش آن متناظر است. قانون «پایه» (base) فاقد محمولات است. این انکرها نشان می‌دهند که مدل عمدتاً دما را برای پیش‌بینی‌ها در نظر می‌گیرد.

شکل ۱۶.۴: توضیح نمونه‌های نزدیک به مرزهای تصمیم منجر به قوانین خاصی با تعداد بالاتر محمولات ویژگی و پوشش کمتر می‌شود. همچنین، قانون خالی، یعنی ویژگی پایه، اهمیت کمتری پیدا می‌کند. این می‌تواند به‌عنوان سیگنالی برای یک مرز تصمیم تفسیر شود، زیرا نمونه در یک همسایگی ناپایدار قرار دارد.

نقاط قوت

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

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

محدودیت‌ها

الگوریتم از یک راه‌اندازی بسیار قابل تنظیم و تأثیرگذار رنج می‌برد، درست مانند اکثر توضیح‌دهنده‌های مبتنی بر اختلال. نه تنها هایپرپارامترهایی مانند عرض پرتو یا آستانه دقت باید برای به‌دست‌آوردن نتایج معنادار تنظیم شوند، بلکه تابع اختلال نیز باید به‌صراحت برای یک دامنه/مورد استفاده خاص طراحی شود. به این فکر کنید که داده‌های جدولی چگونه مختل می‌شوند، و به این فکر کنید که چگونه می‌توان همان مفاهیم را برای داده‌های تصویری اعمال کرد (نکته: نمی‌توان این کار را کرد). خوشبختانه، ممکن است از رویکردهای پیش‌فرض در برخی دامنه‌ها (مثلاً جدولی) استفاده شود که راه‌اندازی اولیه توضیح را تسهیل می‌کند.

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

نرم‌افزار و گزینه‌های جایگزین

در حال حاضر، دو پیاده‌سازی موجود است: anchor، یک بسته پایتون (همچنین توسط Alibi ادغام شده)، و یک پیاده‌سازی جاوا. اولی مرجع نویسندگان الگوریتم انکرز است و دومی یک پیاده‌سازی با کارایی بالا است که با یک رابط R به نام anchors عرضه می‌شود که برای مثال‌های این فصل استفاده شده است. در حال حاضر، پیاده‌سازی انکرز فقط از داده‌های جدولی پشتیبانی می‌کند. با این حال، از نظر تئوری، انکرها را می‌توان برای هر دامنه یا نوع داده‌ای ساخت.

فصل ۱۷: مقادیر شپلی

عنوان اصلی: Shapley Values
منبع: https://christophm.github.io/interpretable-ml-book/shapley.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


یک پیش‌بینی را می‌توان با این فرض توضیح داد که هر مقدار ویژگی در یک نمونه، «بازیکنی» در یک بازی است که پیش‌بینی، برنده‌شدن آن بازی است. مقادیر شپلی — روشی برگرفته از نظریه بازی‌های ائتلافی — به ما می‌گویند چگونه این «برنده» را به‌صورت منصفانه میان ویژگی‌ها تقسیم کنیم.


نکته به دنبال راهنمایی جامع و عملی برای SHAP (شپ) و مقادیر شپلی هستید؟ کتاب Interpreting Machine Learning Models with SHAP پاسخگوی نیاز شماست. با مثال‌های عملی پایتون از بسته shap، یاد می‌گیرید چگونه مدل‌هایی از ساده تا پیچیده را تفسیر کنید. این کتاب به مکانیزم‌های درونی SHAP می‌پردازد، الگوهای تفسیر ارائه می‌دهد و محدودیت‌های کلیدی را برجسته می‌سازد — تا بتوانید SHAP را با اطمینان و اثربخشی به‌کار ببرید.

کتاب SHAP

ایده کلی

فرض کنید سناریوی زیر را در نظر بگیریم: یک مدل یادگیری ماشین برای پیش‌بینی قیمت آپارتمان‌ها آموزش دیده است. برای یک آپارتمان مشخص، قیمت ۳۰۰٬۰۰۰ یورو پیش‌بینی شده و باید این پیش‌بینی را توضیح دهیم. این آپارتمان ۵۰ متر مربع زیربنا دارد، در طبقه دوم واقع شده، در نزدیکی آن یک پارک وجود دارد، و نگهداری گربه در آن ممنوع است — همان‌طور که در شکل ۱۷.۱ نشان داده شده است. میانگین پیش‌بینی برای همه آپارتمان‌ها ۳۱۰٬۰۰۰ یورو است. هدف ما این است که بفهمیم هر یک از این مقادیر ویژگی چه سهمی در پیش‌بینی داشته‌اند. هر ویژگی در مقایسه با پیش‌بینی میانگین، چه مقدار به این پیش‌بینی کمک کرده است؟

شکل ۱۷.۱: قیمت پیش‌بینی‌شده برای آپارتمانی ۵۰ متری در طبقه دوم، با پارک مجاور و ممنوعیت نگهداری گربه، ۳۰۰٬۰۰۰ یورو است.

در مدل‌های رگرسیون خطی پاسخ ساده است: اثر هر ویژگی برابر است با وزن آن ویژگی ضربدر مقدارش. این رویکرد تنها به دلیل خطی بودن مدل کار می‌کند. برای مدل‌های پیچیده‌تر، به راه‌حل دیگری نیاز داریم. برای مثال، لایم (LIME) از مدل‌های محلی برای تخمین اثرات استفاده می‌کند. راه‌حل دیگری از نظریه بازی‌های تعاونی می‌آید: مقدار شپلی، که توسط Shapley (1953) معرفی شد، روشی برای تخصیص پرداخت به بازیکنان بر اساس سهم آن‌ها در کل بازده است. بازیکنان در یک ائتلاف همکاری می‌کنند و سودی مشترک به دست می‌آورند.

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

پاسخ می‌تواند چنین باشد: پارک‌مجاور ۳۰٬۰۰۰ یورو، مساحت‌۵۰ مبلغ ۱۰٬۰۰۰ یورو، طبقه‌دوم مبلغ ۰ یورو، و گربه‌ممنوع مبلغ ‎-۵۰٬۰۰۰ یورو سهم داشته است. مجموع این سهم‌ها برابر با ‎-۱۰٬۰۰۰ یورو می‌شود که همان تفاوت پیش‌بینی نهایی از میانگین پیش‌بینی‌شده قیمت آپارتمان است.

مقدار شپلی یک ویژگی را چگونه محاسبه می‌کنیم؟

مقدار شپلی، میانگین سهم حاشیه‌ای یک مقدار ویژگی در تمام ائتلاف‌های ممکن است.

شکل ۱۷.۲ نشان می‌دهد که چگونه سهم حاشیه‌ای مقدار ویژگی «گربه‌ممنوع» محاسبه می‌شود، وقتی به ائتلاف «پارک‌مجاور» و «مساحت‌۵۰» اضافه می‌شود. ما شبیه‌سازی می‌کنیم که تنها «پارک‌مجاور»، «گربه‌ممنوع» و «مساحت‌۵۰» در ائتلاف هستند — و این کار را با انتخاب تصادفی یک آپارتمان دیگر از داده‌ها انجام می‌دهیم و از مقدار ویژگی طبقه آن استفاده می‌کنیم. مقدار «طبقه‌دوم» با «طبقه‌اول» که به‌صورت تصادفی انتخاب شده، جایگزین می‌شود. سپس قیمت آپارتمان را با این ترکیب پیش‌بینی می‌کنیم (۳۱۰٬۰۰۰ یورو). در گام دوم، «گربه‌ممنوع» را از ائتلاف حذف می‌کنیم و با مقدار تصادفی ویژگی «مجاز/ممنوع بودن گربه» از آپارتمان انتخاب‌شده جایگزین می‌کنیم. در این مثال، مقدار جایگزین «گربه‌مجاز» بود، اما می‌توانست دوباره «گربه‌ممنوع» باشد. قیمت آپارتمان را برای ائتلاف «پارک‌مجاور» و «مساحت‌۵۰» پیش‌بینی می‌کنیم (۳۲۰٬۰۰۰ یورو). سهم «گربه‌ممنوع» برابر با ۳۱۰٬۰۰۰ − ۳۲۰٬۰۰۰ = ‎-۱۰٬۰۰۰ یورو خواهد بود. این تخمین به مقادیر آپارتمان انتخاب‌شده‌ای بستگی دارد که به‌عنوان «دهنده» برای مقادیر ویژگی‌های گربه و طبقه عمل کرده است. با تکرار این نمونه‌گیری و میانگین‌گیری از سهم‌ها، تخمین‌های دقیق‌تری به دست می‌آوریم.

شکل ۱۷.۲: یک تکرار نمونه‌گیری برای تخمین سهم «گربه‌ممنوع» در پیش‌بینی، هنگامی که به ائتلاف «پارک‌مجاور» و «مساحت‌۵۰» اضافه می‌شود.

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

شکل ۱۷.۳ تمام ائتلاف‌های مقادیر ویژگی‌ای را نشان می‌دهد که برای تعیین دقیق مقدار شپلی «گربه‌ممنوع» لازم است. سطر اول، ائتلاف بدون هیچ مقدار ویژگی را نشان می‌دهد. سطرهای دوم، سوم و چهارم، ائتلاف‌های مختلف با اندازه‌های رو به رشد را نشان می‌دهند که با «|» از هم جدا شده‌اند. در مجموع، ائتلاف‌های زیر ممکن هستند:

  • {} (ائتلاف خالی)
  • {پارک‌مجاور}
  • {مساحت‌۵۰}
  • {طبقه‌دوم}
  • {پارک‌مجاور، مساحت‌۵۰}
  • {پارک‌مجاور، طبقه‌دوم}
  • {مساحت‌۵۰، طبقه‌دوم}
  • {پارک‌مجاور، مساحت‌۵۰، طبقه‌دوم}

برای هر یک از این ائتلاف‌ها، قیمت پیش‌بینی‌شده آپارتمان را با و بدون مقدار ویژگی «گربه‌ممنوع» محاسبه کرده و تفاوت را به‌عنوان سهم حاشیه‌ای در نظر می‌گیریم. مقدار شپلی، میانگین موزون تمام این سهم‌های حاشیه‌ای است. برای به‌دست‌آوردن پیش‌بینی از مدل یادگیری ماشین، مقادیر ویژگی‌هایی که در ائتلاف نیستند را با مقادیر تصادفی از مجموعه داده آپارتمان‌ها جایگزین می‌کنیم. اگر مقادیر شپلی را برای تمام مقادیر ویژگی‌ها محاسبه کنیم، توزیع کامل پیش‌بینی (منهای میانگین) را در میان ویژگی‌ها به دست می‌آوریم.

شکل ۱۷.۳: تمام ۸ ائتلاف لازم برای محاسبه دقیق مقدار شپلی ویژگی «گربه‌ممنوع».


مثال‌ها و تفسیر

تفسیر مقدار شپلی برای ویژگی $j$ چنین است: مقدار $j$-امین ویژگی به اندازه $\phi_j$ به پیش‌بینی این نمونه خاص، در مقایسه با پیش‌بینی میانگین مجموعه داده، کمک کرده است. مقدار شپلی هم برای طبقه‌بندی (در صورت کار با احتمال‌ها) و هم برای رگرسیون کاربرد دارد.

از مقدار شپلی برای تحلیل پیش‌بینی‌های یک مدل جنگل تصادفی (Random Forest) برای تعیین جنسیت پنگوئن‌ها استفاده می‌کنیم. شکل ۱۷.۴ مقادیر شپلی را برای یک پنگوئن نر نشان می‌دهد. احتمال پیش‌بینی‌شده ماده بودن این پنگوئن، یعنی P(female)=0.21، مقدار ‎0.31 پایین‌تر از میانگین احتمال P(female)=0.51 برای همه پنگوئن‌هاست. طول منقار بیشترین سهم را در احتمال ماده بودن داشته، اما اکثر عوامل (به‌درستی) به سمت نر بودن اشاره می‌کنند. مجموع سهم‌ها برابر با تفاوت میان پیش‌بینی واقعی و میانگین پیش‌بینی (0.51) می‌شود.

شکل ۱۷.۴: مقادیر شپلی برای طبقه‌بندی یک پنگوئن به‌عنوان ماده.

مقادیر شپلی همواره به یک مجموعه داده مرجع نیاز دارند که از آن، اعضای غایب تیم نمونه‌گیری شوند. در اینجا از تمام نقاط داده — یعنی همه پنگوئن‌ها، صرف‌نظر از گونه‌شان — استفاده کردم. پنگوئن مورد نظر از گونه آدلی است و می‌توان مقادیر شپلی را تنها در مقایسه با پنگوئن‌های هم‌گونه نیز محاسبه کرد. این کار مشکل نمونه‌گیری و ترکیب مقادیر غیرواقعی را کاهش می‌دهد. شکل ۱۷.۵ تفسیر متفاوتی را نیز نشان می‌دهد. هنگام مقایسه این پنگوئن با سایر پنگوئن‌های آدلی، دلیل پایین بودن احتمال ماده بودنش، وزن بدن اوست.

شکل ۱۷.۵: مقادیر شپلی محاسبه‌شده تنها بر اساس داده‌های همان گونه پنگوئن.

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

برای مجموعه داده اجاره دوچرخه نیز یک مدل جنگل تصادفی آموزش می‌دهیم تا تعداد دوچرخه‌های اجاره‌ای در یک روز را — با توجه به اطلاعات آب‌وهوایی و تقویمی — پیش‌بینی کند. توضیحات تولیدشده برای پیش‌بینی مدل جنگل تصادفی برای یک روز مشخص در شکل ۱۷.۶ نشان داده شده است.

شکل ۱۷.۶: مقادیر شپلی برای روز ۲۸۵ از داده‌های دوچرخه.

با پیش‌بینی ۴۹۴۵ دوچرخه اجاری، این روز ۴۲۲ دوچرخه کمتر از میانگین پیش‌بینی‌شده ۴۵۲۴ دارد. دما و رطوبت بزرگ‌ترین سهم مثبت را داشته‌اند. تعداد کم دوچرخه‌های اجاری دو روز پیش، بزرگ‌ترین سهم منفی را داشته است. مجموع مقادیر شپلی برابر با تفاوت پیش‌بینی واقعی و میانگین پیش‌بینی (۴۲۲) می‌شود.

هشدار — مقادیر شپلی، پیش‌بینی‌های خلاف واقع نیستند در تفسیر مقدار شپلی دقت کنید: مقدار شپلی، میانگین سهم یک مقدار ویژگی در پیش‌بینی، در ائتلاف‌های مختلف است. مقدار شپلی برابر با تفاوت پیش‌بینی پس از حذف ویژگی از آموزش مدل نیست.


نظریه مقادیر شپلی

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

هدف ما این است که بدانیم هر ویژگی چه تأثیری بر پیش‌بینی یک نقطه داده دارد. در مدل خطی، محاسبه اثرات فردی ساده است. پیش‌بینی یک مدل خطی برای یک نمونه داده چنین است:

$$\hat{f}(x) = \beta_0 + \beta_1 x_1 + \ldots + \beta_p x_p$$

که در آن $x$ نمونه‌ای است که می‌خواهیم سهم‌های آن را محاسبه کنیم. هر $x_j$ یک مقدار ویژگی است و $j \in {1, \ldots, p}$. $\beta_j$ وزن متناظر با ویژگی $j$ است.

سهم $\phi_j$ از $j$-امین ویژگی در پیش‌بینی $\hat{f}(x)$ چنین است:

$$\phi_j = \beta_j x_j - E(\beta_j X_j) = \beta_j x_j - \beta_j E(X_j)$$

که $E(\beta_j X_j)$ تخمین اثر میانگین برای ویژگی $j$ است. سهم، تفاوت میان اثر ویژگی و اثر میانگین است. اگر مجموع همه سهم‌های ویژگی را برای یک نمونه حساب کنیم:

$$ \sum_{j=1}^{p}\phi_j = \sum_{j=1}^{p}(\beta_j x_j - E(\beta_j X_j)) = \left(\beta_0 + \sum_{j=1}^{p}\beta_j x_j\right) - \left(\beta_0 + \sum_{j=1}^{p}E(\beta_j X_j)\right) = \hat{f}(x) - E(\hat{f}(X)) $$

این برابر است با مقدار پیش‌بینی‌شده برای نقطه داده $x$ منهای میانگین مقدار پیش‌بینی‌شده. سهم‌های ویژگی می‌توانند منفی باشند.

آیا می‌توان همین کار را برای هر نوع مدلی انجام داد؟ داشتن چنین ابزار مدل‌آگنوستیکی (model-agnostic) بسیار ارزشمند خواهد بود. از آنجا که در سایر انواع مدل‌ها معمولاً وزن‌های مشابهی وجود ندارند، به راه‌حل دیگری نیاز داریم.

کمک از جایی غیرمنتظره می‌آید: نظریه بازی‌های تعاونی. مقدار شپلی راه‌حلی برای محاسبه سهم‌های ویژگی برای پیش‌بینی‌های تکی در هر مدل یادگیری ماشین است.

تعریف

مقدار شپلی از طریق یک تابع مقدار $v$ از بازیکنان در $S$ تعریف می‌شود.

مقدار شپلی یک مقدار ویژگی، سهم آن در پرداخت است که با وزن‌دهی بر تمام ترکیبات ممکن مقادیر ویژگی جمع‌زده می‌شود:

$$\phi_j(v) = \sum_{S \subseteq {1,\ldots,p} \setminus {j}} \frac{|S|!(p - |S| - 1)!}{p!} \left(v(S \cup {j}) - v(S)\right)$$

که $S$ زیرمجموعه‌ای از ویژگی‌های استفاده‌شده در مدل است، $x$ بردار مقادیر ویژگی نمونه‌ای است که قرار است توضیح داده شود، و $p$ تعداد ویژگی‌هاست. $v(S)$ پیش‌بینی برای مقادیر ویژگی در مجموعه $S$ است که بر ویژگی‌های $x_C$ (یعنی تمام ویژگی‌هایی که در $S$ نیستند) حاشیه‌زنی (marginalize) شده است:

$$v(S) = \int \hat{f}(x_S, X_C) , d\mathbb{P}_{X_C} - E_X(\hat{f}(X))$$

برای هر ویژگی‌ای که در $S$ نیست، یک انتگرال جداگانه محاسبه می‌شود. مثالی ملموس: مدل یادگیری ماشین با ۴ ویژگی $x_1$، $x_2$، $x_3$ و $x_4$ کار می‌کند و ما پیش‌بینی را برای ائتلاف $S$ شامل مقادیر ویژگی‌های $x_1$ و $x_3$ ارزیابی می‌کنیم:

$$v({1,3}) = \int\int \hat{f}(x_1, X_2, x_3, X_4) , d\mathbb{P}_{X_2} , d\mathbb{P}_{X_4} - E_X(\hat{f}(X))$$

این شباهت زیادی به سهم‌های ویژگی در مدل خطی دارد!

یادداشت — واژه «مقدار» معناهای گوناگونی دارد؛ گیج نشوید مقدار ویژگی (feature value)، مقدار عددی یا طبقه‌ای یک ویژگی برای یک نمونه است؛ مقدار شپلی (Shapley value)، سهم ویژگی در پیش‌بینی است؛ و تابع مقدار (value function)، تابع پرداخت برای ائتلاف‌های بازیکنان (مقادیر ویژگی) است.

مقدار شپلی تنها روش انتساب است که خواص کارایی، تقارن، بی‌اثری و افزایش‌پذیری را برآورده می‌کند که در کنار هم می‌توانند به‌عنوان تعریفی از پرداخت منصفانه در نظر گرفته شوند.

کارایی (Efficiency): سهم‌های ویژگی باید برابر تفاوت میان پیش‌بینی برای $x$ و پیش‌بینی میانگین باشند.

$$\sum_{j=1}^{p}\phi_j = \hat{f}(x) - E_X(\hat{f}(X))$$

تقارن (Symmetry): سهم‌های دو مقدار ویژگی $j$ و $k$ باید برابر باشند اگر به یک اندازه در تمام ائتلاف‌های ممکن سهیم باشند. اگر:

$$v(S \cup {j}) = v(S \cup {k})$$

برای همه:

$$S \subseteq {1, \ldots, p} \setminus {j, k}$$

آنگاه:

$$\phi_j = \phi_k$$

بی‌اثری (Dummy): ویژگی $j$ که بدون توجه به اینکه به کدام ائتلاف از مقادیر ویژگی اضافه شود مقدار پیش‌بینی‌شده را تغییر نمی‌دهد، باید مقدار شپلی صفر داشته باشد. اگر:

$$v(S \cup {j}) = v(S)$$

برای همه:

$$S \subseteq {1, \ldots, p}$$

آنگاه:

$$\phi_j = 0$$

افزایش‌پذیری (Additivity): برای یک بازی با پرداخت‌های ترکیبی $v + w$، مقادیر شپلی متناظر به این شکل هستند:

$$\phi_j^{v+w} = \phi_j^v + \phi_j^w$$

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

یادداشت — درک شهودی از مقادیر شپلی مقادیر ویژگی به‌ترتیبی تصادفی وارد یک اتاق می‌شوند. تمام مقادیر ویژگی‌های حاضر در اتاق در بازی شرکت می‌کنند (یعنی در پیش‌بینی سهیم هستند). مقدار شپلی یک مقدار ویژگی، میانگین تغییر در پیش‌بینی ائتلاف حاضر در اتاق است، هنگامی که آن مقدار ویژگی به آن‌ها می‌پیوندد.

تخمین مقادیر شپلی

برای محاسبه دقیق مقدار شپلی، تمام ائتلاف‌های (مجموعه‌های) ممکن از مقادیر ویژگی باید با و بدون $j$-امین ویژگی ارزیابی شوند. برای بیش از چند ویژگی، راه‌حل دقیق این مسئله چالش‌برانگیز می‌شود، زیرا تعداد ائتلاف‌های ممکن با افزودن ویژگی‌های بیشتر به‌صورت نمایی رشد می‌کند. Štrumbelj و Kononenko (2014) یک تقریب با نمونه‌گیری مونت کارلو پیشنهاد دادند:

$$\hat{\phi}_j = \frac{1}{M}\sum_{m=1}^{M}\left(\hat{f}(x^m_{+j}) - \hat{f}(x^m_{-j})\right)$$

که $\hat{f}(x^m_{+j})$ پیش‌بینی برای $x$ است، اما با تعداد تصادفی از مقادیر ویژگی که با مقادیر ویژگی از نقطه داده تصادفی $z$ جایگزین شده‌اند، به جز مقدار مربوط به ویژگی $j$. بردار ویژگی $x^m_{-j}$ تقریباً همانند $x$ است، اما مقدار $x_j$ نیز از $z$ نمونه‌گیری شده است. هر کدام از این $M$ نمونه جدید، نوعی «هیولای فرانکنشتاین» است که از دو نمونه ساخته شده. توجه داشته باشید که در الگوریتم زیر، ترتیب ویژگی‌ها در واقع تغییر نمی‌کند — هر ویژگی هنگام ارسال به تابع پیش‌بینی، در همان موقعیت بردار باقی می‌ماند. ترتیب‌دهی تنها به‌عنوان یک «ترفند» استفاده می‌شود: با دادن یک ترتیب جدید به ویژگی‌ها، مکانیزمی تصادفی به دست می‌آوریم که به ساخت «هیولای فرانکنشتاین» کمک می‌کند. برای ویژگی‌هایی که در ترتیب جدید سمت چپ ویژگی $j$ قرار دارند، مقادیر را از نمونه اصلی می‌گیریم، و برای ویژگی‌های سمت راست، مقادیر را از نمونه تصادفی می‌گیریم.

الگوریتم تقریبی تخمین شپلی برای یک مقدار ویژگی:

خروجی: مقدار شپلی برای مقدار $j$-امین ویژگی

ورودی‌های مورد نیاز: تعداد تکرارها $M$، نمونه مورد نظر $x$، اندیس ویژگی $j$، ماتریس داده $X$، و مدل یادگیری ماشین $\hat{f}$

برای هر $m = 1, \ldots, M$:

  1. یک نمونه تصادفی $z$ از ماتریس داده $X$ انتخاب کنید
  2. یک جایگشت تصادفی $o$ از مقادیر ویژگی‌ها انتخاب کنید
  3. نمونه $x$ را مرتب کنید: $x_o = (x_{o_1}, \ldots, x_{o_p})$
  4. نمونه $z$ را مرتب کنید: $z_o = (z_{o_1}, \ldots, z_{o_p})$
  5. دو نمونه جدید بسازید:
    • با $j$: $x^{+j}$ — تمام ویژگی‌های $x$ تا (و شامل) $j$، سپس ویژگی‌های $z$
    • بدون $j$: $x^{-j}$ — تمام ویژگی‌های $x$ تا قبل از $j$، سپس ویژگی‌های $z$
  6. محاسبه سهم حاشیه‌ای: $\phi_j^m = \hat{f}(x^{+j}) - \hat{f}(x^{-j})$

مقدار شپلی را به‌عنوان میانگین محاسبه کنید:

$$\hat{\phi}_j = \frac{1}{M}\sum_{m=1}^{M}\phi_j^m$$

نکته — کاهش اندازه نمونه برای افزایش سرعت برای کاهش زمان محاسبه، استفاده از اندازه نمونه کوچک‌تر $M$ را در نظر بگیرید، اما توجه داشته باشید که این کار واریانس تخمین را افزایش می‌دهد.

این مراحل باید برای هر یک از ویژگی‌ها تکرار شود تا همه مقادیر شپلی به دست آیند. در فصل SHAP، روش‌های کارآمدتری برای تخمین مقادیر شپلی خواهیم دید.


نقاط قوت

تفاوت میان پیش‌بینی و میانگین پیش‌بینی به‌صورت منصفانه در میان مقادیر ویژگی‌های نمونه توزیع می‌شود — این همان خاصیت کارایی مقادیر شپلی است. این خاصیت، مقدار شپلی را از روش‌هایی مانند لایم (LIME) متمایز می‌کند. لایم تضمینی ندارد که پیش‌بینی به‌صورت منصفانه میان ویژگی‌ها توزیع شود. مقادیر شپلی یک توضیح کامل ارائه می‌دهند.

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

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


محدودیت‌ها

مقدار شپلی به زمان محاسبه زیادی نیاز دارد. در ۹۹٫۹٪ از مسائل دنیای واقعی، تنها راه‌حل تقریبی عملی است. محاسبه دقیق مقدار شپلی از نظر محاسباتی پرهزینه است، زیرا $2^k$ ائتلاف ممکن از مقادیر ویژگی وجود دارد و «غیاب» یک ویژگی باید با نمونه‌گیری تصادفی شبیه‌سازی شود، که واریانس تخمین مقادیر شپلی را افزایش می‌دهد. تعداد نمایی ائتلاف‌ها با نمونه‌گیری از ائتلاف‌ها و محدود کردن تعداد تکرارهای $M$ مدیریت می‌شود. کاهش $M$ زمان محاسبه را کاهش می‌دهد، اما واریانس مقدار شپلی را افزایش می‌دهد. هیچ قانون سرانگشتی خوبی برای تعداد تکرارهای $M$ وجود ندارد. $M$ باید به اندازه کافی بزرگ باشد تا مقادیر شپلی را به دقت تخمین بزند، اما به اندازه کافی کوچک باشد که محاسبه در زمان معقولی تمام شود. انتخاب $M$ بر اساس کران‌های چرنوف باید ممکن باشد، اما تاکنون مقاله‌ای در این باره برای مقادیر شپلی در پیش‌بینی‌های یادگیری ماشین ندیده‌ام.

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

توضیحات مقادیر شپلی را نباید به‌مثابه توضیحات محلی به سبک گرادیان‌ها یا همسایگی‌ها تفسیر کرد (Bilodeau و همکاران، ۲۰۲۴). برای مثال، یک مقدار شپلی مثبت به این معنا نیست که افزایش مقدار ویژگی، پیش‌بینی را افزایش می‌دهد. در عوض، مقدار شپلی باید نسبت به مجموعه داده مرجعی که برای تخمین استفاده شده، تفسیر شود. به همین دلیل توصیه می‌کنم مقادیر شپلی را با نمودارهای سترپاریبوس (ceteris paribus) یا نمودارهای آی‌سی‌ای (ICE) ترکیب کنید تا تصویر کاملی به دست آورید.

نکته — ترکیب با نمودارهای سترپاریبوس و آی‌سی‌ای مقادیر شپلی را با نمودارهای ceteris paribus یا ICE همراه کنید تا حساسیت محلی نسبت به تغییرات ویژگی را بهتر درک کنید.

مقدار شپلی روش توضیح مناسبی نیست اگر به دنبال توضیحات پراکنده (توضیحاتی با تعداد کم ویژگی) هستید. توضیحات ساخته‌شده با روش مقدار شپلی از همه ویژگی‌ها استفاده می‌کنند. انسان‌ها توضیحات انتخابی را ترجیح می‌دهند، مثل آنچه لایم تولید می‌کند. لایم ممکن است برای توضیحاتی که افراد غیرمتخصص باید با آن‌ها کار کنند، گزینه بهتری باشد. راه‌حل دیگر، SHAP است که توسط Lundberg و Lee (2017) معرفی شد، بر پایه مقدار شپلی بنا شده، اما می‌تواند توضیحاتی با تعداد کم ویژگی نیز ارائه دهد.

مقدار شپلی یک مقدار ساده به ازای هر ویژگی برمی‌گرداند، نه مدل پیش‌بینی‌ای مانند لایم. این یعنی نمی‌توان از آن برای اظهارنظر درباره تغییرات پیش‌بینی در ازای تغییرات ورودی استفاده کرد، مثلاً: «اگر سالی ۳۰۰ یورو بیشتر درآمد داشتم، امتیاز اعتباری‌ام ۵ واحد افزایش می‌یافت.»

مانند بسیاری دیگر از روش‌های تفسیر مبتنی بر جایگشت، روش مقدار شپلی هنگامی که ویژگی‌ها با هم همبستگی دارند، از نمونه‌های داده غیرواقعی استفاده می‌کند. برای شبیه‌سازی غیاب یک مقدار ویژگی از یک ائتلاف، ویژگی را حاشیه‌زنی می‌کنیم. این کار با نمونه‌گیری از توزیع حاشیه‌ای ویژگی انجام می‌شود و تا زمانی که ویژگی‌ها مستقل باشند، مشکلی ایجاد نمی‌کند. اما وقتی ویژگی‌ها وابسته باشند، ممکن است مقادیر ویژگی‌ای نمونه‌گیری شوند که برای این نمونه منطقی نیستند. با این حال، از آن‌ها برای محاسبه مقدار شپلی ویژگی استفاده می‌کنیم. یک راه‌حل می‌تواند این باشد که ویژگی‌های همبسته را با هم جابجا کنیم و یک مقدار شپلی مشترک برای آن‌ها به دست آوریم. رویکرد دیگر، نمونه‌گیری شرطی است: ویژگی‌ها مشروط بر ویژگی‌هایی که از پیش در تیم هستند نمونه‌گیری می‌شوند. در حالی که نمونه‌گیری شرطی مشکل نقاط داده غیرواقعی را برطرف می‌کند، مسئله جدیدی ایجاد می‌شود: مقادیر حاصل دیگر مقادیر شپلی بازی ما نیستند، زیرا اصل تقارن نقض می‌شود؛ همان‌طور که Sundararajan و Najmi (2020) نشان دادند و Janzing، Minorics و Blöbaum (2020) آن را بیشتر بحث کردند.


نرم‌افزار و گزینه‌های جایگزین

مقادیر شپلی در بسته‌های iml و fastshap برای R پیاده‌سازی شده‌اند. در Julia نیز می‌توانید از Shapley.jl استفاده کنید.

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

رویکرد دیگری به نام breakDown وجود دارد که در بسته R با همین نام پیاده‌سازی شده است (Staniak و Biecek، ۲۰۱۸). breakDown نیز سهم هر ویژگی در پیش‌بینی را نشان می‌دهد، اما آن‌ها را گام‌به‌گام محاسبه می‌کند. بیایید دوباره از تمثیل بازی استفاده کنیم: با یک تیم خالی شروع می‌کنیم، مقدار ویژگی‌ای را که بیشترین سهم را در پیش‌بینی خواهد داشت اضافه می‌کنیم، و این کار را تا زمانی که همه مقادیر ویژگی اضافه شوند ادامه می‌دهیم. سهم هر مقدار ویژگی به مقادیر ویژگی‌هایی بستگی دارد که از پیش در «تیم» هستند — و این بزرگ‌ترین ضعف روش breakDown است. این روش سریع‌تر از مقدار شپلی است و برای مدل‌های بدون تعامل، نتایج یکسانی تولید می‌کند.

فصل ۱۸: شپ (SHAP)

عنوان اصلی: SHAP
منبع: https://christophm.github.io/interpretable-ml-book/shap.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


شپ (SHAP: SHapley Additive exPlanations) که توسط لاندبرگ و لی (۲۰۱۷) معرفی شد، روشی برای توضیح پیش‌بینی‌های منفرد است. شپ بر پایه مقادیر شپلی (Shapley values) از نظریه بازی‌ها استوار است که از نظر تئوری بهینه‌ترین راه‌حل ممکن را ارائه می‌دهد. پیش از خواندن این فصل، توصیه می‌شود فصل مربوط به مقادیر شپلی را مطالعه کنید.

برای درک اینکه چرا شپ به‌عنوان مفهومی مستقل — و نه صرفاً امتدادی از مقادیر شپلی — مطرح است، مروری تاریخی لازم است. در سال ۱۹۵۳، لوید شپلی مفهوم مقادیر شپلی را در چارچوب نظریه بازی‌ها معرفی کرد. کاربرد این مقادیر برای توضیح پیش‌بینی‌های یادگیری ماشین نخستین بار توسط اشتروملج و کونوننکو (۲۰۱۱ و ۲۰۱۴) پیشنهاد شد، اما چندان مورد استقبال قرار نگرفت. چند سال بعد، لاندبرگ و لی (۲۰۱۷) شپ را معرفی کردند: رویکردی نوین برای تخمین مقادیر شپلی در تفسیر پیش‌بینی‌های یادگیری ماشین، همراه با چارچوبی نظری که مقادیر شپلی را با لایم (LIME) و سایر روش‌های انتساب پسینی (post-hoc attribution) پیوند می‌دهد.

شاید بگویید شپ چیزی جز نام‌گذاری دوباره مقادیر شپلی نیست — و این سخن چندان بی‌راه هم نیست — اما این دیدگاه یک واقعیت مهم را نادیده می‌گیرد: شپ نقطه عطفی در محبوبیت و کاربرد مقادیر شپلی بود، روش‌های جدیدی برای تخمین و تجمیع آن‌ها معرفی کرد، و کاربرد مقادیر شپلی را به مدل‌های متنی و تصویری گسترش داد.

هرچند این فصل می‌توانست بخشی از فصل مقادیر شپلی باشد، می‌توان آن را «مقادیر شپلی ۲.۰» برای تفسیر مدل‌های یادگیری ماشین دانست. در اینجا بر روش‌های نوین تخمین مقادیر شپلی و انواع جدید نمودارها تمرکز خواهیم کرد. اما ابتدا، مروری بر مبانی نظری.

نکته به دنبال راهنمایی جامع و کاربردی درباره شپ و مقادیر شپلی هستید؟ کتاب Interpreting Machine Learning Models with SHAP با مثال‌های عملی پایتون و بسته shap، از مدل‌های ساده تا پیچیده را پوشش می‌دهد. این کتاب به مکانیزم‌های شپ می‌پردازد، الگوهای تفسیر ارائه می‌دهد، و محدودیت‌های کلیدی را روشن می‌سازد.

کتاب SHAP


مبانی نظری شپ

هدف شپ، توضیح پیش‌بینی یک نمونه $x$ با محاسبه سهم هر ویژگی در آن پیش‌بینی است. شپ مقادیر شپلی را از نظریه بازی‌های ائتلافی محاسبه می‌کند — همان چیزی که در فصل مقادیر شپلی بررسی کردیم. مقادیر ویژگی یک نمونه داده نقش بازیکنان را در یک ائتلاف بازی می‌کنند. مقادیر شپلی به ما می‌گویند چگونه «پرداخت» (یعنی پیش‌بینی) را به‌طور عادلانه میان ویژگی‌ها تقسیم کنیم. یک بازیکن می‌تواند یک مقدار ویژگی منفرد باشد — مثلاً در داده‌های جدولی — یا گروهی از مقادیر ویژگی. برای مثال، در توضیح یک تصویر، پیکسل‌ها می‌توانند در ابرپیکسل‌ها (superpixels) گروه‌بندی شده و پیش‌بینی میان آن‌ها توزیع شود.

یکی از نوآوری‌های اصلی شپ این است که توضیح مقادیر شپلی به‌صورت یک روش انتساب ویژگی افزایشی (additive feature attribution method) — یعنی یک مدل خطی — نمایش داده می‌شود. این دیدگاه، لایم و مقادیر شپلی را به هم پیوند می‌دهد. شپ توضیح را به‌صورت زیر تعریف می‌کند:

$$g(z') = \phi_0 + \sum_{j=1}^{M} \phi_j z'_j$$

که در آن $g$ مدل توضیح است، $z' \in {0,1}^M$ بردار ائتلاف، $M$ حداکثر اندازه ائتلاف، و $\phi_j \in \mathbb{R}$ انتساب ویژگی $j$، یعنی همان مقادیر شپلی است. آنچه من «بردار ائتلاف» می‌نامم، در مقاله اصلی شپ «ویژگی‌های ساده‌شده» (simplified features) نام دارد — احتمالاً چون در داده‌های تصویری، تصاویر نه در سطح پیکسل، بلکه در سطح ابرپیکسل نمایش داده می‌شوند. مفید است به $z'$ به‌عنوان توصیفگر ائتلاف‌ها بیندیشیم: مقدار ۱ نشان‌دهنده حضور ویژگی متناظر و مقدار ۰ نشان‌دهنده غیاب آن است.

برای محاسبه مقادیر شپلی، شبیه‌سازی می‌کنیم که تنها برخی مقادیر ویژگی «حاضر» و برخی «غایب» هستند. برای نمونه مورد نظر $x$، بردار ائتلاف $x'$ برداری از یک‌های کامل است — یعنی همه ویژگی‌ها حاضرند. فرمول به شکل ساده‌تر زیر درمی‌آید:

$$f(x) = \phi_0 + \sum_{j=1}^{M} \phi_j$$

این فرمول را می‌توانید با نمادگذاری مشابهی در فصل مقادیر شپلی بیابید.

خواص $\phi_j$

مقادیر شپلی تنها راه‌حلی هستند که خواص کارایی (Efficiency)، تقارن (Symmetry)، بازیکن ساکت (Dummy)، و جمع‌پذیری (Additivity) را به‌طور همزمان برآورده می‌سازند. شپ نیز این خواص را دارد، چون مقادیر شپلی را محاسبه می‌کند. در مقاله اصلی لاندبرگ و لی (۲۰۱۷)، سه ویژگی مطلوب برای شپ تعریف شده‌اند:

۱) دقت محلی (Local Accuracy)

$$f(x) = g(x') = \phi_0 + \sum_{j=1}^{M} \phi_j x'_j$$

با تعریف $\phi_0 = E_X[\hat{f}(x)]$ و قرار دادن همه $x'_j$ برابر ۱، این همان خاصیت کارایی شپلی است — فقط با نامی متفاوت و با بهره‌گیری از بردار ائتلاف.

$$f(x) = \phi_0 + \sum_{j=1}^{M} \phi_j = E_X[\hat{f}(X)] + \sum_{j=1}^{M} \phi_j$$

۲) غیاب (Missingness)

$$x'_j = 0 \Rightarrow \phi_j = 0$$

این خاصیت می‌گوید ویژگی غایب، انتساب صفر دریافت می‌کند. توجه داشته باشید که $x'_j = 0$ نشان‌دهنده غیاب یک مقدار ویژگی در ائتلاف است. این خاصیت در مقادیر شپلی معمول وجود ندارد؛ لاندبرگ آن را «خاصیت کتابداری جزئی» می‌نامد. از نظر نظری، یک ویژگی غایب می‌توانست مقدار شپلی دلخواهی داشته باشد بدون اینکه دقت محلی نقض شود، چون با $x'_j = 0$ ضرب می‌شود. خاصیت غیاب اجبار می‌کند که این ویژگی‌ها دقیقاً مقدار صفر دریافت کنند — در عمل، این فقط برای ویژگی‌های ثابت اهمیت دارد.

۳) سازگاری (Consistency)

فرض کنید $f_x(z') = f(h_x(z'))$ و $z' \setminus j$ نشان‌دهنده $z'_j = 0$ باشد. برای هر دو مدل $f$ و $f'$ که برای همه ورودی‌های $z'$ داریم:

$$f'_x(z') - f'_x(z' \setminus j) \geq f_x(z') - f_x(z' \setminus j)$$

آنگاه:

$$\phi_j(f', x) \geq \phi_j(f, x)$$

سازگاری می‌گوید: اگر مدل به‌گونه‌ای تغییر کند که مشارکت نهایی یک ویژگی افزایش یابد یا ثابت بماند، مقدار شپلی آن نیز افزایش می‌یابد یا ثابت می‌ماند. از این خاصیت، خواص خطی‌بودن، بازیکن ساکت، و تقارن شپلی نتیجه می‌شوند.


تخمین مقادیر شپ

این بخش سه روش تخمین مقادیر شپلی را بررسی می‌کند: KernelSHAP، روش جایگشت (Permutation Method)، و TreeSHAP.

KernelSHAP

وضعیت KernelSHAP کمی گیج‌کننده است: این روش انگیزه اصلی معرفی شپ بود، شپ را با لایم پیوند داد، و در مقاله اصلی لاندبرگ و لی (۲۰۱۷) ارائه شد. بسیاری از مطالب آموزشی درباره شپ هم بر KernelSHAP تمرکز دارند. با این حال، KernelSHAP در مقایسه با TreeSHAP و روش جایگشت کُند است و به همین دلیل دیگر به‌عنوان روش پیش‌فرض در بسته پایتون shap استفاده نمی‌شود. با وجود این، KernelSHAP برای درک مقادیر شپلی و ارتباط آن‌ها با لایم ارزشمند است و برخی پیاده‌سازی‌ها هنوز از آن استفاده می‌کنند.

تخمین KernelSHAP پنج مرحله دارد:

۱. نمونه‌برداری از بردارهای ائتلاف $z'_k \in {0,1}^M$ (۱ = ویژگی حاضر، ۰ = ویژگی غایب). ۲. دریافت پیش‌بینی برای هر $z'_k$ از طریق تبدیل آن به فضای ویژگی اصلی و اعمال مدل $\hat{f}$. ۳. محاسبه وزن هر ائتلاف $z'_k$ با هسته (kernel) شپ. ۴. برازش یک مدل رگرسیون خطی وزن‌دار. ۵. بازگرداندن مقادیر شپلی $\phi_j$ به‌عنوان ضرایب مدل خطی.

برای ساختن یک ائتلاف تصادفی، به‌سادگی رشته‌ای از صفر و یک را با پرتاب سکه تولید می‌کنیم. برای مثال، بردار $(1, 0, 1, 0)$ نشان‌دهنده ائتلافی از ویژگی اول و سوم است. این ائتلاف‌های نمونه‌برداری‌شده، داده‌های مجموعه رگرسیون را تشکیل می‌دهند و هدف رگرسیون، پیش‌بینی مدل برای آن ائتلاف است.

اما مدل برای داده‌های باینری ائتلاف آموزش ندیده و نمی‌تواند برای آن‌ها پیش‌بینی کند! برای گذار از ائتلاف‌های ویژگی به نمونه‌های داده معتبر، به تابع $h_x(z') = z$ نیاز داریم. این تابع مقادیر ۱ را به مقادیر متناظر از نمونه $x$ مورد توضیح نگاشت می‌کند. برای داده‌های جدولی، مقادیر ۰ به مقادیر نمونه دیگری که از داده نمونه‌برداری شده نگاشت می‌شوند — به این معنا که «غیاب ویژگی» معادل «جایگزینی با مقدار تصادفی از داده» است. شکل ۱۸.۱ این نگاشت را نمایش می‌دهد.

شکل ۱۸.۱: تابع $h_{x}$ یک ائتلاف را به یک نمونه معتبر نگاشت می‌کند. برای ویژگی‌های حاضر (۱)، $h_{x}$ به مقادیر ویژگی $x$ نگاشت می‌کند. برای ویژگی‌های غایب (۰)، $h_{x}$ به مقادیر یک نمونه داده تصادفی نگاشت می‌کند.

برای داده‌های جدولی، $h_x$ ویژگی $j$ را با فرض استقلال از سایر ویژگی‌ها در نظر می‌گیرد و بر توزیع حاشیه‌ای انتگرال می‌گیرد:

$$\hat{f}(h_x(z')) = E_{X_{-j}}[\hat{f}(x_j, X_{-j})]$$

نمونه‌برداری از توزیع حاشیه‌ای به معنای نادیده‌گرفتن ساختار وابستگی میان ویژگی‌های حاضر و غایب است. به همین دلیل، KernelSHAP از همان مشکل سایر روش‌های تفسیری مبتنی بر جایگشت رنج می‌برد: تخمین ممکن است به نمونه‌های غیرمحتمل وزن بدهد و نتایج را غیرقابل اعتماد کند.

اگر از توزیع شرطی نمونه‌برداری شود، تابع ارزش و در نتیجه بازی تغییر می‌کند و مقادیر شپلی تفسیر متفاوتی پیدا می‌کنند. برای مثال، ویژگی‌ای که مدل اصلاً از آن استفاده نمی‌کند می‌تواند در نمونه‌برداری شرطی مقدار شپلی غیرصفر داشته باشد — در حالی که در بازی حاشیه‌ای، چنین ویژگی‌ای همواره مقدار صفر می‌گیرد تا اصل بازیکن ساکت نقض نشود. نسخه شرطی شپ توسط آس، یولوم، و لوولند (۲۰۲۱) پیشنهاد شده است.

هشدار: مقادیر شپلی شرطی ممکن است به ویژگی‌های بدون تأثیر، مقدار غیرصفر بدهند مشکل انتظار شرطی این است که ویژگی‌هایی که هیچ تأثیری بر تابع پیش‌بینی $f$ ندارند می‌توانند تخمین TreeSHAP غیرصفر دریافت کنند — همان‌طور که سوندارارجان و نجمی (۲۰۲۰) و یانزینگ، مینوریکس، و بلوباوم (۲۰۲۰) نشان داده‌اند. این اتفاق زمانی می‌افتد که ویژگی با ویژگی دیگری که واقعاً تأثیرگذار است همبسته باشد.

برای تصاویر، تابع نگاشت $h_x$ ابرپیکسل‌ها را مدیریت می‌کند: ابرپیکسل‌های حاضر به بخش متناظر از تصویر اصلی نگاشت می‌شوند و ابرپیکسل‌های غایب خاکستری می‌شوند (شکل ۱۸.۲).

شکل ۱۸.۲: تابع $h_{x}$ ائتلاف‌های ابرپیکسل‌ها (sp) را به تصاویر نگاشت می‌کند. ابرپیکسل‌ها گروه‌هایی از پیکسل‌ها هستند. برای ویژگی‌های حاضر (۱)، $h_{x}$ بخش متناظر از تصویر اصلی را برمی‌گرداند. برای ویژگی‌های غایب (۰)، $h_{x}$ ناحیه مربوطه را خاکستری می‌کند.

تفاوت اصلی شپ با لایم در وزن‌دهی نمونه‌ها در مدل رگرسیون است. لایم نمونه‌ها را بر اساس نزدیکی به نمونه اصلی وزن می‌دهد. شپ نمونه‌ها را بر اساس وزنی که آن ائتلاف در تخمین مقادیر شپلی دریافت می‌کند وزن می‌دهد. ائتلاف‌های کوچک (تعداد کمی ۱) و ائتلاف‌های بزرگ (تعداد زیادی ۱) بیشترین وزن را می‌گیرند، چون بیشترین اطلاعات را درباره تأثیر منفرد ویژگی‌ها ارائه می‌دهند. ائتلاف‌هایی با نیمی از ویژگی‌ها اطلاعات کمتری درباره سهم هر ویژگی منفرد می‌دهند، زیرا ترکیب‌های بسیاری وجود دارد.

هسته شپ که لاندبرگ و لی (۲۰۱۷) پیشنهاد دادند:

$$\pi_{x}(z') = \frac{(M-1)}{\binom{M}{|z'|} |z'|(M-|z'|)}$$

که در آن $M$ حداکثر اندازه ائتلاف و $|z'|$ تعداد ویژگی‌های حاضر در $z'$ است. لاندبرگ و لی نشان دادند که رگرسیون خطی با این وزن‌های هسته، مقادیر شپلی را به دست می‌دهد. جالب است که اگر هسته شپ را در لایم روی داده‌های ائتلاف به کار بگیریم، لایم هم مقادیر شپلی را تخمین می‌زند!

می‌توان در نمونه‌برداری ائتلاف‌ها هوشمندانه‌تر عمل کرد: ائتلاف‌های کوچک و بزرگ بیشترین وزن را دارند، پس بهتر است بخشی از بودجه نمونه‌برداری $B$ را به آن‌ها اختصاص دهیم. با شروع از همه ائتلاف‌های ممکن با ۱ و $M-1$ ویژگی ($2M$ ائتلاف در مجموع)، به‌تدریج ائتلاف‌های بزرگ‌تر را اضافه می‌کنیم و از ائتلاف‌های باقی‌مانده با وزن‌های تعدیل‌شده نمونه‌برداری می‌کنیم.

حال داده، هدف، و وزن داریم — همه آنچه برای رگرسیون خطی وزن‌دار نیاز است:

$$L(f, g, \pi_{x}) = \sum_{z' \in Z} \left[ f(h_x(z')) - g(z') \right]^2 \pi_{x}(z')$$

مدل خطی $g$ را با کمینه‌سازی این تابع زیان — همان مجموع مربعات خطاها — آموزش می‌دهیم. ضرایب تخمین‌زده‌شده مدل، یعنی $\phi_j$‌ها، همان مقادیر شپلی هستند.

از آنجا که در چارچوب رگرسیون خطی هستیم، می‌توانیم از جعبه‌ابزار استاندارد رگرسیون بهره ببریم. برای مثال، افزودن جمله تنظیم‌کننده (regularization) می‌تواند توضیح‌های تُنُک (sparse) تولید کند. با افزودن جریمه L1 به تابع زیان $L$، توضیح‌های تُنُک به دست می‌آیند — البته مطمئن نیستم ضرایب حاصل همچنان مقادیر شپلی معتبر باشند.

TreeSHAP

لاندبرگ، اریون، و لی (۲۰۱۹) TreeSHAP را برای مدل‌های یادگیری ماشین مبتنی بر درخت — مانند درخت‌های تصمیم، جنگل‌های تصادفی (Random Forest)، و درخت‌های تقویت‌شده با گرادیان (Gradient Boosting) — پیشنهاد دادند. TreeSHAP جایگزینی سریع و مدل-اختصاصی برای KernelSHAP است. پیچیدگی محاسباتی آن از $O(TL2^M)$ در KernelSHAP دقیق به $O(TLD^2)$ کاهش می‌یابد، که در آن $T$ تعداد درخت‌ها، $L$ حداکثر تعداد برگ‌ها، و $D$ حداکثر عمق هر درخت است.

TreeSHAP در دو نسخه ارائه می‌شود:

  • مداخله‌ای (Interventional): مقادیر کلاسیک شپلی را محاسبه می‌کند.
  • وابسته به مسیر درخت (Tree-path dependent): چیزی مشابه مقادیر شپلی شرطی محاسبه می‌کند.

پیاده‌سازی اصلی در بسته پایتون shap در ابتدا نسخه وابسته به مسیر بود، اما اکنون نسخه مداخله‌ای به‌عنوان پیش‌فرض استفاده می‌شود.

از آنجا که الگوریتم‌های هر دو نسخه پیچیده هستند، ایده کلی را توضیح می‌دهم. TreeSHAP از ساختار درخت بهره می‌گیرد تا مقادیر شپلی را کارآمدتر محاسبه کند.

TreeSHAP مداخله‌ای مقادیر شپلی معمول را محاسبه می‌کند. برای یک درخت منفرد، نمونه $x$ برای توضیح، و مجموعه پس‌زمینه با تنها یک نمونه $z$، ایده به این صورت است: مقادیر شپلی معمول با تشکیل مکرر ائتلاف‌ها محاسبه می‌شوند، اما در بسیاری از این ائتلاف‌ها، افزودن یک ویژگی از $x$ پیش‌بینی را تغییر نمی‌دهد — چون یک درخت تصمیم تنها تعداد محدودی پیش‌بینی مجزا دارد (مثلاً یک درخت دودویی با عمق ۵ حداکثر ۳۲ پیش‌بینی ممکن دارد). TreeSHAP مداخله‌ای به‌جای بررسی همه ائتلاف‌ها، مسیرهای درخت را کاوش می‌کند تا تنها با ائتلاف‌هایی کار کند که واقعاً پیش‌بینی را تغییر می‌دهند. وزن‌دهی و ترکیب صحیح این مشارکت‌های نهایی، الگوریتم را پیچیده می‌کند — به‌علاوه بازگشت (recursion) اجتناب‌ناپذیر. برای انسامبل‌هایی مانند جنگل تصادفی، مقادیر شپلی هر درخت به همان شیوه‌ای ترکیب می‌شوند که پیش‌بینی‌ها ترکیب می‌شوند — در جنگل تصادفی، میانگین‌گیری.

TreeSHAP وابسته به مسیر نیز از ساختار درخت بهره می‌گیرد: ایده اصلی رانش همزمان همه زیرمجموعه‌های ائتلاف $S$ در طول درخت و پیگیری تعداد نمونه‌ها برای هر زیرمجموعه در هر انشعاب است.

روش جایگشت (Permutation Method)

کارآمدترین روش تخمین مدل-مستقل، روش جایگشت است. ایده اصلی نمونه‌برداری هوشمندانه از ائتلاف‌ها از طریق ایجاد جایگشت‌های ویژگی‌ها است.

یک مثال (برگرفته از کتاب Interpreting Machine Learning Models with SHAP) با چهار مقدار ویژگی: $x_1$، $x_2$، $x_3$، و $x_4$ را در نظر بگیرید (برای اختصار، $x_j$ را $j$ می‌نویسیم).

یک جایگشت تصادفی می‌تواند این باشد:

$$3 \to 1 \to 4 \to 2$$

بر اساس این جایگشت، مشارکت‌های نهایی را از چپ به راست می‌سازیم:

  • افزودن ۳ به $\emptyset$
  • افزودن ۱ به ${3}$
  • افزودن ۴ به ${3,1}$
  • افزودن ۲ به ${3,1,4}$

و همین را معکوس انجام می‌دهیم:

  • افزودن ۲ به $\emptyset$
  • افزودن ۴ به ${2}$
  • افزودن ۱ به ${2,4}$
  • افزودن ۳ به ${2,4,1}$

جایگشت یک ویژگی را در هر مرحله تغییر می‌دهد. این موضوع تعداد فراخوانی مدل را کاهش می‌دهد، چون جمله دوم یک مشارکت نهایی برای محاسبه مشارکت نهایی بعدی هم مورد نیاز است. برای مثال، ائتلاف ${3,1}$ هم برای محاسبه مشارکت نهایی ۴ به ${3,1}$ و هم مشارکت ۱ به ${3}$ استفاده می‌شود.

با تعریف مقادیر شپلی بر حسب جایگشت‌ها — نه ائتلاف‌ها — اگر $p!$ جایگشت ممکن وجود داشته باشد و $\pi_k$ جایگشت k-ام باشد، مقدار شپلی ویژگی $j$ چنین است:

$$\phi_j = \frac{1}{p!} \sum_{\pi} \delta^\pi_j$$

که در آن $\delta^\pi_j$ مشارکت نهایی $j$-ام در جایگشت $\pi$ است. یعنی مقدار شپلی میانگین ساده‌ای از همه مشارکت‌ها است. از آنجا که محاسبه همه جایگشت‌ها بسیار هزینه‌بر است، می‌توان از آن‌ها نمونه‌برداری کرد. با پیمایش رفت و برگشت، مقدار شپلی به‌صورت زیر محاسبه می‌شود:

$$\phi_j = \frac{1}{K} \sum_{k=1}^{K} \hat{\phi}_{j,k}^+ + \hat{\phi}_{j,k}^-$$

که در آن $\pi^-$ نسخه معکوس جایگشت $\pi$ است. این روش پیمایش رفت-برگشت — که نمونه‌برداری آنتی‌تتیک (antithetic sampling) نام دارد — در مقایسه با سایر روش‌های نمونه‌برداری مقادیر شپ عملکرد بسیار خوبی دارد (میچل و همکاران، ۲۰۲۲). روش جایگشت همچنین تضمین می‌کند که اصل کارایی همواره برقرار باشد — یعنی مجموع مقادیر شپ برابر با پیش‌بینی منهای میانگین پیش‌بینی باشد. برای تصوری از تعداد جایگشت‌های مورد نیاز: بسته shap پیش‌فرض را ۱۰ قرار داده است.


مثال

یک طبقه‌بند جنگل تصادفی با ۱۰۰ درخت برای پیش‌بینی جنس پنگوئن‌ها آموزش دادم. از شپ برای توضیح پیش‌بینی‌های منفرد استفاده می‌کنیم. از آنجا که جنگل تصادفی انسامبلی از درخت‌ها است، می‌توانیم از روش سریع TreeSHAP مداخله‌ای به‌جای KernelSHAP کُندتر استفاده کنیم. در این مثال از توزیع حاشیه‌ای استفاده شده — نه توزیع شرطی. تابع TreeSHAP پایتون با توزیع حاشیه‌ای کُندتر است، اما همچنان سریع‌تر از KernelSHAP، چون به‌صورت خطی با تعداد سطرهای داده مقیاس می‌یابد.

چون از توزیع حاشیه‌ای استفاده می‌کنیم، تفسیر همانند فصل مقادیر شپلی است. اما بسته پایتون shap یک تجسم متفاوت ارائه می‌دهد: انتساب‌های ویژگی مانند مقادیر شپلی به‌صورت «نیروها» نمایش داده می‌شوند. هر مقدار ویژگی نیرویی است که پیش‌بینی را افزایش یا کاهش می‌دهد. پیش‌بینی از پایه (baseline) — که میانگین همه پیش‌بینی‌ها است — شروع می‌شود. در نمودار، هر مقدار شپلی فلشی است که پیش‌بینی را بالا (مقدار مثبت) یا پایین (مقدار منفی) می‌کشد. این نیروها در پیش‌بینی واقعی نمونه داده به تعادل می‌رسند.

نکته بسته پایتون shap تجسم‌های متنوعی دارد که می‌تواند گیج‌کننده باشد. به همین دلیل آن‌ها را در SHAP Plots Cheatsheet خلاصه کرده‌ام، همراه با راهنمای تفسیر هر نمودار.

برگه تقلب SHAP

شکل ۱۸.۳ نمودارهای نیروی شپ را برای دو پنگوئن از مجموعه داده پنگوئن‌های پالمر نشان می‌دهد: پنگوئن اول به دلیل طول منقار کوچک احتمال بالایی برای بودن از گونه Adelie دارد. پنگوئن دوم به دلیل طول منقار و طول بال بزرگ، احتمال پایینی برای Adelie بودن دارد.

شکل ۱۸.۳: مقادیر شپ برای دو پنگوئن. خط پایه (baseline) — میانگین احتمال پیش‌بینی‌شده — ۰٫۴۷ است. هر ویژگی را می‌توان به‌عنوان نیرویی دید که پیش‌بینی را از خط پایه به بالا یا پایین می‌کشاند.


نمودارهای تجمیع شپ

بخش قبلی توضیح‌هایی برای پیش‌بینی‌های منفرد ارائه داد. مقادیر شپلی را می‌توان در توضیح‌های سراسری ترکیب کرد. اگر شپ را برای هر نمونه اجرا کنیم، یک ماتریس از مقادیر شپلی به دست می‌آوریم — یک سطر به ازای هر نمونه و یک ستون به ازای هر ویژگی. با تحلیل این ماتریس می‌توان کل مدل را تفسیر کرد.

اهمیت ویژگی شپ (SHAP Feature Importance)

ایده پشت اهمیت ویژگی شپ ساده است: ویژگی‌هایی با مقادیر شپلی قدرمطلق بزرگ، مهم‌ترند. برای اهمیت سراسری، میانگین مقادیر شپلی قدرمطلق هر ویژگی را در کل داده حساب می‌کنیم:

$$I_j = \frac{1}{n} \sum_{i=1}^{n} |\phi_j^{(i)}|$$

سپس ویژگی‌ها را بر اساس اهمیت نزولی مرتب و نمایش می‌دهیم. شکل ۱۸.۴ اهمیت ویژگی شپ را برای جنگل تصادفی طبقه‌بندی پنگوئن‌ها نشان می‌دهد. توده بدنی مهم‌ترین ویژگی بود و احتمال پیش‌بینی‌شده را تا ۲۵ درصد تغییر داد.

اهمیت ویژگی شپ جایگزینی برای اهمیت ویژگی جایگشتی (permutation feature importance) است. تفاوت اصلی این است که اهمیت ویژگی جایگشتی بر کاهش عملکرد مدل مبتنی است، در حالی که شپ بر بزرگی انتساب‌های ویژگی.

شکل ۱۸.۴: اهمیت ویژگی شپ که به‌عنوان میانگین مقادیر شپلی قدرمطلق اندازه‌گیری می‌شود.

نمودار خلاصه شپ (SHAP Summary Plot)

نمودار خلاصه، اهمیت ویژگی را با اثرات ویژگی ترکیب می‌کند. هر نقطه در این نمودار یک مقدار شپلی برای یک ویژگی و یک نمونه است. محور y ویژگی را مشخص می‌کند و محور x مقدار شپلی را. رنگ نشان‌دهنده مقدار ویژگی از کم به زیاد است. نقاط هم‌پوشان در جهت y پراکنده می‌شوند تا توزیع مقادیر شپلی هر ویژگی قابل مشاهده باشد. ویژگی‌ها بر اساس اهمیت مرتب شده‌اند.

در نمودار خلاصه (شکل ۱۸.۵) نشانه‌های اولیه‌ای از رابطه میان مقدار ویژگی و تأثیر بر پیش‌بینی دیده می‌شود. توده بدنی بیشتر، سهم منفی در احتمال ماده بودن دارد. همچنین توده بدنی بیشترین دامنه اثرات را در میان پنگوئن‌های مختلف نشان می‌دهد.

شکل ۱۸.۵: نمودار خلاصه شپ.

نمودار وابستگی شپ (SHAP Dependence Plot)

وابستگی ویژگی شپ شاید ساده‌ترین نمودار تفسیر سراسری باشد:

۱. یک ویژگی انتخاب کنید. ۲. برای هر نمونه داده، نقطه‌ای با مقدار ویژگی در محور x و مقدار شپلی متناظر در محور y رسم کنید. ۳. تمام.

به‌صورت ریاضی، نمودار شامل این نقاط است: ${(x_j^{(i)}, \phi_j^{(i)})}_{i=1}^n$

شکل ۱۸.۶ وابستگی ویژگی شپ برای توده بدنی را نشان می‌دهد: هر چه پنگوئن سنگین‌تر، احتمال ماده بودنش کمتر.

شکل ۱۸.۶: نمودار وابستگی شپ برای توده بدنی. محور x ویژگی و محور y مقادیر شپ را نشان می‌دهد. هر نقطه نمایانگر یک نمونه داده است.

نمودارهای وابستگی شپ جایگزینی برای روش‌های سراسری اثر ویژگی مانند نمودارهای وابستگی جزئی (PDP) و اثرات محلی تجمعی (ALE) هستند. در حالی که PDP و ALE اثرات میانگین را نشان می‌دهند، وابستگی شپ واریانس را نیز در محور y نمایش می‌دهد. به‌ویژه در صورت وجود تعاملات، نمودار وابستگی شپ پراکندگی بیشتری در محور y خواهد داشت. برجسته‌سازی تعاملات ویژگی می‌تواند نمودار وابستگی را غنی‌تر کند.

مقادیر تعامل شپ (SHAP Interaction Values)

اثر تعامل، اثر ترکیبی اضافه‌ای است که پس از احتساب اثرات منفرد هر ویژگی باقی می‌ماند. شاخص تعامل شپلی از نظریه بازی‌ها به‌صورت زیر تعریف می‌شود:

$$\Phi_{i,j} = \sum_{S \subseteq M \setminus {i,j}} \frac{|S|!(M-|S|-2)!}{2(M-1)!} \delta_{ij}(S)$$

برای $i \neq j$، که:

$$\delta_{ij}(S) = \hat{f}_{x}(S \cup {i,j}) - \hat{f}_{x}(S \cup {i}) - \hat{f}_{x}(S \cup {j}) + \hat{f}_{x}(S)$$

این فرمول اثر اصلی ویژگی‌ها را کم می‌کند تا اثر تعامل خالص به دست آید. ارزش‌ها را میانگین‌گیری می‌کنیم، مشابه محاسبه مقادیر شپلی. وقتی مقادیر تعامل شپ را برای همه ویژگی‌ها محاسبه می‌کنیم، یک ماتریس $M \times M$ برای هر نمونه به دست می‌آوریم.

یک کاربرد: رنگ‌آمیزی خودکار نمودار وابستگی شپ با قوی‌ترین تعامل، مانند شکل ۱۸.۷. در اینجا توده بدنی با عمق منقار تعامل دارد.

شکل ۱۸.۷: نمودار وابستگی ویژگی شپ با نمایش تعامل. در اینجا نمودار وابستگی طول منقار را در تعامل با توده بدنی می‌بینیم. به‌ویژه برای منقارهای بلندتر، سهم طول منقار در P(Adelie) بر اساس توده بدنی متفاوت است.

نکته: تحلیل عمیق‌تر تعاملات موضوع تعاملات در شپ بسیار گسترده است. برای تحلیل پیشرفته‌تر تعاملات شپ، بسته shapiq (موشالیک و همکاران، ۲۰۲۴) را پیشنهاد می‌کنم.

خوشه‌بندی مقادیر شپلی

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

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

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

شکل ۱۸.۸: توضیحات شپ انباشته (Stacked SHAP) که بر اساس شباهت توضیح خوشه‌بندی شده‌اند. هر موقعیت در محور x یک نمونه از داده است. مقادیر شپ قرمز پیش‌بینی را افزایش می‌دهند، مقادیر آبی آن را کاهش می‌دهند.


نقاط قوت

از آنجا که شپ مقادیر شپلی را محاسبه می‌کند، همه مزایای مقادیر شپلی را به ارث می‌برد: پایه نظری محکم در نظریه بازی‌ها، توزیع عادلانه پیش‌بینی میان مقادیر ویژگی، و توضیح‌های تقابلی که پیش‌بینی را با پیش‌بینی میانگین مقایسه می‌کنند.

شپ لایم و مقادیر شپلی را به هم پیوند می‌دهد — پیوندی که درک هر دو روش را عمیق‌تر می‌کند و به یکپارچه‌سازی حوزه یادگیری ماشین تفسیرپذیر کمک می‌کند.

پیاده‌سازی سریع TreeSHAP برای مدل‌های مبتنی بر درخت، به باور من کلید محبوبیت شپ بود — چون بزرگترین مانع پذیرش مقادیر شپلی، محاسبات کُند آن است.

محاسبات سریع این امکان را فراهم می‌کند که مقادیر شپلی زیادی برای تفسیرهای سراسری مدل محاسبه شوند. تفسیرهای سراسری شامل اهمیت ویژگی، وابستگی ویژگی، تعاملات، خوشه‌بندی، و نمودار خلاصه می‌شوند. با شپ، تفسیرهای سراسری با توضیح‌های محلی سازگار هستند — چون مقادیر شپلی «واحد اتمی» تفسیرهای سراسری هستند. در مقابل، اگر از لایم برای توضیح محلی و از نمودار وابستگی جزئی به‌علاوه اهمیت ویژگی جایگشتی برای تفسیر سراسری استفاده کنید، پایه مشترکی ندارید.


محدودیت‌ها

KernelSHAP کُند است. این روش را برای محاسبه مقادیر شپلی برای تعداد زیادی نمونه ناعملی می‌کند — و همه روش‌های سراسری شپ به محاسبه مقادیر شپلی برای نمونه‌های فراوانی نیاز دارند.

KernelSHAP وابستگی ویژگی را نادیده می‌گیرد. بیشتر روش‌های تفسیری مبتنی بر جایگشت این مشکل را دارند. جایگزینی مقادیر ویژگی با مقادیر نمونه‌های تصادفی اغلب معادل نمونه‌برداری از توزیع حاشیه‌ای است. اگر ویژگی‌ها وابسته — مثلاً همبسته — باشند، این روش به نقاط داده غیرمحتمل وزن زیادی می‌دهد.

TreeSHAP وابسته به مسیر می‌تواند انتساب‌های ناشهودی تولید کند. TreeSHAP مشکل برون‌یابی به نقاط غیرمحتمل را حل می‌کند، اما با تغییر تابع ارزش. با تکیه بر پیش‌بینی انتظاری شرطی، ویژگی‌هایی که هیچ تأثیری بر پیش‌بینی ندارند می‌توانند مقدار TreeSHAP غیرصفر دریافت کنند.

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


نرم‌افزار

لاندبرگ شپ را در بسته پایتون shap پیاده‌سازی کرد که اکنون توسط تیم بزرگ‌تری نگهداری می‌شود.

این پیاده‌سازی با مدل‌های آموزش‌دیده با کتابخانه scikit-learn پایتون سازگار است. بسته shap برای مثال‌های این فصل نیز استفاده شد. شپ در چارچوب‌های تقویت درخت xgboost و LightGBM ادغام شده و در PiML — کتابخانه عمومی‌تری برای تفسیرپذیری — نیز یافت می‌شود. در R، بسته‌های shapper و fastshap و همچنین بسته xgboost در R شپ را پشتیبانی می‌کنند. برای تعاملات شپ به‌طور اختصاصی، بسته پایتون shapiq در دسترس است.

فصل ۱۹: نمودار وابستگی جزئی (PDP)

عنوان اصلی: Partial Dependence Plot (PDP)
منبع: https://christophm.github.io/interpretable-ml-book/pdp.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


نمودار وابستگی جزئی (به اختصار PDP یا PD plot) اثر حاشیه‌ای یک یا دو ویژگی را بر پیش‌بینی خروجی یک مدل یادگیری ماشین نشان می‌دهد (Friedman 2001). این نمودار می‌تواند آشکار کند که رابطهٔ میان هدف و یک ویژگی خطی است، یکنواخت است، یا شکل پیچیده‌تری دارد. برای مثال، هنگامی که PDP روی یک مدل رگرسیون خطی اعمال می‌شود، همواره یک رابطهٔ خطی را نمایش می‌دهد.

تعریف و برآورد

تابع وابستگی جزئی برای رگرسیون به صورت زیر تعریف می‌شود:

$$\hat{f}_S(\mathbf{x}_S) = \mathbb{E}_{\mathbf{X}_C}\left[\hat{f}(\mathbf{x}_S, X_C)\right] = \int \hat{f}(\mathbf{x}_S, X_C) , d\mathbb{P}(\mathbf{X}_C)$$

$\mathbf{x}_S$ ویژگی‌هایی هستند که تابع وابستگی جزئی برای آن‌ها رسم می‌شود، و $X_C$ ویژگی‌های دیگری هستند که در مدل یادگیری ماشین $\hat{f}$ به کار رفته‌اند و در اینجا به‌عنوان متغیرهای تصادفی در نظر گرفته می‌شوند. معمولاً مجموعهٔ $S$ تنها یک یا دو ویژگی دارد؛ این‌ها همان ویژگی‌هایی هستند که می‌خواهیم اثرشان بر پیش‌بینی را بررسی کنیم. بردارهای ویژگی $\mathbf{x}_S$ و $\mathbf{x}_C$ در کنار هم دادهٔ کامل $\mathbf{X}$ را تشکیل می‌دهند.

وابستگی جزئی با حاشیه‌سازی خروجی مدل یادگیری ماشین بر روی توزیع ویژگی‌های مجموعهٔ $C$ عمل می‌کند. به این ترتیب، تابع به‌دست‌آمده تنها به ویژگی‌های مجموعهٔ $S$ وابسته است و تعاملات آن‌ها با سایر ویژگی‌ها نیز در آن لحاظ شده است.

تابع جزئی $\hat{f}_S$ با محاسبهٔ میانگین روی داده‌های آموزشی برآورد می‌شود — روشی که به روش مونته‌کارلو نیز شناخته می‌شود:

$$\hat{f}_S(\mathbf{x}_S) = \frac{1}{n} \sum_{i=1}^{n} \hat{f}(\mathbf{x}_S, \mathbf{x}_C^{(i)})$$

این معادل میانگین‌گیری از تمام منحنی‌های ICE (آی‌سی‌ای، Individual Conditional Expectation) یک مجموعه‌داده است. تابع جزئی برای مقادیر مشخصی از ویژگی‌های مجموعهٔ $S$، اثر حاشیه‌ای میانگین بر پیش‌بینی را نشان می‌دهد. در این فرمول، $\mathbf{x}_C^{(i)}$ مقادیر واقعی ویژگی‌های موجود در مجموعه‌داده برای ویژگی‌هایی هستند که مورد بررسی نیستند، و $n$ تعداد نمونه‌های مجموعه‌داده است.

PDP ویژگی‌های مجموعهٔ $C$ را صرف‌نظر از همبستگی‌شان با ویژگی‌های مجموعهٔ $S$ در نظر می‌گیرد. در صورت وجود همبستگی، میانگین‌های محاسبه‌شده برای نمودار وابستگی جزئی ممکن است شامل نقاط داده‌ای بسیار نامحتمل یا حتی غیرممکن باشند (به بخش معایب مراجعه کنید).

⚠️ هشدار — ویژگی‌های همبسته مشکل‌ساز هستند

هنگام تفسیر PDP برای ویژگی‌های (به‌شدت) همبسته احتیاط کنید: در این حالت، نمودار وابستگی جزئی شامل نمونه‌های داده‌ای غیرواقعی می‌شود.

برای مسائل دسته‌بندی که مدل احتمال خروجی می‌دهد، نمودار وابستگی جزئی احتمال تعلق به یک کلاس خاص را در برابر مقادیر مختلف ویژگی‌های مجموعهٔ $S$ نمایش می‌دهد. ساده‌ترین راه برای مدیریت چند کلاس، رسم یک منحنی یا نمودار جداگانه برای هر کلاس است.

نمودار وابستگی جزئی یک روش سراسری است: این روش تمام نمونه‌ها را در نظر می‌گیرد و دربارهٔ رابطهٔ کلی یک ویژگی با پیش‌بینی اظهار می‌کند.

ویژگی‌های طبقه‌ای

تا اینجا تنها ویژگی‌های عددی را بررسی کردیم. برای ویژگی‌های طبقه‌ای، محاسبهٔ وابستگی جزئی بسیار ساده است. برای هر یک از طبقات، یک برآورد PDP به دست می‌آید؛ به این صورت که تمام نمونه‌های داده مجبور می‌شوند همان طبقه را داشته باشند. برای مثال، اگر مجموعه‌دادهٔ اجارهٔ دوچرخه را در نظر بگیریم و بخواهیم نمودار وابستگی جزئی برای فصل را بررسی کنیم، چهار عدد به دست می‌آید — یکی برای هر فصل. برای محاسبهٔ مقدار مربوط به «تابستان»، فصل تمام نمونه‌های داده را «تابستان» قرار داده و میانگین پیش‌بینی‌ها را حساب می‌کنیم.

مثال‌ها

در عمل، مجموعهٔ $S$ معمولاً تنها یک ویژگی دارد، یا حداکثر دو ویژگی؛ چون یک ویژگی نمودار دوبُعدی تولید می‌کند و دو ویژگی نمودار سه‌بُعدی. هر چیزی فراتر از آن به‌خوبی قابل تجسم نیست.

به مثال رگرسیون باز می‌گردیم؛ همان‌جا که تعداد دوچرخه‌های اجاره‌شده در یک روز مشخص را پیش‌بینی می‌کنیم. ابتدا یک مدل یادگیری ماشین برازش می‌دهیم، سپس وابستگی‌های جزئی را تحلیل می‌کنیم. در اینجا یک Random Forest برای پیش‌بینی تعداد دوچرخه‌ها برازش داده‌ایم و از نمودار وابستگی جزئی برای مصورسازی روابطی که مدل آموخته استفاده کرده‌ایم (شکل ۱۹.۱). اثر ویژگی‌های آب‌وهوایی بر تعداد پیش‌بینی‌شدهٔ دوچرخه‌ها در نمودار زیر نمایش داده شده است. بیشترین تفاوت‌ها در دمای هوا مشاهده می‌شود: هرچه هوا گرم‌تر باشد، دوچرخه‌های بیشتری اجاره می‌شوند. این روند تا ۲۰ درجهٔ سلسیوس صعودی است، سپس صاف می‌شود و حدود ۳۰ درجه کمی کاهش می‌یابد.

شکل ۱۹.۱: PDPها برای مدل پیش‌بینی تعداد دوچرخه و ویژگی‌های دما، رطوبت و سرعت باد. علامت‌گذاری روی محور افقی توزیع داده‌ها را نشان می‌دهد.

با افزایش رطوبت بیش از ۶۰٪، تمایل مردم به اجارهٔ دوچرخه کاهش می‌یابد. همچنین، هرچه باد بیشتر بوزد، دوچرخه‌سواران کمتری دیده می‌شوند — که البته منطقی است. نکتهٔ جالب این است که تعداد پیش‌بینی‌شدهٔ اجاره‌ها با افزایش سرعت باد از ۲۵ تا ۳۵ کیلومتر بر ساعت کاهش نمی‌یابد؛ اما داده‌های آموزشی در این بازه اندک هستند و مدل احتمالاً نتوانسته پیش‌بینی معناداری برای این محدوده بیاموزد. از نظر شهودی، انتظار می‌رود تعداد دوچرخه‌ها با افزایش سرعت باد کاهش یابد، به‌ویژه هنگامی که سرعت آن بسیار زیاد باشد.

برای نمایش نمودار وابستگی جزئی با یک ویژگی طبقه‌ای، اثر ویژگی فصل را بر پیش‌بینی اجارهٔ دوچرخه بررسی می‌کنیم (شکل ۱۹.۲). تمام فصل‌ها اثر مشابهی بر پیش‌بینی‌های مدل دارند؛ تنها در زمستان مدل تعداد اجارهٔ کمتری پیش‌بینی می‌کند و در بهار نیز اندکی کمتر.

شکل ۱۹.۲: PDPها برای مدل پیش‌بینی تعداد دوچرخه و ویژگی فصل.

همچنین وابستگی جزئی را برای دسته‌بندی جنسیت پنگوئن‌ها (نر/ماده) محاسبه می‌کنیم. برای تنوع، هم رویکرد Random Forest و هم رگرسیون لجستیک را تحلیل می‌کنیم. هر دو مدل $P(\text{female})$ را بر اساس اندازه‌گیری‌های بدن پیش‌بینی می‌کنند. وابستگی جزئی احتمال ماده بودن را بر اساس وزن بدن و عمق منقار برای Random Forest محاسبه و مصورسازی می‌کنیم (شکل ۱۹.۳). هرچه پنگوئن سنگین‌تر باشد، احتمال ماده بودنش کمتر است. الگوی مشابهی برای عمق منقار نیز دیده می‌شود. نمودار PDP مربوط به Random Forest به دلیل ماهیت درخت تصمیم، بسیار ناهموارتر است.

شکل ۱۹.۳: PDPها برای عمق منقار و وزن بدن، هم برای مدل رگرسیون لجستیک و هم برای Random Forest.

شکل ۱۹.۳ یک مشکل اساسی دارد: تمام گونه‌های پنگوئن را با هم در نظر می‌گیرد. اما می‌توان PDPها را به‌تفکیک گونه نیز محاسبه کرد. برای این کار کافی است داده‌ها را زیرمجموعه‌سازی کنیم و منحنی‌ها را در یک نمودار رسم کنیم (شکل ۱۹.۴). تفسیری دقیق‌تر پدیدار می‌شود: برای گونهٔ Adelie، افزایش وزن با کاهش احتمال ماده بودن همراه است. برای Chinstrap، وزن تأثیر چندانی بر احتمال ندارد. پنگوئن‌های Gentoo به‌طورکلی سنگین‌تر هستند، اما همان الگوی «نرها سنگین‌ترند» را نیز نشان می‌دهند. همچنین، همان‌طور که انتظار می‌رود، رگرسیون لجستیک منحنی هموارتری دارد و احتمالات Random Forest به سمت میانگین کشیده می‌شوند.

شکل ۱۹.۴: PDP تقسیم‌شده بر اساس گونهٔ پنگوئن، با مقایسهٔ رگرسیون لجستیک و Random Forest.

می‌توان وابستگی جزئی دو ویژگی را نیز به‌صورت همزمان مصورسازی کرد (شکل ۱۹.۵): اینجا عمق منقار و طول منقار. مدل مورد بررسی Random Forest است. تعاملی میان این دو ویژگی وجود دارد؛ در عمق‌های کم منقار، طول منقار تفاوتی ایجاد نمی‌کند، اما برای منقارهای بلندتر، $P(\text{female})$ کاهش می‌یابد.

شکل ۱۹.۵: PDP برای $P(\text{female})$ و تعامل میان عمق منقار و طول منقار. نقاط سیاه نشان‌دهندهٔ پنگوئن‌های ماده و نقاط خاکستری نشان‌دهندهٔ پنگوئن‌های نر هستند.

💡 نکته — کاهش تعاملات، بهبود تفسیرپذیری PDP

اگرچه PDP یک روش مستقل از مدل است، داشتن مدلی با تعاملات کمتر و اثرات همگن‌تر تفسیر PDP را ساده‌تر می‌کند و برخی خطرات سوءتفسیر را کاهش می‌دهد. از جملهٔ این روش‌ها: کاهش عمق درخت هنگام استفاده از روش‌های مبتنی بر درخت، یا افزودن قیدهای یکنواختی. همچنین می‌توان به شیوه‌ای مستقل از مدل، تعاملات کمتر، تُنُکی بیشتر، و اثرات کم‌پیچیدگی‌تر را بهینه کرد، ر.ک. Molnar, Casalicchio, and Bischl (2020).

اهمیت ویژگی مبتنی بر PDP

Greenwell, Boehmke, and McCarthy (2018) یک معیار سادهٔ اهمیت ویژگی مبتنی بر وابستگی جزئی پیشنهاد دادند. انگیزهٔ اصلی این است که یک PDP صاف نشان‌دهندهٔ بی‌اهمیت بودن ویژگی است، و هرچه PDP تغییرات بیشتری داشته باشد، ویژگی مهم‌تر است. برای ویژگی‌های عددی، اهمیت به صورت انحراف هر مقدار منحصربه‌فرد ویژگی از منحنی میانگین تعریف می‌شود:

$$I(\mathbf{x}_S) = \sqrt{\frac{1}{K-1} \sum_{k=1}^{K} \left(\hat{f}_S(\mathbf{x}_S^{(k)}) - \frac{1}{K}\sum_{k=1}^{K} \hat{f}_S(\mathbf{x}_S^{(k)})\right)^2}$$

توجه داشته باشید که در اینجا $\mathbf{x}_S^{(1)}, \ldots, \mathbf{x}_S^{(K)}$ مقادیر $K$ منحصربه‌فرد ویژگی $X_S$ هستند. برای ویژگی‌های طبقه‌ای داریم:

$$I(X_S) = \frac{\max_k(\hat{f}_S(\mathbf{x}_S^{(k)})) - \min_k(\hat{f}_S(\mathbf{x}_S^{(k)}))}{4}$$

این مقدار، دامنهٔ مقادیر PDP برای طبقات منحصربه‌فرد تقسیم بر چهار است. این شیوهٔ محاسبهٔ انحراف — که «قانون دامنه» نامیده می‌شود — تخمینی کلی از انحراف معیار فراهم می‌کند، آن‌گاه که تنها دامنهٔ داده در دسترس است. عدد چهار در مخرج از توزیع نرمال استاندارد گرفته شده است: در این توزیع، ۹۵٪ داده‌ها در فاصلهٔ منهای دو تا مثبت دو انحراف معیار از میانگین قرار دارند؛ بنابراین دامنه تقسیم بر چهار، تخمینی کلی به دست می‌دهد که احتمالاً واریانس واقعی را دست کم می‌گیرد.

این معیار اهمیت ویژگی مبتنی بر PDP را باید با احتیاط تفسیر کرد. این معیار تنها اثر اصلی ویژگی را اندازه می‌گیرد و تعاملات احتمالی با سایر ویژگی‌ها را نادیده می‌گیرد. ممکن است ویژگی‌ای بر اساس روش‌های دیگر — مانند اهمیت ویژگی مبتنی بر جابجایی — بسیار مهم باشد، اما PDP آن صاف به نظر برسد؛ چون آن ویژگی عمدتاً از طریق تعامل با ویژگی‌های دیگر بر پیش‌بینی تأثیر می‌گذارد. نقطهٔ ضعف دیگر این معیار آن است که بر روی مقادیر منحصربه‌فرد تعریف شده است: یک مقدار منحصربه‌فرد با تنها یک نمونه، وزن برابری با مقداری دارد که نمونه‌های بسیار بیشتری از آن وجود دارد.

نقاط قوت

محاسبهٔ نمودار وابستگی جزئی به شکل شهودی قابل فهم است: مقدار تابع وابستگی جزئی در یک مقدار خاص از ویژگی، نمایانگر میانگین پیش‌بینی است؛ به شرطی که همهٔ نقاط داده مجبور به داشتن آن مقدار ویژگی شوند. به تجربه، افراد غیرمتخصص معمولاً ایدهٔ اصلی PDP را به‌سرعت درک می‌کنند.

اگر ویژگی‌ای که PDP برای آن محاسبه شده با سایر ویژگی‌ها همبستگی نداشته باشد، نمودار وابستگی جزئی به‌طور دقیق نشان می‌دهد که آن ویژگی به‌طور میانگین چه اثری بر پیش‌بینی دارد. در حالت بدون همبستگی، تفسیر روشن است: نمودار وابستگی جزئی نشان می‌دهد که با تغییر ویژگی $j$-ام، میانگین پیش‌بینی در مجموعه‌داده چگونه تغییر می‌کند. در صورت وجود همبستگی بین ویژگی‌ها، تفسیر پیچیده‌تر می‌شود (به بخش محدودیت‌ها مراجعه کنید).

پیاده‌سازی نمودار وابستگی جزئی ساده است.

محاسبهٔ نمودار وابستگی جزئی تفسیری علّی دارد. ما روی یک ویژگی مداخله می‌کنیم و تغییرات پیش‌بینی‌ها را اندازه می‌گیریم. به این ترتیب، رابطهٔ علّی میان ویژگی و پیش‌بینی را تحلیل می‌کنیم (Zhao and Hastie 2019). این رابطه برای مدل علّی است — چون خروجی را به‌صراحت به‌عنوان تابعی از ویژگی‌ها مدل می‌کنیم — اما لزوماً در دنیای واقعی علّی نیست.

محدودیت‌ها

حداکثر تعداد واقع‌بینانهٔ ویژگی‌هایی که می‌توان در یک تابع وابستگی جزئی به‌صورت معنادار مصورسازی کرد، دو ویژگی است. این محدودیت از PDP نیست، بلکه از نمایش دوبُعدی (کاغذ یا صفحهٔ نمایش) و ناتوانی ما در تصور بیش از ۳ بُعد ناشی می‌شود. البته همچنان می‌توان PDPهای مرتبهٔ بالاتر را محاسبه کرد.

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

فرض استقلال بزرگ‌ترین مشکل PDPها است. فرض بر این است که ویژگی‌هایی که وابستگی جزئی برای آن‌ها محاسبه می‌شود با سایر ویژگی‌ها همبستگی ندارند. برای مثال، فرض کنید می‌خواهیم سرعت راه رفتن یک فرد را بر اساس وزن و قد او پیش‌بینی کنیم. برای محاسبهٔ وابستگی جزئی یکی از ویژگی‌ها — مثلاً قد — فرض می‌کنیم ویژگی دیگر (وزن) با قد همبستگی ندارد، که فرضیه‌ای آشکارا نادرست است. هنگام محاسبهٔ PDP برای یک مقدار مشخص از قد (مثلاً ۲۰۰ سانتی‌متر)، میانگین را روی توزیع حاشیه‌ای وزن حساب می‌کنیم؛ توزیعی که ممکن است شامل وزن‌هایی زیر ۵۰ کیلوگرم باشد — که برای یک فرد ۲ متری کاملاً غیرواقعی است. به عبارت دیگر: وقتی ویژگی‌ها همبسته‌اند، نقاط داده‌ای جدیدی در مناطقی از فضای ویژگی می‌سازیم که احتمال واقعی بسیار پایینی دارند. یکی از راه‌حل‌های این مشکل، نمودارهای اثر محلی انباشته (ALE plots — Accumulated Local Effect) است که به جای توزیع حاشیه‌ای، با توزیع شرطی کار می‌کنند.

اثرات ناهمگن ممکن است پنهان بمانند، چون PDPها تنها اثرات حاشیه‌ای میانگین را نشان می‌دهند. فرض کنید برای یک ویژگی، نیمی از نمونه‌ها رابطهٔ مثبت با پیش‌بینی دارند — هرچه مقدار ویژگی بیشتر، پیش‌بینی بیشتر — و نیمی دیگر رابطهٔ منفی — هرچه مقدار ویژگی کمتر، پیش‌بینی بیشتر. منحنی PD ممکن است یک خط افقی باشد، چون اثرات این دو نیمه یکدیگر را خنثی می‌کنند. در این حالت به اشتباه نتیجه می‌گیریم که ویژگی هیچ اثری بر پیش‌بینی ندارد. با رسم منحنی‌های ICE به‌جای خط تجمیعی، می‌توان اثرات ناهمگن را آشکار کرد. اما منحنی‌های ICE نمی‌توانند نشان دهند که اثر مثبت است یا منفی — جنبه‌ای که برای تفسیر اهمیت دارد. اگر جهت اثر (مثبت یا منفی) به ویژگی دیگری وابسته باشد — برای مثال، وقتی مقدار آن ویژگی از آستانه‌ای خاص بیشتر باشد اثر مثبت، و در غیر این صورت منفی است — نمودارهای اثر ویژگی منطقه‌ای (regional feature effect plots) (Herbinger et al. 2024; Herbinger, Bischl, and Casalicchio 2022; Britton 2019; Gkolemis et al., n.d.) این مشکل را با تقسیم‌بندی داده‌ها بر اساس ویژگی شرطی‌کننده و محاسبهٔ PDPهای اختصاصی برای هر زیرگروه برطرف می‌کنند. این رویکرد به‌روشنی نشان می‌دهد که در چه شرایطی اثر مثبت یا منفی است و ناهمگنی کلی را کاهش می‌دهد.

نرم‌افزار و جایگزین‌ها

چندین بستهٔ R برای پیاده‌سازی PDPها وجود دارد. در مثال‌های این فصل از بستهٔ iml استفاده شده، اما بسته‌های pdp و DALEX نیز در دسترس هستند. در Python، نمودار وابستگی جزئی در کتابخانهٔ scikit-learn تعبیه شده و همچنین در PDPBox و effector نیز پیاده‌سازی شده است. کتابخانهٔ Python Interpretable Machine Learning یا PiML نیز گزینهٔ دیگری است. بستهٔ effector همچنین نمودارهای PDP منطقه‌ای را پشتیبانی می‌کند.

جایگزین‌های PDP که در این کتاب معرفی شده‌اند عبارتند از: نمودارهای ALE و منحنی‌های ICE.

فصل ۲۰: اثرات محلی انباشته (ALE)

عنوان اصلی: Accumulated Local Effects (ALE)
منبع: https://christophm.github.io/interpretable-ml-book/ale.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


اثرات محلی انباشته (Apley and Zhu 2020) توصیف می‌کنند که ویژگی‌ها به‌طور میانگین چه تأثیری بر پیش‌بینی یک مدل یادگیری ماشین دارند. نمودارهای ALE جایگزینی سریع‌تر و بدون تورش برای نمودارهای وابستگی جزئی (PDP) هستند.

پیشنهاد می‌کنم پیش از این فصل، فصل مربوط به نمودارهای وابستگی جزئی را مطالعه کنید؛ درک آن‌ها آسان‌تر است و هر دو روش هدف مشترکی دارند: توصیف اینکه یک ویژگی به‌طور میانگین چه تأثیری بر پیش‌بینی می‌گذارد. در ادامه نشان خواهم داد که نمودارهای وابستگی جزئی هنگامی که ویژگی‌ها با هم همبسته‌اند، با مشکل جدی روبه‌رو می‌شوند.

انگیزه و شهود

اگر ویژگی‌های یک مدل یادگیری ماشین با هم همبسته باشند، نمی‌توان به نمودار وابستگی جزئی اعتماد کرد. محاسبه این نمودار برای ویژگی‌ای که با سایر ویژگی‌ها همبستگی قوی دارد، مستلزم میانگین‌گیری روی پیش‌بینی‌هایی است که از نمونه‌های داده مصنوعی به دست می‌آیند — نمونه‌هایی که در واقعیت بعید به نظر می‌رسند. این امر می‌تواند تخمین اثر ویژگی را به‌شدت متورش کند.

فرض کنید می‌خواهیم نمودار وابستگی جزئی را برای مدلی محاسبه کنیم که ارزش خانه را بر اساس تعداد اتاق‌ها و مساحت نشیمن پیش‌بینی می‌کند، و به اثر مساحت نشیمن بر ارزش پیش‌بینی‌شده علاقه‌مند هستیم. مراحل محاسبه نمودار وابستگی جزئی به این شکل است: ۱) انتخاب ویژگی. ۲) تعریف شبکه. ۳) برای هر مقدار شبکه: الف) جایگزینی ویژگی با مقدار شبکه و ب) میانگین‌گیری از پیش‌بینی‌ها. ۴) رسم منحنی. برای محاسبه اولین مقدار شبکه PDP — مثلاً ۳۰ متر مربع — مساحت نشیمن همه نمونه‌ها را با ۳۰ متر مربع جایگزین می‌کنیم؛ حتی برای خانه‌هایی با ۱۰ اتاق. این ترکیب بسیار غیرمعمول به نظر می‌رسد. نمودار وابستگی جزئی این خانه‌های غیرواقع‌بینانه را در تخمین اثر ویژگی لحاظ می‌کند، انگار که همه چیز طبیعی است. شکل ۲۰.۱ دو ویژگی همبسته را نشان می‌دهد و توضیح می‌دهد که چرا روش PDP ناگزیر پیش‌بینی ترکیب‌های بعید را در محاسبه دخالت می‌دهد.

شکل ۲۰.۱: دو ویژگی همبسته $X_1$ و $X_2$. هنگام محاسبه PDP در مقادیر مشخصی از $x_1$، مقادیر $x_2$ از کل دامنه $X_2$ نمونه‌برداری می‌شوند (خط عمودی). در نتیجه PDP از ترکیب‌های بعید $X_1$ و $X_2$ استفاده می‌کند (مثلاً $x_2$ بزرگ در کنار $x_1$ کوچک).

پس چه می‌توان کرد تا تخمین اثر ویژگی، همبستگی میان ویژگی‌ها را رعایت کند؟ می‌توانیم به جای میانگین‌گیری بر اساس توزیع حاشیه‌ای (marginal distribution)، روی توزیع شرطی (conditional distribution) میانگین بگیریم؛ یعنی در یک مقدار شبکه مانند $x_1$، پیش‌بینی نمونه‌هایی را میانگین بگیریم که مقدار مشابهی برای $x_1$ دارند. روشی که اثر ویژگی را با استفاده از توزیع شرطی محاسبه می‌کند، «نمودارهای حاشیه‌ای» یا M-Plots نام دارد (نامی که می‌تواند گیج‌کننده باشد، چون این نمودارها بر پایه توزیع شرطی‌اند، نه حاشیه‌ای). اما صبر کنید — مگر قرار نبود از نمودارهای ALE صحبت کنیم؟ درست است؛ M-Plots راه‌حل مطلوب ما نیستند. چرا؟

اگر پیش‌بینی همه خانه‌هایی با حدوداً ۳۰ متر مربع مساحت نشیمن را میانگین بگیریم، اثر ترکیبی مساحت نشیمن و تعداد اتاق‌ها را تخمین می‌زنیم، چون این دو ویژگی با هم همبسته‌اند. فرض کنید مساحت نشیمن هیچ تأثیری بر ارزش پیش‌بینی‌شده خانه ندارد و تنها تعداد اتاق‌ها اهمیت دارد. M-Plot همچنان نشان می‌دهد که با افزایش مساحت نشیمن، ارزش پیش‌بینی‌شده بالا می‌رود؛ چون تعداد اتاق‌ها با مساحت نشیمن افزایش می‌یابد. شکل ۲۰.۲ نشان می‌دهد که چگونه M-Plots روی توزیع شرطی میانگین می‌گیرند.

شکل ۲۰.۲: دو ویژگی همبسته $X_1$ و $X_2$. M-Plots روی توزیع شرطی میانگین می‌گیرند — اینجا توزیع شرطی $X_2$ به ازای $x_1$. میانگین‌گیری از پیش‌بینی‌های محلی باعث می‌شود اثر هر دو ویژگی با هم درهم آمیخته شود.

M-Plots از میانگین‌گیری روی نمونه‌های داده بعید جلوگیری می‌کنند، اما اثر یک ویژگی را با اثر ویژگی‌های همبسته‌اش درهم می‌آمیزند. نمودارهای ALE این مشکل را با محاسبه تفاضل پیش‌بینی‌ها — به جای میانگین آن‌ها — حل می‌کنند؛ آن هم بر اساس توزیع شرطی ویژگی‌ها. برای تخمین اثر مساحت نشیمن در ۳۰ متر مربع، روش ALE همه خانه‌هایی با حدوداً ۳۰ متر مربع را انتخاب می‌کند، پیش‌بینی مدل را با فرض ۳۱ متر مربع محاسبه می‌کند، و از پیش‌بینی با فرض ۲۹ متر مربع کم می‌کند. این رویکرد اثر خالص مساحت نشیمن را جدا می‌کند و آن را با اثر ویژگی‌های همبسته نمی‌آمیزد. استفاده از تفاضل، اثر سایر ویژگی‌ها را مسدود می‌کند. شکل ۲۰.۳ شهودی درباره نحوه محاسبه نمودارهای ALE ارائه می‌دهد.

شکل ۲۰.۳: محاسبه ALE برای ویژگی $X_1$ که با $X_2$ همبسته است. ابتدا ویژگی به بازه‌هایی تقسیم می‌شود (خطوط عمودی). برای نمونه‌های داده (نقاط) درون هر بازه، تفاضل پیش‌بینی‌ها را زمانی محاسبه می‌کنیم که ویژگی را با کران بالا و پایین بازه جایگزین می‌کنیم (خطوط افقی). این تفاضل‌ها سپس انباشته و مرکزگرایی می‌شوند تا منحنی ALE به دست آید.

در خلاصه، هر یک از سه روش (PDP، M، ALE) اثر ویژگی را در یک مقدار شبکه $v$ به این شکل محاسبه می‌کند:

  • نمودارهای وابستگی جزئی (PDP): «نشان می‌دهم که مدل به‌طور میانگین، زمانی که هر نمونه داده مقدار $v$ را برای آن ویژگی دارد، چه پیش‌بینی می‌کند. اینکه مقدار $v$ برای همه نمونه‌ها منطقی است یا نه، برایم مهم نیست.»
  • M-Plots: «نشان می‌دهم که مدل به‌طور میانگین، برای نمونه‌هایی که مقادیر آن ویژگی‌شان نزدیک به $v$ است، چه پیش‌بینی می‌کند. این اثر ممکن است ناشی از آن ویژگی باشد یا از ویژگی‌های همبسته‌اش.»
  • نمودارهای ALE: «نشان می‌دهم که پیش‌بینی‌های مدل، در یک 'پنجره' کوچک از ویژگی در اطراف $v$، برای نمونه‌های داده درون آن پنجره، چقدر تغییر می‌کند.»

نظریه

PDP، M-Plot و نمودار ALE از نظر ریاضی چه تفاوتی دارند؟ وجه مشترک هر سه روش این است که تابع پیش‌بینی پیچیده $\hat{f}$ را به تابعی تقلیل می‌دهند که تنها به یک (یا دو) ویژگی وابسته است. هر سه روش این کار را از طریق میانگین‌گیری روی اثر سایر ویژگی‌ها انجام می‌دهند، اما در این جزئیات تفاوت دارند: اینکه آیا میانگین پیش‌بینی‌ها محاسبه می‌شود یا میانگین تفاضل‌ها، و اینکه میانگین‌گیری روی توزیع حاشیه‌ای انجام می‌شود یا توزیع شرطی.

نمودارهای وابستگی جزئی پیش‌بینی‌ها را روی توزیع حاشیه‌ای میانگین می‌گیرند:

$$\hat{f}_{S,PDP}(\mathbf{x}_S) = \mathbb{E}_{X_C}\left[\hat{f}(\mathbf{x}_S, X_C)\right] = \int \hat{f}(\mathbf{x}_S, x_C) , d\mathbb{P}(x_C)$$

این مقدار تابع پیش‌بینی $\hat{f}$ را در مقادیر ویژگی‌های $\mathbf{x}_S$، میانگین‌گرفته‌شده روی همه ویژگی‌های مجموعه $C$ (که به‌عنوان متغیرهای تصادفی در نظر گرفته می‌شوند)، نشان می‌دهد. برای محاسبه عملی، کافی است همه نمونه‌های داده را مجبور کنیم مقدار خاصی از شبکه را برای ویژگی‌های $S$ داشته باشند و پیش‌بینی‌ها را میانگین بگیریم.

M-Plots پیش‌بینی‌ها را روی توزیع شرطی میانگین می‌گیرند:

$$\hat{f}_{S,M}(\mathbf{x}_S) = \mathbb{E}_{X_C|X_S}\left[\hat{f}(X_S, X_C) \mid X_S = \mathbf{x}_S\right] = \int \hat{f}(x_S, X_C) , d\mathbb{P}(X_C \mid X_S = \mathbf{x}_S)$$

تنها تفاوت با PDP این است که به جای فرض توزیع حاشیه‌ای در هر مقدار شبکه، پیش‌بینی‌ها را مشروط بر هر مقدار ویژگی موردنظر میانگین می‌گیریم. در عمل باید یک همسایگی تعریف کنیم؛ مثلاً برای محاسبه اثر ۳۰ متر مربع بر ارزش خانه، می‌توانیم پیش‌بینی همه خانه‌های بین ۲۸ تا ۳۲ متر مربع را میانگین بگیریم.

نمودارهای ALE تغییرات پیش‌بینی‌ها را میانگین می‌گیرند و آن‌ها را روی شبکه انباشته می‌کنند (جزئیات بیشتر در بخش محاسبه):

$$\hat{f}_{S,ALE}(\mathbf{x}_S) = \int_{\mathbf{z}_{0,S}}^{\mathbf{x}_S} \mathbb{E}_{X_C|X_S = \mathbf{z}_S}\left[\hat{f}^S(X_S, X_C) \mid X_S = \mathbf{z}_S\right] d\mathbf{z}_S - \text{constant}$$

این فرمول سه تفاوت با M-Plots دارد. اول اینکه به جای پیش‌بینی‌ها، تغییرات پیش‌بینی‌ها میانگین گرفته می‌شوند. این تغییر به‌صورت مشتق جزئی تعریف می‌شود (که در محاسبه عملی با تفاضل پیش‌بینی‌ها در یک بازه جایگزین می‌شود):

$$\hat{f}^S(\mathbf{x}_S, \mathbf{x}_C) = \frac{\partial \hat{f}(\mathbf{x}_S, \mathbf{x}_C)}{\partial \mathbf{x}_S}$$

تفاوت دوم، انتگرال اضافی روی $\mathbf{z}$ است. مشتقات جزئی محلی را در دامنه ویژگی‌های $S$ انباشته می‌کنیم تا اثر ویژگی بر پیش‌بینی به دست آید. در محاسبه عملی، $\mathbf{z}$‌ها با یک شبکه از بازه‌ها جایگزین می‌شوند که تغییرات پیش‌بینی را روی آن‌ها حساب می‌کنیم. به جای اینکه مستقیماً پیش‌بینی‌ها را میانگین بگیریم، روش ALE تفاضل پیش‌بینی‌ها را مشروط بر ویژگی‌های $S$ حساب می‌کند و مشتق را روی $S$ انتگرال می‌گیرد. شاید در نگاه اول این کار بی‌معنی به نظر برسد — معمولاً مشتق‌گیری و انتگرال‌گیری یکدیگر را خنثی می‌کنند، مثل اینکه عددی را کم و سپس اضافه کنید. اما اینجا این رویکرد معنا دارد: مشتق (یا تفاضل در بازه) اثر ویژگی موردنظر را ایزوله می‌کند و از نفوذ ویژگی‌های همبسته جلوگیری می‌کند.

تفاوت سوم نمودارهای ALE با M-Plots این است که یک ثابت از نتایج کسر می‌شود. این مرحله نمودار ALE را مرکزگرایی می‌کند، به‌طوری که میانگین اثر روی کل داده برابر صفر می‌شود.

یک مشکل باقی می‌ماند: همه مدل‌ها گرادیان ندارند — مثلاً Random Forest گرادیان صریحی ندارد. اما همان‌طور که خواهید دید، محاسبه عملی بدون نیاز به گرادیان و با استفاده از بازه‌ها انجام می‌شود. بیایید نگاهی دقیق‌تر به تخمین نمودارهای ALE داشته باشیم.

تخمین

ابتدا نحوه تخمین نمودارهای ALE برای یک ویژگی عددی را توضیح می‌دهم، سپس برای دو ویژگی عددی و یک ویژگی طبقه‌ای. برای تخمین اثرات محلی، ویژگی را به بازه‌های متعددی تقسیم می‌کنیم و تفاضل پیش‌بینی‌ها را محاسبه می‌کنیم. این رویکرد مشتقات را تقریب می‌زند و برای مدل‌هایی که مشتق ندارند نیز کاربرد دارد.

ابتدا اثر مرکزگرایی‌نشده را تخمین می‌زنیم:

$$\hat{\tilde{f}}_{j,ALE}(\mathbf{x}) = \sum_{k=1}^{k_j(\mathbf{x})} \frac{1}{n_j(k)} \sum_{i: x_j^{(i)} \in N_j(k)} \left[\hat{f}(z_{k,j}, \mathbf{x}_{-j}^{(i)}) - \hat{f}(z_{k-1,j}, \mathbf{x}_{-j}^{(i)})\right]$$

بیایید این فرمول را از سمت راست تجزیه کنیم. نام «اثرات محلی انباشته» به‌خوبی اجزای این فرمول را بازتاب می‌دهد. در هسته روش ALE، تفاضل پیش‌بینی‌ها محاسبه می‌شود؛ جایی که ویژگی موردنظر با مقادیر شبکه $z_{k,j}$ جایگزین می‌شود. این تفاضل پیش‌بینی، اثر ویژگی برای یک نمونه مشخص در یک بازه معین است. جمع سمت راست، اثر همه نمونه‌های درون یک بازه را جمع می‌زند — که در فرمول به‌صورت همسایگی $N_j(k)$ نمایش داده می‌شود. این جمع بر تعداد نمونه‌های درون بازه تقسیم می‌شود تا تفاضل میانگین پیش‌بینی‌ها در آن بازه به دست آید. این میانگین درون بازه همان «محلی» در نام ALE است. سمبل جمع سمت چپ نیز نشان می‌دهد که اثرات میانگین را روی تمام بازه‌ها انباشته می‌کنیم. ALE مرکزگرایی‌نشده یک مقدار ویژگی که مثلاً در بازه سوم قرار دارد، برابر مجموع اثرات بازه‌های اول، دوم و سوم است. کلمه «انباشته» در ALE دقیقاً همین مفهوم را بیان می‌کند.

سپس این اثر مرکزگرایی می‌شود تا میانگین اثر برابر صفر گردد:

$$\hat{f}_{j,ALE}(\mathbf{x}) = \hat{\tilde{f}}_{j,ALE}(\mathbf{x}) - \frac{1}{n} \sum_{i=1}^{n} \hat{\tilde{f}}_{j,ALE}(x_j^{(i)})$$

مقدار ALE را می‌توان به این شکل تفسیر کرد: اثر اصلی ویژگی در یک مقدار مشخص در مقایسه با پیش‌بینی میانگین روی کل داده. مثلاً اگر تخمین ALE در $x = 3$ برابر ۲- باشد، یعنی وقتی ویژگی $j$ام مقدار ۳ دارد، پیش‌بینی در مقایسه با پیش‌بینی میانگین، ۲ واحد کمتر است.

چندک‌های توزیع ویژگی به‌عنوان شبکه‌ای استفاده می‌شوند که بازه‌ها را تعریف می‌کنند. استفاده از چندک‌ها تضمین می‌کند که در هر بازه تعداد نمونه‌های یکسانی وجود داشته باشد. البته چندک‌ها این عیب را دارند که می‌توانند بازه‌هایی با طول‌های بسیار متفاوت ایجاد کنند. این موضوع اگر ویژگی موردنظر چولگی زیادی داشته باشد — مثلاً مقادیر کم فراوان و مقادیر خیلی زیاد نادر — ممکن است به نمودارهای ALE عجیبی منجر شود.

نمودارهای ALE برای تعامل دو ویژگی

نمودارهای ALE می‌توانند اثر تعاملی (interaction effect) دو ویژگی را نیز نشان دهند. اصول محاسبه همانند یک ویژگی است، با این تفاوت که به جای بازه، با سلول‌های مستطیلی کار می‌کنیم چون باید اثرات را در دو بعد انباشته کنیم. علاوه بر تنظیم میانگین کلی، اثرات اصلی هر دو ویژگی را نیز تنظیم می‌کنیم. این یعنی ALE دوویژگیه، اثر مرتبه دوم (second-order effect) را تخمین می‌زند که شامل اثرات اصلی ویژگی‌ها نمی‌شود؛ به عبارت دیگر، تنها اثر تعاملی اضافی دو ویژگی نمایش داده می‌شود. شکل زیر محاسبه ALE دوبعدی را نشان می‌دهد.

محاسبه ALE دوبعدی: یک شبکه روی دو ویژگی قرار می‌دهیم. در هر سلول شبکه، تفاضل‌های مرتبه دوم را برای همه نمونه‌های داخل آن حساب می‌کنیم.

در شکل بالا، بسیاری از سلول‌ها به دلیل همبستگی خالی هستند. در نمودار ALE می‌توان این سلول‌ها را با رنگ خاکستری یا تیره‌تر مشخص کرد. همچنین می‌توان تخمین ALE سلول خالی را با تخمین نزدیک‌ترین سلول غیرخالی جایگزین کرد.

از آنجا که تخمین‌های ALE دوویژگیه تنها اثر مرتبه دوم را نشان می‌دهند، تفسیر آن‌ها نیاز به دقت بیشتری دارد. اثر مرتبه دوم، اثر تعاملی اضافی ویژگی‌هاست پس از اینکه اثرات اصلی آن‌ها را در نظر گرفته‌ایم. فرض کنید دو ویژگی با هم تعامل ندارند، اما هر کدام اثر خطی مستقلی روی متغیر هدف دارند. در نمودار ALE یک‌بعدی هر ویژگی، یک خط مستقیم می‌بینیم. اما در نمودار ALE دوبعدی، مقادیر باید نزدیک به صفر باشند، چون اثر مرتبه دوم تنها اثر تعاملی اضافی را نشان می‌دهد. نمودارهای ALE و PDP در این زمینه تفاوت دارند: PDP همیشه اثر کلی را نشان می‌دهد، در حالی که ALE اثر مرتبه اول یا دوم را نمایش می‌دهد. این‌ها تصمیم‌های طراحی هستند و به ریاضیات روش بستگی ندارند. می‌توان اثرات مرتبه پایین‌تر را از PDP کسر کرد تا اثرات خالص اصلی یا مرتبه دوم به دست آیند؛ یا می‌توان ALE کل را با صرف‌نظر از کسر اثرات مرتبه پایین‌تر تخمین زد.

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

ALE برای ویژگی‌های طبقه‌ای

روش اثرات محلی انباشته — بنا بر تعریف — نیاز دارد که مقادیر ویژگی دارای ترتیب باشند، چون اثرات در یک جهت مشخص انباشته می‌شوند. ویژگی‌های طبقه‌ای (categorical features) ترتیب طبیعی ندارند. برای محاسبه نمودار ALE یک ویژگی طبقه‌ای، باید به نوعی ترتیبی برای آن ایجاد یا پیدا کنیم. ترتیب دسته‌ها روی محاسبه و تفسیر اثرات محلی انباشته تأثیر می‌گذارد.

یک راه‌حل این است که دسته‌ها را بر اساس شباهت‌شان، با توجه به سایر ویژگی‌ها، مرتب کنیم. فاصله بین دو دسته، مجموع فاصله‌ها در هر ویژگی است. فاصله ویژگی‌محور، یا توزیع تجمعی دو دسته را مقایسه می‌کند — که فاصله کولموگروف-اسمیرنوف (Kolmogorov-Smirnov distance) نامیده می‌شود (برای ویژگی‌های عددی) — یا جدول فراوانی‌های نسبی را (برای ویژگی‌های طبقه‌ای). پس از محاسبه فاصله‌های بین همه دسته‌ها، از مقیاس‌بندی چندبعدی (multi-dimensional scaling) استفاده می‌کنیم تا ماتریس فاصله را به یک معیار فاصله یک‌بعدی تقلیل دهیم. این کار یک ترتیب مبتنی بر شباهت برای دسته‌ها به دست می‌دهد.

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

نکته: از ترتیب طبیعی دسته‌ها استفاده کنید

اگر دسته‌های یک ویژگی طبقه‌ای ترتیب معناداری دارند، از همان ترتیب برای محاسبه ALE استفاده کنید.

ALE در برابر PDP

بیایید نمودارهای ALE را در عمل ببینیم. یک سناریوی ساختگی طراحی کرده‌ام که در آن نمودارهای وابستگی جزئی شکست می‌خورند. سناریوی شکل ۲۰.۴ شامل یک مدل پیش‌بینی و دو ویژگی با همبستگی قوی است. مدل پیش‌بینی عمدتاً یک رگرسیون خطی است، با این تفاوت که در ترکیبی از دو ویژگی که هرگز در داده مشاهده نشده، رفتار عجیبی دارد. این ناحیه «عجیب» از توزیع داده (ابر نقاط) فاصله دارد، عملکرد مدل را تحت تأثیر قرار نمی‌دهد، و قابل بحث است که نباید بر تفسیر مدل هم تأثیر بگذارد.

شکل ۲۰.۴: دو ویژگی و متغیر هدف پیش‌بینی‌شده. مدل مجموع دو ویژگی را پیش‌بینی می‌کند (پس‌زمینه سایه‌دار)، با این استثنا که اگر $x_1 > 0.7$ و $x_2 < 0.3$، مدل همیشه عدد ۲ را پیش‌بینی می‌کند.

آیا این سناریو واقع‌بینانه و مرتبط است؟ وقتی یک مدل آموزش می‌بینید، الگوریتم یادگیری خطا را برای نمونه‌های موجود در داده آموزشی کمینه می‌کند. خارج از توزیع داده آموزشی، رفتارهای عجیبی ممکن است رخ دهد چون مدل برای این ناحیه‌ها جریمه نمی‌شود. خروج از توزیع داده «برون‌یابی» (extrapolation) نامیده می‌شود که می‌تواند برای فریب مدل‌های یادگیری ماشین نیز به کار رود، همان‌طور که در فصل مربوط به نمونه‌های دشمن‌ساز (adversarial examples) توضیح داده شده است. شکل ۲۰.۵ نشان می‌دهد که نمودارهای وابستگی جزئی در مقایسه با نمودارهای ALE چه رفتاری دارند. تخمین‌های PDP تحت تأثیر رفتار عجیب مدل خارج از توزیع داده قرار می‌گیرند (پرش‌های تند در نمودارها). نمودارهای ALE به‌درستی تشخیص می‌دهند که مدل یادگیری ماشین رابطه‌ای خطی بین ویژگی‌ها و پیش‌بینی‌ها دارد و از نواحی بدون داده صرف‌نظر می‌کنند.

شکل ۲۰.۵: اثرات ویژگی محاسبه‌شده با PDP (ردیف بالا) و ALE (ردیف پایین) برای مثال شبیه‌سازی‌شده.

اما آیا جالب نیست که مدل ما در $x_1 > 0.7$ و $x_2 < 0.3$ رفتار عجیبی دارد؟ پاسخ هم بله است و هم خیر. از آنجا که این نمونه‌های داده ممکن است از نظر فیزیکی غیرممکن یا بسیار بعید باشند، معمولاً بررسی آن‌ها اهمیت چندانی ندارد. اما اگر گمان می‌کنید توزیع داده آزمایشی ممکن است کمی متفاوت باشد و برخی نمونه‌ها واقعاً در آن محدوده قرار بگیرند، بررسی این ناحیه در محاسبه اثرات ویژگی ارزش دارد. در هر حال، این باید یک تصمیم آگاهانه برای درج نواحی بدون داده باشد، نه اثر جانبی ناخواسته روش انتخابی مانند PDP. اگر مشکوک هستید که مدل بعداً با داده‌های با توزیع متفاوت استفاده می‌شود، استفاده از نمودارهای ALE و شبیه‌سازی توزیع مورد انتظار را توصیه می‌کنم.

نکته: هر دو نمودار PDP و ALE را رسم کنید

مشاهده تجربی: در کاربردهای من، نمودارهای ALE و PDP با وجود همبستگی، اغلب مشابه به نظر می‌رسیدند. همبستگی می‌تواند تفسیرپذیری را خراب کند، اما لزوماً چنین نمی‌کند. اگر برای یک ویژگی همبسته، ALE و PDP منحنی‌های یکسانی نشان دهند، PDP را تفسیر کنید چون تفسیر ساده‌تری دارد.

مثال‌ها

حالا به یک مجموعه داده واقعی می‌پردازیم: پیش‌بینی تعداد دوچرخه‌های اجاره‌شده بر اساس آب‌وهوا و روز. از Random Forest برای پیش‌بینی استفاده می‌کنیم و با نمودارهای ALE بررسی می‌کنیم که سرعت باد و وضعیت آب‌وهوا چه تأثیری بر پیش‌بینی‌ها دارند.

شکل ۲۰.۶ (چپ) نشان می‌دهد که افزایش سرعت باد تأثیر منفی بر اجاره دوچرخه دارد. برای وضعیت آب‌وهوا (راست) می‌بینیم که به‌ویژه آب‌وهوای بد تأثیر منفی شدیدی بر تعداد دوچرخه‌های اجاره‌شده دارد. هر دو اثر با دانش حوزه‌ای همخوانی دارند که نشانه خوبی است.

شکل ۲۰.۶: نمودارهای ALE برای مدل پیش‌بینی دوچرخه، برای سرعت باد و وضعیت آب‌وهوا.

سپس اثرات رطوبت و دما و تعامل آن‌ها بر تعداد پیش‌بینی‌شده دوچرخه را بررسی می‌کنیم. به یاد بیاورید که اثر مرتبه دوم، اثر تعاملی اضافی دو ویژگی است و شامل اثرات اصلی نمی‌شود. این یعنی مثلاً در نمودار ALE مرتبه دوم، اثر اصلی رطوبت بالا بر کاهش تعداد دوچرخه‌های پیش‌بینی‌شده مشاهده نمی‌شود. شکل ۲۰.۷ هم اثرات اصلی دما و رطوبت و هم تعامل آن‌ها را نشان می‌دهد. نمودار یک تعامل را آشکار می‌کند: هوای سرد و مرطوب باعث افزایش پیش‌بینی می‌شود. این نکته را مدنظر داشته باشید که هر دو اثر اصلی رطوبت و دما نشان می‌دهند که تعداد پیش‌بینی‌شده دوچرخه در هوای سرد و مرطوب کاهش می‌یابد. در هوای سرد و مرطوب، اثر ترکیبی دما و رطوبت بزرگ‌تر از مجموع اثرات اصلی است.

شکل ۲۰.۷: نمودار ALE برای اثر مرتبه دوم رطوبت و دما بر تعداد پیش‌بینی‌شده دوچرخه‌های اجاره‌شده. سایه روشن‌تر نشان‌دهنده پیش‌بینی بالاتر از میانگین و سایه تیره‌تر نشان‌دهنده پیش‌بینی پایین‌تر از میانگین است، پس از در نظر گرفتن اثرات اصلی.

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

به اندازه کافی دوچرخه! بیایید به یک مسئله طبقه‌بندی بپردازیم. یک Random Forest برای پیش‌بینی جنسیت پنگوئن بر اساس اندازه‌گیری‌های بدن آموزش می‌دهیم. وزن بدن چه تأثیری بر احتمال ماده‌بودن یک پنگوئن دارد؟ شکل ۲۰.۸ (چپ) نمودار ALE را برای جرم بدن نشان می‌دهد. هرچه پنگوئن سنگین‌تر باشد، احتمال ماده‌بودن آن کمتر است. تصویر کامل‌تری وقتی به دست می‌آید که نمودارهای ALE را بر اساس گونه ببینیم (شکل ۲۰.۸، راست). هر گونه یک نقطه آستانه مشخص دارد که بالاتر از آن، جرم بدن بیشتر نشانه نرها است. به‌طور کلی، این اثرات با نمودارهای PDP در فصل مربوطه بسیار مشابه‌اند.

شکل ۲۰.۸: چپ: نمودار ALE برای جرم بدن در کل گونه‌های پنگوئن. راست: نمودارهای ALE جرم بدن به تفکیک هر گونه.

نقاط قوت

نمودارهای ALE بدون تورش هستند؛ یعنی حتی وقتی ویژگی‌ها همبسته‌اند نیز به‌درستی کار می‌کنند. نمودارهای وابستگی جزئی در این سناریو شکست می‌خورند چون ترکیب‌های بعید یا حتی غیرممکن از مقادیر ویژگی را حاشیه‌ای می‌کنند.

نمودارهای ALE نسبت به PDP سریع‌تر محاسبه می‌شوند و مقیاس $O(n)$ دارند، چون بیشترین تعداد ممکن بازه‌ها برابر تعداد نمونه‌هاست. PDP به $n$ برابر تعداد نقاط شبکه پیش‌بینی نیاز دارد. با ۲۰ نقطه شبکه، PDP ۲۰ برابر بیشتر از بدترین حالت ALE — که به ازای هر نمونه یک بازه دارد — پیش‌بینی نیاز دارد.

تفسیر (محلی) نمودارهای ALE روشن است: با توجه به یک مقدار مشخص از ویژگی، تأثیر نسبی تغییر آن ویژگی بر پیش‌بینی را می‌توان از نمودار ALE خواند. نمودارهای ALE حول صفر مرکزگرایی می‌شوند که تفسیر را ساده می‌کند؛ مقدار در هر نقطه از منحنی ALE نشان‌دهنده تفاضل نسبت به پیش‌بینی میانگین است. نمودار ALE دوبعدی تنها تعامل را نشان می‌دهد؛ اگر دو ویژگی تعاملی نداشته باشند، نمودار چیزی نمایش نمی‌دهد.

کل تابع پیش‌بینی را می‌توان به مجموعی از توابع ALE با ابعاد پایین‌تر تجزیه کرد، همان‌طور که در فصل تجزیه تابعی (functional decomposition) توضیح داده می‌شود.

در مجموع، در اکثر موقعیت‌ها نمودارهای ALE را به PDP ترجیح می‌دهم، چون ویژگی‌ها معمولاً تا حدودی با هم همبسته هستند.

محدودیت‌ها

تفسیر اثر در بین بازه‌ها مجاز نیست اگر ویژگی‌ها به‌شدت همبسته باشند. تصور کنید ویژگی‌ها همبستگی بالایی دارند و به انتهای چپ یک نمودار ALE یک‌بعدی نگاه می‌کنید. منحنی ALE ممکن است این تفسیر نادرست را برانگیزد: «منحنی ALE نشان می‌دهد وقتی به تدریج مقدار ویژگی را برای یک نمونه داده تغییر می‌دهیم و سایر مقادیر ویژگی ثابت می‌مانند، پیش‌بینی‌ها به‌طور میانگین چقدر تغییر می‌کنند.» اثرات به ازای هر بازه (به‌صورت محلی) محاسبه می‌شوند و بنابراین تفسیر اثر تنها در سطح محلی معتبر است. برای راحتی، اثرات درون بازه‌ها انباشته می‌شوند تا منحنی نرمی شکل بگیرد، اما باید به یاد داشت که هر بازه با نمونه‌های داده متفاوتی ساخته می‌شود.

اثرات ALE ممکن است با ضرایب یک مدل رگرسیون خطی مطابقت نداشته باشند، زمانی که ویژگی‌ها با هم تعامل داشته و همبسته باشند. Grömping (2020) نشان داد که در یک مدل خطی با دو ویژگی همبسته و یک جمله تعاملی اضافی ($x_1 \cdot x_2$)، نمودارهای ALE مرتبه اول خط مستقیمی نمایش نمی‌دهند. در عوض، کمی انحناء دارند چون بخشی از تعامل ضربی ویژگی‌ها را در خود دارند. برای درک بهتر این پدیده، مطالعه فصل تجزیه تابعی را توصیه می‌کنم. به‌طور خلاصه، ALE اثرات مرتبه اول (یا یک‌بعدی) را متفاوت از فرمول خطی تعریف می‌کند. این لزوماً اشتباه نیست، چون وقتی ویژگی‌ها همبسته‌اند، نسبت‌دهی تعاملات چندان مشخص نیست. اما قطعاً غیرشهودی است که ALE و ضرایب خطی با هم مطابقت ندارند.

نمودارهای ALE با تعداد بالای بازه‌ها ممکن است ناهموار شوند (با بالا و پایین‌های کوچک متعدد). در این حالت، کاهش تعداد بازه‌ها تخمین‌ها را پایدارتر می‌کند، اما برخی پیچیدگی‌های واقعی مدل پیش‌بینی را نیز هموار و پنهان می‌کند. هیچ راه‌حل کاملی برای تعیین تعداد بازه‌ها وجود ندارد. اگر تعداد خیلی کم باشد، نمودارهای ALE ممکن است دقت کافی نداشته باشند. اگر خیلی زیاد باشد، منحنی ناهموار می‌شود. برای توازن بین هموار بودن و دقت، Gkolemis و همکاران (2023) یک رویکرد خودکار تقسیم بازه را پیشنهاد کردند که به‌تدریج بازه‌ها را بزرگ‌تر می‌کند (برای تخمین‌های پایدارتر) تا زمانی که اثرات محلی درون آن‌ها نسبتاً ثابت بمانند (برای حفظ پیچیدگی واقعی مدل).

بر خلاف PDP، نمودارهای ALE با منحنی‌های ICE همراه نمی‌شوند. در PDP، منحنی‌های ICE ارزشمندند چون می‌توانند ناهمگونی در اثر ویژگی را آشکار کنند؛ یعنی اثر یک ویژگی برای زیرگروه‌هایی از داده متفاوت به نظر می‌رسد. در نمودارهای ALE، تنها می‌توان به ازای هر بازه بررسی کرد که آیا اثر بین نمونه‌ها متفاوت است یا نه، اما از آنجا که هر بازه نمونه‌های متفاوتی دارد، این کار معادل منحنی‌های ICE نیست.

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

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

پیاده‌سازی نمودارهای ALE در مقایسه با نمودارهای وابستگی جزئی پیچیده‌تر و کمتر شهودی است.

حتی اگر نمودارهای ALE در حالت وجود همبستگی بدون تورش باشند، تفسیر همچنان دشوار است وقتی ویژگی‌ها به‌شدت همبسته‌اند. چون اگر همبستگی بسیار قوی باشد، تنها تحلیل اثر تغییر همزمان هر دو ویژگی معنا دارد، نه هر کدام به تنهایی. این محدودیت مختص نمودارهای ALE نیست، بلکه یک مشکل عمومی در ویژگی‌های با همبستگی قوی است.

اگر ویژگی‌ها همبسته نباشند و زمان محاسبه مشکلی نباشد، PDP کمی ارجح است چون فهمیدنش آسان‌تر است و می‌توان همراه با منحنی‌های ICE رسمش کرد.

فهرست معایب کمی طولانی شد، اما تعداد کلمات گمراه‌کننده نباشد. به‌عنوان قاعده کلی: اگر ویژگی‌ها همبسته نیستند، از PDP استفاده کنید. اگر همبسته‌اند اما ALE و PDP منحنی‌های تقریباً یکسانی نشان می‌دهند، تفسیر ساده‌تر PDP را انتخاب کنید. اگر ویژگی‌ها همبسته‌اند و ALE و PDP با هم تفاوت دارند، ALE را انتخاب کنید.

نرم‌افزار و جایگزین‌ها

آیا گفتم که نمودارهای وابستگی جزئی و منحنی‌های ICE جایگزین هستند؟ =)

نمودارهای ALE در R در بسته ALEPlot — نوشته خود مبتکر روش — و همچنین در بسته iml پیاده‌سازی شده‌اند. برای Python نیز چند پیاده‌سازی وجود دارد: effector، ALEPython، Alibi و PiML.

فصل ۲۱: تعامل ویژگی‌ها

عنوان اصلی: Feature Interaction
منبع: https://christophm.github.io/interpretable-ml-book/interaction.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


هنگامی که ویژگی‌ها در یک مدل پیش‌بینی با یکدیگر تعامل دارند، نمی‌توان پیش‌بینی را به صورت مجموع اثرات تک‌تک ویژگی‌ها بیان کرد، زیرا اثر یک ویژگی به مقدار ویژگی دیگر وابسته است. گزارهٔ ارسطو که «کل چیزی فراتر از مجموع اجزای آن است» در حضور تعاملات مصداق پیدا می‌کند.

تعامل ویژگی‌ها چیست؟

اگر یک مدل یادگیری ماشین بر اساس دو ویژگی پیش‌بینی做出 می‌کند، می‌توانیم پیش‌بینی را به چهار بخش تجزیه کنیم: یک مقدار ثابت، یک عبارت برای ویژگی اول، یک عبارت برای ویژگی دوم، و یک عبارت برای تعامل بین دو ویژگی. تعامل بین دو ویژگی، تغییری در پیش‌بینی است که با تغییر دادن ویژگی‌ها پس از لحاظ کردن اثرات تکی آن‌ها رخ می‌دهد.

برای مثال، مدلی ارزش یک خانه را با استفاده از اندازه (بزرگ یا کوچک) و موقعیت (خوب یا بد) به عنوان ویژگی پیش‌بینی می‌کند که چهار پیش‌بینی ممکن را به دست می‌دهد، مطابق جدول ۲۱.۱.

موقعیتاندازهپیش‌بینی
خوببزرگ۳۰۰,۰۰۰
خوبکوچک۲۰۰,۰۰۰
بدبزرگ۲۵۰,۰۰۰
بدکوچک۱۵۰,۰۰۰

جدول ۲۱.۱: مثال پیش‌بینی‌ها برای قیمت خانه بدون تعامل

پیش‌بینی مدل را به بخش‌های زیر تجزیه می‌کنیم: یک مقدار ثابت (۱۵۰,۰۰۰)، یک اثر برای ویژگی اندازه (۱۰۰,۰۰۰+ اگر بزرگ باشد؛ ۰+ اگر کوچک باشد)، و یک اثر برای موقعیت (۵۰,۰۰۰+ اگر خوب باشد؛ ۰+ اگر بد باشد). این تجزیه به طور کامل پیش‌بینی‌های مدل را توضیح می‌دهد. هیچ اثر تعاملی وجود ندارد، زیرا پیش‌بینی مدل مجموع اثرات تکی ویژگی‌های اندازه و موقعیت است. وقتی یک خانهٔ کوچک را بزرگ می‌کنید، پیش‌بینی همواره ۱۰۰,۰۰۰ واحد افزایش می‌یابد، صرف‌نظر از موقعیت. همچنین، تفاوت پیش‌بینی بین موقعیت خوب و بد همواره ۵۰,۰۰۰ است، صرف‌نظر از اندازه.

حال به مثالی با تعامل در جدول ۲۱.۲ نگاه می‌کنیم.

موقعیتاندازهپیش‌بینی
خوببزرگ۴۰۰,۰۰۰
خوبکوچک۲۰۰,۰۰۰
بدبزرگ۲۵۰,۰۰۰
بدکوچک۱۵۰,۰۰۰

جدول ۲۱.۲: مثال پیش‌بینی‌ها برای قیمت خانه با تعامل

جدول پیش‌بینی را به بخش‌های زیر تجزیه می‌کنیم: یک مقدار ثابت (۱۵۰,۰۰۰)، یک اثر برای ویژگی اندازه (۱۰۰,۰۰۰+ اگر بزرگ باشد؛ ۰+ اگر کوچک باشد)، و یک اثر برای موقعیت (۵۰,۰۰۰+ اگر خوب باشد؛ ۰+ اگر بد باشد). برای این جدول، به یک عبارت اضافی برای تعامل نیاز داریم: ۱۰۰,۰۰۰+ اگر خانه بزرگ و در موقعیت خوب باشد. پس برای یک خانهٔ بزرگ در موقعیت خوب داریم: ۱۵۰,۰۰۰ (پایه) + ۵۰,۰۰۰ (موقعیت خوب) + ۱۰۰,۰۰۰ (بزرگ) + ۱۰۰,۰۰۰ (تعامل) = ۴۰۰,۰۰۰. این یک تعامل بین اندازه و موقعیت است، زیرا در این حالت تفاوت پیش‌بینی بین خانهٔ بزرگ و کوچک به موقعیت بستگی دارد.

یک راه برای برآورد قدرت تعامل این است که اندازه بگیریم چه مقدار از تغییرات پیش‌بینی به تعامل ویژگی‌ها وابسته است. این معیار آمارهٔ H نام دارد که توسط فریدمن و پوپسکو (Friedman and Popescu 2008) معرفی شده است.

آمارهٔ H فریدمن

ما با دو حالت سروکار داریم: اول، یک معیار تعامل دوسویه که نشان می‌دهد آیا دو ویژگی در مدل با یکدیگر تعامل دارند یا خیر و تا چه اندازه؛ دوم، یک معیار تعامل کل که نشان می‌دهد آیا یک ویژگی در مدل با تمام ویژگی‌های دیگر تعامل دارد یا خیر و تا چه اندازه. در تئوری، تعاملات دلخواه بین هر تعداد از ویژگی‌ها قابل اندازه‌گیری است، اما این دو حالت جالب‌ترین موارد هستند.

اگر دو ویژگی تعامل نداشته باشند، می‌توانیم تابع وابستگی جزئی (PD) را به صورت زیر تجزیه کنیم (با فرض اینکه توابع وابستگی جزئی در صفر مرکزی شده‌اند):

$$PD_{jk}(\mathbf{x}_j, \mathbf{x}_k) = PD_j(\mathbf{x}_j) + PD_k(\mathbf{x}_k)$$

که در آن $PD_{jk}(\mathbf{x}_j, \mathbf{x}_k)$ تابع وابستگی جزئی دوسویهٔ هر دو ویژگی است، و $PD_j(\mathbf{x}_j)$ و $PD_k(\mathbf{x}_k)$ توابع وابستگی جزئی تک‌تک ویژگی‌ها هستند.

به همین ترتیب، اگر یک ویژگی با هیچ‌یک از ویژگی‌های دیگر تعامل نداشته باشد، می‌توانیم تابع پیش‌بینی $\hat{f}(\mathbf{x})$ را به صورت مجموع توابع وابستگی جزئی بیان کنیم، که جملهٔ اول تنها به $j$ و جملهٔ دوم به تمام ویژگی‌های دیگر به جز $j$ وابسته است:

$$\hat{f}(\mathbf{x}) = PD_j(x_j) + PD_{-j}(\mathbf{x}_{-j})$$

که در آن $PD_{-j}(\mathbf{x}_{-j})$ تابع وابستگی جزئی است که به همهٔ ویژگی‌ها به جز ویژگی $j$ام وابسته است.

این تجزیه، تابع وابستگی جزئی (یا پیش‌بینی کامل) را بدون تعامل (بین ویژگی‌های $j$ و $k$، یا به ترتیب $j$ و همهٔ ویژگی‌های دیگر) بیان می‌کند. در گام بعدی، تفاوت بین تابع وابستگی جزئی مشاهده‌شده و تابع تجزیه‌شده بدون تعامل را اندازه می‌گیریم. واریانس خروجی وابستگی جزئی (برای اندازه‌گیری تعامل بین دو ویژگی) یا کل تابع (برای اندازه‌گیری تعامل بین یک ویژگی و همهٔ ویژگی‌های دیگر) را محاسبه می‌کنیم. مقدار واریانسی که توسط تعامل (تفاوت بین PD مشاهده‌شده و PD بدون تعامل) توضیح داده می‌شود، به عنوان معیار قدرت تعامل استفاده می‌شود. این آماره در صورت عدم وجود تعامل ۰ است، و اگر تمام واریانس $PD_{jk}$ یا $\hat{f}$ توسط مجموع توابع وابستگی جزئی توضیح داده شود، ۱ است. آمارهٔ تعامل ۱ بین دو ویژگی به این معناست که هر تابع PD تکی ثابت است و اثر بر پیش‌بینی تنها از طریق تعامل حاصل می‌شود. آمارهٔ H می‌تواند بزرگتر از ۱ نیز باشد که تفسیر آن دشوارتر است. این حالت زمانی رخ می‌دهد که واریانس تعامل دوسویه از واریانس نمودار وابستگی جزئی دو‌بعدی بزرگتر باشد.

از نظر ریاضی، آمارهٔ H پیشنهادی فریدمن و پوپسکو برای تعامل بین ویژگی $j$ و $k$ به صورت زیر است:

$$H^2_{jk} = \frac{\sum_{i=1}^n\left[PD_{jk}(x_{j}^{(i)},x_k^{(i)})-PD_j(x_j^{(i)}) - PD_k(x_{k}^{(i)})\right]^2}{\sum_{i=1}^n\left({PD}_{jk}(x_j^{(i)},x_k^{(i)})\right)^2}$$

همین امر برای اندازه‌گیری اینکه آیا ویژگی $j$ با هر ویژگی دیگری تعامل دارد نیز صدق می‌کند:

$$H^2_{j} = \frac{\sum_{i=1}^n\left[\hat{f}(\mathbf{x}^{(i)}) - PD_j(x^{(i)}_j) - PD_{-j}(\mathbf{x}_{-j}^{(i)})\right]^2}{\sum_{i=1}^n \left(\hat{f}(\mathbf{x}^{(i)})\right)^2}$$

آمارهٔ H محاسباتی پرهزینه است، زیرا روی تمام نقاط داده تکرار می‌شود و در هر نقطه وابستگی جزئی باید ارزیابی شود که خود با همهٔ n نقطه داده انجام می‌شود. در بدترین حالت، برای محاسبهٔ آمارهٔ H دوسویه ($j$ در مقابل $k$) به $2n^2$ فراخوانی تابع پیش‌بینی مدل یادگیری ماشین نیاز داریم و برای آمارهٔ H کل ($j$ در مقابل همه) به $3n^2$ فراخوانی. برای سرعت بخشیدن به محاسبه، می‌توانیم از n نقطه داده نمونه‌برداری کنیم. این کار باعث افزایش واریانس برآوردهای وابستگی جزئی می‌شود که آمارهٔ H را ناپایدار می‌کند. بنابراین اگر از نمونه‌برداری برای کاهش بار محاسباتی استفاده می‌کنید، مطمئن شوید که به اندازهٔ کافی نقطه داده نمونه‌برداری می‌کنید.

فریدمن و پوپسکو همچنین یک آمارهٔ آزمون برای ارزیابی اینکه آیا آمارهٔ H به طور معناداری از صفر متفاوت است، پیشنهاد می‌کنند. فرض صفر عدم وجود تعامل است. برای تولید آمارهٔ تعامل تحت فرض صفر، باید بتوانید مدل را طوری تنظیم کنید که هیچ تعاملی بین ویژگی $j$ و $k$ یا سایرین نداشته باشد. این کار برای همهٔ انواع مدل‌ها ممکن نیست. بنابراین، این آزمون خاص مدل است، نه مستقل از مدل، و در اینجا پوشش داده نمی‌شود.

آمارهٔ قدرت تعامل را می‌توان در مسائل دسته‌بندی نیز به کار برد، به شرطی که پیش‌بینی به صورت احتمال باشد.

مثال‌ها

بیایید ببینیم تعامل ویژگی‌ها در عمل چگونه است! ما تعاملات بین ویژگی‌ها را در یک جنگل تصادفی که برای پیش‌بینی جنسیت پنگوئن (data.html#penguins) بر اساس اندازه‌گیری‌های بدنی آموزش دیده است، تحلیل می‌کنیم. شکل ۲۱.۱ (بالا) را ببینید. تودهٔ بدنی بیشترین قدرت تعامل را دارد. پس از بررسی تعاملات ویژگی هر ویژگی با سایر ویژگی‌ها، می‌توانیم یکی از ویژگی‌ها را انتخاب کرده و به عمق تمام تعاملات دوسویه بین آن ویژگی و سایر ویژگی‌ها نگاه کنیم. تودهٔ بدنی قوی‌ترین تعامل را دارد، بنابراین اجازه دهید در شکل ۲۱.۱ (پایین) نگاه عمیق‌تری بیندازیم. نمودار نشان می‌دهد که تودهٔ بدنی بیشتر با عمق نوک و گونه تعامل دارد.

شکل ۲۱.۱: (بالا) قدرت تعامل (آمارهٔ H) برای هر ویژگی با تمام ویژگی‌های دیگر در یک جنگل تصادفی که P(ماده) را پیش‌بینی می‌کند. (پایین) قدرت‌های تعامل دوسویه (آمارهٔ H) بین تودهٔ بدنی و سایر ویژگی‌ها.

بعلاوه: ما به همهٔ تعاملات بر حسب گونه علاقه‌مندیم که در شکل ۲۱.۲ مصور شده است. به ویژه برای تودهٔ بدنی، قدرت تعامل بین گونه‌ها متفاوت است.

شکل ۲۱.۲: قدرت تعامل (آمارهٔ H) برای هر ویژگی با تمام ویژگی‌های دیگر برای یک جنگل تصادفی، تفکیک‌شده بر اساس گونه، که P(ماده) را پیش‌بینی می‌کند.

نقاط قوت

آمارهٔ تعامل H دارای یک نظریهٔ زیربنایی از طریق تجزیه وابستگی جزئی است.

آمارهٔ H یک تفسیر معنادار دارد: تعامل به عنوان سهم واریانسی تعریف می‌شود که توسط تعامل توضیح داده می‌شود.

از آنجا که آماره بی‌بعد است، در سراسر ویژگی‌ها و حتی در سراسر مدل‌ها قابل مقایسه است.

این آماره همهٔ انواع تعاملات را بدون توجه به شکل خاص آن‌ها تشخیص می‌دهد.

با آمارهٔ H، امکان تحلیل تعاملات مرتبهٔ بالاتر دلخواه، مانند قدرت تعامل بین ۳ یا بیشتر ویژگی، نیز وجود دارد.

محدودیت‌ها

اولین چیزی که متوجه خواهید شد: محاسبهٔ آمارهٔ تعامل H زمان زیادی می‌برد، زیرا از نظر محاسباتی پرهزینه است.

محاسبه شامل برآورد توزیع‌های حاشیه‌ای است. این برآوردها خود دارای واریانس مشخصی هستند اگر از تمام نقاط داده استفاده نکنیم. این بدان معناست که با نمونه‌برداری از نقاط، برآوردها نیز از اجرایی به اجرای دیگر تغییر می‌کنند و نتایج می‌توانند ناپایدار باشند. توصیه می‌کنم محاسبهٔ آمارهٔ H را چند بار تکرار کنید تا ببینید آیا دادهٔ کافی برای نتیجه‌گیری پایدار دارید.

مشخص نیست که آیا یک تعامل به طور معناداری بزرگتر از ۰ است یا خیر. برای این کار به یک آزمون آماری نیاز داریم، اما این آزمون (هنوز) در نسخهٔ مستقل از مدل در دسترس نیست.

در ارتباط با مسئلهٔ آزمون، گفتن اینکه چه زمانی آمارهٔ H به اندازهٔ کافی بزرگ است تا تعامل را «قوی» در نظر بگیریم، دشوار است.

همچنین، آمارهٔ H می‌تواند بزرگتر از ۱ باشد که تفسیر را دشوار می‌کند.

زمانی که اثر کل دو ویژگی ضعیف است اما عمدتاً از تعامل تشکیل شده باشد، آمارهٔ H بسیار بزرگ خواهد شد. این تعاملات کاذب نیاز به مخرج کوچکی از آمارهٔ H دارند و زمانی که ویژگی‌ها همبسته هستند، بدتر می‌شوند. یک تعامل کاذب ممکن است بیش از حد تفسیر شود به عنوان یک اثر تعاملی قوی، در حالی که در واقعیت هر دو ویژگی نقش جزئی در مدل دارند. یک راه‌حل ممکن، مصورسازی نسخهٔ نرمال‌نشدهٔ آمارهٔ H است که جذر صورت آمارهٔ H است (Inglis, Parnell, and Hurley 2022). این کار آمارهٔ H را به سطح پاسخ، حداقل برای رگرسیون، مقیاس می‌کند و تأکید کمتری بر تعاملات کاذب می‌گذارد.

$$H^{*}_{jk} = \sqrt{\sum_{i=1}^n\left[PD_{jk}(x_{j}^{(i)},x_k^{(i)})-PD_j(x_j^{(i)}) - PD_k(x_{k}^{(i)})\right]^2}$$

آمارهٔ H قدرت تعاملات را به ما می‌گوید، اما نحوهٔ شکل تعاملات را نشان نمی‌دهد. نمودارهای وابستگی جزئی (PDP) برای این منظور هستند. یک workflow معنادار این است که ابتدا قدرت تعاملات را اندازه‌گیری کنیم و سپس نمودارهای وابستگی جزئی دو‌بعدی برای تعاملات مورد نظر ایجاد کنیم.

آمارهٔ تعامل بر این فرض کار می‌کند که بتوانیم ویژگی‌ها را مستقل از یکدیگر جابه‌جا کنیم. اگر ویژگی‌ها به شدت همبسته باشند، این فرض نقض می‌شود و روی ترکیب‌هایی از ویژگی‌ها انتگرال می‌گیریم که در واقعیت بسیار نامحتمل هستند. این همان مشکلی است که نمودارهای وابستگی جزئی نیز دارند. ویژگی‌های همبسته می‌توانند به مقادیر بزرگ آمارهٔ H منجر شوند.

گاهی اوقات نتایج عجیب هستند و در شبیه‌سازی‌های کوچک نتایج مورد انتظار را به دست نمی‌دهند. اما این بیشتر یک مشاهدهٔ حکایتی است.

نرم‌افزارها و جایگزین‌ها

برای مثال‌های این کتاب، از بستهٔ R به نام iml استفاده کرده‌ام که در CRAN و نسخهٔ در حال توسعهٔ آن در GitHub موجود است. پیاده‌سازی‌های دیگری نیز وجود دارند که بر مدل‌های خاص تمرکز دارند: بستهٔ R به نام pre، RuleFit و آمارهٔ H را پیاده‌سازی می‌کند. بستهٔ R به نام gbm مدل‌های بوست گرادیانی و آمارهٔ H را پیاده‌سازی می‌کند. در پایتون، می‌توانید پیاده‌سازی را در بستهٔ PiML پیدا کنید.

آمارهٔ H تنها راه اندازه‌گیری تعاملات نیست:

شبکه‌های تعامل متغیر (VIN) توسط هوکر (Hooker 2004) رویکردی است که تابع پیش‌بینی را به اثرات اصلی و تعاملات ویژگی‌ها تجزیه می‌کند. سپس تعاملات بین ویژگی‌ها به صورت یک شبکه مصورسازی می‌شوند. متأسفانه، هنوز نرم‌افزاری در دسترس نیست.

تعامل ویژگی مبتنی بر وابستگی جزئی توسط گرین‌ول، بومکه و مک‌کارتی (Greenwell, Boehmke, and McCarthy 2018) تعامل بین دو ویژگی را اندازه‌گیری می‌کند. این رویکرد اهمیت ویژگی (تعریف‌شده به عنوان واریانس تابع وابستگی جزئی) یک ویژگی را به شرط نقاط ثابت مختلف از ویژگی دیگر اندازه‌گیری می‌کند. اگر واریانس زیاد باشد، ویژگی‌ها با یکدیگر تعامل دارند؛ اگر صفر باشد، تعامل ندارند. بستهٔ R مربوطه به نام vip در GitHub در دسترس است. این بسته همچنین نمودارهای وابستگی جزئی و اهمیت ویژگی را پوشش می‌دهد.

فصل ۲۲: تجزیه تابعی

عنوان اصلی: Functional Decomposition
منبع: https://christophm.github.io/interpretable-ml-book/decomposition.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


یک مدل یادگیری ماشین نظارت‌شده را می‌توان به‌صورت تابعی در نظر گرفت که یک بردار ویژگی (feature vector) چندبُعدی را به‌عنوان ورودی دریافت می‌کند و یک پیش‌بینی یا امتیاز طبقه‌بندی تولید می‌نماید. تجزیه تابعی (Functional Decomposition) یک روش تفسیرپذیری است که این تابع چندبُعدی را به اجزای کوچک‌تر تقسیم می‌کند و آن را به‌صورت مجموعی از اثرات تکی ویژگی‌ها و اثرات تعاملی بیان می‌نماید؛ اجزایی که به‌راحتی قابل تجسم هستند. علاوه بر این، تجزیه تابعی یک اصل بنیادین است که زیربنای بسیاری از روش‌های تفسیرپذیری را تشکیل می‌دهد و درک عمیق‌تری از سایر روش‌های تفسیر به ما می‌دهد.

بیایید مستقیم وارد بحث شویم و یک تابع خاص را بررسی کنیم. این تابع دو ویژگی را به‌عنوان ورودی می‌گیرد و یک خروجی یک‌بُعدی تولید می‌کند:

$$f(x_1, x_2) = x_1 \cdot e^{x_1} - x_2 + x_1 \cdot x_2$$

این تابع را مانند یک مدل یادگیری ماشین تصور کنید. می‌توانیم آن را با یک نمودار سه‌بُعدی یا یک نقشه حرارتی با خطوط تراز مانند شکل ۲۲.۱ نمایش دهیم.

شکل ۲۲.۱: سطح پیش‌بینی یک تابع با دو ویژگی $X_1$ و $X_2$. هر چه رنگ روشن‌تر باشد، مقدار پیش‌بینی بزرگ‌تر است.

تابع زمانی مقادیر بزرگ می‌گیرد که $x_1$ بزرگ و $x_2$ کوچک باشد، و زمانی مقادیر کوچک می‌گیرد که $x_2$ بزرگ و $x_1$ کوچک باشد. تابع پیش‌بینی صرفاً یک اثر جمعی ساده بین دو ویژگی نیست، بلکه یک تعامل (interaction) بین آن‌هاست. این تعامل در نمودار نیز مشهود است — اثر تغییر مقادیر ویژگی $x_1$ به مقداری که ویژگی $x_2$ دارد بستگی دارد.

وظیفه ما اکنون این است که این تابع را به اثرات اصلی ویژگی‌های $x_1$ و $x_2$ و یک جمله تعاملی تجزیه کنیم. برای یک تابع دوبُعدی $f$ که تنها به دو ویژگی ورودی وابسته است — $f(x_1, x_2)$ — می‌خواهیم هر مؤلفه نماینده یک اثر اصلی ($f_1$ و $f_2$)، یک تعامل ($f_{12}$)، یا یک عرض از مبدأ ($f_0$) باشد:

$$f(x_1, x_2) = f_0 + f_1(x_1) + f_2(x_2) + f_{12}(x_1, x_2)$$

اثرات اصلی نشان می‌دهند که هر ویژگی چگونه پیش‌بینی را تحت‌تأثیر قرار می‌دهد، مستقل از مقادیر ویژگی دیگر. اثر تعاملی نشان‌دهنده اثر مشترک ویژگی‌هاست. عرض از مبدأ یک مقدار ثابت است که بخشی از تمام پیش‌بینی‌ها محسوب می‌شود؛ اگر همه مقادیر ویژگی‌ها صفر بودند، پیش‌بینی تنها از عرض از مبدأ تشکیل می‌شد. توجه داشته باشید که مؤلفه‌ها (به‌جز عرض از مبدأ) خود توابعی با بُعدهای ورودی متفاوت هستند.

فعلاً مؤلفه‌ها را مستقیم ارائه می‌کنم و بعداً توضیح می‌دهم که از کجا می‌آیند. عرض از مبدأ برابر است با $f_0 = 1.59$. از آنجا که سایر مؤلفه‌ها توابع هستند، می‌توان آن‌ها را در شکل ۲۲.۲ تجسم کرد.

شکل ۲۲.۲: تجزیه یک تابع دوبُعدی به اثرات اصلی و تعامل. ردیف بالا: اثرات اصلی $f_1(x_1)$ (چپ) و $f_2(x_2)$ (راست). پایین: تعامل $f_{12}(x_1, x_2)$ بین $x_1$ و $x_2$.

آیا این مؤلفه‌ها با فرمول اصلی بالا منطقی به نظر می‌رسند — البته با چشم‌پوشی از اینکه مقدار عرض از مبدأ کمی تصادفی به نظر می‌رسد؟ ویژگی $x_1$ یک اثر اصلی نمایی دارد و $x_2$ یک اثر خطی منفی. جمله تعاملی شبیه تراشه پرینگلز به نظر می‌رسد؛ یا به زبان کمتر خوراکی و ریاضی‌تر، یک پارابولوئید هذلولی است، که دقیقاً همان چیزی است که از $x_1 \cdot x_2$ انتظار داریم. پیش‌آگاهی: این تجزیه بر پایه نمودارهای اثر محلی انباشته (ALE) صورت گرفته است.

اما چرا باید به این روش اهمیت داد؟ نگاهی به فرمول پاسخ تجزیه را مستقیم به ما می‌دهد، پس نیازی به روش‌های پیچیده نیست، مگر نه؟ برای ویژگی $x_1$ می‌توانیم تمام جملاتی را که فقط شامل $x_1$ هستند به‌عنوان مؤلفه آن ویژگی در نظر بگیریم: یعنی $x_1 \cdot e^{x_1}$ و $x_2$ برای ویژگی $x_2$. تعامل نیز $x_1 \cdot x_2$ خواهد بود. اگرچه این پاسخ درستی است (تا حد ثابت‌ها)، اما دو مشکل وجود دارد:

مشکل اول: اگرچه در این مثال فرمول را در دست داشتیم، در واقعیت تنها مدل‌های یادگیری ماشین با ساختار ساده را می‌توان با چنین فرمول مرتبی بیان کرد.

مشکل دوم ظریف‌تر است و به تعریف تعامل مربوط می‌شود. تابع ساده $f(x_1, x_2) = x_1 \cdot x_2$ را در نظر بگیرید، که هر دو ویژگی مقادیری بزرگ‌تر از صفر می‌گیرند و از یکدیگر مستقل هستند. با استفاده از تاکتیک «نگاه به فرمول»، نتیجه می‌گیریم که بین $x_1$ و $x_2$ تعامل وجود دارد، اما هیچ اثر اصلی مستقلی وجود ندارد. اما آیا واقعاً می‌توان گفت که ویژگی $x_1$ هیچ اثر فردی بر تابع پیش‌بینی ندارد؟ بدون توجه به مقدار $x_2$، با افزایش $x_1$، پیش‌بینی افزایش می‌یابد. برای مثال، وقتی $x_2 = 1$ است، اثر $x_1$ برابر $x_1$ است، و وقتی $x_2 = 2$ اثر برابر $2x_1$ می‌شود. بنابراین روشن است که ویژگی $x_1$ اثر مثبتی بر پیش‌بینی دارد، مستقل از $x_2$، و این اثر صفر نیست.

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

تجزیه یک تابع

یک تابع پیش‌بینی $p$ ویژگی را به‌عنوان ورودی می‌گیرد — $x = (x_1, \ldots, x_p)$ — و یک خروجی تولید می‌کند. این می‌تواند یک تابع رگرسیون، احتمال طبقه‌بندی برای یک کلاس مشخص، یا امتیاز برای یک خوشه (یادگیری ماشین بدون نظارت) باشد. در حالت کاملاً تجزیه‌شده، می‌توان تابع پیش‌بینی را به‌صورت مجموع مؤلفه‌های تابعی نوشت:

$$\hat{f}(x) = \hat{f}_0 + \sum_{j=1}^{p} \hat{f}_j(x_j) + \sum_{j < k} \hat{f}_{jk}(x_j, x_k) + \ldots$$

فرمول تجزیه را می‌توان با نمایه‌گذاری بر روی تمام زیرمجموعه‌های ممکن از ترکیبات ویژگی زیباتر نوشت: $S \subseteq {1, \ldots, p}$. این مجموعه شامل عرض از مبدأ ($S = \emptyset$)، اثرات اصلی ($|S| = 1$)، و تمام تعاملات ($|S| \geq 2$) است. با این تعریف:

$$\hat{f}(x) = \sum_{S \subseteq {1,\ldots,p}} \hat{f}_S(x_S)$$

در این فرمول، $x_S$ بردار ویژگی‌های موجود در مجموعه نمایه $S$ است. هر زیرمجموعه $S$ یک مؤلفه تابعی را نشان می‌دهد — برای مثال، اگر $S$ تنها یک ویژگی داشته باشد، یک اثر اصلی است، و اگر $|S| \geq 2$، یک تعامل.

چند مؤلفه در فرمول بالا وجود دارد؟ پاسخ به تعداد زیرمجموعه‌های ممکن $S$ از مجموعه ویژگی‌ها ${1, \ldots, p}$ بستگی دارد، که $2^p$ زیرمجموعه است! برای مثال، اگر تابعی ۱۰ ویژگی داشته باشد، می‌توان آن را به ۱٬۰۲۴ مؤلفه تجزیه کرد: ۱ عرض از مبدأ، ۱۰ اثر اصلی، ۹۰ تعامل دوطرفه، ۷۲۰ تعامل سه‌طرفه، و به همین ترتیب. با اضافه شدن هر ویژگی جدید، تعداد مؤلفه‌ها دو برابر می‌شود. آشکار است که برای اکثر توابع، محاسبه تمام مؤلفه‌ها عملی نیست. دلیل دیگر برای عدم محاسبه همه مؤلفه‌ها این است که مؤلفه‌هایی با $|S| > 2$ به‌سختی قابل تجسم و تفسیر هستند.

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

مثال افراطی‌تری برای نشان دادن نیاز به محدودیت‌ها: فرض کنید یک تابع سه‌بُعدی دارید. شکل دقیق این تابع اهمیتی ندارد، اما تجزیه زیر همیشه جواب می‌دهد: $f_\emptyset = 0.12$. $f_1 = f_2 = f_3 = f_{12} = f_{13} = f_{23} = 0$. و برای اینکه این ترفند جواب دهد، $f_{123}(x_1, x_2, x_3) = \hat{f}(x_1, x_2, x_3) - 0.12$ را تعریف می‌کنیم. به این ترتیب، جمله تعاملی شامل همه ویژگی‌ها تمام اثرات باقی‌مانده را در خود جذب می‌کند — که از نظر ریاضی همیشه صادق است — اما چنین تجزیه‌ای به هیچ وجه معنادار نخواهد بود و اگر به‌عنوان تفسیر مدل ارائه شود، بسیار گمراه‌کننده است.

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

  • آنالیز واریانس تابعی (و حالت تعمیم‌یافته آن)
  • اثرات محلی انباشته (ALE)
  • مدل‌های رگرسیون آماری
  • تجزیه مجموعه‌درختان

آنالیز واریانس تابعی

آنالیز واریانس تابعی (Functional ANOVA) توسط Hooker (2004) پیشنهاد شد. یک پیش‌نیاز این رویکرد این است که تابع پیش‌بینی مدل $\hat{f}$ مربع‌انتگرال‌پذیر باشد. مانند هر تجزیه تابعی، ANOVA تابعی تابع را به مؤلفه‌هایی تجزیه می‌کند:

$$\hat{f}(x) = \sum_{S \subseteq {1,\ldots,p}} \hat{f}_S(x_S)$$

Hooker (2004) هر مؤلفه را با فرمول زیر تعریف می‌کند:

$$\hat{f}_S(x_S) = \int \hat{f}(x) , d x_{\bar{S}} - \sum_{V \subsetneq S} \hat{f}_V(x_V)$$

بیایید این فرمول را باز کنیم. می‌توان آن را به شکل زیر بازنویسی کرد:

$$\hat{f}_S(x_S) = \int_{x_{\bar{S}}} \hat{f}(x) , d x_{\bar{S}} - \sum_{V \subsetneq S} \hat{f}_V(x_V)$$

سمت چپ انتگرال تابع پیش‌بینی را نسبت به ویژگی‌های خارج از مجموعه $S$ — که با $\bar{S}$ نشان داده می‌شوند — محاسبه می‌کند. برای مثال، اگر مؤلفه تعاملی دوطرفه برای ویژگی‌های ۲ و ۳ را محاسبه کنیم، انتگرال را روی ویژگی‌های ۱، ۴، ۵، … می‌گیریم. این انتگرال را می‌توان به‌عنوان مقدار مورد انتظار تابع پیش‌بینی نسبت به $x_{\bar{S}}$ نیز در نظر گرفت، با فرض اینکه همه ویژگی‌ها دارای توزیع یکنواخت از کمینه تا بیشینه هستند. از این مقدار، تمام مؤلفه‌های متناظر با زیرمجموعه‌های $S$ کسر می‌شوند. این تفریق اثر تمام مؤلفه‌های مرتبه پایین‌تر را حذف کرده و اثر را مرکزگرا می‌کند. برای مؤلفه $\hat{f}_{12}$، اثرات اصلی هر دو ویژگی $\hat{f}_1$ و $\hat{f}_2$، و همچنین عرض از مبدأ $\hat{f}_0$ کسر می‌شوند. حضور این اثرات مرتبه پایین‌تر فرمول را بازگشتی می‌کند: باید از سلسله‌مراتب زیرمجموعه‌ها تا عرض از مبدأ پیش برویم و تمام این مؤلفه‌ها را محاسبه کنیم. برای مؤلفه عرض از مبدأ $\hat{f}_\emptyset$، زیرمجموعه خالی است ($S = \emptyset$) و بنابراین $\bar{S}$ شامل همه ویژگی‌هاست:

$$\hat{f}_0 = \int \hat{f}(x) , dx$$

این به‌سادگی انتگرال تابع پیش‌بینی روی همه ویژگی‌هاست. عرض از مبدأ را می‌توان به‌عنوان مقدار مورد انتظار تابع پیش‌بینی تفسیر کرد، با فرض توزیع یکنواخت برای همه ویژگی‌ها. حالا که $\hat{f}_0$ را می‌دانیم، می‌توانیم $\hat{f}_1$ (و به‌همین شکل $\hat{f}_2$) را محاسبه کنیم:

$$\hat{f}_1(x_1) = \int \hat{f}(x_1, x_2) , dx_2 - \hat{f}_0$$

برای تکمیل محاسبه مؤلفه $\hat{f}_{12}$، همه چیز را کنار هم می‌گذاریم:

$$\hat{f}_{12}(x_1, x_2) = \int \hat{f}(x_1, x_2) , dx_3 \ldots dx_p - \hat{f}_1(x_1) - \hat{f}_2(x_2) - \hat{f}_0$$

این مثال نشان می‌دهد که چگونه هر اثر مرتبه بالاتر با انتگرال‌گیری روی سایر ویژگی‌ها تعریف می‌شود، اما همزمان همه اثرات مرتبه پایین‌تر — که زیرمجموعه‌های مجموعه ویژگی موردنظر هستند — کسر می‌شوند.

Hooker (2004) نشان داده است که این تعریف از مؤلفه‌های تابعی سه اصل موضوعه مطلوب را برآورده می‌کند:

میانگین صفر: $\int \hat{f}_S(x_S) , dx_j = 0$ برای هر $j \in S$.

متعامدبودن: $\int \hat{f}_S(x_S) \cdot \hat{f}_V(x_V) , dx = 0$ برای $S \neq V$.

تجزیه واریانس: اگر $\sigma^2 = \text{Var}(\hat{f}(X))$ باشد، آنگاه $\sigma^2 = \sum_S \sigma_S^2$، که در آن $\sigma_S^2 = \text{Var}(\hat{f}_S(X_S))$.

اصل میانگین صفر به این معناست که تمام اثرات و تعاملات حول صفر مرکز می‌شوند. در نتیجه، تفسیر در یک نقطه $x_S$ نسبت به پیش‌بینی مرکزگراشده است، نه پیش‌بینی مطلق.

اصل متعامدبودن به این معناست که مؤلفه‌ها اطلاعات مشترک ندارند. برای مثال، اثر اصلی ویژگی $x_1$ و جمله تعاملی $x_1$ و $x_2$ با یکدیگر همبسته نیستند. به‌دلیل متعامدبودن، تمام مؤلفه‌ها «خالص» هستند — اثرات مختلف در هم نمی‌آمیزند. بدیهی است که مؤلفه مربوط به ویژگی $x_1$ باید مستقل از جمله تعاملی $x_1$ و $x_2$ باشد. نتیجه جالب‌تر زمانی است که متعامدبودن را برای مؤلفه‌های سلسله‌مراتبی — که در آن یک مؤلفه شامل ویژگی‌های مؤلفه دیگر است — در نظر بگیریم؛ برای مثال، تعامل بین $x_1$ و $x_2$، و اثر اصلی $x_1$. در مقابل، یک نمودار وابستگی جزئی دوبُعدی برای $x_1$ و $x_2$ چهار اثر را در خود دارد: عرض از مبدأ، دو اثر اصلی $x_1$ و $x_2$، و تعامل بین آن‌ها. اما مؤلفه ANOVA تابعی برای ${x_1, x_2}$ تنها تعامل خالص را در بر می‌گیرد.

تجزیه واریانس امکان تقسیم واریانس تابع $\hat{f}$ بین مؤلفه‌ها را فراهم می‌کند و تضمین می‌کند که جمع آن‌ها با واریانس کل تابع برابر باشد. این ویژگی همچنین توضیح می‌دهد که چرا این روش ANOVA تابعی نامیده می‌شود. در آمار، ANOVA مخفف ANalysis Of VAriance (تحلیل واریانس) است و به مجموعه‌ای از روش‌ها اشاره دارد که تفاوت‌های میانگین یک متغیر هدف را تحلیل می‌کنند. ANOVA این کار را با تقسیم واریانس و نسبت دادن آن به متغیرها انجام می‌دهد. بنابراین، ANOVA تابعی را می‌توان گسترش این مفهوم به هر تابعی دانست.

مشکلاتی زمانی پیش می‌آیند که ویژگی‌ها با یکدیگر همبسته باشند. Hooker (2007) به‌عنوان راه‌حل، ANOVA تابعی تعمیم‌یافته را پیشنهاد کرد.

آنالیز واریانس تابعی تعمیم‌یافته برای ویژگی‌های وابسته

مانند اکثر روش‌های تفسیرپذیری مبتنی بر نمونه‌گیری (مانند PDP)، ANOVA تابعی می‌تواند زمانی که ویژگی‌ها همبسته هستند، نتایج گمراه‌کننده‌ای تولید کند. اگر روی توزیع یکنواخت انتگرال بگیریم، اما در واقعیت ویژگی‌ها وابسته باشند، مجموعه داده جدیدی می‌سازیم که از توزیع توأم منحرف شده و به ترکیب‌های بعیدی از مقادیر ویژگی تعمیم پیدا می‌کند.

Hooker (2007) آنالیز واریانس تابعی تعمیم‌یافته (Generalized Functional ANOVA) را پیشنهاد کرد — تجزیه‌ای که برای ویژگی‌های وابسته نیز کارایی دارد. این روش تعمیم ANOVA تابعی معمولی است، به این معنا که ANOVA تابعی یک حالت خاص از این روش محسوب می‌شود. مؤلفه‌ها به‌صورت تصویرهای $\hat{f}$ بر روی فضای توابع جمعی تعریف می‌شوند:

$$\hat{f}_S = \arg\min_{g_S} \int \left(\hat{f}(x) - \sum_{S} g_S(x_S)\right)^2 w(x) , dx$$

$$\text{s.t.} \quad \int g_S(x_S) w_S(x_S) , dx_j = 0, \quad \forall j \in S$$

به‌جای متعامدبودن، مؤلفه‌ها یک شرط متعامدبودن سلسله‌مراتبی را برآورده می‌کنند:

$$\int \hat{f}_S(x_S) \hat{f}_V(x_V) w(x) , dx = 0, \quad \forall V \subsetneq S$$

متعامدبودن سلسله‌مراتبی با متعامدبودن معمولی متفاوت است. برای دو مجموعه ویژگی $S$ و $V$ که هیچ‌کدام زیرمجموعه دیگری نیستند (برای مثال، $S = {1, 2}$ و $V = {2, 3}$)، الزامی نیست که $\hat{f}_S$ و $\hat{f}_V$ برای برقراری شرط متعامدبودن سلسله‌مراتبی متعامد باشند. اما تمام مؤلفه‌های مربوط به تمام زیرمجموعه‌های $S$ باید با $\hat{f}_S$ متعامد باشند. در نتیجه، تفسیر به شیوه‌ای مهم متفاوت می‌شود: مشابه M-Plot در فصل ALE، مؤلفه‌های ANOVA تابعی تعمیم‌یافته می‌توانند اثرات حاشیه‌ای ویژگی‌های همبسته را در هم بیامیزند. اینکه مؤلفه‌ها اثرات حاشیه‌ای را با هم درهم می‌آمیزند یا نه، به انتخاب تابع وزن $w$ نیز بستگی دارد. اگر $w$ معیار یکنواخت روی مکعب واحد باشد، به همان ANOVA تابعی بخش قبل می‌رسیم. انتخاب طبیعی برای $w$، تابع توزیع توأم است؛ اما این توزیع معمولاً ناشناخته و دشوار برای تخمین است. یک راه‌حل عملی این است که با معیار یکنواخت روی مکعب واحد شروع کنیم و نواحی بدون داده را حذف کنیم.

تخمین روی یک شبکه از نقاط در فضای ویژگی انجام می‌شود و به‌صورت یک مسئله بهینه‌سازی مطرح می‌گردد که می‌توان آن را با روش‌های رگرسیون حل کرد. اما مؤلفه‌ها نه به‌صورت مستقل از یکدیگر و نه به‌صورت سلسله‌مراتبی قابل محاسبه هستند؛ بلکه باید یک دستگاه معادلات پیچیده شامل سایر مؤلفه‌ها حل شود. بنابراین، محاسبه این روش بسیار پیچیده و از نظر محاسباتی هزینه‌بر است.

اثرات محلی انباشته

نمودارهای ALE (Apley و Zhu 2020) نیز یک تجزیه تابعی ارائه می‌کنند، به این معنا که جمع تمام نمودارهای ALE — از عرض از مبدأ، نمودارهای ALE یک‌بُعدی، دوبُعدی، و به همین ترتیب — تابع پیش‌بینی را بازتولید می‌کند. ALE از ANOVA تابعی (تعمیم‌یافته و معمولی) متمایز است، چراکه مؤلفه‌هایش نه متعامد، بلکه — به تعبیر نویسندگان — شبه‌متعامد (pseudo-orthogonal) هستند.

برای درک شبه‌متعامدبودن، باید عملگر $\mathcal{A}_S$ را تعریف کنیم که تابع $f$ را دریافت می‌کند و آن را به نمودار ALE برای زیرمجموعه ویژگی $S$ نگاشت می‌دهد. برای مثال، عملگر $\mathcal{A}_{{1,2}}$ یک مدل یادگیری ماشین را به‌عنوان ورودی می‌گیرد و نمودار ALE دوبُعدی برای ویژگی‌های ۱ و ۲ تولید می‌کند: $\mathcal{A}_{{1,2}}(\hat{f}) = \hat{f}_{{1,2}}^{ALE}$. اگر همین عملگر را دو بار اعمال کنیم، همان نمودار ALE را به دست می‌آوریم. پس از یک‌بار اعمال $\mathcal{A}_{{1,2}}$ بر $\hat{f}$، نمودار $\hat{f}_{{1,2}}^{ALE}$ را داریم. سپس عملگر را دوباره — نه بر $\hat{f}$، بلکه بر $\hat{f}_{{1,2}}^{ALE}$ — اعمال می‌کنیم. این ممکن است چون مؤلفه ALE دوبُعدی خود یک تابع است. نتیجه دوباره $\hat{f}_{{1,2}}^{ALE}$ خواهد بود، یعنی می‌توان همین عملگر را چندین بار اعمال کرد و همواره همان نمودار ALE را گرفت. این بخش اول از شبه‌متعامدبودن است.

اما اگر دو عملگر مختلف برای مجموعه‌های ویژگی متفاوت را اعمال کنیم چه می‌شود؟ برای مثال، $\mathcal{A}_{{1}}$ و $\mathcal{A}_{{2}}$، یا $\mathcal{A}_{{1,2}}$ و $\mathcal{A}_{{3}}$؟ جواب صفر است. اگر ابتدا عملگر ALE $\mathcal{A}_S$ را روی تابع اعمال کنیم و سپس عملگر $\mathcal{A}_V$ را روی نتیجه اعمال نماییم — با $S \neq V$ — نتیجه صفر می‌شود. به عبارت دیگر: نمودار ALE یک نمودار ALE صفر است، مگر اینکه همان نمودار ALE دو بار اعمال شود. به عبارت ساده‌تر، نمودار ALE برای مجموعه ویژگی $S$ هیچ نمودار ALE دیگری را در خود ندارد. یا به زبان ریاضی، عملگر ALE توابع را به زیرفضاهای متعامد یک فضای حاصل‌ضرب داخلی نگاشت می‌دهد.

همان‌طور که Apley و Zhu (2020) اشاره می‌کنند، شبه‌متعامدبودن ممکن است نسبت به متعامدبودن سلسله‌مراتبی مطلوب‌تر باشد، زیرا اثرات حاشیه‌ای ویژگی‌ها را در هم نمی‌آمیزد. علاوه بر این، ALE نیازی به تخمین توزیع توأم ندارد؛ مؤلفه‌ها به‌صورت سلسله‌مراتبی قابل تخمین هستند، به این معنا که محاسبه ALE دوبُعدی برای ویژگی‌های ۱ و ۲ تنها به محاسبه مؤلفه‌های ALE فردی ویژگی‌های ۱ و ۲ و جمله عرض از مبدأ نیاز دارد.

آیا نمودار وابستگی جزئی (PDP) نیز یک تجزیه تابعی ارائه می‌کند؟ پاسخ کوتاه: خیر. پاسخ بلندتر: نمودار وابستگی جزئی برای یک مجموعه ویژگی $S$ همیشه تمام اثرات سلسله‌مراتب را در خود دارد — PDP برای ${x_1, x_2}$ نه تنها تعامل، بلکه اثرات فردی هر دو ویژگی را نیز در بر می‌گیرد. در نتیجه، جمع تمام PDPها برای تمام زیرمجموعه‌ها تابع اصلی را بازتولید نمی‌کند و بنابراین یک تجزیه معتبر نیست. البته می‌توانستیم PDP را با حذف تمام اثرات مرتبه پایین‌تر تعدیل کنیم و به چیزی شبیه ANOVA تابعی برسیم. اما به‌جای انتگرال‌گیری روی توزیع یکنواخت، PDP روی توزیع حاشیه‌ای $x_{\bar{S}}$ انتگرال می‌گیرد که با نمونه‌گیری مونت‌کارلو تخمین زده می‌شود.

تجزیه مجموعه‌درختان

Yang و همکاران (2024) یک تجزیه تابعی برای مجموعه‌درختان (tree ensembles) — مثلاً مدل‌های آموزش‌دیده با XGBoost — پیشنهاد کردند. پیشنهاد آن‌ها از دو بخش تشکیل می‌شود: یک روش تجزیه و یک مجموعه محدودیت‌های آموزشی برای تفسیرپذیرتر کردن تجزیه.

برای رسیدن از مجموعه‌درختان به تجزیه تابعی، سه مرحله طی می‌شود: تجمیع، تصفیه، و انتساب. ابتدا، هر درخت به قوانین تصمیم تجزیه می‌شود، به‌طوری که هر گره برگ یک قانون تصمیم می‌شود. سپس این قوانین بر اساس ویژگی‌هایی که استفاده می‌کنند مرتب می‌شوند. برای مثال، تمام قوانینی که فقط از ویژگی $x_1$ استفاده می‌کنند جمع‌آوری شده و برای تخمین اثر اصلی $\hat{f}_1$ به‌کار می‌روند. همین کار برای تمام اثرات اصلی و تعاملات دیگر انجام می‌شود. اما این تجزیه یکتا نخواهد بود — برای مثال، می‌توان اثر اصلی $x_1$ را در جمله تعاملی $x_1$ و $x_2$ جذب کرد. مرحله تصفیه با اعمال شرط میانگین صفر و متعامدبودن (که تاکنون آشناست) مؤلفه‌ها را یکتا می‌کند. در مرحله انتساب، مشارکت‌های ویژگی برای هر نقطه داده محاسبه و در سراسر داده تجمیع می‌شوند تا مقادیر اهمیت جهانی برای هر ویژگی به دست آید. این مشارکت‌های فردی معادل مقادیر شپلی (Shapley values) هستند.

پیشنهاد دیگر مقاله اضافه کردن محدودیت‌هایی به فرایند آموزش است تا تجزیه تابعی تفسیرپذیرتر شود. این شامل مواردی ساده مانند تنظیم حداکثر عمق درخت در سطح پایین است تا حداکثر تعداد ویژگی‌های دخیل در تعاملات کنترل شود. برای مثال، تنظیم حداکثر عمق روی ۲ باعث می‌شود مدل تنها اثرات اصلی و تعاملات دوطرفه داشته باشد و هیچ تعامل مرتبه بالاتری وجود نداشته باشد. پیشنهادهای دیگر شامل محدودیت‌های یکنوایی، کاهش تعداد bins، و محدودیت‌های تعاملی است. همچنین یک مرحله پس‌پردازش برای هرس اثرات از تجزیه تابعی معرفی شده است.

مدل‌های رگرسیون آماری

این رویکرد با مدل‌های قابل تفسیر — به‌ویژه مدل‌های جمعی تعمیم‌یافته (GAM) — پیوند دارد. به‌جای تجزیه یک تابع پیچیده، می‌توان محدودیت‌ها را مستقیماً در فرایند مدل‌سازی گنجاند تا مؤلفه‌های فردی به‌راحتی قابل خواندن باشند. اگر تجزیه را روشی از بالا به پایین (top-down) در نظر بگیریم — که از یک تابع چندبُعدی شروع کرده و آن را تجزیه می‌کنیم — مدل‌های جمعی تعمیم‌یافته رویکرد پایین به بالا (bottom-up) را ارائه می‌دهند: مدل از مؤلفه‌های ساده ساخته می‌شود. هر دو رویکرد هدف مشترکی دارند: ارائه مؤلفه‌های فردی و قابل تفسیر. در مدل‌های آماری، تعداد مؤلفه‌ها محدود می‌شود تا نیازی به برازش همه $2^p$ مؤلفه نباشد. ساده‌ترین نسخه، رگرسیون خطی است:

$$\hat{f}(x) = \beta_0 + \beta_1 x_1 + \ldots + \beta_p x_p$$

این فرمول شباهت زیادی به تجزیه تابعی دارد، اما با دو تغییر اساسی:

  • تغییر اول: تمام اثرات تعاملی حذف شده‌اند و تنها عرض از مبدأ و اثرات اصلی باقی مانده‌اند.
  • تغییر دوم: اثرات اصلی فقط می‌توانند خطی در ویژگی‌ها باشند: $\hat{f}_j(x_j) = \beta_j x_j$.

اگر رگرسیون خطی را از دریچه تجزیه تابعی ببینیم، درمی‌یابیم که این مدل خود نمایانگر یک تجزیه تابعی از تابع واقعی نگاشت ویژگی‌ها به هدف است — اما زیر فرض‌های قوی مبنی بر خطی بودن اثرات و نبود تعاملات.

مدل جمعی تعمیم‌یافته (GAM) فرض دوم را با اجازه دادن به توابع انعطاف‌پذیرتر $\hat{f}_j$ از طریق اسپلاین‌ها تخفیف می‌دهد. تعاملات نیز قابل اضافه شدن هستند، اما این فرایند نسبتاً دستی است. رویکردهایی مثل GA2M تلاش می‌کنند تعاملات دوطرفه را به‌صورت خودکار به یک GAM اضافه کنند (Caruana و همکاران ۲۰۱۵).

نگاه به رگرسیون خطی یا GAM از منظر تجزیه تابعی می‌تواند گاهی منجر به سردرگمی شود. اگر رویکردهای تجزیه توضیح‌داده‌شده در ابتدای فصل (ANOVA تابعی تعمیم‌یافته و اثرات محلی انباشته) را اعمال کنید، ممکن است به مؤلفه‌هایی متفاوت از آنچه مستقیماً از GAM خوانده می‌شود برسید. این اتفاق می‌افتد زمانی که اثرات تعاملی ویژگی‌های همبسته در GAM مدل می‌شوند؛ تفاوت به این دلیل است که رویکردهای مختلف تجزیه تابعی، اثرات را به شیوه‌های متفاوتی بین تعاملات و اثرات اصلی تقسیم می‌کنند.

پس چه زمانی باید از GAM به‌جای یک مدل پیچیده + تجزیه استفاده کرد؟ GAM زمانی مناسب است که اکثر تعاملات صفر باشند، به‌ویژه وقتی هیچ تعاملی با سه ویژگی یا بیشتر وجود نداشته باشد. اگر بدانیم که حداکثر تعداد ویژگی‌های دخیل در تعاملات دو است ($\max |S| \leq 2$)، می‌توانیم از رویکردهایی مثل MARS یا GA2M استفاده کنیم. در نهایت، عملکرد مدل روی داده آزمایش می‌تواند نشان دهد که آیا یک GAM کافی است یا یک مدل پیچیده‌تر به طور قابل‌توجهی بهتر عمل می‌کند.

نقاط قوت

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

تجزیه تابعی توجیه نظری لازم برای تجزیه مدل‌های یادگیری ماشین پیچیده و چندبُعدی به اثرات فردی و تعاملات را فراهم می‌کند — گامی ضروری که تفسیر اثرات فردی را ممکن می‌سازد. تجزیه تابعی ایده اصلی روش‌هایی مانند مدل‌های رگرسیون آماری، ALE، ANOVA تابعی (و حالت تعمیم‌یافته آن)، PDP، آماره H، و منحنی‌های ICE است.

تجزیه تابعی همچنین درک بهتری از سایر روش‌ها به ما می‌دهد. برای مثال، اهمیت ویژگی با جایگشت (Permutation Feature Importance) ارتباط بین یک ویژگی و هدف را می‌شکند. از دریچه تجزیه تابعی می‌بینیم که این جایگشت اثر تمام مؤلفه‌هایی را که آن ویژگی در آن‌ها حضور دارد از بین می‌برد — هم اثر اصلی ویژگی و هم تمام تعاملاتش با سایر ویژگی‌ها. مثال دیگر، مقادیر شپلی هستند که پیش‌بینی را به اثرات جمعی ویژگی‌های فردی تجزیه می‌کنند. اما تجزیه تابعی به ما می‌گوید که باید اثرات تعاملی هم در تجزیه وجود داشته باشند — پس کجا رفته‌اند؟ مقادیر شپلی یک انتساب عادلانه از اثرات به ویژگی‌های فردی ارائه می‌کنند، به این معنا که تمام تعاملات نیز به‌طور عادلانه به ویژگی‌ها نسبت داده شده و در مقادیر شپلی تقسیم می‌شوند.

در میان ابزارهای تجزیه تابعی، نمودارهای ALE مزایای بسیاری دارند: محاسبه سریع، پیاده‌سازی نرم‌افزاری موجود (به فصل ALE مراجعه کنید)، و ویژگی‌های مطلوب شبه‌متعامدبودن.

محدودیت‌ها

مفهوم تجزیه تابعی برای مؤلفه‌های چندبُعدی فراتر از تعاملات بین دو ویژگی به سرعت به حد خود می‌رسد. نه تنها انفجار نمایی در تعداد مؤلفه‌ها عملی بودن روش را محدود می‌کند — چرا که تجسم تعاملات مرتبه بالاتر دشوار است — بلکه اگر بخواهیم همه تعاملات را محاسبه کنیم، زمان محاسباتی نیز به شکلی نجومی افزایش می‌یابد.

هر روش تجزیه تابعی معایب مخصوص به خود را دارد. رویکرد پایین به بالا — ساختن مدل‌های رگرسیون — فرایندی نسبتاً دستی است و محدودیت‌های زیادی بر مدل اعمال می‌کند که می‌توانند بر عملکرد پیش‌بینی تأثیر بگذارند. ANOVA تابعی به استقلال ویژگی‌ها نیاز دارد. ANOVA تابعی تعمیم‌یافته تخمین بسیار دشواری دارد. نمودارهای اثر محلی انباشته تجزیه واریانس ارائه نمی‌کنند.

رویکرد تجزیه تابعی برای تحلیل داده‌های جدولی مناسب‌تر از متن یا تصویر است.

فصل ۲۳: اهمیت ویژگی با جایگشت

عنوان اصلی: Permutation Feature Importance
منبع: https://christophm.github.io/interpretable-ml-book/feature-importance.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


اهمیت ویژگی با جایگشت (Permutation Feature Importance یا PFI) افزایش خطای پیش‌بینی مدل را پس از جایگشت مقادیر یک ویژگی اندازه می‌گیرد؛ فرایندی که رابطهٔ میان آن ویژگی و نتیجهٔ واقعی را از بین می‌برد.

مفهوم بسیار ساده است: یک ویژگی «مهم» است اگر درهم‌ریختن مقادیرش خطای مدل را افزایش دهد، چرا که در این صورت مدل برای پیش‌بینی به آن ویژگی متکی بوده است. برعکس، یک ویژگی «بی‌اهمیت» است اگر درهم‌ریختن مقادیرش تغییری در خطای مدل ایجاد نکند، چرا که مدل آن ویژگی را در پیش‌بینی نادیده گرفته است.

نظریه

اندازه‌گیری اهمیت ویژگی با جایگشت نخستین بار توسط Breiman (2001) برای جنگل‌های تصادفی (Random Forest) معرفی شد. بر پایهٔ این ایده، Fisher، Rudin و Dominici (2019) نسخه‌ای مدل‌-مستقل از اهمیت ویژگی را پیشنهاد کردند و آن را «وابستگی مدل» (model reliance) نامیدند. آن‌ها همچنین ایده‌های پیشرفته‌تری دربارهٔ اهمیت ویژگی مطرح کردند؛ از جمله نسخه‌ای (مدل‌-خاص) که احتمال وجود مدل‌های پیش‌بینی متعدد با عملکرد مشابه را در نظر می‌گیرد. مطالعهٔ مقالهٔ آن‌ها را توصیه می‌کنم.

الگوریتم اهمیت ویژگی با جایگشت بر اساس Fisher، Rudin و Dominici (2019):

ورودی: مدل آموزش‌دیده $\hat{f}$، ماتریس ویژگی $X$، بردار هدف $y$، معیار خطا $L$.

۱. خطای اولیهٔ مدل $e_{\text{orig}} = \frac{1}{n_{\text{test}}} \sum_{i=1}^{n_{\text{test}}} L(y^{(i)}, \hat{f}(x^{(i)}))$ را تخمین بزنید (مثلاً میانگین مجذور خطاها). ۲. برای هر ویژگی $j$:

  • ماتریس ویژگی $X_{\text{perm}}$ را با جایگشت ستون $j$ در دادهٔ $X$ بسازید. این عمل رابطهٔ میان ویژگی $j$ و نتیجهٔ واقعی $y$ را از بین می‌برد.
  • خطای جدید $e_{\text{perm}} = \frac{1}{n_{\text{test}}} \sum_{i=1}^{n_{\text{test}}} L(y^{(i)}, \hat{f}(x_{\text{perm}}^{(i)}))$ را بر اساس پیش‌بینی‌های دادهٔ جایگشت‌یافته تخمین بزنید.
  • اهمیت ویژگی با جایگشت را به صورت نسبت $FI_j = e_{\text{perm}} / e_{\text{orig}}$ یا تفاوت $FI_j = e_{\text{perm}} - e_{\text{orig}}$ محاسبه کنید. ۳. ویژگی‌ها را بر اساس $FI$ به صورت نزولی مرتب کنید.

نکته — معکوس کردن معیارهای مثبت می‌توان از PFI با معیارهایی که مقادیر بزرگ‌تر بهتر هستند نیز استفاده کرد، مانند دقت (accuracy) یا AUC. کافی است جای $e_{\text{orig}}$ و $e_{\text{perm}}$ را در نسبت یا تفاوت عوض کنید.

Fisher، Rudin و Dominici (2018) در مقاله‌شان پیشنهاد می‌کنند مجموعه داده را به دو نیمه تقسیم کرده و مقادیر ویژگی $j$ را میان دو نیمه جابه‌جا کنید، به جای اینکه آن را به‌طور کامل جایگشت دهید. اگر دقت کنید، این دقیقاً معادل جایگشت ویژگی $j$ است. برای تخمین دقیق‌تر، می‌توان خطای جایگشت هر ویژگی را از طریق جفت کردن هر نمونه با مقدار ویژگی $j$ تمام نمونه‌های دیگر (به جز خودش) تخمین زد. این روش مجموعه داده‌ای به اندازهٔ $n(n-1)$ می‌سازد و زمان محاسباتی زیادی می‌طلبد. استفاده از روش $n(n-1)$ را تنها در مواردی توصیه می‌کنم که به تخمین‌های بسیار دقیق نیاز دارید.

هشدار — از داده‌های آموزش‌ندیده برای PFI استفاده کنید PFI را روی داده‌هایی محاسبه کنید که در آموزش مدل استفاده نشده‌اند، تا از نتایج بیش از حد خوش‌بینانه جلوگیری شود، به‌ویژه در مدل‌های دچار بیش‌برازش. PFI روی داده‌های آموزشی ممکن است به اشتباه ویژگی‌های نامرتبط را به دلیل بیش‌برازش مهم نشان دهد.

برای درک اینکه مدل واقعاً از کدام ویژگی‌ها استفاده کرده، گزینه‌های جایگزین مانند اهمیت SHAP یا اهمیت PDP را در نظر بگیرید که به معیارهای خطا متکی نیستند.

در مثال‌های این فصل، از داده‌های آزمایش برای محاسبهٔ اهمیت ویژگی با جایگشت استفاده شده است.

مثال و تفسیر

در اولین مثال، مدل ماشین بردار پشتیبان (Support Vector Machine) آموزش‌دیده برای پیش‌بینی تعداد دوچرخه‌های اجاره‌ای بر اساس شرایط آب‌وهوایی و اطلاعات تقویمی را تفسیر می‌کنیم. از میانگین قدرمطلق خطاها به عنوان معیار خطا استفاده می‌شود. شکل ۲۳.۱ نتایج اهمیت ویژگی با جایگشت را نشان می‌دهد. مهم‌ترین ویژگی cnt_2d_bfr و کم‌اهمیت‌ترین آن holiday بود.

شکل ۲۳.۱: اهمیت هر ویژگی در پیش‌بینی تعداد دوچرخه‌های اجاره‌ای با ماشین بردار پشتیبان. نقطه میانگین اهمیت در چندین جایگشت را نشان می‌دهد و خط محدودهٔ صدک ۵٪ تا ۹۵٪ را از طریق جایگشت‌های مکرر نمایش می‌دهد.

حال به مثال پنگوئن‌ها می‌پردازیم. ۳ مدل رگرسیون لجستیک برای پیش‌بینی جنسیت پنگوئن‌ها آموزش دادم؛ ۲/۳ داده‌ها برای آموزش و ۱/۳ برای محاسبهٔ اهمیت استفاده شد. معیار خطا، log loss است. ویژگی‌هایی که با افزایش خطای مدل به اندازهٔ ۱ (یعنی بدون تغییر) همراه بودند، برای پیش‌بینی جنسیت پنگوئن اهمیتی نداشتند، همان‌طور که شکل ۲۳.۲ نشان می‌دهد.

شکل ۲۳.۲: مقادیر اهمیت ویژگی با جایگشت برای وظیفهٔ طبقه‌بندی پنگوئن‌ها.

اهمیت هر ویژگی در پیش‌بینی جنسیت پنگوئن‌ها با مدل‌های رگرسیون لجستیک. مهم‌ترین ویژگی body_mass_g بود. جایگشت body_mass_g منجر به افزایش ۱۵.۴ برابری خطای طبقه‌بندی شد. اما صبر کنید — چطور species هم ویژگی مهمی است، در حالی که در واقع ۳ مدل جداگانه آموزش دادم؟ در اینجا هر ۳ مدل را به عنوان یک Black Box Model در نظر گرفتم. برای این تابع کلی، species صرفاً یک ویژگی معمولی به حساب می‌آید که در پشت صحنه داده را تقسیم می‌کند و به سه مدل رگرسیون لجستیک ارجاع می‌دهد.

اهمیت ویژگی شرطی

مانند تمام روش‌های مدل‌-مستقل، اهمیت ویژگی با جایگشت هنگام وابستگی میان ویژگی‌ها با مشکل مواجه می‌شود. جایگشت، نقاط داده‌ای غیرواقعی یا دست‌کم نامحتمل تولید می‌کند که برای محاسبهٔ اهمیت ویژگی به کار می‌روند — و این ایده‌آل نیست. مشکل اینجاست که نسخهٔ حاشیه‌ای (marginal) PFI وابستگی‌های میان ویژگی‌ها را نادیده می‌گیرد. در مقابل، مفهوم اهمیت شرطی نیز وجود دارد. نسخهٔ شرطی به جای نمونه‌گیری از توزیع حاشیه‌ای $p(x_j)$ (که جایگشت نوعی نمونه‌گیری از آن است)، از توزیع شرطی $p(x_j \mid x_{-j})$ نمونه‌گیری می‌کند و بدین ترتیب نقاط دادهٔ واقع‌گرایانه‌تری تولید می‌کند.

با این حال، نمونه‌گیری از توزیع شرطی دشوار است؛ حتی دشوارتر از خود وظیفهٔ یادگیری ماشین اصلی. اما با فرض‌هایی ساده‌کننده مانند همبستگی خطی میان ویژگی‌ها، می‌توان این مسئله را ساده‌تر کرد. برخی گزینه‌ها برای نمونه‌گیری شرطی:

  • محاسبهٔ PFI در زیرگروه‌های داده و تجمیع آن‌ها؛ زیرگروه‌ها بر اساس تقسیم‌بندی روی ویژگی‌های همبسته تعریف می‌شوند (Molnar et al. 2023).
  • استفاده از تکنیک‌های تطابق (matching) و برون‌یابی (imputation) برای تولید نمونه از توزیع شرطی (Fisher, Rudin, and Dominici 2019).
  • استفاده از knockoff‌ها (Watson and Wright 2021).
  • برای جنگل‌های تصادفی، پیاده‌سازی مدل‌-خاص Debeer و Strobl (2020) بر پایهٔ اهمیت اصلی جنگل تصادفی (Breiman 2001) وجود دارد.

اهمیت ویژگی شرطی تفسیر متفاوتی نسبت به PFI حاشیه‌ای دارد:

  • PFI افزایش خطا ناشی از از دست دادن اطلاعات یک ویژگی را اندازه می‌گیرد.
  • اهمیت شرطی افزایش خطا ناشی از از دست دادن اطلاعات منحصر به آن ویژگی را اندازه می‌گیرد — اطلاعاتی که در ویژگی‌های دیگر وجود ندارد.

اهمیت شرطی می‌تواند تفسیر کمی دشوارتر باشد، چرا که به درک وابستگی‌های میان ویژگی‌ها نیز نیاز دارد. از همین رو، رویکرد زیرگروه‌بندی را ترجیح می‌دهم (و مقاله‌ای درباره‌اش نوشته‌ام): محاسبهٔ PFI به تفکیک گروه، امکان حفظ تفسیر حاشیه‌ای را فراهم می‌کند.

هشدار — ویژگی‌های همبسته اهمیت شرطی پایین‌تری دارند ویژگی‌های شدیداً وابسته معمولاً اهمیت شرطی بسیار پایینی دارند، حتی اگر مدل از آن‌ها استفاده کند.

مثال PFI گروهی

به پنگوئن‌ها برمی‌گردیم. از آنجا که PFI ویژگی‌هایی مانند جرم بدن با جایگشت در کل داده محاسبه می‌شود، مقادیر جرم بدن از گونه‌های مختلف با هم مخلوط می‌شوند. اما می‌توان PFI را با تقسیم داده بر اساس گونه و جایگشت جداگانه برای هر زیرمجموعه تطبیق داد؛ به این ترتیب یک PFI به ازای هر ویژگی و هر گونه به دست می‌آید. شکل ۲۳.۳ نشان می‌دهد که زیرگروه‌بندی بر اساس گونه همبستگی را کاهش می‌دهد.

شکل ۲۳.۳: همبستگی میان جرم بدن و طول باله در زیرگروه‌های گونه (و کل داده با هم). زیرگروه‌بندی بر اساس گونه همبستگی پیرسون (r) را کاهش می‌دهد.

پس اهمیت ویژگی با جایگشت را دوباره، این بار به تفکیک گونه، محاسبه می‌کنیم. یعنی ویژگی‌ها درون هر گونه جایگشت می‌یابند، به طوری که مثلاً جرم بدن یک Gentoo سنگین به یک Adelie سبک‌وزن نسبت داده نمی‌شود. اگرچه گروه‌بندی مشکل همبستگی را کاهش می‌دهد، اما کاملاً حل نمی‌کند، همان‌طور که در شکل ۲۳.۳ می‌بینیم. برای مثال، همچنان ممکن است یک پنگوئن Gentoo با جرم بدن ۴۰۰۰ گرم، طول باله‌ای معادل ۲۳۰ میلی‌متر دریافت کند که یک نقطهٔ دادهٔ غیرواقعی است. پس تفسیر نتایج همچنان با محدودیت‌هایی همراه است. نتایج در شکل ۲۳.۴ نشان داده شده‌اند. تصویر متفاوتی پدیدار می‌شود: جرم بدن برای طبقه‌بندی جنسیت در Gentoo اهمیت بالایی دارد، در Adelie کمتر، و در Chinstrap بسیار کمتر. توجه کنید که برای سه مدل رگرسیون لجستیک، طبیعی است که آن‌ها را سه مدل پیش‌بینی جداگانه بدانیم و برای هر یک PFI مجزا محاسبه کنیم. اما از آنجا که PFI مدل‌-مستقل است، می‌توان همین کار را برای یک جنگل تصادفی که گونه را به عنوان یک ویژگی استفاده می‌کند نیز انجام داد. یا اینکه داده را بر اساس هر متغیر دیگری، حتی متغیرهایی که مدل از آن‌ها استفاده نکرده، به زیرگروه تقسیم کرد.

شکل ۲۳.۴: PFI به تفکیک گونه برای هر مدل رگرسیون لجستیک. نتایج تا حدودی شبیه PFI کلی است و تفاوت چشمگیری بین گونه‌ها نشان نمی‌دهد.

نقاط قوت

تفسیر روشن: اهمیت ویژگی به معنای افزایش خطای مدل پس از از بین بردن اطلاعات آن ویژگی است.

فشرده‌سازی رفتار مدل: اهمیت ویژگی دیدی فشرده و جهانی از رفتار مدل ارائه می‌دهد.

مفید برای کاوش در داده: اگر هدف یادگیری دربارهٔ داده باشد و مدل صرفاً ابزاری برای این منظور باشد، PFI گزینهٔ مناسبی است؛ چرا که به عملکرد پیش‌بینی (از طریق تابع خطا) متکی است. اگر ویژگی‌ای برای پیش‌بینی داده نامرتبط باشد ولی مدل همچنان از آن استفاده کند، PFI در انتظار، اهمیت نزدیک به صفر برای آن ویژگی نشان می‌دهد. معیارهای اهمیتی که مبتنی بر خطای پیش‌بینی نیستند — مانند اهمیت SHAP — برای ویژگی‌هایی که صرفاً به بیش‌برازش کمک می‌کنند نیز اثر نشان می‌دهند.

مقایسه‌پذیری: استفاده از نسبت خطا به جای تفاوت خطا، مقایسهٔ اهمیت ویژگی‌ها را در مسائل مختلف ممکن می‌سازد.

در نظر گرفتن تعاملات: معیار اهمیت به‌طور خودکار تمام تعاملات با ویژگی‌های دیگر را در نظر می‌گیرد. با جایگشت یک ویژگی، اثرات تعامل آن با ویژگی‌های دیگر نیز از بین می‌روند. به این ترتیب، PFI هم اثر اصلی ویژگی و هم اثرات تعاملی آن روی عملکرد مدل را لحاظ می‌کند. البته این ویژگی یک محدودیت نیز هست؛ زیرا اهمیت تعامل میان دو ویژگی در اهمیت هر دو آن‌ها محاسبه می‌شود. بنابراین جمع اهمیت‌های ویژگی با کاهش کل عملکرد برابر نیست، بلکه از آن بیشتر است. تنها در صورت نبود تعامل — مانند مدل خطی — اهمیت‌ها به‌طور تقریبی با هم جمع می‌شوند.

بدون نیاز به آموزش مجدد: اهمیت ویژگی با جایگشت نیازی به آموزش مجدد مدل ندارد. برخی روش‌های دیگر پیشنهاد می‌کنند ویژگی را حذف کرده، مدل را دوباره آموزش دهید و سپس خطای مدل را مقایسه کنید. از آنجا که آموزش مجدد یک مدل یادگیری ماشین ممکن است زمان زیادی ببرد، «صرفاً» جایگشت یک ویژگی در وقت صرفه‌جویی قابل توجهی ایجاد می‌کند.

محدودیت‌ها

وابستگی به خطای مدل: اهمیت ویژگی با جایگشت به خطای مدل گره خورده است. این لزوماً بد نیست، اما در برخی موارد آنچه نیاز دارید نیست. گاهی ترجیح می‌دهید بدانید خروجی مدل در برابر تغییر یک ویژگی چقدر تغییر می‌کند، بدون در نظر گرفتن تأثیر آن بر عملکرد. برای مثال، می‌خواهید بدانید خروجی مدل در برابر دستکاری ویژگی‌ها چقدر مقاوم است. در این حالت، واریانس خروجی مدل که توسط هر ویژگی توضیح داده می‌شود مورد نظر است، نه کاهش عملکرد پس از جایگشت. واریانس مدل (توضیح‌داده‌شده توسط ویژگی‌ها) و اهمیت ویژگی زمانی که مدل به‌خوبی تعمیم می‌یابد (یعنی بیش‌برازش ندارد) همبستگی قوی دارند.

عدم بیان چگونگی تأثیر: اهمیت ویژگی نشان نمی‌دهد که ویژگی چگونه روی پیش‌بینی تأثیر می‌گذارد، بلکه تنها نشان می‌دهد چقدر روی تابع خطا تأثیر دارد. حتی اگر اهمیت یک ویژگی را بدانید، نمی‌دانید: آیا افزایش ویژگی، پیش‌بینی را افزایش می‌دهد؟ آیا تعاملی با ویژگی‌های دیگر وجود دارد؟ اهمیت ویژگی صرفاً یک رتبه‌بندی است.

نیاز به نتایج واقعی: باید به نتایج واقعی دسترسی داشته باشید. اگر کسی تنها مدل و داده‌های بدون برچسب در اختیار شما بگذارد — و نه نتیجهٔ واقعی — نمی‌توانید اهمیت ویژگی با جایگشت را محاسبه کنید.

تصادفی بودن: اهمیت ویژگی با جایگشت به درهم‌ریختن ویژگی وابسته است که تصادفی بودنی به اندازه‌گیری اضافه می‌کند. با تکرار جایگشت، نتایج ممکن است تفاوت زیادی داشته باشند. تکرار جایگشت و میانگین‌گیری از اهمیت‌ها در طول تکرارها، معیار را پایدارتر می‌کند، اما زمان محاسبه را افزایش می‌دهد.

مشکل همبستگی ویژگی‌ها: اگر ویژگی‌ها با یکدیگر همبسته باشند، اهمیت ویژگی با جایگشت می‌تواند به دلیل نمونه‌های دادهٔ غیرواقعی، جانب‌دارانه (biased) باشد. این مشکل همانند نمودارهای وابستگی جزئی (Partial Dependence Plot) است: جایگشت ویژگی‌ها هنگامی که دو یا چند ویژگی همبسته هستند، نمونه‌های دادهٔ نامحتمل تولید می‌کند. وقتی همبستگی مثبت وجود داشته باشد (مانند قد و وزن یک فرد) و یکی از آن‌ها جایگشت بیابد، نمونه‌های جدیدی تولید می‌شوند که نامحتمل یا حتی از نظر فیزیکی غیرممکن هستند (مثلاً فردی ۲ متری با وزن ۳۰ کیلوگرم)، اما برای اندازه‌گیری اهمیت از همین نمونه‌ها استفاده می‌شود. به عبارت دیگر، برای اهمیت ویژگی‌های همبسته، می‌سنجیم عملکرد مدل چقدر کاهش می‌یابد وقتی ویژگی را با مقادیری جایگزین می‌کنیم که هرگز در واقعیت مشاهده نخواهیم کرد. پیش از استفاده، همبستگی میان ویژگی‌ها را بررسی کرده و در تفسیر نتایج احتیاط نمایید. توجه داشته باشید که همبستگی‌های دوتایی ممکن است برای آشکار کردن همهٔ مشکلات کافی نباشند.

تقسیم اهمیت میان ویژگی‌های همبسته: افزودن یک ویژگی همبسته می‌تواند اهمیت ویژگی مرتبط را با تقسیم اهمیت میان هر دو کاهش دهد. مثالی برای روشن شدن مفهوم «تقسیم» اهمیت ویژگی: می‌خواهیم احتمال بارش باران را پیش‌بینی کنیم و از دمای ساعت ۸ صبح روز قبل به همراه ویژگی‌های ناهمبسته دیگر استفاده می‌کنیم. یک جنگل تصادفی آموزش می‌دهم و مشخص می‌شود دما مهم‌ترین ویژگی است و همه چیز خوب است. حالا سناریوی دیگری را تصور کنید که در آن دمای ساعت ۹ صبح را هم اضافه می‌کنم — ویژگی‌ای که شدیداً با دمای ۸ صبح همبسته است. دمای ۹ صبح اطلاعات زیادی به دمای ۸ صبح اضافه نمی‌کند، اما داشتن ویژگی‌های بیشتر همیشه خوب است، درست است؟ حال یک جنگل تصادفی با دو ویژگی دما و ویژگی‌های ناهمبسته آموزش می‌دهم. برخی درخت‌های جنگل از دمای ۸ صبح استفاده می‌کنند، برخی از دمای ۹ صبح، برخی از هر دو، و برخی از هیچکدام. دو ویژگی دما با هم کمی اهمیت بیشتری نسبت به ویژگی دمای تکی دارند، اما به جای اینکه در صدر فهرست باشند، هر یک در جایی در میانه قرار می‌گیرند. با اضافه کردن یک ویژگی همبسته، مهم‌ترین ویژگی از صدر رتبه‌بندی به میانه افتاد. از یک طرف، این منطقی است، چرا که رفتار مدل پایه‌ای — اینجا جنگل تصادفی — را منعکس می‌کند؛ دمای ۸ صبح کم‌اهمیت‌تر شده زیرا مدل اکنون می‌تواند به دمای ۹ صبح هم متکی باشد. از طرف دیگر، تفسیر اهمیت ویژگی را به‌طور قابل توجهی دشوارتر می‌کند. تصور کنید می‌خواهید ویژگی‌ها را از نظر خطای اندازه‌گیری بررسی کنید. این بررسی پرهزینه است و تصمیم می‌گیرید فقط ۳ ویژگی مهم‌تر را چک کنید. در حالت اول، دما را بررسی می‌کنید؛ در حالت دوم، هیچ ویژگی دمایی را انتخاب نمی‌کنید چون اهمیت‌شان تقسیم شده است. حتی اگر مقادیر اهمیت از نظر رفتار مدل منطقی باشند، وجود ویژگی‌های همبسته سردرگم‌کننده است.

نرم‌افزار و جایگزین‌ها

برای مثال‌ها از پکیج R به نام iml استفاده شده است. پکیج‌های R به نام‌های DALEX و vip، و کتابخانه‌های Python به نام‌های alibi، eli5، scikit-learn و rfpimp نیز اهمیت ویژگی با جایگشت مدل‌-مستقل را پیاده‌سازی کرده‌اند.

الگوریتمی به نام PIMP، الگوریتم اهمیت ویژگی با جایگشت را برای ارائهٔ p-value برای اهمیت‌ها تطبیق می‌دهد. جایگزین دیگری مبتنی بر تابع خطا، LOFO است که ویژگی را از داده‌های آموزشی حذف می‌کند، مدل را دوباره آموزش می‌دهد و افزایش خطا را اندازه می‌گیرد. جایگشت یک ویژگی و اندازه‌گیری افزایش خطا تنها راه سنجش اهمیت ویژگی نیست. معیارهای مختلف اهمیت را می‌توان به روش‌های مدل‌-خاص و مدل‌-مستقل تقسیم کرد. اهمیت Gini برای جنگل‌های تصادفی، یا ضرایب رگرسیون استانداردشده برای مدل‌های رگرسیونی، نمونه‌هایی از معیارهای مدل‌-خاص هستند.

جایگزین مدل‌-مستقل برای اهمیت ویژگی با جایگشت، معیارهای مبتنی بر واریانس هستند. معیارهای اهمیت ویژگی مبتنی بر واریانس مانند شاخص‌های Sobol یا ANOVA تابعی (functional ANOVA)، اهمیت بیشتری به ویژگی‌هایی می‌دهند که واریانس بالایی در تابع پیش‌بینی ایجاد می‌کنند. اهمیت SHAP نیز شباهت‌هایی به معیار مبتنی بر واریانس دارد. اگر تغییر یک ویژگی خروجی را به شدت تغییر دهد، آن ویژگی مهم است. این تعریف از اهمیت با تعریف مبتنی بر تابع خطا — مانند اهمیت ویژگی با جایگشت — تفاوت دارد. این تفاوت در مواردی که مدل دچار بیش‌برازش است آشکار می‌شود: اگر مدل بیش‌برازش داشته باشد و از ویژگی نامرتبط با خروجی استفاده کند، اهمیت ویژگی با جایگشت اهمیت صفر به آن ویژگی می‌دهد، چرا که این ویژگی در تولید پیش‌بینی‌های درست سهمی ندارد. اما یک معیار مبتنی بر واریانس ممکن است اهمیت بالایی به آن ویژگی بدهد، چرا که با تغییر ویژگی، پیش‌بینی نیز تغییر می‌کند.

مروری جامع بر تکنیک‌های مختلف اهمیت‌سنجی در مقالهٔ Wei، Lu و Song (2015) ارائه شده است.

فصل ۲۴: اهمیت حذف یک ویژگی (LOFO)

عنوان اصلی: Leave One Feature Out (LOFO) Importance
منبع: https://christophm.github.io/interpretable-ml-book/lofo.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


اهمیت حذف یک ویژگی (LOFO Importance) با بازآموزش مدل بدون یک ویژگی و مقایسه عملکرد پیش‌بینی اندازه می‌گیرد که آن ویژگی چقدر اهمیت دارد.1

شهود پشت LOFO این است: اگر حذف یک ویژگی باعث افت عملکرد پیش‌بینی شود، آن ویژگی مهم بوده است. اگر حذفش تغییری ایجاد نکند، اهمیتی نداشته است. اهمیت LOFO حتی می‌تواند منفی باشد، یعنی حذف ویژگی عملکرد مدل را بهبود می‌بخشد. از آنجا که الگوریتم مدل جدیدی آموزش می‌بیند، افت عملکرد مشروط بر سایر ویژگی‌های باقیمانده در مدل است، همان‌طور که در مثال‌ها خواهیم دید.

برای محاسبه اهمیت LOFO برای تمام $p$ ویژگی، باید مدل را $p$ بار بازآموزش دهیم؛ هر بار با یک ویژگی متفاوت حذف‌شده از داده‌های آموزشی، و سپس عملکرد مدل جدید را روی داده‌های آزمایش اندازه بگیریم. همین سادگی است که LOFO را به یک الگوریتم سرراست تبدیل می‌کند. الگوریتم را به صورت رسمی بیان می‌کنیم:

ورودی: مدل آموزش‌دیده $\hat{f}$، داده‌های آموزشی $D_{train}$، داده‌های آزمایش $D_{test}$، و معیار خطا $L$.

رویه:

۱. خطای مدل اصلی را اندازه بگیرید:

$$e_{orig} = L(\hat{f}, D_{test})$$

۲. برای هر ویژگی $j$:

  • ویژگی $j$ را از مجموعه داده حذف کنید و مجموعه‌های داده جدید $D_{train}^{-j}$ و $D_{test}^{-j}$ بسازید.
  • مدل جدید $\hat{f}^{-j}$ را روی $D_{train}^{-j}$ آموزش دهید.
  • خطای جدید را روی مجموعه آزمایش تغییریافته اندازه بگیرید:

$$e^{-j} = L(\hat{f}^{-j}, D_{test}^{-j})$$

  • اهمیت LOFO هر ویژگی را محاسبه کنید.

به صورت نسبت:

$$\text{LOFO}^{(j)} = \frac{e^{-j}}{e_{orig}}$$

یا به صورت تفاضل:

$$\text{LOFO}^{(j)} = e^{-j} - e_{orig}$$

۳. ویژگی‌ها را بر اساس اهمیت $\text{LOFO}^{(j)}$ به صورت نزولی مرتب و نمایش دهید.

هنگام استفاده از معیارهای عملکرد به جای معیارهای خطا — مانند دقت که مقدار بزرگ‌تر بهتر است — مطمئن شوید که تفاضل را در منفی یک ضرب کنید، یا ترتیب صورت و مخرج کسر را جابجا کنید. برای آموزش و بازآموزش مدل از داده‌های آموزشی، و برای اندازه‌گیری عملکرد از داده‌های آزمایش استفاده کنید.

مثال‌ها

تعداد اجاره دوچرخه را بر اساس اطلاعات آب‌وهوایی و تقویمی پیش‌بینی می‌کنیم؛ یک Random Forest (جنگل تصادفی) روی ۲/۳ داده‌ها آموزش دیده است. شکل ۲۴.۱ نشان می‌دهد که دما و تعداد اجاره قبلی دوچرخه، مهم‌ترین ویژگی‌ها طبق LOFO هستند. ویژگی تعطیلات اهمیت منفی دارد که پیامدی برای انتخاب ویژگی (feature selection) دارد: بر اساس نحوه کار الگوریتمی LOFO، اکنون می‌دانیم که حذف ویژگی تعطیلات عملکرد مدل را بهبود می‌بخشد.

شکل ۲۴.۱: اهمیت‌های LOFO برای داده‌های اجاره دوچرخه، جایی که دما تکرار شده و یک ویژگی کاملاً همبسته (temp_copy) به داده‌ها اضافه شده است.

حال آزمایشی انجام می‌دهیم. برای شبیه‌سازی نسخه‌ای افراطی از ویژگی‌های همبسته، یک مجموعه داده دوچرخه جدید ساختم که دو ستون دما دارد: temp و temp_copy. همان‌طور که حدس می‌زنید، temp_copy دقیقاً همان مقادیر temp را دارد، یعنی همبستگی ۱۰۰٪. دوباره یک Random Forest روی این مجموعه داده جدید آموزش دادم. ببینیم اهمیت‌های LOFO چه تغییری می‌کنند.

شکل ۲۴.۲: اهمیت‌های LOFO برای داده‌های اجاره دوچرخه.

شکل ۲۴.۲ پدیده جالبی نشان می‌دهد: اهمیت‌های LOFO هر دو ویژگی دما اکنون تقریباً صفر است.2 اما اگر مثلاً temp_copy را حذف کنیم، به مدل اصلی می‌رسیم که در آن دما مهم‌ترین ویژگی بود. واضح است که نتیجه‌گیری درباره اینکه این مدل جدید اصلاً به دما وابسته نیست، اشتباه خواهد بود. هر دو ویژگی temp و temp_copy اهمیت پایینی می‌گیرند؛ چون طبق تعریف LOFO، مهم نیستند. وقتی ویژگی temp را حذف می‌کنیم، هیچ اطلاعاتی از دست نمی‌رود، زیرا temp_copy همان اطلاعات را نگه می‌دارد. LOFO تفسیر شرطی دارد: با توجه به سایر ویژگی‌ها، حذف یک ویژگی چقدر عملکرد پیش‌بینی مدل را بدتر می‌کند؟ نتیجه‌گیری‌ها:

  • اهمیت LOFO ویژگی‌های کاملاً همبسته همیشه پایین است و حتی می‌تواند منفی باشد،3 زیرا اهمیت LOFO باید مشروط بر اطلاعات سایر ویژگی‌ها تفسیر شود. اگر یک ویژگی دما در داده‌ها دارید، نسخه کاملاً یکسان آن اطلاعات جدید مهمی به حساب نمی‌آید.
  • وقتی از اهمیت LOFO برای انتخاب ویژگی استفاده می‌کنید، مراقب تفسیر باشید: LOFO فقط نشان می‌دهد که عملکرد مدل به حذف تک‌تک ویژگی‌ها چه واکنشی نشان می‌دهد. همان‌طور که شکل ۲۴.۲ نشان داد، LOFO اطلاعاتی درباره تغییر عملکرد هنگام حذف همزمان ۲ یا بیشتر ویژگی ارائه نمی‌دهد.

با این دانش، LOFO را برای یک Random Forest که جنسیت پنگوئن را از اندازه‌های بدن پیش‌بینی می‌کند امتحان می‌کنیم. یک Random Forest روی ۲/۳ داده‌ها آموزش داده‌ام و ۱/۳ باقیمانده را برای تخمین خطا کنار گذاشته‌ام. شکل ۲۴.۳ نشان می‌دهد که عمق منقار مهم‌ترین ویژگی طبق LOFO بوده است.

شکل ۲۴.۳: اهمیت‌های LOFO برای داده‌های پنگوئن.

توجه داشته باشید که چون از دقت استفاده کردم (که مقدار بزرگ‌تر بهتر است)، اهمیت را در منفی یک ضرب کردم. LOFO همچنین نشان می‌دهد که می‌توان ویژگی‌های species و flipper_length را بدون مشکل حذف کرد. با این حال، نگه داشتن species ضروری است، زیرا مدل باید بتواند بین گونه‌های مختلف تمایز قائل شود.

LOFO در برابر PFI

LOFO با سایر روش‌های ارائه‌شده در این کتاب متفاوت است، زیرا اکثر روش‌های دیگر نیازی به بازآموزش مدل ندارند. می‌توان گفت LOFO یک روش پس‌از‌آموزش (post-hoc) و مدل‌آزاد (model-agnostic) است؛ چون روی هر مدلی قابل اعمال است و بازآموزش، مدل اصلی موردنظر را تغییر نمی‌دهد. اما به دلیل بازآموزش، تفسیر از تحلیل یک مدل واحد به تفسیر الگوریتم یادگیری و نحوه واکنش آموزش مدل به تغییرات ویژگی‌ها تغییر می‌کند.

به نظر من، بزرگ‌ترین سؤال این است: LOFO چه تفاوتی با PFI دارد و کِی باید از کدام استفاده کرد؟ ابتدا شباهت‌ها: هر دو PFI و LOFO معیارهای اهمیت مبتنی بر عملکرد هستند؛ هر دو اهمیت را با «حذف» اطلاعات یک ویژگی محاسبه می‌کنند، هرچند به روش‌های متفاوت؛ و هر دو در ساده‌ترین نسخه‌شان به صورت یک‌به‌یک عمل می‌کنند. اما در جنبه‌های دیگری با هم فرق دارند. همان‌طور که در شکل ۲۴.۲ دیدیم، LOFO تفسیر شرطی از اهمیت دارد و فقط ارزش پیش‌بینی اضافی یک ویژگی را نشان می‌دهد. این ویژگی، LOFO را از PFI حاشیه‌ای (marginal PFI) متمایز می‌کند. LOFO بیشتر شبیه PFI شرطی (conditional PFI) است و هر دو تفسیرهایی مشروط بر سایر ویژگی‌ها دارند.

اما از آنجا که PFI شرطی و LOFO به شیوه‌های متفاوتی کار می‌کنند، در تفسیرهایشان نیز تفاوت دارند. PFI شرطی تفسیری است که تنها مدل موردنظر را در بر می‌گیرد. اهمیت LOFO بیشتر بر الگوریتم یادگیری ماشین تمرکز دارد، زیرا شامل بازآموزش است و تفسیر حالا چندین مدل با آموزش‌های متفاوت را دربر می‌گیرد. این بدان معناست که اهمیت LOFO تحت تأثیر نحوه برخورد الگوریتم با یک مجموعه داده فاقد آن ویژگی قرار می‌گیرد. یک الگوریتم درخت تصمیم ممکن است درخت کاملاً متفاوتی تولید کند. بنابراین تفسیر LOFO هم درباره مدل موردنظر است و هم درباره الگوریتم یادگیری ماشین و نحوه واکنش آن به حذف یک ویژگی.

نقاط قوت

پیاده‌سازی LOFO ساده است. مثال‌های این فصل دقیقاً با همین رویکرد ساخته شده‌اند. می‌توانید خودتان آن را پیاده‌سازی کنید و نیازی به هیچ بسته‌ای ندارید.

LOFO برای انتخاب ویژگی مفید است: یک ویژگی با اهمیت LOFO زیر صفر را می‌توان حذف کرد تا عملکرد مدل بهبود یابد؛ یک ویژگی با اهمیت صفر نیز بدون تأثیر بر عملکرد قابل حذف است. با این حال، توجه داشته باشید که LOFO تحت تأثیر تصادفی بودن فرآیند آموزش و نمونه داده قرار دارد. مطمئن شوید که هر بار تنها یک ویژگی را بر اساس نتایج LOFO حذف می‌کنید. اگر می‌خواهید دو ویژگی را حذف کنید، باید این کار را به صورت متوالی انجام دهید: اهمیت LOFO را محاسبه کنید، ویژگی کم‌اهمیت را حذف کنید، LOFO را دوباره محاسبه کنید، و دوباره کم‌اهمیت‌ترین را حذف کنید. همچنین می‌توانید LOFO را به LTFO (حذف دو ویژگی) گسترش دهید تا اهمیت مشترک را محاسبه کنید. سایر روش‌های اهمیت‌سنجی، مانند PFI یا اهمیت SHAP، مستقیماً اطلاعات کاربردی برای انتخاب ویژگی ارائه نمی‌دهند.

LOFO برخلاف برخی روش‌ها مانند PFI حاشیه‌ای، داده‌های غیرواقع‌بینانه تولید نمی‌کند؛ زیرا ویژگی را حذف می‌کند و مدل را با داده‌های نمونه‌برداری‌شده جدید آزمایش نمی‌کند.

LOFO در مرحله مدل‌سازی به دلیل بینش‌های کاربردی برای انتخاب ویژگی مفید است. همچنین وقتی تمرکز بیشتر بر درک پدیده زیربنایی باشد تا خود مدل، ارزش دارد. با این حال، توجه داشته باشید که نحوه واکنش الگوریتم خاص به حذف ویژگی‌ها نیز بر مقادیر اهمیت LOFO تأثیر می‌گذارد.

LOFO زمانی معنا می‌دهد که هدف تفسیر، فهمیدن پدیده (نه خود مدل) یا رفتار الگوریتم یادگیری باشد.

محدودیت‌ها

LOFO پرهزینه است: برای محاسبه اهمیت LOFO همه ویژگی‌ها، باید مدل را $p$ بار بازآموزش دهید. این می‌تواند گران‌قیمت باشد، به‌ویژه در مقایسه با اهمیت ویژگی با جایگشت (PFI).

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

همچنین کمی مبهم است که چگونه باید تنظیم هایپرپارامترها (hyperparameter tuning) را مدیریت کرد: آیا باید با همان هایپرپارامترهای اولیه آموزش داد، یا بهینه‌سازی هایپرپارامترها را از نو اجرا کرد؟ ثابت نگه داشتن هایپرپارامترها از نظر محاسباتی ارزان‌تر است و تمرکز LOFO را بیشتر به سمت همان مدل می‌برد، زیرا مدل‌های جدید احتمالاً به آن شبیه‌تر خواهند بود. اجرای بهینه‌سازی هایپرپارامترها برای هر یک از $p$ مدل پرهزینه است، اما نتایج LOFO را برای انتخاب ویژگی و کشف روابط میان ویژگی‌ها و متغیر هدف اطلاعات‌رسان‌تر می‌کند، زیرا عدم‌قطعیت ناشی از خطاهای مدل کاهش می‌یابد.

ویژگی‌های کاملاً همبسته اهمیت LOFO پایینی می‌گیرند. این نتیجه طبیعی نحوه کار LOFO است، اما دامی است که هنگام نگاه به نمودارهای اهمیت به‌راحتی فراموش می‌شود. پیش از تفسیر اهمیت‌های LOFO، بررسی ساختار همبستگی داده‌ها ضروری است. همچنین می‌توانید ویژگی‌های کاملاً همبسته را گروه‌بندی کنید و آن‌ها را با هم حذف کنید تا تفسیر از شرطی به حاشیه‌ای تبدیل شود.

نرم‌افزار و جایگزین‌ها

LOFO یک پیاده‌سازی پایتون دارد. البته این الگوریتمی است که به‌راحتی می‌توانید خودتان پیاده‌سازی کنید.

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

روش انتخاب ویژگی «انتخاب ویژگی متوالی رو به عقب» (backward sequential feature selection) اساساً همان LOFO است که با حذف متوالی ویژگی‌ها ترکیب شده است.


1

اولین توصیف رسمی LOFO که از آن آگاهم، توسط Lei و همکاران (۲۰۱۸) ارائه شده است. آن‌ها این روش را Leave One Covariate Out (LOCO) می‌نامند و مقاله عمدتاً درباره آزمون توزیع‌آزاد (distribution-free testing) است.

2

ویژگی‌های temp و temp_copy اهمیت‌های LOFO مشابه اما نه برابر دارند که به دلیل تصادفی بودن فرآیند آموزش مدل است.

3

در اینجا باید فرض کنیم که الگوریتم یادگیری با تکیه بیشتر بر سایر ویژگی‌ها می‌تواند حذف یک ویژگی را جبران کند. از هیچ الگوریتم یادگیری ماشینی که این توانایی را نداشته باشد آگاه نیستم.

فصل ۲۵: مدل‌های نیابتی (Surrogate Models)

عنوان اصلی: Global Surrogate Models
منبع: https://christophm.github.io/interpretable-ml-book/global.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


مدل نیابتی سراسری (Global Surrogate Model) یک مدل تفسیرپذیر است که برای تقریب پیش‌بینی‌های یک مدل جعبه سیاه آموزش می‌بیند. با تفسیر مدل نیابتی می‌توان نتیجه‌گیری‌هایی درباره مدل جعبه سیاه به دست آورد. حل مسئله تفسیرپذیری یادگیری ماشین از طریق یادگیری ماشین بیشتر!

نظریه

مدل‌های نیابتی در مهندسی نیز کاربرد دارند: هرگاه اندازه‌گیری یک خروجی مورد نظر هزینه‌بر، زمان‌بر یا به هر دلیلی دشوار باشد (مثلاً هنگامی که از یک شبیه‌سازی پیچیده رایانه‌ای به دست می‌آید)، می‌توان به جای آن از یک مدل نیابتی سریع و ارزان استفاده کرد. تفاوت مدل‌های نیابتی در مهندسی با مدل‌های نیابتی در یادگیری ماشین تفسیرپذیر در این است که مدل پایه یک مدل یادگیری ماشین است (نه یک شبیه‌سازی) و مدل نیابتی باید تفسیرپذیر باشد. هدف از مدل‌های نیابتی (تفسیرپذیر) آن است که پیش‌بینی‌های مدل پایه را تا حد ممکن دقیق تقریب بزنند و در عین حال تفسیرپذیر باشند. ایده مدل‌های نیابتی با نام‌های مختلفی مطرح می‌شود: مدل تقریبی (Approximation model)، فرامدل (Metamodel)، مدل سطح پاسخ (Response surface model)، شبیه‌ساز (Emulator) و غیره.

درباره نظریه: در واقع برای درک مدل‌های نیابتی نیاز به دانش نظری زیادی نیست. هدف این است که تابع پیش‌بینی مدل جعبه سیاه $f$ را تا حد ممکن با تابع پیش‌بینی مدل نیابتی $g$ تقریب بزنیم، با این قید که $g$ تفسیرپذیر باشد. برای $g$ می‌توان از هر مدل تفسیرپذیری استفاده کرد.

برای نمونه، یک مدل خطی:

$$g(\mathbf{x}) = \beta_0 + \beta_1 x_1 + \ldots + \beta_p x_p$$

یا یک درخت تصمیم:

$$g(\mathbf{x}) = \sum_{m=1}^M c_m I{\mathbf{x} \in R_m}$$

آموزش مدل نیابتی یک روش مستقل از مدل (Model-agnostic) است، چرا که نیازی به اطلاع از ساختار داخلی مدل جعبه سیاه ندارد و تنها دسترسی به داده و تابع پیش‌بینی کافی است. اگر مدل یادگیری ماشین پایه با مدل دیگری جایگزین شود، می‌توان همچنان از روش نیابتی استفاده کرد. انتخاب نوع مدل جعبه سیاه و نوع مدل نیابتی از یکدیگر مستقل است.

برای به دست آوردن یک مدل نیابتی، مراحل زیر را طی کنید:

۱. یک مجموعه داده $\mathbf{X}$ انتخاب کنید. این می‌تواند همان مجموعه داده‌ای باشد که برای آموزش مدل جعبه سیاه استفاده شده، یا مجموعه‌ای جدید از همان توزیع. بسته به کاربرد، می‌توان زیرمجموعه‌ای از داده‌ها یا یک شبکه از نقاط را انتخاب کرد. ۲. برای مجموعه داده $\mathbf{X}$، پیش‌بینی‌های مدل جعبه سیاه را به دست آورید. ۳. یک نوع مدل تفسیرپذیر انتخاب کنید (مدل خطی، درخت تصمیم و ...). ۴. مدل تفسیرپذیر را روی مجموعه داده $\mathbf{X}$ و پیش‌بینی‌های آن آموزش دهید. ۵. تبریک! اکنون یک مدل نیابتی دارید. ۶. بسنجید که مدل نیابتی تا چه حد پیش‌بینی‌های مدل جعبه سیاه را بازتولید می‌کند. ۷. مدل نیابتی را تفسیر کنید.

ممکن است با رویکردهایی برای مدل‌های نیابتی روبه‌رو شوید که گام‌های اضافی دارند یا اندکی متفاوتند، اما ایده کلی معمولاً همان چیزی است که در اینجا توضیح داده شد.

یکی از روش‌های سنجش کیفیت تقریب مدل نیابتی نسبت به مدل جعبه سیاه، معیار R-مجذور (R-squared) است:

$$R^2=1 - \frac{SSE}{SST} = 1 - \frac{\sum_{i=1}^n (\hat{y}_*^{(i)} - \hat{y}^{(i)})^2}{\sum_{i=1}^n (\hat{y}^{(i)} - \bar{\hat{y}})^2}$$

که در آن $\hat{y}_*^{(i)}$ پیش‌بینی مدل نیابتی برای نمونه $i$-ام، $\hat{y}^{(i)}$ پیش‌بینی مدل جعبه سیاه، و $\bar{\hat{y}}$ میانگین پیش‌بینی‌های مدل جعبه سیاه است. SSE مخفف مجموع مربعات خطا (Sum of Squares Error) و SST مخفف مجموع مربعات کل (Sum of Squares Total) است. معیار R-مجذور را می‌توان به صورت درصد واریانسی تفسیر کرد که مدل نیابتی توضیح می‌دهد. اگر R-مجذور به ۱ نزدیک باشد (یعنی SSE پایین باشد)، مدل تفسیرپذیر رفتار مدل جعبه سیاه را بسیار خوب تقریب می‌زند. در این حالت، شاید بتوان مدل پیچیده را با مدل تفسیرپذیر جایگزین کرد. اگر R-مجذور به صفر نزدیک باشد (یعنی SSE بالا باشد)، مدل تفسیرپذیر در توضیح مدل جعبه سیاه ناموفق است.

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

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

مثال

برای نمایش مدل‌های نیابتی، یک مثال رگرسیون و یک مثال طبقه‌بندی را بررسی می‌کنیم.

ابتدا یک ماشین بردار پشتیبان (Support Vector Machine) برای پیش‌بینی تعداد روزانه دوچرخه‌های کرایه‌ای بر اساس اطلاعات آب‌وهوایی و تقویمی آموزش می‌دهیم. از آنجا که ماشین بردار پشتیبان چندان تفسیرپذیر نیست، با استفاده از داده‌های آموزشی اصلی، یک مدل نیابتی به شکل درخت تصمیم CART آموزش می‌دهیم تا رفتار ماشین بردار پشتیبان را تقریب بزند. مدل نیابتی نشان‌داده‌شده در شکل ۲۵.۱ دارای R-مجذور (واریانس توضیح‌داده‌شده) برابر با ۰.۷۶ روی داده‌های آزمون است؛ یعنی رفتار مدل جعبه سیاه پایه را نسبتاً خوب تقریب می‌زند، اما نه کامل. اگر برازش کامل بود، می‌توانستیم ماشین بردار پشتیبان را کنار بگذاریم و به جایش از درخت استفاده کنیم. توزیع‌های موجود در گره‌ها نشان می‌دهد که درخت نیابتی تعداد بیشتری دوچرخه کرایه‌ای را پیش‌بینی می‌کند، هنگامی که دما بالای ۱۳ درجه سانتی‌گراد باشد و تعداد دو روز پیش بالاتر بوده باشد.

شکل ۲۵.۱: گره‌های پایانی یک درخت نیابتی که پیش‌بینی‌های یک ماشین بردار پشتیبان آموزش‌دیده روی مجموعه داده کرایه دوچرخه را تقریب می‌زند.

در مثال دوم، جنسیت پنگوئن‌ها (نر یا ماده) را با یک Random Forest طبقه‌بندی می‌کنیم و دوباره یک درخت تصمیم روی مجموعه داده اصلی آموزش می‌دهیم، اما این بار خروجی، پیش‌بینی Random Forest است نه کلاس‌های واقعی داده (نر/ماده). مدل نیابتی نشان‌داده‌شده در شکل ۲۵.۲ دارای R-مجذور برابر با ۰.۷۱ است، یعنی Random Forest را تا حدودی تقریب می‌زند، اما نه کامل.

شکل ۲۵.۲: گره‌های پایانی یک درخت نیابتی که پیش‌بینی‌های یک Random Forest آموزش‌دیده روی مجموعه داده پنگوئن‌ها را تقریب می‌زند. اعداد موجود در گره‌ها، فراوانی طبقه‌بندی‌های مدل جعبه سیاه در هر گره را نشان می‌دهند.

نقاط قوت

روش مدل نیابتی انعطاف‌پذیر است: هر مدل تفسیرپذیری را می‌توان به کار گرفت. این یعنی نه‌تنها می‌توان مدل تفسیرپذیر را عوض کرد، بلکه مدل جعبه سیاه پایه را هم می‌توان جایگزین کرد. فرض کنید مدلی پیچیده ساخته‌اید و می‌خواهید آن را برای تیم‌های مختلف شرکت توضیح دهید. یک تیم با مدل‌های خطی آشناست و تیم دیگر درخت‌های تصمیم را می‌فهمد. می‌توان دو مدل نیابتی (مدل خطی و درخت تصمیم) برای مدل جعبه سیاه اصلی آموزش داد و دو نوع توضیح ارائه کرد. اگر مدل جعبه سیاهی با عملکرد بهتر پیدا کردید، نیازی به تغییر روش تفسیر نیست، چرا که می‌توان از همان کلاس مدل‌های نیابتی استفاده کرد.

این رویکرد بسیار شهودی و ساده است. یعنی هم پیاده‌سازی آن آسان است و هم توضیح دادنش به افرادی که با علم داده یا یادگیری ماشین آشنایی ندارند.

با معیار R-مجذور می‌توان به‌سادگی سنجید که مدل‌های نیابتی تا چه حد پیش‌بینی‌های مدل جعبه سیاه را تقریب می‌زنند.

محدودیت‌ها

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

مشخص نیست آستانه مناسب R-مجذور برای اطمینان از کافی بودن تقریب مدل نیابتی چقدر است. آیا ۸۰٪ واریانس توضیح‌داده‌شده کافی است؟ ۵۰٪؟ ۹۹٪؟

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

مدل تفسیرپذیری که به عنوان مدل نیابتی انتخاب می‌شود تمام مزایا و معایب خود را با خود می‌آورد.

برخی استدلال می‌کنند که به طور کلی هیچ مدل ذاتاً تفسیرپذیری وجود ندارد (حتی مدل‌های خطی و درخت‌های تصمیم) و توهم تفسیرپذیری حتی می‌تواند خطرناک باشد. اگر این دیدگاه را دارید، این روش برای شما مناسب نخواهد بود.

نرم‌افزار

در مثال‌های این فصل از بسته iml در R استفاده شده است. اگر بتوانید یک مدل یادگیری ماشین آموزش دهید، پیاده‌سازی مدل‌های نیابتی نیز برایتان دشوار نخواهد بود. کافی است یک مدل تفسیرپذیر آموزش دهید که پیش‌بینی‌های مدل جعبه سیاه را پیش‌بینی کند.

فصل ۲۶: پروتوتایپ‌ها و انتقادها

عنوان اصلی: Prototypes and Criticisms
منبع: https://christophm.github.io/interpretable-ml-book/proto.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


یک پروتوتایپ (نمونه‌ی نماینده) یک نمونه‌ی داده است که نماینده‌ی کل داده‌هاست. یک انتقاد (criticism) نمونه‌ی داده‌ای است که توسط مجموعه‌ی پروتوتایپ‌ها به‌خوبی بازنمایی نمی‌شود. هدف از انتقادها ارائه‌ی بینش‌هایی در کنار پروتوتایپ‌هاست، به‌ویژه برای نقاط داده‌ای که پروتوتایپ‌ها آن‌ها را به‌درستی نمایندگی نمی‌کنند. پروتوتایپ‌ها و انتقادها را می‌توان مستقل از هر مدل یادگیری ماشین برای توصیف داده‌ها به‌کار برد، اما می‌توان از آن‌ها برای ساخت مدلی تفسیرپذیر یا تفسیرپذیر کردن یک مدل جعبه‌سیاه نیز استفاده کرد.

در این فصل از اصطلاح «نقطه‌ی داده» برای اشاره به یک نمونه‌ی منفرد استفاده می‌کنم تا بر این تفسیر تأکید شود که هر نمونه در عین حال نقطه‌ای در یک فضای مختصاتی است که هر ویژگی یک بُعد از آن را تشکیل می‌دهد. شکل ۲۶.۱ توزیع داده‌ای شبیه‌سازی‌شده را نشان می‌دهد که در آن برخی نمونه‌ها به‌عنوان پروتوتایپ و برخی دیگر به‌عنوان انتقاد انتخاب شده‌اند. نقاط کوچک داده‌ها هستند، نقاط بزرگ انتقادها و مربع‌های بزرگ پروتوتایپ‌ها. پروتوتایپ‌ها در این مثال به‌صورت دستی انتخاب شده‌اند تا مراکز توزیع داده را پوشش دهند، و انتقادها نقاطی در خوشه‌ای هستند که پروتوتایپی برای آن وجود ندارد. پروتوتایپ‌ها و انتقادها همواره نمونه‌های واقعی از داده‌ها هستند.

شکل ۲۶.۱: پروتوتایپ‌ها و انتقادها برای یک توزیع داده با دو ویژگی x1 و x2.

من پروتوتایپ‌ها را به‌صورت دستی انتخاب کردم، روشی که مقیاس‌پذیر نیست و احتمالاً به نتایج ضعیفی منجر می‌شود. رویکردهای متعددی برای یافتن پروتوتایپ در داده‌ها وجود دارد. یکی از آن‌ها k-medoids است، الگوریتمی خوشه‌بندی مرتبط با الگوریتم k-means. هر الگوریتم خوشه‌بندی که نقاط داده‌ی واقعی را به‌عنوان مراکز خوشه بازگرداند، برای انتخاب پروتوتایپ مناسب است. اما اغلب این روش‌ها تنها پروتوتایپ می‌یابند و انتقادی ارائه نمی‌دهند. این فصل روش MMD-critic معرفی‌شده توسط Kim، Khanna و Koyejo (۲۰۱۶) را ارائه می‌دهد؛ رویکردی که پروتوتایپ‌ها و انتقادها را در یک چارچوب واحد ترکیب می‌کند.

MMD-critic توزیع داده‌ها و توزیع پروتوتایپ‌های انتخاب‌شده را با یکدیگر مقایسه می‌کند. این مفهوم محوری برای درک روش MMD-critic است. این روش پروتوتایپ‌هایی را انتخاب می‌کند که اختلاف بین دو توزیع را به حداقل برساند. نقاط داده در مناطق با چگالی بالا پروتوتایپ‌های خوبی هستند، به‌ویژه وقتی نقاط از «خوشه‌های داده‌ای» مختلف انتخاب شوند. نقاط داده‌ای که توسط پروتوتایپ‌ها به‌خوبی توضیح داده نمی‌شوند به‌عنوان انتقاد انتخاب می‌گردند.

نظریه

رویه‌ی MMD-critic را می‌توان در سطح بالا به‌اختصار چنین خلاصه کرد:

۱. تعداد پروتوتایپ‌ها و انتقادهایی را که می‌خواهید بیابید انتخاب کنید. ۲. پروتوتایپ‌ها را با جستجوی حریصانه (greedy search) بیابید. پروتوتایپ‌ها به‌گونه‌ای انتخاب می‌شوند که توزیع آن‌ها به توزیع داده نزدیک باشد. ۳. انتقادها را با جستجوی حریصانه بیابید. نقاطی به‌عنوان انتقاد انتخاب می‌شوند که توزیع پروتوتایپ‌ها در آن‌ها با توزیع داده تفاوت دارد.

برای یافتن پروتوتایپ‌ها و انتقادها در یک مجموعه داده با روش MMD-critic به چند عنصر اساسی نیاز داریم. ابتدایی‌ترین این عناصر یک تابع هسته (kernel function) برای تخمین چگالی داده است. هسته تابعی است که دو نقطه‌ی داده را بر اساس مجاورتشان وزن‌دهی می‌کند. بر پایه‌ی تخمین‌های چگالی، به معیاری نیاز داریم که میزان تفاوت دو توزیع را بسنجد تا بتوانیم تعیین کنیم آیا توزیع پروتوتایپ‌های انتخاب‌شده به توزیع داده نزدیک است یا نه. این مسئله با اندازه‌گیری بیشینه‌ی اختلاف میانگین (Maximum Mean Discrepancy یا MMD) حل می‌شود. همچنین بر اساس تابع هسته، به تابع شاهد (witness function) نیاز داریم که نشان دهد دو توزیع در یک نقطه‌ی داده‌ی مشخص چقدر با هم تفاوت دارند. با تابع شاهد می‌توانیم انتقادها را شناسایی کنیم؛ یعنی نقاط داده‌ای که توزیع پروتوتایپ‌ها و داده در آن‌ها از هم فاصله می‌گیرد و تابع شاهد مقادیر قدرمطلق بزرگی می‌گیرد. آخرین عنصر یک راهبرد جستجو برای یافتن پروتوتایپ‌ها و انتقادهای مناسب است که با جستجوی حریصانه‌ی ساده حل می‌شود.

بگذارید با بیشینه‌ی اختلاف میانگین (MMD) شروع کنیم که اختلاف بین دو توزیع را می‌سنجد. انتخاب پروتوتایپ‌ها یک توزیع چگالی از پروتوتایپ‌ها ایجاد می‌کند. می‌خواهیم ارزیابی کنیم که آیا توزیع پروتوتایپ‌ها با توزیع داده تفاوت دارد. هر دو را با توابع چگالی هسته تخمین می‌زنیم. بیشینه‌ی اختلاف میانگین تفاوت بین دو توزیع را اندازه می‌گیرد، که برابر است با کران بالای تفاوت امیدریاضی‌ها بر روی یک فضای تابعی نسبت به دو توزیع. آیا کاملاً واضح است؟ شخصاً این مفاهیم را وقتی نحوه‌ی محاسبه با داده را می‌بینم بهتر درک می‌کنم. فرمول زیر نحوه‌ی محاسبه‌ی معیار MMD به توان دو (MMD2) را نشان می‌دهد:

$$\text{MMD}^2 = \frac{1}{m^2} \sum_{i,j=1}^m k(\mathbf{z}_i, \mathbf{z}_j) - \frac{2}{mn} \sum_{i=1}^m \sum_{j=1}^n k(\mathbf{z}_i, \mathbf{x}_j) + \frac{1}{n^2} \sum_{i,j=1}^n k(\mathbf{x}_i, \mathbf{x}_j)$$

$k$ تابع هسته‌ای است که شباهت دو نقطه را می‌سنجد، که بعداً بیشتر درباره‌اش توضیح خواهیم داد. $m$ تعداد پروتوتایپ‌های $\mathbf{z}$ و $n$ تعداد نقاط داده‌ی $\mathbf{x}$ در مجموعه داده‌ی اصلی است. پروتوتایپ‌های $\mathbf{z}$ زیرمجموعه‌ای از نقاط داده‌ی $\mathbf{x}$ هستند. هر نقطه چندبُعدی است، یعنی می‌تواند چندین ویژگی داشته باشد. هدف MMD-critic کمینه کردن $\text{MMD}^2$ است. هرچه $\text{MMD}^2$ به صفر نزدیک‌تر باشد، توزیع پروتوتایپ‌ها با داده بهتر تطابق دارد. کلید رساندن $\text{MMD}^2$ به صفر، جمله‌ی میانی است که میانگین مجاورت بین پروتوتایپ‌ها و همه‌ی نقاط داده را محاسبه می‌کند (ضرب در ۲). اگر این جمله با جمع جمله‌ی اول (میانگین مجاورت پروتوتایپ‌ها با یکدیگر) و جمله‌ی آخر (میانگین مجاورت نقاط داده با یکدیگر) برابر شود، پروتوتایپ‌ها داده را به‌طور کامل توضیح می‌دهند. امتحان کنید ببینید اگر همه‌ی $n$ نقطه داده را به‌عنوان پروتوتایپ استفاده کنید چه اتفاقی برای فرمول می‌افتد.

شکل ۲۶.۲ معیار $\text{MMD}^2$ را نشان می‌دهد. نمودار اول نقاط داده را با دو ویژگی نمایش می‌دهد و تخمین چگالی داده با پس‌زمینه‌ی سایه‌دار نشان داده شده است. هر یک از نمودارهای دیگر انتخاب‌های متفاوتی از پروتوتایپ‌ها را به همراه مقدار $\text{MMD}^2$ در عنوان نمودار نشان می‌دهد. پروتوتایپ‌ها نقاط بزرگ هستند و توزیعشان با خطوط هم‌تراز نمایش داده شده است. انتخابی از پروتوتایپ‌ها که داده را در این سناریوها بهتر پوشش می‌دهد (پایین چپ) کمترین مقدار اختلاف را دارد.

شکل ۲۶.۲: معیار بیشینه‌ی اختلاف میانگین به توان دو (MMD2) برای یک مجموعه داده با دو ویژگی و انتخاب‌های متفاوت پروتوتایپ.

یک انتخاب برای هسته، هسته‌ی تابع پایه‌ی شعاعی (radial basis function kernel) است:

$$k(\mathbf{x}, \mathbf{x}^\prime)=\exp\left(-\gamma||\mathbf{x}-\mathbf{x}^\prime||^2\right)$$

که در آن $||\mathbf{x}-\mathbf{x}^\prime||^2$ فاصله‌ی اقلیدسی بین دو نقطه و $\gamma$ یک پارامتر مقیاس‌بندی است. مقدار هسته با افزایش فاصله بین دو نقطه کاهش می‌یابد و بین صفر و یک متغیر است: صفر وقتی دو نقطه بی‌نهایت از هم فاصله دارند و یک وقتی دو نقطه برابرند.

معیار MMD2، هسته و جستجوی حریصانه را در یک الگوریتم برای یافتن پروتوتایپ ترکیب می‌کنیم:

  • با یک فهرست خالی از پروتوتایپ‌ها شروع کنید.
  • تا زمانی که تعداد پروتوتایپ‌ها به تعداد انتخاب‌شده‌ی $m$ نرسیده است:
    • برای هر نقطه در مجموعه داده بررسی کنید افزودن آن نقطه به فهرست پروتوتایپ‌ها چقدر MMD2 را کاهش می‌دهد. نقطه‌ی داده‌ای که MMD2 را بیشتر کمینه می‌کند به فهرست اضافه شود.
  • فهرست پروتوتایپ‌ها را برگردانید.

عنصر باقی‌مانده برای یافتن انتقادها تابع شاهد است که نشان می‌دهد دو تخمین چگالی در یک نقطه‌ی خاص چقدر با هم تفاوت دارند. می‌توان آن را به‌صورت زیر تخمین زد:

$$\mathrm{witness}(\mathbf{x})=\frac{1}{n}\sum_{i=1}^{n}k(\mathbf{x}, \mathbf{x}^{(i)})-\frac{1}{m}\sum_{j=1}^{m}k(\mathbf{x}, \mathbf{z}^{(j)})$$

برای دو مجموعه داده (با ویژگی‌های یکسان)، تابع شاهد به شما امکان می‌دهد ارزیابی کنید که نقطه‌ی $\mathbf{x}$ با کدام توزیع تجربی بهتر تناسب دارد. برای یافتن انتقادها، به دنبال مقادیر شدید تابع شاهد در هر دو جهت مثبت و منفی هستیم. جمله‌ی اول در تابع شاهد میانگین مجاورت نقطه‌ی $\mathbf{x}$ با داده است، و به‌ترتیب جمله‌ی دوم میانگین مجاورت نقطه‌ی $\mathbf{x}$ با پروتوتایپ‌هاست. اگر تابع شاهد برای نقطه‌ی $\mathbf{x}$ به صفر نزدیک باشد، تابع چگالی داده و پروتوتایپ‌ها به هم نزدیک هستند، یعنی توزیع پروتوتایپ‌ها در نقطه‌ی $\mathbf{x}$ شبیه به توزیع داده است. تابع شاهد منفی در نقطه‌ی $\mathbf{x}$ یعنی توزیع پروتوتایپ توزیع داده را بیش از حد تخمین می‌زند (برای مثال اگر پروتوتایپی انتخاب کنیم اما نقاط داده‌ی کمی در اطرافش وجود داشته باشد)؛ تابع شاهد مثبت در نقطه‌ی $\mathbf{x}$ یعنی توزیع پروتوتایپ توزیع داده را کمتر از حد واقعی تخمین می‌زند (برای مثال اگر نقاط داده‌ی زیادی اطراف $\mathbf{x}$ وجود داشته باشد اما هیچ پروتوتایپی در مجاورت آن انتخاب نشده باشد).

برای درک بهتر، پروتوتایپ‌هایی که در نمودار قبلی با کمترین MMD2 نشان داده شدند را دوباره استفاده می‌کنیم و تابع شاهد را برای چند نقطه‌ی انتخاب‌شده‌ی دستی نمایش می‌دهیم. برچسب‌ها در شکل ۲۶.۳ مقدار تابع شاهد را برای نقاط مختلف علامت‌گذاری‌شده با مثلث نشان می‌دهند. تنها نقطه‌ی میانی مقدار قدرمطلق بالایی دارد و بنابراین نامزد خوبی برای یک انتقاد است.

شکل ۲۶.۳: ارزیابی تابع شاهد در نقاط مختلف.

تابع شاهد به ما امکان می‌دهد به‌صراحت به دنبال نمونه‌های داده‌ای بگردیم که توسط پروتوتایپ‌ها به‌خوبی بازنمایی نشده‌اند. انتقادها نقاطی با مقدار قدرمطلق بالا در تابع شاهد هستند. مانند پروتوتایپ‌ها، انتقادها نیز از طریق جستجوی حریصانه یافت می‌شوند. اما به‌جای کاهش کلی $\text{MMD}^2$، به دنبال نقاطی هستیم که یک تابع هزینه شامل تابع شاهد و یک جمله‌ی تنظیم‌کننده را بیشینه کنند. جمله‌ی اضافی در تابع بهینه‌سازی تنوع بین نقاط را تضمین می‌کند که لازم است تا نقاط از خوشه‌های مختلف باشند.

این مرحله‌ی دوم مستقل از نحوه‌ی یافتن پروتوتایپ‌هاست. می‌توانستم پروتوتایپ‌ها را به‌صورت دستی انتخاب کنم و از همین رویه برای یادگیری انتقادها استفاده کنم. یا پروتوتایپ‌ها می‌توانستند از هر روش خوشه‌بندی دیگری مانند k-medoids بیایند.

این بود بخش‌های مهم نظریه‌ی MMD-critic. یک سؤال باقی می‌ماند: چگونه می‌توان از MMD-critic برای یادگیری ماشین تفسیرپذیر استفاده کرد؟

MMD-critic می‌تواند به سه روش تفسیرپذیری را افزایش دهد: با کمک به درک بهتر توزیع داده؛ با ساخت یک مدل تفسیرپذیر؛ و با تفسیرپذیر کردن یک مدل جعبه‌سیاه.

اگر MMD-critic را روی داده‌های خود اعمال کنید تا پروتوتایپ‌ها و انتقادها را بیابید، درک شما از داده بهبود می‌یابد، به‌ویژه اگر توزیع داده‌ای پیچیده با موارد استثنایی داشته باشید. اما با MMD-critic می‌توان بیشتر از این هم به دست آورد!

برای مثال، می‌توانید یک مدل پیش‌بینی تفسیرپذیر بسازید: به اصطلاح «مدل نزدیک‌ترین پروتوتایپ» (nearest prototype model). تابع پیش‌بینی به‌صورت زیر تعریف می‌شود:

$$\hat{f}(\mathbf{x})=\arg\max_{i\in S}k(\mathbf{x},\mathbf{x}_i)$$

یعنی از مجموعه‌ی پروتوتایپ‌های $S$، پروتوتایپی $i$ را انتخاب می‌کنیم که به نقطه‌ی داده‌ی جدید نزدیک‌ترین باشد، به این معنا که بیشترین مقدار تابع هسته را به دست دهد. خود پروتوتایپ به‌عنوان توضیحی برای پیش‌بینی بازگردانده می‌شود. این رویه سه پارامتر تنظیمی دارد: نوع هسته، پارامتر مقیاس‌بندی هسته و تعداد پروتوتایپ‌ها. همه‌ی پارامترها می‌توانند درون یک حلقه‌ی اعتبارسنجی متقاطع بهینه شوند. در این رویکرد از انتقادها استفاده نمی‌شود.

به‌عنوان گزینه‌ی سوم، می‌توانیم از MMD-critic برای توضیح‌پذیر کردن سراسری هر مدل یادگیری ماشین استفاده کنیم، با بررسی پروتوتایپ‌ها و انتقادها در کنار پیش‌بینی‌های مدل. رویه به‌صورت زیر است:

۱. پروتوتایپ‌ها و انتقادها را با MMD-critic بیابید. ۲. مدل یادگیری ماشین را به روش معمول آموزش دهید. ۳. نتایج را برای پروتوتایپ‌ها و انتقادها با مدل یادگیری ماشین پیش‌بینی کنید. ۴. پیش‌بینی‌ها را تحلیل کنید: در چه مواردی الگوریتم اشتباه کرده است؟ اکنون مجموعه‌ای از نمونه‌ها دارید که داده را به‌خوبی نمایندگی می‌کنند و به شما کمک می‌کنند نقاط ضعف مدل یادگیری ماشین را پیدا کنید.

این چه کمکی می‌کند؟ به یاد دارید وقتی دسته‌بند تصویر Google سیاه‌پوستان را به‌عنوان گوریل شناسایی کرد؟ شاید باید از رویه‌ی توصیف‌شده در اینجا پیش از استقرار مدل تشخیص تصویر استفاده می‌کردند. صرف بررسی عملکرد مدل کافی نیست، چون اگر دقت آن ۹۹٪ بود، این مشکل همچنان می‌توانست در آن ۱٪ پنهان باشد. برچسب‌ها هم می‌توانند اشتباه باشند! بررسی همه‌ی داده‌های آموزشی و انجام یک بررسی سلامت برای شناسایی پیش‌بینی‌های مشکل‌دار امکان‌پذیر نیست. اما انتخاب — مثلاً چند هزار — پروتوتایپ و انتقاد امکان‌پذیر است و می‌توانست مشکلی در داده‌ها آشکار کند: ممکن بود نشان دهد که تصاویر افراد با پوست تیره کمیاب هستند، که نشان‌دهنده‌ی مشکلی در تنوع مجموعه داده است. یا ممکن بود یک یا چند تصویر از فردی با پوست تیره به‌عنوان پروتوتایپ یا (احتمالاً) به‌عنوان انتقاد با دسته‌بندی بدنام «گوریل» نمایش داده شود. ادعا نمی‌کنم که MMD-critic قطعاً این نوع اشتباهات را شناسایی می‌کند، اما یک بررسی سلامت مناسب است.

مثال‌ها

مثال زیر از MMD-critic از یک مجموعه داده‌ی ارقام دست‌نویس استفاده می‌کند. با نگاه کردن به پروتوتایپ‌های واقعی در شکل ۲۶.۴، ممکن است متوجه شوید که تعداد تصاویر به‌ازای هر رقم متفاوت است. این به آن دلیل است که تعداد ثابتی از پروتوتایپ‌ها در کل مجموعه داده جستجو شده‌اند، نه با تعداد ثابت به‌ازای هر کلاس. همان‌طور که انتظار می‌رود، پروتوتایپ‌ها روش‌های مختلف نوشتن ارقام را نشان می‌دهند.

شکل ۲۶.۴: پروتوتایپ‌ها برای یک مجموعه داده‌ی ارقام دست‌نویس.

نقاط قوت

در یک مطالعه‌ی کاربری، نویسندگان MMD-critic تصاویری را در اختیار شرکت‌کنندگان قرار دادند که می‌بایست آن‌ها را به‌صورت بصری با یکی از دو مجموعه‌ی تصویر تطبیق می‌دادند، که هر مجموعه نمایانگر یکی از دو کلاس بود (مثلاً دو نژاد سگ). شرکت‌کنندگان بهترین عملکرد را داشتند وقتی مجموعه‌ها پروتوتایپ‌ها و انتقادها را نشان می‌دادند به‌جای تصاویر تصادفی از یک کلاس.

شما آزادید تعداد پروتوتایپ‌ها و انتقادها را انتخاب کنید.

MMD-critic با تخمین‌های چگالی داده کار می‌کند. این با هر نوع داده و هر نوع مدل یادگیری ماشین قابل استفاده است.

الگوریتم پیاده‌سازی آسانی دارد.

MMD-critic در شیوه‌ی استفاده برای افزایش تفسیرپذیری انعطاف‌پذیر است. می‌توان از آن برای درک توزیع‌های داده‌ی پیچیده استفاده کرد. می‌توان از آن برای ساخت یک مدل یادگیری ماشین تفسیرپذیر بهره برد. یا می‌تواند نور را بر تصمیم‌گیری یک مدل یادگیری ماشین جعبه‌سیاه بتاباند.

یافتن انتقادها مستقل از فرایند انتخاب پروتوتایپ‌هاست. اما انتخاب پروتوتایپ‌ها بر اساس MMD-critic منطقی است، چون در آن صورت هم پروتوتایپ‌ها و هم انتقادها با همان روش مقایسه‌ی چگالی پروتوتایپ‌ها و داده ساخته می‌شوند.

محدودیت‌ها

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

باید تعداد پروتوتایپ‌ها و انتقادها را انتخاب کنید. هرچند این می‌تواند مزیتی باشد، اما یک عیب هم هست. چند پروتوتایپ و انتقاد واقعاً نیاز داریم؟ هرچه بیشتر بهتر؟ هرچه کمتر بهتر؟ یک راه‌حل، انتخاب تعداد پروتوتایپ‌ها و انتقادها بر اساس زمانی است که انسان‌ها برای بررسی تصاویر دارند، که به کاربرد خاص بستگی دارد. تنها زمانی که از MMD-critic برای ساخت یک دسته‌بند استفاده می‌کنیم، روشی برای بهینه‌سازی مستقیم آن داریم. یک راه‌حل می‌تواند یک نمودار شیب (scree plot) باشد که تعداد پروتوتایپ‌ها را روی محور x و معیار $\text{MMD}^2$ را روی محور y نشان می‌دهد. تعداد پروتوتایپ‌هایی را انتخاب می‌کنیم که در آنجا منحنی $\text{MMD}^2$ صاف می‌شود.

پارامترهای دیگر انتخاب هسته و پارامتر مقیاس‌بندی هسته هستند. همان مشکل تعداد پروتوتایپ‌ها و انتقادها را داریم: چگونه یک هسته و پارامتر مقیاس‌بندی آن را انتخاب کنیم؟ دوباره، وقتی از MMD-critic به‌عنوان دسته‌بند نزدیک‌ترین پروتوتایپ استفاده می‌کنیم، می‌توانیم پارامترهای هسته را تنظیم کنیم. اما برای موارد استفاده‌ی بدون نظارت MMD-critic، موضوع نامشخص است. (شاید در این مورد کمی سخت‌گیرانه قضاوت می‌کنم، چون همه‌ی روش‌های بدون نظارت این مشکل را دارند.)

این روش همه‌ی ویژگی‌ها را به‌عنوان ورودی می‌گیرد، بدون توجه به اینکه برخی ویژگی‌ها ممکن است برای پیش‌بینی نتیجه‌ی موردنظر مرتبط نباشند. یک راه‌حل استفاده از ویژگی‌های مرتبط است، برای مثال embedding‌های تصویر به‌جای پیکسل‌های خام. این در صورتی کارآمد است که روشی برای تصویر کردن نمونه‌ی اصلی روی یک بازنمایی حاوی تنها اطلاعات مرتبط داشته باشیم.

کدهایی در دسترس هستند، اما هنوز به‌صورت نرم‌افزار بسته‌بندی‌شده و مستندشده‌ی مناسبی پیاده‌سازی نشده‌اند.

نرم‌افزار و جایگزین‌ها

پیاده‌سازی MMD-critic را می‌توان در مخزن GitHub نویسندگان یافت. پیاده‌سازی Python دیگری به نام mmd-critic نیز وجود دارد که از طریق pip قابل نصب است.

اخیراً یک توسعه‌ی MMD-critic با نام Protodash معرفی شده است. نویسندگان در مقاله‌ی خود مزایایی نسبت به MMD-critic ادعا می‌کنند. پیاده‌سازی Protodash در ابزار IBM AIX360 موجود است.

ساده‌ترین جایگزین برای یافتن پروتوتایپ‌ها k-medoids اثر Rdusseeun و Kaufman (۱۹۸۷) است.


Kim, Been, Rajiv Khanna, and Oluwasanmi Koyejo. 2016. "Examples Are Not Enough, Learn to Criticize! Criticism for Interpretability." In Proceedings of the 30th International Conference on Neural Information Processing Systems, 2288–96. NIPS'16. Red Hook, NY, USA: Curran Associates Inc.

Rdusseeun, LKPJ, and P Kaufman. 1987. "Clustering by Means of Medoids." In Proceedings of the Statistical Data Analysis Based on the L1 Norm Conference, Neuchatel, Switzerland. Vol. 31.

فصل ۲۷: ویژگی‌های آموخته‌شده

عنوان اصلی: Learned Features
منبع: https://christophm.github.io/interpretable-ml-book/cnn-features.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


شبکه‌های عصبی کانولوشنی (Convolutional Neural Networks یا CNN) ویژگی‌ها و مفاهیم انتزاعی را مستقیماً از پیکسل‌های خام تصویر می‌آموزند. تجسم ویژگی (Feature Visualization) این ویژگی‌های آموخته‌شده را از طریق بیشینه‌سازی فعال‌سازی نمایان می‌سازد. تشریح شبکه (Network Dissection) واحدهای شبکه‌ی عصبی (مانند کانال‌ها) را با مفاهیم قابل‌فهم برای انسان برچسب‌گذاری می‌کند.

شبکه‌های عصبی عمیق ویژگی‌های سطح‌بالا را در لایه‌های پنهان می‌آموزند؛ این یکی از بزرگ‌ترین مزیت‌های آن‌هاست و نیاز به مهندسی ویژگی دستی را کاهش می‌دهد. فرض کنید می‌خواهید یک طبقه‌بند تصویر با استفاده از ماشین بردار پشتیبان (SVM) بسازید. ماتریس‌های پیکسل خام بهترین ورودی برای آموزش SVM نیستند؛ بنابراین ویژگی‌های جدیدی بر اساس رنگ، دامنه‌ی فرکانسی، آشکارکننده‌های لبه و موارد دیگر می‌سازید. اما در شبکه‌های عصبی کانولوشنی، تصویر در قالب خام خود (پیکسل) وارد شبکه می‌شود و شبکه تصویر را بارها دگرگون می‌کند. ابتدا تصویر از لایه‌های کانولوشنی متعددی می‌گذرد و در هر لایه، شبکه ویژگی‌های جدید و پیچیده‌تری می‌آموزد (شکل ۲۷.۱). سپس اطلاعات تصویر پردازش‌شده از لایه‌های کاملاً متصل (Fully Connected) عبور می‌کند و به یک دسته‌بندی یا پیش‌بینی تبدیل می‌شود.

  • اولین لایه(های) کانولوشنی ویژگی‌هایی مانند لبه‌ها و بافت‌های ساده می‌آموزند.
  • لایه‌های کانولوشنی میانی ویژگی‌هایی مانند بافت‌ها و الگوهای پیچیده‌تر می‌آموزند.
  • آخرین لایه‌های کانولوشنی ویژگی‌هایی مانند اشیاء یا بخش‌هایی از اشیاء می‌آموزند.
  • لایه‌های کاملاً متصل یاد می‌گیرند که فعال‌سازی‌های ویژگی‌های سطح‌بالا را به کلاس‌های مجزای مورد پیش‌بینی نگاشت کنند.

شکل ۲۷.۱: ویژگی‌های آموخته‌شده توسط یک شبکه‌ی عصبی کانولوشنی (Inception V1) آموزش‌دیده بر روی داده‌های ImageNet. ویژگی‌ها از ساده در لایه‌های پایین‌تر کانولوشنی (چپ) تا انتزاعی‌تر در لایه‌های بالاتر (راست) گسترش دارند. شکل از Olah و همکاران (۲۰۱۷، CC-BY 4.0) https://distill.pub/2017/feature-visualization/appendix/.

تجسم ویژگی

رویکرد آشکارسازی ویژگی‌های آموخته‌شده، تجسم ویژگی (Feature Visualization) نامیده می‌شود. تجسم ویژگی برای یک واحد از شبکه‌ی عصبی با یافتن ورودی‌ای انجام می‌شود که فعال‌سازی آن واحد را بیشینه کند. «واحد» می‌تواند به نورون‌های منفرد، کانال‌ها (که نقشه‌های ویژگی نیز نامیده می‌شوند)، کل لایه‌ها، یا احتمال نهایی کلاس در دسته‌بندی (یا نورون پیش از softmax که توصیه می‌شود) اشاره داشته باشد. شکل ۲۷.۲ امکانات مختلف را نمایش می‌دهد.

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

شکل ۲۷.۲: تجسم ویژگی برای واحدهای مختلف قابل انجام است. الف) نورون کانولوشنی، ب) کانال کانولوشنی، ج) لایه‌ی کانولوشنی، د) نورون، ه) لایه‌ی پنهان، و) نورون احتمال کلاس (یا نورون پیش از softmax)

تجسم ویژگی از طریق بهینه‌سازی

از نظر ریاضی، تجسم ویژگی یک مسئله‌ی بهینه‌سازی است. فرض می‌کنیم وزن‌های شبکه‌ی عصبی ثابت هستند؛ یعنی شبکه از پیش آموزش دیده. ما به دنبال تصویر جدیدی هستیم که فعال‌سازی (میانگین) یک واحد را بیشینه کند؛ در اینجا یک نورون منفرد:

$$\mathbf{x}^*=\arg\max_{\mathbf{x}}h_{n,u,v,z}(\mathbf{x})$$

تابع $h$ فعال‌سازی یک نورون خاص است، $\mathbf{x}$ ورودی شبکه (یک تصویر)، $u$ و $v$ موقعیت فضایی نورون را مشخص می‌کنند، $n$ لایه را تعیین می‌کند، و $z$ شاخص کانال است. برای بیشینه‌سازی میانگین فعال‌سازی کل کانال $z$ در لایه‌ی $n$، داریم:

$$\mathbf{x}^*=\arg\max_{\mathbf{x}}\sum_{u,v}h_{n,u,v,z}(\mathbf{x})$$

در این فرمول، همه‌ی نورون‌های کانال $z$ وزن یکسانی دارند. همچنین می‌توان جهت‌های تصادفی را بیشینه کرد؛ یعنی نورون‌ها با پارامترهای مختلف، از جمله جهت‌های منفی، ضرب می‌شوند. به این ترتیب نحوه‌ی تعامل نورون‌ها در داخل کانال بررسی می‌شود. به جای بیشینه‌سازی فعال‌سازی، می‌توان آن را کمینه کرد (که معادل بیشینه‌سازی جهت منفی است). شکل ۲۷.۳ هر دو حالت را نشان می‌دهد. جالب اینجاست که بیشینه‌سازی جهت منفی، ویژگی‌های کاملاً متفاوتی برای همان واحد نمایان می‌سازد؛ در حالی که نورون با چرخ‌ها به حداکثر فعال‌سازی می‌رسد، به نظر می‌رسد چیزی که چشم دارد فعال‌سازی منفی ایجاد می‌کند.

شکل ۲۷.۳: فعال‌سازی مثبت (چپ) و منفی (راست) نورون ۴۸۴ از Inception V1 در لایه‌ی mixed4d pre relu.

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

رویکرد دیگر تولید تصاویر جدید است که از نویز تصادفی آغاز می‌شود (شکل ۲۷.۴). برای به‌دست‌آوردن تجسم‌های معنادار، معمولاً محدودیت‌هایی روی تصویر اعمال می‌شود؛ مثلاً تنها تغییرات کوچک مجاز هستند. برای کاهش نویز در تجسم ویژگی، می‌توان پیش از مرحله‌ی بهینه‌سازی، جابه‌جایی، چرخش یا مقیاس‌بندی به تصویر اعمال کرد. گزینه‌های منظم‌سازی دیگر شامل جریمه‌ی فرکانسی (مثلاً کاهش واریانس پیکسل‌های مجاور) یا تولید تصاویر با پیش‌بینی‌های آموخته‌شده‌اند، مانند استفاده از شبکه‌های مولد تخاصمی (GANs) (Nguyen و همکاران ۲۰۱۶) یا اتوانکودرهای حذف‌نویز (Nguyen و همکاران ۲۰۱۷).

شکل ۲۷.۴: بهینه‌سازی تکراری از تصویر تصادفی به سمت بیشینه‌سازی فعال‌سازی. Olah و همکاران ۲۰۱۷ (CC-BY 4.0)، https://distill.pub/2017/feature-visualization/.

برای مطالعه‌ی عمیق‌تر تجسم ویژگی، توصیه می‌شود به مجله‌ی آنلاین distill.pub مراجعه کنید، به‌ویژه مقاله‌ی تجسم ویژگی نوشته‌ی Olah، Mordvintsev و Schubert (۲۰۱۷) که بسیاری از تصاویر این بخش از آن گرفته شده است. مقاله‌ی «بلوک‌های سازنده‌ی تفسیرپذیری» (Olah و همکاران ۲۰۱۸) نیز توصیه می‌شود.

ارتباط با نمونه‌های تخاصمی

میان تجسم ویژگی و نمونه‌های تخاصمی (Adversarial Examples) ارتباطی وجود دارد: هر دو روش فعال‌سازی یک واحد شبکه‌ی عصبی را بیشینه می‌کنند. در نمونه‌های تخاصمی، به دنبال بیشینه‌سازی فعال‌سازی نورون برای کلاس تخاصمی (= نادرست) هستیم. یک تفاوت در تصویر آغازین است: در نمونه‌های تخاصمی، تصویری است که می‌خواهیم نسخه‌ی تخاصمی آن را بسازیم؛ در تجسم ویژگی، بسته به رویکرد، نویز تصادفی است.

داده‌های متنی و جدولی

پژوهش‌های موجود عمدتاً بر تجسم ویژگی در شبکه‌های عصبی کانولوشنی برای تشخیص تصویر متمرکز هستند. از نظر فنی، هیچ مانعی برای یافتن ورودی‌ای که فعال‌سازی نورون یک شبکه‌ی عصبی کاملاً متصل برای داده‌های جدولی یا یک شبکه‌ی عصبی بازگشتی (Recurrent Neural Network) برای داده‌های متنی را بیشینه کند وجود ندارد. البته دیگر نمی‌توان آن را تجسم ویژگی نامید، زیرا «ویژگی» یک ورودی جدولی یا متنی خواهد بود. در پیش‌بینی نکول اعتباری، ورودی‌ها ممکن است شامل تعداد اعتبارات قبلی، تعداد قراردادهای موبایل، آدرس و ده‌ها ویژگی دیگر باشند. در این صورت، ویژگی آموخته‌شده‌ی یک نورون ترکیب خاصی از همین ده‌ها ویژگی خواهد بود.

برای شبکه‌های عصبی بازگشتی، تجسم آنچه شبکه آموخته کمی جذاب‌تر است. Karpathy، Johnson و Fei-Fei (۲۰۱۵) نشان دادند که شبکه‌های عصبی بازگشتی واقعاً نورون‌هایی دارند که ویژگی‌های قابل تفسیر می‌آموزند. آن‌ها یک مدل در سطح کاراکتر آموزش دادند که کاراکتر بعدی را از کاراکترهای قبلی پیش‌بینی می‌کند. پس از ظاهر شدن پرانتز باز «(»، یکی از نورون‌ها به شدت فعال می‌شد و با ظاهر شدن پرانتز بسته‌ی متناظر «)» غیرفعال می‌شد. نورون‌های دیگر در پایان خط فعال می‌شدند و برخی در URLها. تفاوت با تجسم ویژگی در CNNها این است که نمونه‌ها از طریق بهینه‌سازی پیدا نشدند، بلکه با مطالعه‌ی فعال‌سازی نورون‌ها در داده‌های آموزشی به دست آمدند.

برخی از تصاویر تجسم ویژگی به نظر می‌رسد مفاهیم شناخته‌شده‌ای مانند پوزه‌ی سگ یا ساختمان را نشان می‌دهند. اما چطور می‌توانیم مطمئن باشیم؟ روش تشریح شبکه مفاهیم انسانی را با واحدهای منفرد شبکه‌ی عصبی پیوند می‌دهد. هشدار: تشریح شبکه به مجموعه‌داده‌های اضافه‌ای نیاز دارد که کسی آن‌ها را با مفاهیم انسانی برچسب‌گذاری کرده باشد.

تشریح شبکه

رویکرد تشریح شبکه (Network Dissection) توسط Bau و همکاران (۲۰۱۷) تفسیرپذیری یک واحد از شبکه‌ی عصبی کانولوشنی را کمّی می‌کند. این رویکرد نواحی با فعال‌سازی بالای کانال‌های CNN را به مفاهیم انسانی (اشیاء، بخش‌ها، بافت‌ها، رنگ‌ها و …) پیوند می‌دهد.

کانال‌های یک شبکه‌ی عصبی کانولوشنی ویژگی‌های جدیدی می‌آموزند، همان‌طور که در بخش تجسم ویژگی دیدیم. اما این تجسم‌ها ثابت نمی‌کنند که یک واحد مفهوم خاصی آموخته است. معیاری هم برای سنجش اینکه یک واحد تا چه حد، مثلاً، آسمان‌خراش را تشخیص می‌دهد نداریم. پیش از پرداختن به جزئیات تشریح شبکه، باید درباره‌ی فرضیه‌ی اصلی این حوزه‌ی پژوهشی صحبت کنیم: «واحدهای یک شبکه‌ی عصبی (مانند کانال‌های کانولوشنی) مفاهیم جداافتاده‌ای می‌آموزند.» آیا واقعاً این‌طور است؟

پرسش ویژگی‌های جداافتاده

آیا شبکه‌های عصبی (کانولوشنی) ویژگی‌های جداافتاده (Disentangled Features) می‌آموزند؟ ویژگی‌های جداافتاده به این معناست که واحدهای منفرد شبکه مفاهیم خاص دنیای واقعی را تشخیص می‌دهند. کانال ۳۹۴ کانولوشنی ممکن است آسمان‌خراش‌ها را تشخیص دهد، کانال ۱۲۱ پوزه‌ی سگ، کانال ۱۲ نوارهایی با زاویه‌ی ۳۰ درجه و … در مقابل، شبکه‌ی کاملاً درهم‌آمیخته قرار دارد که هیچ واحد منفردی برای تشخیص پوزه‌ی سگ ندارد و همه‌ی کانال‌ها در این تشخیص مشارکت دارند.

ویژگی‌های جداافتاده به این معنا هستند که شبکه به شدت تفسیرپذیر است. فرض کنید شبکه‌ای داریم با واحدهایی کاملاً جداافتاده که با مفاهیم شناخته‌شده برچسب‌گذاری شده‌اند. این امکان را فراهم می‌کند که فرایند تصمیم‌گیری شبکه را دنبال کنیم. برای مثال، می‌توانیم بررسی کنیم که شبکه چگونه گرگ را از هاسکی متمایز می‌کند. ابتدا «واحد هاسکی» را شناسایی می‌کنیم و می‌بینیم آیا این واحد به «پوزه‌ی سگ»، «خز پُر» و «برف» از لایه‌ی قبل وابسته است یا نه. اگر وابسته باشد، می‌دانیم که تصویر یک هاسکی با پس‌زمینه‌ی برفی را به اشتباه گرگ طبقه‌بندی خواهد کرد. در یک شبکه‌ی جداافتاده می‌توانستیم همبستگی‌های غیرعلّی مشکل‌ساز را شناسایی کنیم. می‌توانستیم به‌طور خودکار همه‌ی واحدهای با فعال‌سازی بالا و مفاهیم آن‌ها را فهرست کنیم تا پیش‌بینی منفردی توضیح داده شود. می‌توانستیم بایاس در شبکه را به آسانی تشخیص دهیم؛ مثلاً آیا شبکه ویژگی «پوست روشن» را برای پیش‌بینی حقوق آموخته است؟

هشدار: شبکه‌های عصبی کانولوشنی کاملاً جداافتاده نیستند. اکنون تشریح شبکه را با جزئیات بیشتری بررسی می‌کنیم تا ببینیم شبکه‌های عصبی تا چه حد تفسیرپذیر هستند.

الگوریتم

تشریح شبکه سه مرحله دارد:

۱. تهیه‌ی تصاویر با مفاهیم بصری برچسب‌گذاری‌شده‌ی انسانی، از نوار تا آسمان‌خراش. ۲. اندازه‌گیری فعال‌سازی کانال‌های CNN برای این تصاویر. ۳. کمّی‌سازی هم‌ترازی فعال‌سازی‌ها و مفاهیم برچسب‌گذاری‌شده.

شکل ۲۷.۵ نحوه‌ی انتقال یک تصویر به یک کانال و تطبیق با مفاهیم برچسب‌گذاری‌شده را نمایش می‌دهد.

شکل ۲۷.۵: برای یک تصویر ورودی و یک شبکه‌ی آموزش‌دیده (با وزن‌های ثابت)، تصویر را به سمت لایه‌ی هدف انتشار می‌دهیم، فعال‌سازی‌ها را به اندازه‌ی تصویر اصلی بزرگ می‌کنیم و حداکثر فعال‌سازی‌ها را با تقسیم‌بندی پیکسلی زمینه‌ی حقیقت مقایسه می‌کنیم. شکل اصلی از http://netdissect.csail.mit.edu/.

مرحله‌ی اول: مجموعه‌داده‌ی Broden

اولین مرحله‌ی دشوار اما حیاتی، جمع‌آوری داده است. تشریح شبکه به تصاویر برچسب‌گذاری‌شده‌ی پیکسلی با مفاهیم در سطوح مختلف انتزاع (از رنگ‌ها تا صحنه‌های شهری) نیاز دارد. Bau و Zhou و همکاران چند مجموعه‌داده با مفاهیم پیکسلی را ترکیب کردند و این مجموعه‌داده‌ی جدید را «Broden» نامیدند که مخفف «داده‌ی گسترده و چگال برچسب‌خورده» (Broadly and Densely Labeled) است. مجموعه‌داده‌ی Broden عمدتاً در سطح پیکسل تقسیم‌بندی شده؛ برای برخی مجموعه‌داده‌ها، کل تصویر برچسب خورده است. Broden شامل ۶۰٬۰۰۰ تصویر با بیش از ۱٬۰۰۰ مفهوم بصری در سطوح مختلف انتزاع است: ۴۶۸ صحنه، ۵۸۵ شیء، ۲۳۴ بخش، ۳۲ ماده، ۴۷ بافت، و ۱۱ رنگ.

مرحله‌ی دوم: استخراج فعال‌سازی‌های شبکه

در مرحله‌ی بعد، ماسک‌های نواحی با بیشترین فعال‌سازی به ازای هر کانال و هر تصویر ساخته می‌شوند. در این مرحله، برچسب‌های مفهوم هنوز دخیل نیستند.

  • برای هر کانال کانولوشنی $k$:
    • برای هر تصویر $\mathbf{x}$ در مجموعه‌داده‌ی Broden:
      • تصویر $\mathbf{x}$ را به لایه‌ی هدف حاوی کانال $k$ انتشار دهید.
      • فعال‌سازی‌های پیکسلی کانال کانولوشنی $k$ را استخراج کنید: $A_k(\mathbf{x})$.
    • توزیع فعال‌سازی‌های پیکسلی $\alpha_k$ را روی همه‌ی تصاویر محاسبه کنید.
    • آستانه‌ی چندک ۰.۹۹۵ فعال‌سازی‌ها $\alpha_k$ را به صورت $T_k$ تعیین کنید. یعنی ۰.۵٪ از فعال‌سازی‌های کانال $k$ در مجموعه‌داده از $T_k$ بزرگ‌ترند.
    • برای هر تصویر $\mathbf{x}$ در مجموعه‌داده‌ی Broden:
      • نقشه‌ی فعال‌سازی $A_k(\mathbf{x})$ را (که ممکن است وضوح پایین‌تری داشته باشد) به وضوح تصویر $\mathbf{x}$ مقیاس‌بندی کنید. نتیجه را $S_k(\mathbf{x})$ می‌نامیم.
      • نقشه‌ی فعال‌سازی را دودویی کنید: یک پیکسل یا فعال است یا غیرفعال، بسته به اینکه از آستانه‌ی $T_k$ فراتر رفته یا نه. ماسک جدید $M_k(\mathbf{x})=S_k(\mathbf{x})\geq T_k$ است.

مرحله‌ی سوم: هم‌ترازی فعال‌سازی-مفهوم

پس از مرحله‌ی دوم، به ازای هر کانال و هر تصویر یک ماسک فعال‌سازی داریم که نواحی با فعال‌سازی بالا را مشخص می‌کند. برای هر کانال، به دنبال مفهوم انسانی‌ای هستیم که آن کانال را فعال می‌کند. مفهوم را با مقایسه‌ی ماسک‌های فعال‌سازی با همه‌ی مفاهیم برچسب‌خورده پیدا می‌کنیم. هم‌ترازی بین ماسک فعال‌سازی $k$ و ماسک مفهوم $c$ را با امتیاز اشتراک بر اتحاد (Intersection over Union یا IoU) کمّی می‌کنیم:

$$IoU_{k,c}=\frac{|M_k(\mathbf{x})\cap L_c(\mathbf{x})|}{|M_k(\mathbf{x})\cup L_c(\mathbf{x})|}$$

که در آن $|\cdot|$ اندازه‌ی مجموعه است. اشتراک بر اتحاد هم‌ترازی بین دو ناحیه را مقایسه می‌کند. $IoU_{k,c}$ را می‌توان به عنوان دقت تشخیص مفهوم $c$ توسط واحد $k$ تفسیر کرد. واحد $k$ را زمانی آشکارساز مفهوم $c$ می‌نامیم که $IoU_{k,c}>0.04$. این آستانه توسط Bau و Zhou و همکاران (۲۰۱۷) انتخاب شده است.

شکل ۲۷.۶ اشتراک و اتحاد ماسک فعال‌سازی و ماسک مفهوم را برای یک تصویر نشان می‌دهد، و شکل ۲۷.۷ واحدی را نشان می‌دهد که سگ را تشخیص می‌دهد.

شکل ۲۷.۶: اشتراک بر اتحاد (IoU) با مقایسه‌ی برچسب‌گذاری زمینه‌ی حقیقت انسانی و پیکسل‌های با بیشترین فعال‌سازی محاسبه می‌شود.

شکل ۲۷.۷: ماسک فعال‌سازی برای کانال ۷۵۰ از inception_4e که سگ را با $IoU=0.203$ تشخیص می‌دهد. شکل اصلی از http://netdissect.csail.mit.edu/.

آزمایش‌ها

نویسندگان تشریح شبکه معماری‌های مختلف (AlexNet، VGG، GoogleNet، ResNet) را از ابتدا روی مجموعه‌داده‌های متفاوت (ImageNet، Places205، Places365) آموزش دادند. ImageNet شامل ۱.۶ میلیون تصویر از ۱٬۰۰۰ کلاس با تمرکز بر اشیاء است (Deng و همکاران ۲۰۰۹). Places205 و Places365 به ترتیب شامل ۲.۵ میلیون و ۱.۶ میلیون تصویر از ۲۰۵ و ۳۶۵ صحنه‌ی متفاوت هستند. نویسندگان همچنین AlexNet را روی وظایف آموزش خودناظر (Self-Supervised) مانند پیش‌بینی ترتیب فریم‌های ویدیویی یا رنگ‌آمیزی تصاویر آموزش دادند. برای بسیاری از این تنظیمات مختلف، تعداد آشکارسازهای مفهوم منحصربه‌فرد را به عنوان معیار تفسیرپذیری شمارش کردند. برخی از یافته‌ها عبارتند از:

  • شبکه‌ها مفاهیم سطح‌پایین‌تر (رنگ‌ها، بافت‌ها) را در لایه‌های پایین‌تر و مفاهیم سطح‌بالاتر (بخش‌ها، اشیاء) را در لایه‌های بالاتر تشخیص می‌دهند. این را پیش‌تر در تجسم ویژگی دیدیم.
  • نرمال‌سازی دسته‌ای (Batch Normalization) تعداد آشکارسازهای مفهوم منحصربه‌فرد را کاهش می‌دهد.
  • واحدهای بسیاری مفهوم یکسانی را تشخیص می‌دهند. برای مثال، ۹۵ کانال (!) سگ در VGG آموزش‌دیده روی ImageNet وجود دارد که از $IoU \geq 0.04$ به عنوان آستانه‌ی تشخیص استفاده می‌شود (۴ کانال در conv4_3 و ۹۱ کانال در conv5_3، وب‌سایت پروژه).
  • افزایش تعداد کانال‌ها در یک لایه، تعداد واحدهای تفسیرپذیر را افزایش می‌دهد.
  • مقداردهی‌های اولیه‌ی تصادفی مختلف (آموزش با seed‌های تصادفی متفاوت) به تعداد کمی متفاوتی از واحدهای تفسیرپذیر منجر می‌شوند.
  • ResNet معماری شبکه‌ای با بیشترین تعداد آشکارساز منحصربه‌فرد است، پس از آن VGG، GoogleNet، و AlexNet در آخر قرار دارند.
  • بیشترین تعداد آشکارساز مفهوم منحصربه‌فرد برای Places365 آموخته می‌شود، سپس Places205 و ImageNet در آخر.
  • تعداد آشکارسازهای مفهوم منحصربه‌فرد با افزایش تکرارهای آموزش بیشتر می‌شود.
  • شبکه‌های آموزش‌دیده با وظایف خودناظر نسبت به شبکه‌های آموزش‌دیده با وظایف ناظر، آشکارسازهای منحصربه‌فرد کمتری دارند.
  • در یادگیری انتقالی (Transfer Learning)، مفهوم یک کانال می‌تواند تغییر کند. برای مثال، یک آشکارساز سگ به آشکارساز آبشار تبدیل شد. این در مدلی اتفاق افتاد که ابتدا برای دسته‌بندی اشیاء آموزش دیده بود و سپس برای دسته‌بندی صحنه‌ها تنظیم دقیق شده بود.
  • در یکی از آزمایش‌ها، نویسندگان کانال‌ها را به یک پایه‌ی چرخش‌یافته‌ی جدید تصویر کردند. این برای شبکه‌ی VGG آموزش‌دیده روی ImageNet انجام شد. «چرخش» در اینجا به معنای چرخش تصویر نیست؛ بلکه به این معناست که ۲۵۶ کانال از لایه‌ی conv5 را گرفتیم و ۲۵۶ کانال جدید به صورت ترکیب خطی کانال‌های اصلی محاسبه کردیم. در این فرایند، کانال‌ها در هم می‌آمیختند. چرخش تفسیرپذیری را کاهش می‌دهد؛ یعنی تعداد کانال‌های هم‌تراز با یک مفهوم کاهش می‌یابد. چرخش به گونه‌ای طراحی شد که عملکرد مدل ثابت بماند. نتیجه‌گیری اول: تفسیرپذیری CNNها به محور وابسته است. این یعنی ترکیب‌های تصادفی کانال‌ها کمتر احتمال دارد مفاهیم منحصربه‌فردی را تشخیص دهند. نتیجه‌گیری دوم: تفسیرپذیری از قدرت تمایز مستقل است. کانال‌ها می‌توانند با تبدیل‌های متعامد دگرگون شوند و قدرت تمایز ثابت بماند، اما تفسیرپذیری کاهش یابد.

نویسندگان همچنین تشریح شبکه را برای شبکه‌های مولد تخاصمی (GANs) به‌کار بردند. تشریح شبکه برای GANها را می‌توانید در وب‌سایت پروژه بیابید.

نقاط قوت

تجسم ویژگی بینش منحصربه‌فردی درباره‌ی عملکرد شبکه‌های عصبی به دست می‌دهد، به‌ویژه برای تشخیص تصویر. با توجه به پیچیدگی و کدری شبکه‌های عصبی، تجسم ویژگی گامی مهم در تحلیل و توصیف آن‌هاست. از طریق تجسم ویژگی آموختیم که شبکه‌های عصبی ابتدا آشکارسازهای لبه و بافت ساده را می‌آموزند و در لایه‌های بالاتر به آشکارسازهای بخش و شیء انتزاعی‌تر می‌رسند. تشریح شبکه این بینش‌ها را گسترش می‌دهد و تفسیرپذیری واحدهای شبکه را قابل اندازه‌گیری می‌کند.

تشریح شبکه به ما امکان می‌دهد واحدها را به طور خودکار به مفاهیم پیوند دهیم، که بسیار مفید است.

تجسم ویژگی ابزار مناسبی برای توضیح عملکرد شبکه‌های عصبی به شیوه‌ای غیرفنی است.

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

تجسم ویژگی را می‌توان با روش‌های انتساب ویژگی ترکیب کرد که نشان می‌دهند کدام پیکسل‌ها برای دسته‌بندی مهم بوده‌اند. ترکیب هر دو روش امکان توضیح یک دسته‌بندی منفرد را به همراه تجسم محلی ویژگی‌های آموخته‌شده‌ی دخیل در آن فراهم می‌کند. به «بلوک‌های سازنده‌ی تفسیرپذیری» از distill.pub مراجعه کنید.

در نهایت، تجسم‌های ویژگی کاغذدیواری‌های دسکتاپ و طرح‌های تی‌شرت فوق‌العاده‌ای می‌سازند.

محدودیت‌ها

بسیاری از تصاویر تجسم ویژگی اصلاً قابل تفسیر نیستند، بلکه حاوی ویژگی‌های انتزاعی‌اند که برای آن‌ها نه واژه داریم و نه مفهوم ذهنی. نمایش تجسم ویژگی در کنار داده‌های آموزشی می‌تواند کمک کند. با این حال، ممکن است هنوز نتوان فهمید شبکه‌ی عصبی به چه چیزی واکنش نشان داده و تنها بتوان گفت «شاید باید رنگ زرد در تصاویر باشد». حتی با تشریح شبکه نیز برخی کانال‌ها به مفهوم انسانی مرتبط نمی‌شوند. برای مثال، لایه‌ی conv5_3 از VGG آموزش‌دیده روی ImageNet دارای ۱۹۳ کانال (از ۵۱۲) است که با هیچ مفهوم انسانی تطبیق نیافتند.

واحدهای بسیار زیادی برای بررسی وجود دارند، حتی اگر «فقط» فعال‌سازی‌های کانال تجسم شود. برای معماری Inception V1 به تنهایی، بیش از ۵٬۰۰۰ کانال از نه لایه‌ی کانولوشنی وجود دارد. اگر بخواهیم فعال‌سازی‌های منفی را هم نشان دهیم و چند تصویر از داده‌های آموزشی که کانال را به حداکثر یا حداقل فعال می‌کنند (مثلاً چهار تصویر مثبت و چهار تصویر منفی) نمایش دهیم، باید بیش از ۵۰٬۰۰۰ تصویر نشان دهیم. دست‌کم می‌دانیم — به لطف تشریح شبکه — که نیازی به بررسی جهت‌های تصادفی نیست.

توهم تفسیرپذیری؟ تجسم ویژگی می‌تواند این توهم را ایجاد کند که عملکرد شبکه‌ی عصبی را درک کرده‌ایم. اما آیا واقعاً می‌دانیم در شبکه‌ی عصبی چه اتفاقی می‌افتد؟ حتی اگر صدها یا هزاران تجسم ویژگی ببینیم، نمی‌توانیم شبکه‌ی عصبی را به طور کامل درک کنیم. کانال‌ها به شیوه‌ای پیچیده با هم تعامل دارند، فعال‌سازی‌های مثبت و منفی ارتباطی با هم ندارند، چندین نورون ممکن است ویژگی‌های بسیار مشابه بیاموزند، و برای بسیاری از ویژگی‌ها معادل مفهومی انسانی وجود ندارد. نباید در دام این باور افتاد که چون به نظر می‌رسد نورون ۳۴۹ در لایه‌ی ۷ با گل‌های بابونه فعال می‌شود، شبکه‌های عصبی را کاملاً می‌شناسیم. تشریح شبکه نشان داد که معماری‌هایی مانند ResNet یا Inception واحدهایی دارند که به مفاهیم خاصی واکنش نشان می‌دهند. اما مقدار IoU چندان بزرگ نیست، اغلب واحدهای زیادی به مفهوم یکسانی پاسخ می‌دهند و برخی به هیچ مفهومی. کانال‌ها کاملاً جداافتاده نیستند و نمی‌توان آن‌ها را به‌تنهایی تفسیر کرد.

برای تشریح شبکه، به مجموعه‌داده‌هایی نیاز است که در سطح پیکسل با مفاهیم برچسب‌گذاری شده باشند. جمع‌آوری این مجموعه‌داده‌ها زمان و تلاش زیادی می‌طلبد، زیرا هر پیکسل باید برچسب‌گذاری شود که معمولاً با رسم ناحیه‌های بسته دور اشیاء در تصویر انجام می‌شود.

تشریح شبکه تنها فعال‌سازی‌های مثبت کانال‌ها را با مفاهیم انسانی هم‌تراز می‌کند و فعال‌سازی‌های منفی را نادیده می‌گیرد. همان‌طور که تجسم ویژگی نشان داد، فعال‌سازی‌های منفی نیز به مفاهیمی مرتبط هستند. این مشکل ممکن است با بررسی چندک‌های پایین‌تر فعال‌سازی برطرف شود.

نرم‌افزار و منابع بیشتر

یک پیاده‌سازی متن‌باز از تجسم ویژگی به نام Lucid موجود است. می‌توانید آن را مستقیماً در مرورگر با استفاده از لینک‌های notebook ارائه‌شده در صفحه‌ی GitHub آن امتحان کنید؛ نیازی به نرم‌افزار اضافی نیست. پیاده‌سازی‌های دیگر شامل tf_cnnvis برای TensorFlow، Keras Filters برای Keras، و DeepVis برای Caffe هستند.

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


Bau, David, Bolei Zhou, Aditya Khosla, Aude Oliva, and Antonio Torralba. 2017. "Network Dissection: Quantifying Interpretability of Deep Visual Representations." In 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 3319–27. https://doi.org/10.1109/CVPR.2017.354.

Deng, Jia, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Li Fei-Fei. 2009. "ImageNet: A Large-Scale Hierarchical Image Database." In 2009 IEEE Conference on Computer Vision and Pattern Recognition, 248–55. https://doi.org/10.1109/CVPR.2009.5206848.

Karpathy, Andrej, Justin Johnson, and Li Fei-Fei. 2015. "Visualizing and Understanding Recurrent Networks." arXiv. https://doi.org/10.48550/arXiv.1506.02078.

Nguyen, Anh, Jeff Clune, Yoshua Bengio, Alexey Dosovitskiy, and Jason Yosinski. 2017. "Plug & Play Generative Networks: Conditional Iterative Generation of Images in Latent Space." In 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 3510–20. IEEE Computer Society. https://doi.org/10.1109/CVPR.2017.374.

Nguyen, Anh, Alexey Dosovitskiy, Jason Yosinski, Thomas Brox, and Jeff Clune. 2016. "Synthesizing the Preferred Inputs for Neurons in Neural Networks via Deep Generator Networks." In Proceedings of the 30th International Conference on Neural Information Processing Systems, 3395–3403. NIPS'16. Red Hook, NY, USA: Curran Associates Inc.

Olah, Chris, Alexander Mordvintsev, and Ludwig Schubert. 2017. "Feature Visualization." Distill. https://doi.org/10.23915/distill.00007.

Olah, Chris, Arvind Satyanarayan, Ian Johnson, Shan Carter, Ludwig Schubert, Katherine Ye, and Alexander Mordvintsev. 2018. "The Building Blocks of Interpretability." Distill. https://doi.org/10.23915/distill.00010.

فصل ۲۸: نقشه‌های برجستگی (Saliency Maps)

عنوان اصلی: Saliency Maps
منبع: https://christophm.github.io/interpretable-ml-book/pixel-attribution.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


روش‌های انتساب پیکسلی (pixel attribution) پیکسل‌هایی را که در طبقه‌بندی یک تصویر توسط شبکه‌ی عصبی نقش داشته‌اند برجسته می‌کنند. شکل ۲۸.۱ نمونه‌ای از این نوع توضیح است.

شکل ۲۸.۱: نقشه‌ای از برجستگی (saliency map) که پیکسل‌ها بر اساس میزان مشارکت‌شان در طبقه‌بندی رنگ‌آمیزی شده‌اند.

در ادامه‌ی این فصل خواهیم دید که این تصویر دقیقاً چه اطلاعاتی را به ما می‌دهد. روش‌های انتساب پیکسلی با نام‌های گوناگونی شناخته می‌شوند: نقشه‌ی حساسیت (sensitivity map)، نقشه‌ی برجستگی (saliency map)، نقشه‌ی انتساب پیکسلی (pixel attribution map)، روش‌های انتساب مبتنی بر گرادیان (gradient-based attribution methods)، ربط ویژگی (feature relevance)، انتساب ویژگی (feature attribution) و مشارکت ویژگی (feature contribution).

انتساب پیکسلی نوع خاصی از انتساب ویژگی است که برای تصاویر به کار می‌رود. انتساب ویژگی، پیش‌بینی‌های منفرد را از طریق نسبت دادن سهم هر ویژگی ورودی — به میزان تأثیر مثبت یا منفی آن بر پیش‌بینی — توضیح می‌دهد. این ویژگی‌ها می‌توانند پیکسل‌های تصویر، داده‌های جدولی یا کلمات باشند. SHAP (شپ)، مقادیر شپلی (Shapley Values) و LIME (لایم) نمونه‌هایی از روش‌های عمومی انتساب ویژگی هستند.

در اینجا شبکه‌های عصبی‌ای را در نظر می‌گیریم که خروجی‌شان بردار طولِ $C$ است؛ رگرسیون نیز با $C=1$ در این چارچوب می‌گنجد. خروجی شبکه‌ی عصبی برای تصویر $\mathbf{x}$ را $S(\mathbf{x})=[S_1(\mathbf{x}),\ldots,S_C(\mathbf{x})]$ می‌نامیم. همه‌ی این روش‌ها ورودی $\mathbf{x} \in\mathbb{R}^p$ (که می‌تواند پیکسل‌های تصویر، داده‌های جدولی، کلمات و غیره باشد) با $p$ ویژگی را دریافت می‌کنند و برای هر یک از $p$ ویژگی ورودی یک امتیاز ربط (relevance score) به عنوان توضیح تولید می‌کنند: $\mathbf{R}^c=[R_1^c,\ldots,R_p^c]$. نماد $c$ نشان‌دهنده‌ی ربط برای خروجی $c$ام، یعنی $S_C(\mathbf{x})$، است.

گوناگونی رویکردهای انتساب پیکسلی ممکن است گیج‌کننده باشد. برای درک بهتر، می‌توان این روش‌ها را در دو دسته‌ی کلی جای داد:

مبتنی بر پوشش یا اختلال (Occlusion- or perturbation-based): روش‌هایی مثل SHAP و LIME با دستکاری بخش‌هایی از تصویر، توضیح تولید می‌کنند (مدل-مستقل).

مبتنی بر گرادیان (Gradient-based): بسیاری از روش‌ها گرادیان پیش‌بینی (یا امتیاز طبقه‌بندی) را نسبت به ویژگی‌های ورودی محاسبه می‌کنند. روش‌های مبتنی بر گرادیان — که تعداد زیادی دارند — عمدتاً در شیوه‌ی محاسبه‌ی گرادیان با یکدیگر تفاوت دارند.

وجه اشتراک هر دو رویکرد آن است که توضیح تولیدشده ابعادی همسان با تصویر ورودی دارد (یا دست‌کم می‌توان آن را به صورت معنادار روی تصویر نمایش داد) و به هر پیکسل مقداری نسبت می‌دهند که می‌توان آن را به عنوان میزان ربط آن پیکسل به پیش‌بینی یا طبقه‌بندی تصویر تفسیر کرد.

دسته‌بندی مفید دیگری برای روش‌های انتساب پیکسلی، پرسش درباره‌ی «تصویر مرجع» است:

روش‌های صرفاً گرادیانی (Gradient-only methods) به ما می‌گویند آیا تغییر در یک پیکسل، پیش‌بینی را تغییر می‌دهد یا نه. گرادیان ساده (Vanilla Gradient) و Grad-CAM (Selvaraju et al. 2017) از این دسته‌اند. تفسیر انتساب گرادیان-محور چنین است: اگر مقادیر رنگی آن پیکسل را افزایش دهیم، احتمال کلاس پیش‌بینی‌شده بالا می‌رود (گرادیان مثبت) یا پایین می‌آید (گرادیان منفی). هر چه قدر مطلق گرادیان بزرگ‌تر باشد، تأثیر تغییر در آن پیکسل قوی‌تر است.

روش‌های انتساب مسیری (Path-attribution methods) تصویر فعلی را با یک تصویر مرجع مقایسه می‌کنند؛ این مرجع می‌تواند یک تصویر «صفر» مصنوعی مثل تصویری کاملاً خاکستری باشد. تفاوت در پیش‌بینی واقعی و خط مبنا میان پیکسل‌ها تقسیم می‌شود. تصویر مرجع می‌تواند توزیعی از تصاویر هم باشد. این دسته شامل روش‌های گرادیانی مدل-محور مثل Deep Taylor و Integrated Gradients (Sundararajan, Taly, and Yan 2017) و نیز روش‌های مدل-مستقل مثل LIME و SHAP می‌شود. برخی روش‌های انتساب مسیری «کامل» هستند؛ یعنی مجموع امتیازات ربط همه‌ی ویژگی‌های ورودی برابر با تفاوت پیش‌بینی تصویر و پیش‌بینی تصویر مرجع است. SHAP و Integrated Gradients از این دسته‌اند. در روش‌های انتساب مسیری، تفسیر همواره نسبت به تصویر مرجع انجام می‌شود: تفاوت امتیازهای طبقه‌بندی تصویر واقعی و تصویر مرجع به پیکسل‌ها نسبت داده می‌شود.

نکته — انتخاب تصویر مرجع

انتخاب تصویر مرجع (یا توزیع مرجع) تأثیر زیادی بر توضیح نهایی دارد. فرض معمول این است که از یک تصویر (توزیع) «خنثی» استفاده شود. البته کاملاً ممکن است از سلفی مورد علاقه‌ی خود استفاده کنید، اما باید از خود بپرسید که آیا این در کاربرد موردنظر منطقی است. البته چنین کاری بین اعضای تیم پروژه نفوذ بی‌چون‌وچرایی ایجاد می‌کند.

در این مرحله معمولاً توضیح شهودی از نحوه‌ی کارکرد این روش‌ها ارائه می‌دهم، اما فکر می‌کنم بهتر است مستقیماً با روش گرادیان ساده (Vanilla Gradient) شروع کنیم، چرا که این روش دستور العمل کلی را که بسیاری از روش‌های دیگر دنبال می‌کنند به خوبی نشان می‌دهد.

گرادیان ساده (Vanilla Gradient)

ایده‌ی گرادیان ساده که توسط Simonyan، Vedaldi و Zisserman (۲۰۱۴) به عنوان یکی از اولین رویکردهای انتساب پیکسلی معرفی شد، اگر پس‌انتشار (backpropagation) را بدانید، بسیار ساده است. (نام اصلی این روش «Image-Specific Class Saliency» بود، اما گرادیان ساده را ترجیح می‌دهم.) ما گرادیان تابع زیان برای کلاس مورد نظر را نسبت به پیکسل‌های ورودی محاسبه می‌کنیم. این کار نقشه‌ای به اندازه‌ی ویژگی‌های ورودی با مقادیر منفی تا مثبت تولید می‌کند.

دستور العمل این رویکرد به شرح زیر است:

۱. گذر رو به جلو (forward pass) تصویر مورد نظر را انجام دهید. ۲. گرادیان امتیاز کلاس مورد نظر را نسبت به پیکسل‌های ورودی محاسبه کنید:

$$E_{grad}(\mathbf{x}_0)=\frac{\delta S_c}{\delta \mathbf{x}}|_{\mathbf{x}=\mathbf{x}_0}$$

در اینجا همه‌ی کلاس‌های دیگر را برابر صفر قرار می‌دهیم. ۳. گرادیان‌ها را تجسم کنید. می‌توانید مقادیر قدرمطلق را نمایش دهید یا مشارکت‌های منفی و مثبت را جداگانه برجسته کنید.

به صورت رسمی‌تر، تصویر $\mathbf{x}$ داریم و شبکه‌ی عصبی کانولوشنی برای کلاس $c$ امتیاز $S_c(\mathbf{x})$ را به آن می‌دهد. این امتیاز تابعی بسیار غیرخطی از تصویر ماست. ایده‌ی استفاده از گرادیان این است که می‌توانیم این امتیاز را با اعمال بسط تیلور مرتبه‌ی اول تقریب بزنیم:

$$S_c(\mathbf{x}) \approx \mathbf{w}^T \mathbf{x} + b$$

که در آن $\mathbf{w}$ مشتق امتیاز ماست:

$$\mathbf{w} = \frac{\delta S_c}{\delta \mathbf{x}}|_{\mathbf{x}_0}$$

اکنون در نحوه‌ی انجام گذر رو به عقب (backward pass) گرادیان‌ها ابهامی وجود دارد، چرا که واحدهای غیرخطی مثل ReLU (Rectified Linear Unit، یکسوساز خطی) علامت را «حذف» می‌کنند. در نتیجه هنگام گذر رو به عقب نمی‌دانیم که فعال‌سازی مثبت بوده است یا منفی. با استفاده از هنر ASCII بی‌نظیرم، تابع ReLU چنین به نظر می‌رسد: _/ و به صورت $\text{ReLU}(\mathbf{x}_{l}) = \max(0, \mathbf{x}_l)$ تعریف می‌شود. این بدان معناست که وقتی فعال‌سازی یک نورون صفر است، نمی‌دانیم چه مقداری را باید پس‌انتشار دهیم. در گرادیان ساده، این ابهام به شکل زیر رفع می‌شود:

$$\frac{\delta f}{\delta \mathbf{x}_l} = \frac{\delta f}{\delta \mathbf{x}_{l+1}} \cdot I(\mathbf{x}_l > 0)$$

در اینجا $I$ تابع اندیکاتور عنصر به عنصر است که در جایی که فعال‌سازی لایه‌ی پایین‌تر منفی بوده صفر، و در جایی که مثبت یا صفر بوده یک است. گرادیان ساده گرادیانی را که تا لایه‌ی $l+1$ پس‌انتشار داده‌ایم می‌گیرد و سپس در جاهایی که فعال‌سازی لایه‌ی پایین‌تر منفی بوده گرادیان‌ها را صفر می‌کند.

مثالی ببینیم که در آن لایه‌های $\mathbf{x}_l$ و $\mathbf{x}_{l+1} = \text{ReLU}(\mathbf{x}_{l})$ داریم. فعال‌سازی فرضی در $\mathbf{x}_l$ چنین است:

$$ \begin{pmatrix} 1 & 0 \\ -1 & -10 \\ \end{pmatrix} $$

و گرادیان‌های ما در $\mathbf{x}_{l+1}$ اینگونه‌اند:

$$ \begin{pmatrix} 0.4 & 1.1 \\ -0.5 & -0.1 \\ \end{pmatrix} $$

در نتیجه گرادیان‌های ما در $\mathbf{x}_l$ به صورت زیر خواهند بود:

$$ \begin{pmatrix} 0.4 & 0 \\ 0 & 0 \\ \end{pmatrix} $$

گرادیان ساده مشکل اشباع (saturation) دارد، همان‌طور که Shrikumar، Greenside و Kundaje (۲۰۱۷) توضیح داده‌اند. وقتی از ReLU استفاده می‌شود و فعال‌سازی به زیر صفر می‌رود، فعال‌سازی در صفر محدود می‌شود و دیگر تغییر نمی‌کند؛ به این حالت اشباع می‌گویند. برای مثال: ورودی لایه دو نورون با وزن‌های $-1$ و $-1$ و یک بایاس $1$ دارد. پس از عبور از لایه‌ی ReLU، فعال‌سازی برابر نورون۱ + نورون۲ خواهد بود اگر مجموع هر دو نورون کمتر از $1$ باشد. اگر مجموع هر دو ورودی بزرگ‌تر از ۱ باشد، فعال‌سازی در مقدار اشباع‌شده‌ی ۱ باقی می‌ماند (چون وزن‌ها منفی هستند). همچنین گرادیان در این نقطه صفر خواهد بود و گرادیان ساده خواهد گفت که این نورون اهمیتی ندارد.

و اکنون، خوانندگان عزیز، روش دیگری را که تقریباً رایگان یاد می‌گیرید: DeconvNet.

DeconvNet

DeconvNet که توسط Zeiler و Fergus (۲۰۱۴) معرفی شد، تقریباً یکسان با گرادیان ساده است. هدف DeconvNet معکوس کردن یک شبکه‌ی عصبی است و مقاله عملیاتی را پیشنهاد می‌دهد که معکوس لایه‌های فیلترسازی، تجمیع (pooling) و فعال‌سازی هستند. اگر مقاله را نگاه کنید، بسیار با گرادیان ساده متفاوت به نظر می‌رسد، اما به جز معکوس‌سازی لایه‌ی ReLU، DeconvNet معادل رویکرد گرادیان ساده است. در واقع گرادیان ساده را می‌توان تعمیمی از DeconvNet دانست. DeconvNet انتخاب متفاوتی برای پس‌انتشار گرادیان از طریق ReLU دارد:

$$R_n = R_{n+1} I(R_{n+1} > 0)$$

که در آن $R_n$ و $R_{n+1}$ بازسازی‌های لایه هستند و $I$ تابع اندیکاتور است. هنگام گذر رو به عقب از لایه‌ی $n$ به لایه‌ی $n-1$، DeconvNet «به یاد می‌آورد» کدام فعال‌سازی‌ها در لایه‌ی $n$ در گذر رو به جلو صفر شده بودند و آن‌ها را در لایه‌ی $n-1$ نیز صفر می‌کند. فعال‌سازی‌هایی با مقدار منفی در لایه‌ی $n$ در لایه‌ی $n-1$ صفر می‌شوند. گرادیان $\mathbf{X}_n$ برای مثال قبلی به این شکل در می‌آید:

$$ \begin{pmatrix} 0.4 & 1.1 \\ 0 & 0 \\ \end{pmatrix} $$

Grad-CAM

Grad-CAM (Selvaraju et al. 2017) توضیحات تصویری برای تصمیمات شبکه‌های عصبی کانولوشنی (CNN) ارائه می‌دهد. بر خلاف سایر روش‌ها، گرادیان تمام مسیر تا تصویر پس‌انتشار داده نمی‌شود؛ بلکه (معمولاً) تا آخرین لایه‌ی کانولوشنی می‌رسد تا یک نقشه‌ی مکان‌یابی درشت (coarse localization map) تولید کند که نواحی مهم تصویر را برجسته می‌کند.

Grad-CAM مخفف Gradient-weighted Class Activation Map است و همان‌طور که از نامش پیداست، بر اساس گرادیان شبکه‌ی عصبی کار می‌کند. Grad-CAM، مانند دیگر تکنیک‌ها، به هر نورون امتیاز ربطی برای تصمیم مورد نظر نسبت می‌دهد. این تصمیم می‌تواند پیش‌بینی کلاس (که در لایه‌ی خروجی قرار دارد) باشد، اما از نظر تئوری می‌تواند هر لایه‌ی دیگری از شبکه‌ی عصبی هم باشد. Grad-CAM این اطلاعات را به آخرین لایه‌ی کانولوشنی پس‌انتشار می‌دهد. Grad-CAM با انواع مختلف CNN قابل استفاده است: با لایه‌های کاملاً متصل، برای خروجی‌های ساختارمند مثل توصیف تصویر (captioning)، در خروجی‌های چندوظیفه‌ای، و برای یادگیری تقویتی.

بیایید ابتدا به صورت شهودی Grad-CAM را بررسی کنیم. هدف Grad-CAM درک این است که یک لایه‌ی کانولوشنی برای طبقه‌بندی خاصی به کدام بخش‌های تصویر «نگاه می‌کند». یادآوری کنیم که اولین لایه‌ی کانولوشنی CNN تصویر را به عنوان ورودی می‌گیرد و نقشه‌های ویژگی (feature maps) را که ویژگی‌های آموخته‌شده را رمزگذاری می‌کنند، خروجی می‌دهد (به فصل ویژگی‌های آموخته‌شده مراجعه کنید). لایه‌های کانولوشنی سطح بالاتر همین کار را می‌کنند، اما نقشه‌های ویژگی لایه‌های کانولوشنی قبلی را به عنوان ورودی می‌گیرند. برای درک نحوه‌ی تصمیم‌گیری CNN، Grad-CAM تحلیل می‌کند کدام نواحی در نقشه‌های ویژگی آخرین لایه‌های کانولوشنی فعال شده‌اند. $k$ نقشه‌ی ویژگی در آخرین لایه‌ی کانولوشنی وجود دارد که آن‌ها را $A_1, A_2, \ldots, A_k$ می‌نامیم. چطور می‌توانیم از روی نقشه‌های ویژگی بفهمیم که شبکه‌ی عصبی کانولوشنی چه طبقه‌بندی‌ای انجام داده است؟ در اولین رویکرد می‌توانیم به سادگی مقادیر خام هر نقشه‌ی ویژگی را تجسم کنیم، میانگین بگیریم و این را روی تصویرمان بگذاریم. اما این مفید نیست چرا که نقشه‌های ویژگی اطلاعاتی را برای همه‌ی کلاس‌ها رمزگذاری می‌کنند، در حالی که ما به کلاس خاصی علاقه داریم. Grad-CAM باید تشخیص دهد هر یک از $k$ نقشه‌ی ویژگی چقدر برای کلاس $c$ مورد نظرمان اهمیت داشت. باید قبل از میانگین‌گیری، هر پیکسل از هر نقشه‌ی ویژگی را با گرادیان وزن‌دهی کنیم. این کار یک نقشه‌ی حرارتی (heatmap) تولید می‌کند که نواحی دارای تأثیر مثبت یا منفی بر کلاس مورد نظر را برجسته می‌کند. سپس این نقشه‌ی حرارتی از تابع ReLU عبور می‌کند، که به زبان ساده یعنی همه‌ی مقادیر منفی را صفر می‌کنیم. Grad-CAM همه‌ی مقادیر منفی را با استفاده از ReLU حذف می‌کند، با این استدلال که تنها به بخش‌هایی که به کلاس انتخابی $c$ کمک می‌کنند علاقه داریم، نه به کلاس‌های دیگر. واژه‌ی پیکسل در اینجا ممکن است گمراه‌کننده باشد چرا که نقشه‌ی ویژگی کوچک‌تر از تصویر است (به دلیل واحدهای تجمیع) اما به تصویر اصلی نگاشت می‌شود. سپس نقشه‌ی Grad-CAM را برای مقاصد تجسم به بازه‌ی $[0,1]$ نرمال می‌کنیم و روی تصویر اصلی می‌گذاریم.

دستور العمل Grad-CAM را ببینیم. هدف یافتن نقشه‌ی مکان‌یابی است که به صورت زیر تعریف می‌شود:

$$L^c_{\text{Grad-CAM}} \in \mathbb{R}^{U \times V} = \underbrace{\text{ReLU}}_{\text{انتخاب مقادیر مثبت}}\left(\sum_{k} \alpha_k^c A^k\right)$$

که در آن $U$ عرض، $V$ ارتفاع توضیح، و $c$ کلاس مورد نظر است.

۱. تصویر ورودی را از طریق شبکه‌ی عصبی کانولوشنی پیش‌انتشار (forward-propagate) دهید. ۲. امتیاز خام کلاس مورد نظر را بیابید، یعنی فعال‌سازی نورون قبل از لایه‌ی softmax. ۳. فعال‌سازی همه‌ی کلاس‌های دیگر را صفر کنید. ۴. گرادیان کلاس مورد نظر را تا آخرین لایه‌ی کانولوشنی قبل از لایه‌های کاملاً متصل پس‌انتشار دهید: $\frac{\delta y^c}{\delta A^k}$. ۵. هر «پیکسل» نقشه‌ی ویژگی را با گرادیان آن کلاس وزن‌دهی کنید. نماینده‌های $u$ و $v$ به ابعاد عرض و ارتفاع اشاره دارند:

$$\alpha_k^c = \overbrace{\frac{1}{Z}\sum_{u}\sum_{v}}^{\text{میانگین‌گیری سراسری}} \underbrace{\frac{\delta y^c}{\delta A_{uv}^k}}_{\text{گرادیان‌ها از طریق پس‌انتشار}}$$

این بدان معناست که گرادیان‌ها به صورت سراسری تجمیع می‌شوند. ۶. میانگین نقشه‌های ویژگی را محاسبه کنید، وزن‌دهی‌شده به ازای هر پیکسل با گرادیان مربوطه. ۷. ReLU را بر نقشه‌ی ویژگی میانگین‌گرفته‌شده اعمال کنید. ۸. برای تجسم: مقادیر را به بازه‌ی $[0, 1]$ مقیاس‌بندی کنید. تصویر را بزرگ‌نمایی کنید و روی تصویر اصلی بگذارید. ۹. گام اضافی برای Guided Grad-CAM: نقشه‌ی حرارتی را با نتیجه‌ی پس‌انتشار هدایت‌شده ضرب کنید.

Guided Grad-CAM

از توضیح Grad-CAM می‌توان حدس زد که مکان‌یابی بسیار درشت است، چرا که آخرین نقشه‌های ویژگی کانولوشنی در مقایسه با تصویر ورودی وضوح بسیار کمتری دارند. در مقابل، سایر تکنیک‌های انتساب تمام مسیر را تا پیکسل‌های ورودی پس‌انتشار می‌دهند و بنابراین بسیار جزئی‌تر هستند و می‌توانند لبه‌های منفرد یا نقاطی که بیشترین نقش را در یک پیش‌بینی داشته‌اند نشان دهند. ترکیبی از هر دو روش Guided Grad-CAM نام دارد و فوق‌العاده ساده است. برای یک تصویر هم توضیح Grad-CAM و هم توضیح یک روش انتساب دیگر مثل گرادیان ساده را محاسبه می‌کنید. سپس خروجی Grad-CAM با درون‌یابی دوخطی (bilinear interpolation) بزرگ‌نمایی می‌شود و هر دو نقشه به صورت عنصر به عنصر ضرب می‌شوند. Grad-CAM مانند یک عدسی عمل می‌کند که روی بخش‌های خاصی از نقشه‌ی انتساب پیکسلی تمرکز می‌کند.

SmoothGrad

ایده‌ی SmoothGrad که توسط Smilkov و همکاران (۲۰۱۷) مطرح شد، کاهش نویز توضیحات مبتنی بر گرادیان است از طریق افزودن نویز و میانگین‌گیری روی این گرادیان‌های نویزی مصنوعی. SmoothGrad یک روش توضیح مستقل نیست، بلکه افزونه‌ای برای هر روش توضیح مبتنی بر گرادیان است.

SmoothGrad به شرح زیر عمل می‌کند:

۱. چندین نسخه از تصویر مورد نظر با افزودن نویز به آن تولید کنید. ۲. نقشه‌های انتساب پیکسلی را برای همه‌ی تصاویر بسازید. ۳. نقشه‌های انتساب پیکسلی را میانگین بگیرید.

بله، به همین سادگی. چرا این باید کارساز باشد؟ تئوری این است که مشتق در مقیاس‌های کوچک نوسانات شدیدی دارد. شبکه‌های عصبی در طول آموزش انگیزه‌ای برای نگه داشتن گرادیان‌ها هموار ندارند؛ هدف آن‌ها صرفاً طبقه‌بندی درست تصاویر است. میانگین‌گیری روی چندین نقشه این نوسانات را «هموار» می‌کند:

$$R_{sg}(\mathbf{x})=\frac{1}{N}\sum_{i=1}^N R(\mathbf{x} + \mathbf{g}_i)$$

که در آن $\mathbf{g}_i \sim N(0, \sigma^2)$ بردارهای نویز نمونه‌گرفته‌شده از توزیع گاوسی هستند. سطح «ایده‌آل» نویز به تصویر ورودی و شبکه بستگی دارد. نویسندگان سطح نویز ۱۰٪ تا ۲۰٪ را پیشنهاد می‌کنند، به این معنا که $\frac{\sigma}{x_{max} - x_{min}}$ باید بین ۰.۱ و ۰.۲ باشد. حدود $x_{min}$ و $x_{max}$ به حداقل و حداکثر مقادیر پیکسلی تصویر اشاره دارند. پارامتر دیگر تعداد نمونه‌ها $n$ است که پیشنهاد شده $n = 50$ باشد، چرا که بالاتر از این مقدار بهبود چشمگیری حاصل نمی‌شود.

مثال‌ها

بیایید ببینیم این نقشه‌ها چه شکلی هستند و روش‌ها از نظر کیفی چگونه با هم مقایسه می‌شوند. شبکه‌ی مورد بررسی VGG-16 (Simonyan and Zisserman 2015) است که روی ImageNet آموزش دیده و می‌تواند ۱٬۰۰۰ کلاس مختلف را تشخیص دهد. برای تصاویر زیر، توضیحاتی برای کلاس با بالاترین امتیاز طبقه‌بندی تولید می‌کنیم.

شکل ۲۸.۲ تصاویر و طبقه‌بندی آن‌ها توسط شبکه‌ی عصبی را نشان می‌دهد:

شکل ۲۸.۲: تصاویر یک سگ که به عنوان greyhound، یک سوپ رامن که به عنوان کاسه‌ی سوپ (soup bowl)، و یک اختاپوس که به عنوان مار آبی (eel) طبقه‌بندی شده‌اند.

تصویر سمت چپ با سگ محترم نگهبان کتاب یادگیری ماشین تفسیرپذیر، با احتمال ۳۵٪ به عنوان «Greyhound» طبقه‌بندی شده است (به نظر می‌رسد «کتاب یادگیری ماشین تفسیرپذیر» جزء ۲۰ هزار کلاس نبوده). تصویر وسط کاسه‌ای از سوپ رامن خوشمزه را نشان می‌دهد و با احتمال ۵۰٪ به درستی به عنوان «Soup Bowl» طبقه‌بندی شده. تصویر سوم اختاپوسی را در بستر اقیانوس نشان می‌دهد که با احتمال بالای ۷۰٪ به اشتباه به عنوان «Eel» (مار آبی) طبقه‌بندی شده است.

شکل ۲۸.۳ انتسابات پیکسلی که طبقه‌بندی را توضیح می‌دهند نشان می‌دهد:

شکل ۲۸.۳: انتسابات پیکسلی یا نقشه‌های برجستگی برای روش‌های Vanilla Gradient، SmoothGrad و Grad-CAM.

متأسفانه کمی آشفته است. اما بیایید توضیحات منفرد را بررسی کنیم، با شروع از سگ. هم گرادیان ساده و هم SmoothGrad خود سگ را برجسته می‌کنند که منطقی است. اما هر دو بخش‌هایی از اطراف کتاب را هم برجسته می‌کنند که عجیب است. Grad-CAM تنها ناحیه‌ی کتاب را برجسته می‌کند که اصلاً منطقی نیست. و از اینجا به بعد کمی آشفته‌تر می‌شود. به نظر می‌رسد روش گرادیان ساده برای هم سوپ و هم اختاپوس (یا همان‌طور که شبکه فکر می‌کند، مار آبی) شکست می‌خورد. هر دو تصویر مثل تصاویر ماندگار پس از نگاه کردن مستقیم به خورشید هستند. (لطفاً مستقیم به خورشید نگاه نکنید.) SmoothGrad کمک زیادی می‌کند؛ دست‌کم نواحی مشخص‌تری نشان می‌دهد. در مثال سوپ، برخی مواد مثل تخم‌مرغ و گوشت برجسته می‌شوند، اما ناحیه‌ی اطراف چاپستیک‌ها هم هستند. در تصویر اختاپوس، عمدتاً خود حیوان برجسته شده. برای کاسه‌ی سوپ، Grad-CAM بخش تخم‌مرغ و به دلایلی نامشخص، بخش بالایی کاسه را برجسته می‌کند. توضیحات Grad-CAM برای اختاپوس هم آشفته‌تر از این هستند.

از همین اینجا می‌توان دشواری‌های ارزیابی درستی توضیحات را دید. در گام اول باید در نظر بگیریم کدام بخش‌های تصویر حاوی اطلاعات مرتبط با طبقه‌بندی تصویر هستند. اما سپس باید در مورد آنچه شبکه‌ی عصبی ممکن است برای طبقه‌بندی استفاده کرده باشد هم فکر کنیم. شاید کاسه‌ی سوپ بر اساس ترکیب تخم‌مرغ و چاپستیک‌ها به درستی طبقه‌بندی شده، آن‌طور که SmoothGrad نشان می‌دهد؟ یا شاید شبکه‌ی عصبی شکل کاسه به همراه برخی مواد را تشخیص داده، آن‌طور که Grad-CAM پیشنهاد می‌دهد؟ ما نمی‌دانیم.

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

نقاط قوت

توضیحات تصویری هستند و ما به سرعت تصاویر را تشخیص می‌دهیم. به ویژه وقتی روش‌ها فقط پیکسل‌های مهم را برجسته می‌کنند، تشخیص سریع نواحی مهم تصویر آسان است.

روش‌های مبتنی بر گرادیان معمولاً سریع‌تر از روش‌های مدل-مستقل محاسبه می‌شوند. برای مثال، LIME و SHAP نیز می‌توانند برای توضیح طبقه‌بندی تصاویر استفاده شوند، اما محاسبه‌ی آن‌ها هزینه‌ی بیشتری دارد.

روش‌های بسیاری برای انتخاب وجود دارند.

محدودیت‌ها

مانند اغلب روش‌های تفسیر، تشخیص درستی یک توضیح دشوار است و بخش بزرگی از ارزیابی صرفاً کیفی است («این توضیحات به نظر تقریباً درست می‌رسند، مقاله را منتشر کنیم»).

روش‌های انتساب پیکسلی می‌توانند بسیار شکننده باشند. Ghorbani، Abid و Zou (۲۰۱۹) نشان دادند که معرفی اغتشاشات کوچک (دشمنانه) به یک تصویر، که همچنان به همان پیش‌بینی منجر می‌شوند، می‌تواند باعث شود پیکسل‌های بسیار متفاوتی به عنوان توضیح برجسته شوند.

Kindermans و همکاران (۲۰۱۹) نیز نشان دادند که این روش‌های انتساب پیکسلی می‌توانند کاملاً غیرقابل اعتماد باشند. آن‌ها یک انتقال ثابت به داده‌های ورودی اضافه کردند، یعنی همان تغییرات پیکسلی را به همه‌ی تصاویر افزودند. سپس دو شبکه را مقایسه کردند: شبکه‌ی اصلی و شبکه‌ی «انتقال‌یافته» که بایاس اولین لایه‌اش برای انطباق با انتقال ثابت پیکسلی تغییر کرده. هر دو شبکه پیش‌بینی‌های یکسان تولید می‌کنند. علاوه بر این، گرادیان در هر دو یکسان است. اما توضیحات تغییر کردند، که خاصیتی نامطلوب است. این آزمایش روی DeepLift، گرادیان ساده و Integrated Gradients انجام شد.

هشدار — چندین روش را مقایسه کنید

هنگام تکیه‌ی صرف بر روش‌های انتساب پیکسلی برای تفسیر، احتیاط کنید. اغتشاشات کوچک در ورودی می‌توانند حتی اگر پیش‌بینی‌ها تغییر نکنند، به توضیحاتی کاملاً متفاوت منجر شوند. همیشه توضیحات را با روش‌های متعدد اعتبارسنجی کنید تا از استحکام آن‌ها اطمینان حاصل کنید.

مقاله‌ی «Sanity checks for saliency maps» (Adebayo et al. 2018) بررسی کرد آیا روش‌های برجستگی نسبت به مدل و داده بی‌تفاوت هستند. بی‌تفاوتی کاملاً نامطلوب است چرا که به این معنی خواهد بود که «توضیح» به مدل و داده ربطی ندارد. روش‌هایی که به مدل و داده‌های آموزشی حساسیت ندارند مشابه آشکارسازهای لبه (edge detectors) هستند. آشکارسازهای لبه صرفاً تغییرات شدید رنگ پیکسلی در تصاویر را برجسته می‌کنند و به هیچ مدل پیش‌بینی یا ویژگی‌های انتزاعی تصویر ربط ندارند و نیازی به آموزش هم ندارند. روش‌های آزمایش‌شده عبارت بودند از: گرادیان ساده، Gradient × Input، Integrated Gradients، Guided Backpropagation، Guided Grad-CAM و SmoothGrad (با گرادیان ساده). گرادیان ساده و Grad-CAM آزمون بی‌تفاوتی را گذراندند، در حالی که Guided Backpropagation و Guided Grad-CAM در آن شکست خوردند. اما خود مقاله‌ی بررسی‌های اعتبارسنجی توسط Tomsett و همکاران (۲۰۲۰) با مقاله‌ای به نام «Sanity checks for saliency metrics» (بله، همان اسم) مورد انتقاد قرار گرفت. آن‌ها کمبود سازگاری در معیارهای ارزیابی را یافتند (می‌دانم، موضوع خیلی فرامتنی شده). پس دوباره به همان جایی رسیدیم که بودیم... ارزیابی توضیحات تصویری همچنان دشوار است و این برای متخصصان بسیار چالش‌برانگیز است.

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

نرم‌افزار

پیاده‌سازی‌های نرم‌افزاری متعددی از روش‌های انتساب پیکسلی وجود دارد. برای این مثال از tf-keras-vis استفاده شده است. یکی از جامع‌ترین کتابخانه‌ها iNNvestigate (Alber et al. 2019) است که گرادیان ساده، SmoothGrad، DeconvNet، Guided Backpropagation، PatternNet، LRP (Bach et al. 2015) و موارد دیگر را پیاده‌سازی کرده است. بسیاری از روش‌ها در DeepExplain Toolbox نیز پیاده‌سازی شده‌اند.


Bach, Sebastian, Alexander Binder, Grégoire Montavon, Frederick Klauschen, Klaus-Robert Müller, and Wojciech Samek. 2015. "On Pixel-Wise Explanations for Non-Linear Classifier Decisions by Layer-Wise Relevance Propagation." PLOS ONE 10 (7): e0130140. https://doi.org/10.1371/journal.pone.0130140.

Ghorbani, Amirata, Abubakar Abid, and James Zou. 2019. "Interpretation of Neural Networks Is Fragile." Proceedings of the AAAI Conference on Artificial Intelligence 33 (01): 3681–88. https://doi.org/10.1609/aaai.v33i01.33013681.

Kindermans, Pieter-Jan, Sara Hooker, Julius Adebayo, Maximilian Alber, Kristof T. Schütt, Sven Dähne, Dumitru Erhan, and Been Kim. 2019. "The (Un)reliability of Saliency Methods." In Explainable AI: Interpreting, Explaining and Visualizing Deep Learning, edited by Wojciech Samek, Grégoire Montavon, Andrea Vedaldi, Lars Kai Hansen, and Klaus-Robert Müller, 267–80. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-030-28954-6_14.

Selvaraju, Ramprasaath R., Michael Cogswell, Abhishek Das, Ramakrishna Vedantam, Devi Parikh, and Dhruv Batra. 2017. "Grad-CAM: Visual Explanations from Deep Networks via Gradient-Based Localization." In 2017 IEEE International Conference on Computer Vision (ICCV), 618–26. https://doi.org/10.1109/ICCV.2017.74.

Shrikumar, Avanti, Peyton Greenside, and Anshul Kundaje. 2017. "Learning Important Features Through Propagating Activation Differences." In Proceedings of the 34th International Conference on Machine Learning - Volume 70, 3145–53. ICML'17. Sydney, NSW, Australia: JMLR.org.

Simonyan, Karen, Andrea Vedaldi, and Andrew Zisserman. 2014. "Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps." arXiv. https://doi.org/10.48550/arXiv.1312.6034.

Simonyan, Karen, and Andrew Zisserman. 2015. "Very Deep Convolutional Networks for Large-Scale Image Recognition." arXiv. https://doi.org/10.48550/arXiv.1409.1556.

Smilkov, Daniel, Nikhil Thorat, Been Kim, Fernanda Viégas, and Martin Wattenberg. 2017. "SmoothGrad: Removing Noise by Adding Noise." arXiv. https://doi.org/10.48550/arXiv.1706.03825.

Sundararajan, Mukund, Ankur Taly, and Qiqi Yan. 2017. "Axiomatic Attribution for Deep Networks." In Proceedings of the 34th International Conference on Machine Learning - Volume 70, 3319–28. ICML'17. Sydney, NSW, Australia: JMLR.org.

Tomsett, Richard, Dan Harborne, Supriyo Chakraborty, Prudhvi Gurram, and Alun Preece. 2020. "Sanity Checks for Saliency Metrics." Proceedings of the AAAI Conference on Artificial Intelligence 34 (04): 6021–29. https://doi.org/10.1609/aaai.v34i04.6064.

Zeiler, Matthew D., and Rob Fergus. 2014. "Visualizing and Understanding Convolutional Networks." In Computer Vision – ECCV 2014, edited by David Fleet, Tomas Pajdla, Bernt Schiele, and Tinne Tuytelaars, 818–33. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-319-10590-1_53.

فصل ۲۹: تشخیص مفاهیم

عنوان اصلی: Detecting Concepts
منبع: https://christophm.github.io/interpretable-ml-book/detecting-concepts.html
نویسنده: Fangzhou Li @ دانشگاه کالیفرنیا، دیویس
مترجم: مریم محمودی


تاکنون با روش‌های بسیاری برای توضیح مدل‌های جعبه‌سیاه از طریق انتساب ویژگی آشنا شدیم. با این حال، رویکرد مبتنی بر ویژگی محدودیت‌هایی دارد. نخست، ویژگی‌ها لزوماً از منظر تفسیرپذیری برای کاربر مناسب نیستند؛ برای مثال، اهمیت یک پیکسل منفرد در یک تصویر معمولاً تفسیر معناداری به دست نمی‌دهد. دوم، قدرت بیانی یک توضیح مبتنی بر ویژگی به تعداد ویژگی‌ها محدود می‌شود.

رویکرد مبتنی بر مفهوم (concept-based approach) هر دو محدودیت یادشده را برطرف می‌کند. یک مفهوم (concept) می‌تواند هر انتزاعی باشد: رنگ، شیء، یا حتی یک ایده. با داشتن هر مفهومی که کاربر تعریف کند—حتی اگر شبکه عصبی به‌طور صریح با آن مفهوم آموزش ندیده باشد—رویکرد مبتنی بر مفهوم آن را در فضای نهفته‌ای (latent space) که شبکه آموخته تشخیص می‌دهد. به عبارت دیگر، توضیحات حاصل از این رویکرد به فضای ویژگی‌های شبکه عصبی محدود نیست.

در این فصل، عمدتاً بر مقاله TCAV: Testing with Concept Activation Vectors اثر Kim و همکاران (۲۰۱۸) تمرکز خواهیم کرد.


TCAV: آزمون با بردارهای فعال‌سازی مفهوم

TCAV برای تولید توضیحات سراسری (global explanations) برای شبکه‌های عصبی پیشنهاد شده است، هرچند از نظر تئوری برای هر مدلی که امکان محاسبه مشتق جهتی (directional derivative) در آن وجود داشته باشد نیز کارایی دارد. به ازای هر مفهوم داده‌شده، TCAV میزان تأثیر آن مفهوم بر پیش‌بینی مدل برای یک کلاس خاص را اندازه‌گیری می‌کند. برای مثال، TCAV می‌تواند به این پرسش پاسخ دهد که مفهوم «راه‌راه» تا چه اندازه بر طبقه‌بندی تصویری به عنوان «گورخر» توسط مدل تأثیر می‌گذارد. از آنجا که TCAV رابطه میان یک مفهوم و یک کلاس را توصیف می‌کند—نه توضیح یک پیش‌بینی تکی—تفسیر سراسری مفیدی از رفتار کلی مدل ارائه می‌دهد.

نکته — مفهوم را با دقت تعریف کنید

هنگام استفاده از TCAV، اطمینان حاصل کنید که مفهوم مورد بررسی متمایز و به‌خوبی تعریف‌شده است. این امر به اندازه‌گیری دقیق‌تر تأثیر آن مفهوم بر پیش‌بینی‌های مدل کمک می‌کند.

بردار فعال‌سازی مفهوم (CAV)

یک CAV (Concept Activation Vector: بردار فعال‌سازی مفهوم) به‌سادگی بازنمایی عددی است که یک مفهوم را در فضای فعال‌سازی یک لایه از شبکه عصبی تعمیم می‌دهد. CAV با نماد $\mathbf{v}_l^C$ نشان داده می‌شود و به مفهوم $C$ و لایه $l$ از شبکه عصبی—که به آن گلوگاه (bottleneck) مدل نیز می‌گویند—وابسته است.

برای محاسبه CAV یک مفهوم $C$، ابتدا باید دو مجموعه‌داده آماده کنیم: یک مجموعه‌داده مفهوم (concept dataset) که بازنماینده $C$ است، و یک مجموعه‌داده تصادفی که از داده‌های دلخواه تشکیل شده است. برای مثال، برای تعریف مفهوم «راه‌راه»، می‌توانیم تصاویری از اشیاء راه‌راه را به عنوان مجموعه‌داده مفهوم جمع‌آوری کنیم، در حالی که مجموعه‌داده تصادفی شامل تصاویر تصادفی بدون راه‌راه است. سپس یک لایه پنهان $l$ را هدف قرار می‌دهیم و یک طبقه‌بند دوکلاسه (binary classifier) آموزش می‌دهیم که فعال‌سازی‌های تولیدشده توسط مجموعه مفهوم را از فعال‌سازی‌های مجموعه تصادفی جدا کند. بردار ضرایب این طبقه‌بند آموزش‌دیده، همان CAV یعنی $\mathbf{v}_l^C$ خواهد بود. در عمل می‌توان از SVM یا رگرسیون لجستیک به عنوان طبقه‌بند دوکلاسه استفاده کرد.

در نهایت، برای یک ورودی تصویری $\mathbf{x}$، می‌توان «حساسیت مفهومی» (conceptual sensitivity) آن را با محاسبه مشتق جهتی پیش‌بینی در راستای CAV واحد اندازه‌گیری کرد:

$$S_{C,k,l}(\mathbf{x})=\nabla h_{l,k}(\hat{f}_l(\mathbf{x}))\cdot \mathbf{v}_l^C$$

که در آن $\hat{f}_l$ ورودی $\mathbf{x}$ را به بردار فعال‌سازی لایه $l$ نگاشت می‌کند، و $h_{l,k}$ بردار فعال‌سازی را به خروجی logit کلاس $k$ نگاشت می‌کند.

از نظر ریاضی، علامت $S_{C,k,l}(\mathbf{x})$ تنها به زاویه میان گرادیان $h_{l,k}(\hat{f}_l(\mathbf{x}))$ و $\mathbf{v}_l^C$ بستگی دارد. اگر زاویه کمتر از ۹۰ درجه باشد، $S_{C,k,l}(\mathbf{x})$ مثبت خواهد بود و اگر بیشتر از ۹۰ درجه باشد، منفی. از آنجا که گرادیان $\nabla h_{l,k}$ به جهتی اشاره دارد که خروجی را به سریع‌ترین شکل ممکن بیشینه می‌کند، حساسیت مفهومی $S_{C,k,l}$ به‌طور شهودی نشان می‌دهد که آیا $\mathbf{v}_l^C$ نیز در جهتی مشابه است که $h_{l,k}$ را بیشینه می‌کند یا نه. بنابراین $S_{C,k,l}(\mathbf{x})>0$ را می‌توان این‌گونه تفسیر کرد: مفهوم $C$ مدل را تشویق می‌کند که $\mathbf{x}$ را در کلاس $k$ طبقه‌بندی کند.

آزمون با CAVها (TCAV)

در بخش پیشین، نحوه محاسبه حساسیت مفهومی برای یک نقطه داده تکی را آموختیم. اما هدف ما تولید توضیحی سراسری است که حساسیت مفهومی کلی یک کلاس را نشان دهد. رویکردی بسیار ساده که TCAV به‌کار می‌گیرد، محاسبه نسبت ورودی‌هایی است که حساسیت مفهومی مثبت دارند به کل ورودی‌های آن کلاس:

$$TCAV_{Q,C,k,l}=\frac{|{ \mathbf{x} \in \mathbf{X}_k : S_{C,k,l}(\mathbf{x}) > 0 }|}{|\mathbf{X}_k|}$$

با بازگشت به مثال خودمان: می‌خواهیم بدانیم مفهوم «راه‌راه» چه تأثیری بر پیش‌بینی مدل در طبقه «گورخر» دارد. داده‌هایی که برچسب «گورخر» دارند جمع‌آوری می‌کنیم و حساسیت مفهومی را برای هر تصویر ورودی محاسبه می‌کنیم. سپس امتیاز TCAV برای مفهوم «راه‌راه» در پیش‌بینی کلاس «گورخر»، برابر است با تعداد تصاویر «گورخر» با حساسیت مفهومی مثبت تقسیم بر کل تعداد تصاویر «گورخر». به عبارت دیگر، اگر $TCAV$ با $C=\text{striped}$ و $k=\text{zebra}$ برابر ۰.۸ باشد، یعنی ۸۰٪ از پیش‌بینی‌ها برای کلاس «گورخر» تحت تأثیر مثبت مفهوم «راه‌راه» هستند.

این نتیجه چشمگیر است، اما چطور می‌دانیم امتیاز TCAV معنادار است؟ در نهایت، CAV توسط مجموعه داده‌های انتخابی کاربر و مجموعه‌داده تصادفی آموزش دیده است. اگر داده‌های استفاده‌شده برای آموزش CAV نامناسب باشند، توضیح می‌تواند گمراه‌کننده و بی‌فایده باشد. برای رفع این مشکل، یک آزمون معناداری آماری ساده انجام می‌دهیم تا TCAV را قابل‌اطمینان‌تر کنیم. به جای آموزش تنها یک CAV، چندین CAV را با استفاده از مجموعه‌داده‌های تصادفی مختلف—در حالی که مجموعه‌داده مفهوم ثابت نگه داشته می‌شود—آموزش می‌دهیم. یک مفهوم معنادار باید CAVهایی با امتیازهای TCAV سازگار تولید کند. مراحل دقیق‌تر آزمون به شرح زیر است:

۱. $N$ مجموعه‌داده تصادفی جمع‌آوری کنید؛ توصیه می‌شود $N$ حداقل ۱۰ باشد. ۲. مجموعه‌داده مفهوم را ثابت نگه دارید و امتیاز TCAV را با استفاده از هر یک از $N$ مجموعه‌داده تصادفی محاسبه کنید. ۳. یک آزمون t دوطرفه بر روی $N$ امتیاز TCAV در مقابل $N$ امتیاز TCAV دیگری که توسط یک CAV تصادفی تولید شده‌اند اعمال کنید. CAV تصادفی را می‌توان با انتخاب یک مجموعه‌داده تصادفی به عنوان مجموعه‌داده مفهوم به دست آورد.

هشدار — پیش‌فرض‌های آزمون t را بررسی کنید

هنگام اجرای آزمون t دوطرفه برای امتیازهای TCAV، مطمئن شوید که داده‌های شما پیش‌فرض‌های آزمون—از جمله نرمال بودن توزیع و همگنی واریانس‌ها—را برآورده می‌کنند. در غیر این صورت، استفاده از آزمون‌های ناپارامتری را در نظر بگیرید.

همچنین در صورت داشتن فرضیه‌های متعدد، توصیه می‌شود از یک روش تصحیح آزمون چندگانه استفاده کنید. مقاله اصلی از تصحیح Bonferroni استفاده می‌کند و تعداد فرضیه‌ها برابر با تعداد مفاهیم مورد آزمون است.


مثال

بیایید نگاهی به مثالی بیندازیم که در GitHub مخزن TCAV در دسترس است. در ادامه همان مثال کلاس «گورخر»، شکل ۲۹.۱ نتایج امتیازهای TCAV برای مفاهیم «راه‌راه» (striped)، «زیگزاگ» (zigzagged) و «خال‌خال» (dotted) را نشان می‌دهد. طبقه‌بند تصویری مورد استفاده InceptionV3 (Szegedy et al. ۲۰۱۶) است؛ یک شبکه عصبی کانولوشنی (convolutional neural network) که با داده‌های ImageNet آموزش دیده است. هر مجموعه‌داده مفهوم یا تصادفی شامل ۵۰ تصویر است و از ۱۰ مجموعه‌داده تصادفی برای آزمون معناداری آماری با سطح معناداری ۰.۰۵ استفاده شده است. از تصحیح Bonferroni در اینجا استفاده نشده—چون تنها چند مجموعه‌داده تصادفی وجود دارد—اما در عمل توصیه می‌شود این تصحیح اعمال شود تا از کشف کاذب جلوگیری گردد.

شکل ۲۹.۱: اندازه‌گیری امتیازهای TCAV برای سه مفهوم در مدلی که «گورخر» را پیش‌بینی می‌کند. گلوگاه هدف لایه‌ای به نام «mixed4c» است. علامت ستاره بالای «dotted» نشان می‌دهد که این مفهوم آزمون معناداری آماری را نگذرانده است (p-value بزرگتر از ۰.۰۵). هر دو مفهوم «striped» و «zigzagged» آزمون را گذرانده‌اند و بر اساس TCAV هر دو در تشخیص تصاویر «گورخر» توسط مدل مفید هستند. شکل اصلی از GitHub مخزن TCAV.

نکته — از بیش از ۵۰ تصویر استفاده کنید

در عمل، ممکن است بخواهید در هر مجموعه‌داده از بیش از ۵۰ تصویر استفاده کنید تا CAVهای بهتری آموزش دهید. همچنین می‌توانید از بیش از ۱۰ مجموعه‌داده تصادفی برای آزمون معناداری آماری دقیق‌تر بهره ببرید. علاوه بر این، می‌توانید TCAV را بر روی چندین گلوگاه اعمال کنید تا دیدگاه جامع‌تری داشته باشید.


نقاط قوت

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

ویژگی منحصربه‌فرد دیگر TCAV، قابلیت سفارشی‌سازی آن است که از طریق توضیحات فراتر از انتساب ویژگی فراهم می‌شود. کاربران می‌توانند هر مفهومی را بررسی کنند، به شرطی که آن مفهوم با مجموعه‌داده مفهومی قابل تعریف باشد. به عبارت دیگر، کاربر می‌تواند تعادل میان پیچیدگی و تفسیرپذیری توضیحات را بر اساس نیاز خود تنظیم کند: اگر متخصص حوزه درک عمیقی از مسئله و مفهوم داشته باشد، می‌تواند مجموعه‌داده مفهوم را با داده‌های پیچیده‌تر شکل دهد تا توضیحی دقیق‌تر به دست آورد.

در نهایت، TCAV توضیحات سراسری ایجاد می‌کند که مفاهیم را به هر کلاسی ربط می‌دهند. یک توضیح سراسری این امکان را می‌دهد که بفهمید مدل به‌طور کلی درست عمل می‌کند یا خیر—چیزی که معمولاً توضیحات محلی از عهده آن برنمی‌آیند. بنابراین TCAV می‌تواند برای شناسایی «نقص‌ها» یا «نقاط کور» احتمالی که در طول آموزش مدل پدیدار شده‌اند مورد استفاده قرار گیرد: شاید مدل شما یاد گرفته باشد که وزن نامناسبی به یک مفهوم بدهد. اگر کاربر بتواند این مفاهیم بد آموخته‌شده را شناسایی کند، می‌تواند از این اطلاعات برای بهبود مدل استفاده کند. فرض کنید طبقه‌بندی وجود دارد که «گورخر» را با دقت بالایی پیش‌بینی می‌کند. اما TCAV نشان می‌دهد که طبقه‌بند نسبت به مفهوم «خال‌خال» حساسیت بیشتری دارد تا «راه‌راه». این ممکن است نشان‌دهنده آن باشد که طبقه‌بند به‌طور تصادفی با مجموعه‌داده‌ای نامتوازن آموزش دیده است و می‌توانید مدل را با اضافه کردن تصاویر بیشتری از «گورخرهای راه‌راه» یا حذف تصاویر «گورخرهای خال‌خال» از مجموعه آموزشی بهبود دهید.


محدودیت‌ها

TCAV ممکن است روی شبکه‌های عصبی کم‌عمق‌تر عملکرد ضعیفی داشته باشد. همان‌طور که بسیاری از پژوهش‌ها نشان داده‌اند (از جمله Alain و Bengio (۲۰۱۸))، مفاهیم در لایه‌های عمیق‌تر بیشتر قابل تفکیک هستند. اگر شبکه‌ای بیش از حد کم‌عمق باشد، لایه‌های آن ممکن است قادر به تفکیک مناسب مفاهیم نباشند و در نتیجه TCAV قابل اعمال نخواهد بود.

از آنجا که TCAV نیازمند حاشیه‌نویسی اضافی برای مجموعه‌داده‌های مفهوم است، در مسائلی که داده‌های برچسب‌خورده به‌راحتی در دسترس نیستند، هزینه آن می‌تواند بسیار زیاد باشد. ACE که در بخش بعدی به آن اشاره خواهیم کرد، جایگزین ممکنی برای TCAV در موقعیت‌هایی است که حاشیه‌نویسی پرهزینه است.

هرچند TCAV به دلیل قابلیت سفارشی‌سازی مورد ستایش قرار می‌گیرد، اعمال آن بر روی مفاهیم بیش از حد انتزاعی یا کلی دشوار است. این مشکل عمدتاً ناشی از آن است که TCAV یک مفهوم را از طریق مجموعه‌داده مفهوم متناظر توصیف می‌کند. هرچه مفهومی انتزاعی‌تر یا کلی‌تر باشد—مانند «شادی»—داده‌های بیشتری برای آموزش CAV آن مفهوم لازم است.

هرچند TCAV در اعمال بر داده‌های تصویری محبوبیت یافته است، کاربردهای آن در داده‌های متنی و داده‌های جدولی نسبتاً محدود است.


سایر رویکردهای مبتنی بر مفهوم

رویکرد مبتنی بر مفهوم در سال‌های اخیر توجه فزاینده‌ای جلب کرده و روش‌های جدید بسیاری از آن الهام گرفته‌اند. در اینجا به اختصار به برخی از این روش‌ها اشاره می‌کنیم و اگر به جزئیات بیشتری علاقه دارید، مطالعه آثار اصلی را توصیه می‌کنیم.

توضیح خودکار مبتنی بر مفهوم یا ACE (Automated Concept-based Explanation) (Ghorbani et al. ۲۰۱۹) را می‌توان نسخه خودکار TCAV دانست. ACE مجموعه‌ای از تصاویر یک کلاس را پردازش کرده و بر اساس خوشه‌بندی بخش‌های تصویر به‌صورت خودکار مفاهیم را استخراج می‌کند.

مدل‌های گلوگاه مفهومی یا CBM (Concept Bottleneck Models) (Koh et al. ۲۰۲۰) شبکه‌های عصبی ذاتاً تفسیرپذیر هستند. یک CBM شباهت به مدل رمزگذار-رمزگشا (encoder-decoder) دارد؛ نیمه اول CBM ورودی‌ها را به مفاهیم نگاشت می‌کند و نیمه دوم از مفاهیم نگاشت‌شده برای پیش‌بینی خروجی مدل استفاده می‌کند. فعال‌سازی هر نورون در لایه گلوگاه، اهمیت یک مفهوم را نشان می‌دهد. علاوه بر این، کاربران می‌توانند فعال‌سازی‌های نورون‌های گلوگاه را دستکاری کنند تا توضیحات پادواقعی (counterfactual explanations) از مدل به دست آورند.

سفیدسازی مفهوم یا CW (Concept Whitening) (Chen, Bei, and Rudin ۲۰۲۰) رویکرد دیگری برای ساخت طبقه‌بندهای تصویری ذاتاً تفسیرپذیر است. برای استفاده از CW، یک لایه نرمال‌سازی—مانند لایه batch normalization—با یک لایه CW جایگزین می‌شود. از این رو، CW زمانی بسیار کاربردی است که کاربران بخواهند طبقه‌بندهای تصویری از پیش آموزش‌دیده خود را به مدل‌هایی ذاتاً تفسیرپذیر تبدیل کنند، بدون اینکه عملکرد مدل افت کند. CW به شدت از تبدیل سفیدسازی (whitening transformation) الهام گرفته است و اگر به یادگیری بیشتر درباره CW علاقه دارید، مطالعه ریاضیات پشت این تبدیل را توصیه می‌کنیم.


نرم‌افزار

کتابخانه رسمی Python مربوط به TCAV به TensorFlow نیاز دارد، اما نسخه‌های دیگری نیز به‌صورت آنلاین پیاده‌سازی شده‌اند. دفترچه‌های Jupyter آسان‌استفاده نیز در مخزن tensorflow/tcav در دسترس هستند.


Alain, Guillaume, and Yoshua Bengio. 2018. "Understanding Intermediate Layers Using Linear Classifier Probes." arXiv. https://doi.org/10.48550/arXiv.1610.01644.

Chen, Zhi, Yijie Bei, and Cynthia Rudin. 2020. "Concept Whitening for Interpretable Image Recognition." Nature Machine Intelligence 2 (12): 772–82. https://doi.org/10.1038/s42256-020-00265-z.

Ghorbani, Amirata, James Wexler, James Zou, and Been Kim. 2019. "Towards Automatic Concept-Based Explanations." In Proceedings of the 33rd International Conference on Neural Information Processing Systems, 32:9277–86. 832. Red Hook, NY, USA: Curran Associates Inc.

Kim, Been, Martin Wattenberg, Justin Gilmer, Carrie Cai, James Wexler, Fernanda Viegas, and Rory Sayres. 2018. "Interpretability Beyond Feature Attribution: Quantitative Testing with Concept Activation Vectors (TCAV)." In Proceedings of the 35th International Conference on Machine Learning, 2668–77. PMLR. https://proceedings.mlr.press/v80/kim18d.html.

Koh, Pang Wei, Thao Nguyen, Yew Siang Tang, Stephen Mussmann, Emma Pierson, Been Kim, and Percy Liang. 2020. "Concept Bottleneck Models." In Proceedings of the 37th International Conference on Machine Learning, 5338–48. PMLR. https://proceedings.mlr.press/v119/koh20a.html.

Szegedy, Christian, Vincent Vanhoucke, Sergey Ioffe, Jon Shlens, and Zbigniew Wojna. 2016. "Rethinking the Inception Architecture for Computer Vision." In 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2818–26. https://doi.org/10.1109/CVPR.2016.308.

فصل ۳۰: نمونه‌های متخاصم

عنوان اصلی: Adversarial Examples
منبع: https://christophm.github.io/interpretable-ml-book/adversarial.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


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

چرا به نمونه‌های متخاصم اهمیت می‌دهیم؟ مگر نه اینکه اینها صرفاً محصولات جانبی کنجکاوی‌برانگیز مدل‌های یادگیری ماشین هستند و کاربرد عملی ندارند؟ پاسخ قطعاً «خیر» است. نمونه‌های متخاصم مدل‌های یادگیری ماشین را در برابر حملات آسیب‌پذیر می‌کنند؛ چنانکه در سناریوهای زیر می‌بینیم.

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

یک سیستم تشخیص هرزنامه از دسته‌بندی یک ایمیل به‌عنوان اسپم ناکام می‌ماند. آن ایمیل هرزنامه طوری طراحی شده بود که شبیه یک ایمیل معمولی به نظر برسد، اما با نیت فریب گیرنده.

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

در ادامه به بررسی برخی روش‌های ساخت نمونه‌های متخاصم می‌پردازیم.

روش‌ها و نمونه‌ها

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

چیزی با سگم درست نیست

Szegedy و همکاران (۲۰۱۴) در اثر خود با عنوان «خواص شگفت‌انگیز شبکه‌های عصبی» از رویکرد بهینه‌سازی مبتنی بر گرادیان برای یافتن نمونه‌های متخاصم برای شبکه‌های عصبی عمیق استفاده کردند. یکی از نتایج آن را در شکل ۳۰.۱ می‌بینید.

شکل ۳۰.۱: نمونه‌های متخاصم برای AlexNet اثر Szegedy و همکاران (۲۰۱۳). تمام تصاویر ستون چپ به‌درستی طبقه‌بندی شده‌اند. ستون میانی خطای (بزرگ‌شده‌ی) افزوده‌شده به تصاویر را نشان می‌دهد که در نتیجه، تصاویر ستون راست همگی (به‌اشتباه) به‌عنوان «شترمرغ» طبقه‌بندی می‌شوند. «خواص شگفت‌انگیز شبکه‌های عصبی»، شکل ۵ اثر Szegedy و همکاران. CC-BY 3.0.

این نمونه‌های متخاصم با به حداقل رساندن تابع زیر نسبت به $\mathbf{r}$ تولید شده‌اند:

$$\text{loss}(\hat{f}(\mathbf{x}+\mathbf{r}), l) + c \cdot |\mathbf{r}|$$

در این فرمول، $\mathbf{x}$ یک تصویر (به‌صورت بردار پیکسل‌ها) است، $\mathbf{r}$ تغییر در پیکسل‌ها برای ساخت تصویر متخاصم است ($\mathbf{x} + \mathbf{r}$ تصویر جدیدی تولید می‌کند)، $l$ کلاس نتیجه‌ی دلخواه است، و پارامتر $c$ برای ایجاد تعادل میان فاصله‌ی بین تصاویر و فاصله‌ی بین پیش‌بینی‌ها به‌کار می‌رود. جمله‌ی اول فاصله‌ی بین نتیجه‌ی پیش‌بینی‌شده‌ی نمونه‌ی متخاصم و کلاس دلخواه $l$ را اندازه می‌گیرد؛ جمله‌ی دوم فاصله‌ی بین نمونه‌ی متخاصم و تصویر اصلی را. این فرمول‌بندی تقریباً همان تابع خسارت برای تولید توضیحات پادواقعی است. محدودیت‌های اضافی برای $\mathbf{r}$ وجود دارد تا مقادیر پیکسل‌ها بین ۰ و ۱ باقی بمانند. نویسندگان پیشنهاد می‌کنند این مسئله‌ی بهینه‌سازی را با L-BFGS با قید کادری (box-constrained L-BFGS)، یک الگوریتم بهینه‌سازی مبتنی بر گرادیان، حل کنیم.

پاندای مختل‌شده: روش علامت گرادیان سریع

Goodfellow، Shlens و Szegedy (۲۰۱۵) روش علامت گرادیان سریع (fast gradient sign method) را برای تولید تصاویر متخاصم ابداع کردند. این روش از گرادیان مدل زیرین برای یافتن نمونه‌های متخاصم استفاده می‌کند. تصویر اصلی $\mathbf{x}$ با افزودن یا کاستن یک خطای کوچک $\epsilon$ از هر پیکسل دستکاری می‌شود. اینکه $\epsilon$ را اضافه کنیم یا کم کنیم بستگی دارد به علامت گرادیان برای هر پیکسل — مثبت یا منفی. افزودن خطا در جهت گرادیان یعنی تصویر عمداً به‌گونه‌ای تغییر می‌کند که طبقه‌بندی مدل با شکست مواجه شود.

فرمول اصلی روش علامت گرادیان سریع به‌صورت زیر است:

$$\mathbf{x}^\prime = \mathbf{x} + \epsilon \cdot \text{sign}\left(\nabla_{\mathbf{x}} J(\boldsymbol{\theta}, \mathbf{x}, y)\right)$$

که در آن $\nabla_{\mathbf{x}} J$ گرادیان تابع خسارت مدل نسبت به بردار پیکسل ورودی اصلی $\mathbf{x}$ است، $y$ برچسب واقعی برای $\mathbf{x}$ است، و $\boldsymbol{\theta}$ بردار پارامترهای مدل است. از بردار گرادیان (که به‌اندازه‌ی بردار پیکسل‌های ورودی است) تنها به علامت آن نیاز داریم: علامت گرادیان مثبت (+۱) است اگر افزایش شدت پیکسل، خسارت (خطای مدل) را افزایش دهد، و منفی (−۱) است اگر کاهش شدت پیکسل، خسارت را افزایش دهد. این آسیب‌پذیری زمانی رخ می‌دهد که یک شبکه‌ی عصبی رابطه‌ی بین شدت پیکسل ورودی و امتیاز کلاس را به‌صورت خطی مدل‌سازی کند. به‌ویژه معماری‌های شبکه‌ی عصبی که خطی‌بودن را ترجیح می‌دهند — مانند LSTM، شبکه‌های maxout، شبکه‌های با واحدهای فعال‌سازی ReLU — یا الگوریتم‌های یادگیری ماشین خطی دیگر مانند رگرسیون لجستیک، در برابر این روش آسیب‌پذیر هستند. حمله از طریق برون‌یابی (extrapolation) انجام می‌شود. خطی‌بودن رابطه‌ی بین شدت پیکسل ورودی و امتیازهای کلاس، مدل را در برابر داده‌های پرت آسیب‌پذیر می‌کند؛ یعنی می‌توان مدل را با حرکت دادن مقادیر پیکسل‌ها به حوزه‌هایی خارج از توزیع داده‌ها فریب داد. انتظار داشتم این نمونه‌های متخاصم کاملاً به یک معماری شبکه‌ی عصبی خاص وابسته باشند. اما معلوم شد می‌توان نمونه‌های متخاصم را برای فریب شبکه‌هایی با معماری متفاوت که روی همان وظیفه آموزش دیده‌اند، مجدداً استفاده کرد.

Goodfellow، Shlens و Szegedy (۲۰۱۵) پیشنهاد کردند نمونه‌های متخاصم به داده‌های آموزشی اضافه شوند تا مدل‌های مقاوم‌تری یاد گرفته شوند.

یک عروس‌دریایی… نه، صبر کن. یک وان حمام: حمله‌ی یک‌پیکسلی

رویکرد ارائه‌شده توسط Goodfellow و همکاران (۲۰۱۴) نیازمند تغییر پیکسل‌های بسیار است، هرچند اندک. اما اگر تنها بتوان یک پیکسل را تغییر داد چطور؟ آیا می‌توان مدل یادگیری ماشین را فریب داد؟ Su، Vargas و Sakurai (۲۰۱۹) نشان دادند که با تغییر یک پیکسل واحد واقعاً می‌توان طبقه‌بند تصاویر را فریب داد، همان‌طور که در شکل ۳۰.۲ نشان داده شده است.

شکل ۳۰.۲: با تغییر عمدی یک پیکسل، می‌توان یک شبکه‌ی عصبی آموزش‌دیده بر ImageNet را فریب داد تا کلاس اشتباهی را به‌جای کلاس اصلی پیش‌بینی کند.

همانند پادواقعی‌ها، حمله‌ی یک‌پیکسلی به دنبال نمونه‌ی اصلاح‌شده‌ای $\mathbf{x}^\prime$ می‌گردد که به تصویر اصلی $\mathbf{x}$ نزدیک باشد، اما پیش‌بینی را به نتیجه‌ای متخاصم تغییر دهد. با این حال، تعریف نزدیکی متفاوت است: تنها یک پیکسل مجاز به تغییر است. حمله‌ی یک‌پیکسلی از تکامل دیفرانسیلی (differential evolution) برای یافتن اینکه کدام پیکسل باید تغییر کند و چگونه، استفاده می‌کند. تکامل دیفرانسیلی به‌طور تقریبی از تکامل بیولوژیک گونه‌ها الهام گرفته است. یک جمعیت از افراد به نام راه‌حل‌های کاندیدا نسل به نسل با هم ترکیب می‌شوند تا راه‌حلی یافت شود. هر راه‌حل کاندیدا یک تغییر پیکسل را رمزگذاری می‌کند و به‌صورت برداری از پنج عنصر نمایش داده می‌شود: مختصات $x$ و $y$، و مقادیر قرمز، سبز و آبی (RGB). جستجو مثلاً با ۴۰۰ راه‌حل کاندیدا (= پیشنهادهای اصلاح پیکسل) شروع می‌شود و با استفاده از فرمول زیر، نسل جدیدی از راه‌حل‌های کاندیدا (فرزندان) از نسل والدین تولید می‌کند:

$$\mathbf{x}_{g+1}^{(i)} = \mathbf{x}_g^{(r1)} + F \cdot (\mathbf{x}_g^{(r2)}- \mathbf{x}_g^{(r3)})$$

که در آن هر $x^{(i)}$ یک عنصر از راه‌حل کاندیدا است (یا مختصات $x$، یا مختصات $y$، یا قرمز، سبز، یا آبی)، $g$ نسل فعلی است، $F$ یک پارامتر مقیاس‌بندی (برابر ۰.۵) است، و $r1$، $r2$ و $r3$ اعداد تصادفی متفاوتند. هر راه‌حل کاندیدای فرزند نیز یک پیکسل با پنج ویژگی مکان و رنگ است که هر یک از آنها ترکیبی از سه پیکسل والد تصادفی است.

تولید فرزندان زمانی متوقف می‌شود که یکی از راه‌حل‌های کاندیدا نمونه‌ی متخاصم باشد — یعنی به کلاس اشتباهی طبقه‌بندی شده باشد — یا به حداکثر تعداد تکرارهای تعیین‌شده توسط کاربر رسیده باشیم.

همه چیز توستر است: وصله‌ی متخاصم

یکی از روش‌های موردعلاقه‌ام، نمونه‌های متخاصم را وارد دنیای فیزیکی می‌کند. Brown و همکاران (۲۰۱۸) یک برچسب قابل چاپ طراحی کردند که می‌توان آن را در کنار اشیا چسباند تا برای یک طبقه‌بند تصویر شبیه توستر به نظر برسند؛ به شکل ۳۰.۳ نگاه کنید. کار درخشانی!

شکل ۳۰.۳: یک برچسب که باعث می‌شود طبقه‌بند VGG16 آموزش‌دیده بر ImageNet، تصویر یک موز را به‌عنوان توستر دسته‌بندی کند. اثر Brown و همکاران (۲۰۱۷).

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

هرگز لاک‌پشت چاپ‌شده با پرینتر سه‌بعدی به یک نبرد نبرید — حتی اگر رایانه‌تان فکر کند ایده‌ی خوبی است: نمونه‌های متخاصم مقاوم

روش بعدی به معنای واقعی کلمه یک بُعد جدید به توستر اضافه می‌کند: Athalye و همکاران (۲۰۱۸) یک لاک‌پشت با پرینتر سه‌بعدی چاپ کردند که طراحی شده بود از تقریباً تمام زوایای ممکن برای یک شبکه‌ی عصبی عمیق شبیه تفنگ به نظر برسد؛ شکل ۳۰.۴ را ببینید. بله، درست خواندید. یک شیء فیزیکی که برای انسان شبیه لاک‌پشت به نظر می‌رسد، برای رایانه شبیه تفنگ دیده می‌شود!

شکل ۳۰.۴: Athalye و همکاران (۲۰۱۷) یک شیء چاپ‌شده با پرینتر سه‌بعدی ساختند که طبقه‌بند از پیش‌آموزش‌دیده‌ی استاندارد InceptionV3 در TensorFlow آن را به‌عنوان تفنگ تشخیص می‌دهد.

این نویسندگان راهی یافتند تا یک نمونه‌ی متخاصم سه‌بعدی برای یک طبقه‌بند دو‌بعدی بسازند که در برابر تبدیل‌هایی مانند تمام حالت‌های چرخش لاک‌پشت، زوم، و غیره نیز متخاصم بماند. سایر رویکردها، مانند روش گرادیان سریع، وقتی تصویر چرخیده می‌شود یا زاویه‌ی دید تغییر می‌کند دیگر کارایی ندارند. Athalye و همکاران (۲۰۱۷) الگوریتم انتظار روی تبدیل (Expectation Over Transformation — EOT) را پیشنهاد کردند که روشی برای تولید نمونه‌های متخاصمی است که حتی وقتی تصویر تبدیل می‌شود نیز کارایی دارند. ایده‌ی اصلی پشت EOT این است که نمونه‌های متخاصم را روی تبدیل‌های ممکن متعدد بهینه کنیم. به‌جای به حداقل رساندن فاصله‌ی بین نمونه‌ی متخاصم و تصویر اصلی، EOT امید ریاضی (expected value) فاصله‌ی بین این دو را با توجه به توزیع انتخاب‌شده‌ای از تبدیل‌های ممکن، زیر آستانه‌ای معین نگه می‌دارد. امید ریاضی فاصله زیر تبدیل را می‌توان به‌صورت زیر نوشت:

$$\mathbb{E}_{t \sim T}[d(t(\mathbf{x}^\prime), t(\mathbf{x}))]$$

که در آن $\mathbf{x}$ تصویر اصلی، $t(\mathbf{x})$ تصویر تبدیل‌یافته (مثلاً چرخیده)، $\mathbf{x}^\prime$ نمونه‌ی متخاصم، و $t(\mathbf{x}^\prime)$ نسخه‌ی تبدیل‌یافته‌ی آن است. علاوه بر کار با توزیعی از تبدیل‌ها، روش EOT از همان الگوی آشنای قاب‌بندی جستجو برای نمونه‌های متخاصم به‌صورت یک مسئله‌ی بهینه‌سازی پیروی می‌کند. می‌کوشیم نمونه‌ی متخاصم $\mathbf{x}^\prime$ را پیدا کنیم که احتمال کلاس انتخاب‌شده $y_t$ (مثلاً «تفنگ») را روی توزیع تبدیل‌های ممکن $T$ بیشینه کند:

$$\arg\max_{\mathbf{x}^\prime} \mathbb{E}_{t \sim T}[\log \mathbb{P}(y_t | t(\mathbf{x}^\prime))]$$

با این قید که امید ریاضی فاصله روی تمام تبدیل‌های ممکن بین نمونه‌ی متخاصم $\mathbf{x}^\prime$ و تصویر اصلی $\mathbf{x}$ زیر آستانه‌ای معین باقی بماند:

$$\mathbb{E}_{t \sim T}[d(t(\mathbf{x}^\prime), t(\mathbf{x}))] < \epsilon \quad \text{and} \quad \mathbf{x} \in [0,1]^d$$

فکر می‌کنم باید نگران امکاناتی باشیم که این روش فراهم می‌کند. سایر روش‌ها مبتنی بر دستکاری تصاویر دیجیتال هستند. اما این نمونه‌های متخاصم مقاوم چاپ‌شده با پرینتر سه‌بعدی را می‌توان در هر صحنه‌ی واقعی قرار داد و رایانه را فریب داد تا یک شیء را به‌اشتباه طبقه‌بندی کند. این را برعکس هم در نظر بگیرید: چه می‌شود اگر کسی تفنگی بسازد که شبیه لاک‌پشت باشد؟

دشمن چشم‌بسته: حمله‌ی جعبه‌سیاه

سناریوی زیر را تصور کنید: به شما از طریق یک Web API به طبقه‌بند تصویر فوق‌العاده‌ام دسترسی می‌دهم. می‌توانید پیش‌بینی‌هایی از مدل بگیرید، اما به پارامترهای مدل دسترسی ندارید. از راحتی کاناپه‌تان می‌توانید داده ارسال کنید و سرویس من طبقه‌بندی‌های متناظر را پاسخ می‌دهد. بیشتر حملات متخاصم برای کار در این سناریو طراحی نشده‌اند، زیرا برای یافتن نمونه‌های متخاصم به گرادیان شبکه‌ی عصبی زیرین نیاز دارند. Papernot و همکاران (۲۰۱۷) نشان دادند که می‌توان بدون اطلاعات داخلی مدل و بدون دسترسی به داده‌های آموزشی، نمونه‌های متخاصم ساخت. این نوع حمله با (تقریباً) هیچ دانش قبلی، حمله‌ی جعبه‌سیاه (black box attack) نامیده می‌شود.

نحوه‌ی کار:

۱. با چند تصویر از همان حوزه‌ای که داده‌های آموزشی از آن می‌آیند شروع کنید؛ مثلاً اگر طبقه‌بندی که باید مورد حمله قرار گیرد یک طبقه‌بند ارقام است، از تصاویر ارقام استفاده کنید. دانش حوزه لازم است، اما دسترسی به داده‌های آموزشی لازم نیست. ۲. پیش‌بینی‌هایی برای مجموعه‌ی فعلی تصاویر از جعبه‌سیاه بگیرید. ۳. یک مدل جایگزین (surrogate model) روی مجموعه‌ی فعلی تصاویر آموزش دهید (مثلاً یک شبکه‌ی عصبی). ۴. با استفاده از یک اکتشافی که بررسی می‌کند مدل در کدام جهت پیکسل‌های مجموعه‌ی فعلی تصاویر را دستکاری کند تا خروجی مدل واریانس بیشتری داشته باشد، یک مجموعه‌ی جدید از تصاویر مصنوعی بسازید. ۵. مراحل ۲ تا ۴ را برای تعداد از پیش تعیین‌شده‌ای از دوره‌ها تکرار کنید. ۶. نمونه‌های متخاصم برای مدل جایگزین با استفاده از روش گرادیان سریع (یا مشابه آن) بسازید. ۷. مدل اصلی را با نمونه‌های متخاصم مورد حمله قرار دهید.

هدف مدل جایگزین تقریب‌زدن به مرزهای تصمیم مدل جعبه‌سیاه است، نه لزوماً دستیابی به همان دقت.

نویسندگان این رویکرد را با حمله به طبقه‌بندهای تصویر آموزش‌دیده در سرویس‌های مختلف یادگیری ماشین ابری آزمایش کردند. این سرویس‌ها طبقه‌بندهای تصویر را روی تصاویر و برچسب‌های آپلودشده توسط کاربر آموزش می‌دهند. نرم‌افزار مدل را به‌طور خودکار — گاهی با الگوریتمی که برای کاربر ناشناخته است — آموزش داده و مستقر می‌کند. سپس طبقه‌بند برای تصاویر آپلودشده پیش‌بینی می‌دهد، اما خود مدل قابل بررسی یا دانلود نیست. نویسندگان توانستند برای ارائه‌دهندگان مختلف نمونه‌های متخاصم بیابند، به‌طوری که تا ۸۴٪ از نمونه‌های متخاصم اشتباه طبقه‌بندی شدند.

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

منظر امنیت سایبری

یادگیری ماشین با مجهولات شناخته‌شده سروکار دارد: پیش‌بینی نقاط داده‌ی ناشناخته از یک توزیع شناخته‌شده. دفاع در برابر حملات با مجهولات ناشناخته سروکار دارد: پیش‌بینی قوی نقاط داده‌ی ناشناخته از توزیع ناشناخته‌ای از ورودی‌های متخاصم. با ادغام یادگیری ماشین در سیستم‌های بیشتر و بیشتری مانند وسایل نقلیه‌ی خودران یا دستگاه‌های پزشکی، این سیستم‌ها به نقاط ورودی برای حملات نیز تبدیل می‌شوند. حتی اگر پیش‌بینی‌های یک مدل یادگیری ماشین روی مجموعه‌ی آزمایشی ۱۰۰٪ درست باشد، می‌توان نمونه‌های متخاصمی یافت که مدل را فریب دهند. دفاع از مدل‌های یادگیری ماشین در برابر حملات سایبری، بخش جدیدی از حوزه‌ی امنیت سایبری است.

Biggio و Roli (۲۰۱۸) مروری خوب بر ده سال پژوهش در یادگیری ماشین متخاصم ارائه می‌دهند که این بخش بر اساس آن نوشته شده است. امنیت سایبری یک مسابقه‌ی تسلیحاتی است که مهاجمان و مدافعان بارها و بارها یکدیگر را مات و مبهوت می‌کنند.

سه قانون طلایی در امنیت سایبری وجود دارد: ۱) دشمنت را بشناس، ۲) پیشگیرانه عمل کن، و ۳) از خود محافظت کن.

برنامه‌های کاربردی مختلف، دشمنان متفاوتی دارند. افرادی که از طریق ایمیل می‌کوشند از دیگران کلاهبرداری کنند، دشمنانی برای کاربران و ارائه‌دهندگان سرویس‌های ایمیل هستند. ارائه‌دهندگان می‌خواهند از کاربرانشان محافظت کنند تا بتوانند به استفاده از برنامه‌ی ایمیلشان ادامه دهند؛ مهاجمان می‌خواهند مردم را به دادن پول وادار کنند. شناختن دشمنانت یعنی شناختن اهدافشان. فرض کنید نمی‌دانید این هرزنامه‌نویسان وجود دارند و تنها سوءاستفاده از سرویس ایمیل ارسال کپی‌های غیرمجاز موسیقی است؛ در این صورت دفاع متفاوت خواهد بود (مثلاً اسکن پیوست‌ها برای مطالب دارای حق نشر به‌جای تحلیل متن برای شناسایی اسپم).

پیشگیرانه عمل کردن یعنی فعالانه نقاط ضعف سیستم را آزمایش و شناسایی کنید. شما پیشگیرانه عمل می‌کنید وقتی فعالانه می‌کوشید مدل را با نمونه‌های متخاصم فریب دهید و سپس در برابر آنها دفاع کنید. استفاده از روش‌های تفسیر برای درک اینکه کدام ویژگی‌ها مهم هستند و چگونه ویژگی‌ها بر پیش‌بینی تأثیر می‌گذارند، گامی پیشگیرانه در شناخت نقاط ضعف مدل یادگیری ماشین است. آیا به‌عنوان دانشمند داده، به مدلتان در این دنیای خطرناک بدون اینکه هرگز فراتر از قدرت پیش‌بینی روی مجموعه‌ی آزمایشی نگاهی انداخته باشید اعتماد می‌کنید؟ آیا تحلیل کرده‌اید که مدل در سناریوهای مختلف چه رفتاری دارد، مهم‌ترین ورودی‌ها را شناسایی کرده‌اید، و توضیحات پیش‌بینی را برای برخی نمونه‌ها بررسی کرده‌اید؟ آیا کوشیده‌اید ورودی‌های متخاصم بیابید؟ تفسیرپذیری مدل‌های یادگیری ماشین نقش اساسی در امنیت سایبری دارد. واکنشی عمل کردن، برعکس پیشگیرانه، یعنی منتظر ماندن تا سیستم مورد حمله قرار گیرد و تنها پس از آن، مسئله را درک کردن و اقدامات دفاعی را نصب کردن.

چگونه می‌توانیم سیستم‌های یادگیری ماشینمان را در برابر نمونه‌های متخاصم محافظت کنیم؟ رویکردی پیشگیرانه، آموزش مجدد تکراری طبقه‌بند با نمونه‌های متخاصم است که به آن آموزش متخاصم (adversarial training) نیز گفته می‌شود. رویکردهای دیگر بر نظریه‌ی بازی‌ها مبتنی هستند، مانند یادگیری تبدیل‌های ناوردا از ویژگی‌ها یا بهینه‌سازی مقاوم (منظم‌سازی). روش پیشنهادی دیگر استفاده از چندین طبقه‌بند به‌جای یک طبقه‌بند و رأی‌گیری میان آنها است (یادگیری گروهی یا ensemble)، اما این روش هیچ تضمینی ندارد، زیرا همه‌ی آنها می‌توانند از نمونه‌های متخاصم مشابهی آسیب ببینند. روش دیگری که آن هم به‌خوبی کار نمی‌کند پوشش گرادیان (gradient masking) است که با ساخت مدلی بدون گرادیان‌های مفید — مثلاً استفاده از طبقه‌بند نزدیک‌ترین همسایه به‌جای مدل اصلی — حاصل می‌شود.

می‌توانیم انواع حملات را بر اساس میزان اطلاعات مهاجم از سیستم تقسیم‌بندی کنیم. مهاجمان ممکن است دانش کامل داشته باشند (حمله‌ی جعبه‌سفید یا white box attack)، یعنی همه چیز درباره‌ی مدل بدانند مانند نوع مدل، پارامترها و داده‌های آموزشی؛ مهاجمان ممکن است دانش جزئی داشته باشند (حمله‌ی جعبه‌خاکستری یا gray box attack)، یعنی شاید فقط نمایش ویژگی و نوع مدل استفاده‌شده را بدانند، اما به داده‌های آموزشی یا پارامترها دسترسی نداشته باشند؛ مهاجمان ممکن است هیچ دانشی نداشته باشند (حمله‌ی جعبه‌سیاه یا black box attack)، یعنی تنها بتوانند مدل را به‌صورت جعبه‌سیاه پرس‌وجو کنند و هیچ دسترسی به داده‌های آموزشی یا اطلاعات پارامترهای مدل نداشته باشند. بسته به سطح اطلاعات، مهاجمان می‌توانند از تکنیک‌های مختلفی برای حمله به مدل استفاده کنند. همان‌طور که در مثال‌ها دیدیم، حتی در حالت جعبه‌سیاه نیز می‌توان نمونه‌های متخاصم ساخت، پس پنهان نگه داشتن اطلاعات درباره‌ی داده‌ها و مدل برای محافظت در برابر حملات کافی نیست.

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


Athalye, Anish, Logan Engstrom, Andrew Ilyas, and Kevin Kwok. 2018. "Synthesizing Robust Adversarial Examples." In International Conference on Machine Learning, 284–93. PMLR.

Biggio, Battista, and Fabio Roli. 2018. "Wild Patterns: Ten Years After the Rise of Adversarial Machine Learning." Pattern Recognition 84 (December): 317–31. https://doi.org/10.1016/j.patcog.2018.07.023.

Brown, Tom B., Dandelion Mané, Aurko Roy, Martín Abadi, and Justin Gilmer. 2018. "Adversarial Patch." arXiv. https://doi.org/10.48550/arXiv.1712.09665.

Goodfellow, Ian J., Jonathon Shlens, and Christian Szegedy. 2015. "Explaining and Harnessing Adversarial Examples." arXiv. https://doi.org/10.48550/arXiv.1412.6572.

Papernot, Nicolas, Patrick McDaniel, Ian Goodfellow, Somesh Jha, Z. Berkay Celik, and Ananthram Swami. 2017. "Practical Black-Box Attacks Against Machine Learning." In Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security, 506–19. ASIA CCS '17. New York, NY, USA: Association for Computing Machinery. https://doi.org/10.1145/3052973.3053009.

Su, Jiawei, Danilo Vasconcellos Vargas, and Kouichi Sakurai. 2019. "One Pixel Attack for Fooling Deep Neural Networks." IEEE Transactions on Evolutionary Computation 23 (5): 828–41. https://doi.org/10.1109/TEVC.2019.2890858.

Szegedy, Christian, Wojciech Zaremba, Ilya Sutskever, Joan Bruna, Dumitru Erhan, Ian Goodfellow, and Rob Fergus. 2014. "Intriguing Properties of Neural Networks." arXiv. https://doi.org/10.48550/arXiv.1312.6199.

فصل ۳۱: نمونه‌های تأثیرگذار

عنوان اصلی: Influential Instances
منبع: https://christophm.github.io/interpretable-ml-book/influential.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


مدل‌های یادگیری ماشین در نهایت حاصل داده‌های آموزشی هستند؛ حذف یکی از نمونه‌های آموزشی می‌تواند پارامترها یا پیش‌بینی‌های مدل را تحت تأثیر قرار دهد. یک نمونهٔ آموزشی را «تأثیرگذار» می‌نامیم اگر حذف آن از داده‌های آموزشی، پارامترها یا پیش‌بینی‌های مدل را به‌شکل قابل‌ملاحظه‌ای تغییر دهد. با شناسایی نمونه‌های تأثیرگذار می‌توان مدل‌های یادگیری ماشین را «اشکال‌زدایی» کرد و رفتار و پیش‌بینی‌های آن‌ها را بهتر تبیین نمود.

در این فصل دو رویکرد برای شناسایی نمونه‌های تأثیرگذار معرفی می‌شود: تشخیص‌های حذفی (Deletion Diagnostics) و توابع تأثیر (Influence Functions). هر دو رویکرد بر پایهٔ آمار مقاوم (Robust Statistics) بنا شده‌اند؛ آمار مقاومی که روش‌های آماری‌ای را ارائه می‌دهد که کمتر تحت تأثیر داده‌های پرت یا نقض فروض مدل قرار می‌گیرند. آمار مقاوم همچنین روش‌هایی برای سنجش میزان استواری برآوردهای حاصل از داده — مانند برآورد میانگین یا وزن‌های یک مدل پیش‌بینی — ارائه می‌کند.

تصور کنید می‌خواهید میانگین درآمد مردم شهرتان را برآورد کنید و از ده نفر تصادفی در خیابان می‌پرسید چقدر درمی‌آورند. فارغ از اینکه نمونهٔ شما احتمالاً خوب نیست، یک نفر چقدر می‌تواند برآورد میانگین درآمد شما را تحت تأثیر بگذارد؟ برای پاسخ به این سؤال می‌توان میانگین را با حذف یک‌به‌یک پاسخ‌ها بازمحاسبه کرد، یا از طریق «توابع تأثیر» به‌شکل ریاضی نشان داد که میانگین چقدر می‌تواند دستکاری شود. در رویکرد حذفی، میانگین را ده بار محاسبه می‌کنیم و هر بار یکی از اعلام درآمدها را حذف می‌کنیم تا ببینیم برآورد چقدر تغییر می‌کند. تغییر زیاد نشان‌دهندهٔ تأثیرگذاری بالای آن نمونه است. رویکرد دوم، وزن یکی از افراد را به اندازه‌ای بی‌نهایت کوچک افزایش می‌دهد که معادل محاسبهٔ مشتق اول یک آمارهٔ آماری یا پارامتر مدل است؛ این رویکرد را «رویکرد بی‌نهایت کوچک» یا «تابع تأثیر» نیز می‌نامند. پاسخ این است که برآورد میانگین می‌تواند به‌شدت تحت تأثیر یک پاسخ قرار گیرد، چون میانگین با مقادیر منفرد رابطهٔ خطی دارد. انتخاب مقاوم‌تر، میانه است (مقداری که نیمی از مردم بیشتر و نیمی کمتر از آن درمی‌آورند)، زیرا حتی اگر درآمد پردرآمدترین فرد نمونه ده برابر شود، میانهٔ حاصل تغییر نمی‌کند.

تشخیص‌های حذفی و توابع تأثیر را می‌توان بر پارامترها یا پیش‌بینی‌های مدل‌های یادگیری ماشین نیز اعمال کرد تا رفتار آن‌ها را بهتر درک کرده یا پیش‌بینی‌های فردی را تبیین نمود. پیش از بررسی این دو رویکرد برای یافتن نمونه‌های تأثیرگذار، تفاوت میان «داده‌پرت» و «نمونهٔ تأثیرگذار» را بررسی می‌کنیم.

داده‌پرت (Outlier)

داده‌پرت نمونه‌ای است که فاصلهٔ زیادی از سایر نمونه‌های مجموعه داده دارد. «فاصلهٔ زیاد» به این معنا است که فاصلهٔ آن، مثلاً فاصلهٔ اقلیدسی، با تمام نمونه‌های دیگر بسیار زیاد است. در یک مجموعه داده از نوزادان، نوزادی با وزن ۵ کیلوگرم داده‌پرت محسوب می‌شود. در مجموعه داده‌ای از حساب‌های بانکی که بیشتر آن‌ها حساب جاری هستند، یک حساب وام اختصاصی (موجودی منفی زیاد، تراکنش‌های اندک) داده‌پرت تلقی می‌شود. شکل ۳۱.۱ یک داده‌پرت را در یک توزیع یک‌بعدی نشان می‌دهد.

شکل ۳۱.۱: ویژگی x از توزیع گاوسی پیروی می‌کند با یک داده‌پرت در x=8.

داده‌های پرت می‌توانند نقاط داده‌ای جالب باشند (به‌عنوان مثال نقدها). وقتی یک داده‌پرت روی مدل تأثیر می‌گذارد، در عین حال یک نمونهٔ تأثیرگذار هم هست.

نمونهٔ تأثیرگذار (Influential Instance)

نمونهٔ تأثیرگذار یک نمونهٔ داده‌ای است که حذف آن تأثیر قوی‌ای بر مدل آموزش‌دیده می‌گذارد. هرچه با حذف یک نمونه از داده‌های آموزشی و آموزش مجدد مدل، پارامترها یا پیش‌بینی‌های مدل بیشتر تغییر کنند، آن نمونه تأثیرگذارتر است. اینکه یک نمونه برای مدل آموزش‌دیده تأثیرگذار باشد یا نه، به مقدار هدف y آن نمونه نیز بستگی دارد. شکل ۳۱.۲ یک نمونهٔ تأثیرگذار را برای یک مدل رگرسیون خطی نشان می‌دهد.

شکل ۳۱.۲: یک مدل خطی با یک ویژگی که یک‌بار روی داده‌های کامل و یک‌بار بدون نمونهٔ تأثیرگذار آموزش دیده است. حذف نمونهٔ تأثیرگذار شیب برازش‌یافته (وزن/ضریب) را تغییر می‌دهد.

چرا نمونه‌های تأثیرگذار به درک مدل کمک می‌کنند؟

ایدهٔ اصلی پشت نمونه‌های تأثیرگذار برای تفسیرپذیری، ردیابی پارامترها و پیش‌بینی‌های مدل به ریشهٔ اصلی آن‌ها است: داده‌های آموزشی. یادگیرنده (Learner)، یعنی الگوریتمی که مدل یادگیری ماشین را تولید می‌کند، تابعی است که داده‌های آموزشی شامل ماتریس ویژگی‌ها $\mathbf{X}$ و بردار هدف $\mathbf{y}$ را دریافت و یک مدل یادگیری ماشین تولید می‌کند، همان‌طور که شکل ۳۱.۳ نشان می‌دهد. برای مثال، یادگیرندهٔ یک درخت تصمیم الگوریتمی است که ویژگی‌های تقسیم و مقادیر تقسیم را انتخاب می‌کند. یادگیرندهٔ یک شبکهٔ عصبی از پس‌انتشار (Backpropagation) برای یافتن بهترین وزن‌ها استفاده می‌کند.

شکل ۳۱.۳: یادگیرنده یک مدل را از داده‌های آموزشی (ویژگی‌ها به‌علاوهٔ هدف) یاد می‌گیرد. مدل برای داده‌های جدید پیش‌بینی می‌کند.

ما می‌پرسیم اگر در فرآیند آموزش، نمونه‌هایی را از داده‌های آموزشی حذف کنیم، پارامترها یا پیش‌بینی‌های مدل چگونه تغییر می‌کنند. این رویکرد با سایر رویکردهای تفسیرپذیری که نحوهٔ تغییر پیش‌بینی را هنگام دست‌کاری ویژگی‌های نمونه‌های پیش‌بینی‌شونده تحلیل می‌کنند — مانند نمودارهای وابستگی جزئی یا اهمیت ویژگی — تفاوت اساسی دارد. در رویکرد نمونه‌های تأثیرگذار، مدل را ثابت در نظر نمی‌گیریم، بلکه آن را تابعی از داده‌های آموزشی می‌دانیم. نمونه‌های تأثیرگذار به ما کمک می‌کنند سؤالاتی درباره رفتار کلی مدل و پیش‌بینی‌های فردی پاسخ دهیم: کدام نمونه‌ها برای پارامترها یا پیش‌بینی‌های کلی مدل بیشترین تأثیر را داشته‌اند؟ کدام نمونه‌ها برای یک پیش‌بینی خاص بیشترین تأثیر را داشته‌اند؟ نمونه‌های تأثیرگذار به ما نشان می‌دهند کدام نمونه‌ها ممکن است برای مدل مشکل‌ساز باشند، کدام نمونه‌های آموزشی باید از نظر خطا بررسی شوند، و تصویری از استواری مدل به دست می‌دهند. اگر یک نمونهٔ منفرد تأثیر قوی‌ای بر پیش‌بینی‌ها و پارامترهای مدل داشته باشد، شاید نتوان به آن مدل اعتماد کرد. حداقل این موضوع انگیزه‌ای برای بررسی‌های بیشتر خواهد بود.

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

تشخیص‌های حذفی

آمارشناسان پژوهش‌های گسترده‌ای در حوزهٔ نمونه‌های تأثیرگذار، به‌ویژه برای مدل‌های رگرسیون خطی (تعمیم‌یافته)، انجام داده‌اند. با جستجوی عبارت «influential observations»، نخستین نتایج معیارهایی مانند DFBETA و فاصلهٔ کوک (Cook's Distance) هستند. DFBETA اثر حذف یک نمونه بر پارامترهای مدل را اندازه می‌گیرد. فاصلهٔ کوک (Cook ۱۹۷۷) اثر حذف یک نمونه بر پیش‌بینی‌های مدل را اندازه می‌گیرد. برای هر دو معیار باید مدل را بارها آموزش دهیم و هر بار یک نمونه را حذف کنیم. سپس پارامترها یا پیش‌بینی‌های مدل با تمام نمونه‌ها با پارامترها یا پیش‌بینی‌های مدلی که یکی از نمونه‌ها از آن حذف شده، مقایسه می‌شوند.

DFBETA به‌صورت زیر تعریف می‌شود:

$$DFBETA_{i}=\boldsymbol{\beta}-\boldsymbol{\beta}^{(-i)}$$

که در آن $\boldsymbol{\beta}$ بردار وزن هنگام آموزش مدل روی تمام نمونه‌ها است و $\boldsymbol{\beta^{(-i)}}$ بردار وزن هنگام آموزش مدل بدون نمونهٔ $i$ است. کاملاً شهودی است. DFBETA تنها برای مدل‌هایی با پارامترهای وزنی — مانند رگرسیون لجستیک یا شبکه‌های عصبی — کار می‌کند و برای مدل‌هایی مانند درخت‌های تصمیم، مجموعه‌های درختی، برخی ماشین‌های بردار پشتیبان و غیره کاربرد ندارد.

فاصلهٔ کوک برای مدل‌های رگرسیون خطی ابداع شده است و تقریب‌هایی برای مدل‌های رگرسیون خطی تعمیم‌یافته نیز وجود دارد. فاصلهٔ کوک برای یک نمونهٔ آموزشی به‌صورت مجموع مقیاس‌شدهٔ مجذور تفاوت‌ها در پیامد پیش‌بینی‌شده هنگام حذف نمونهٔ $i$ از آموزش مدل تعریف می‌شود:

$$D_i=\frac{\sum_{j=1}^n(\hat{y}_j-\hat{y}_{j}^{(-i)})^2}{p\cdot{}MSE}$$

که در آن صورت کسر مجذور تفاوت بین پیش‌بینی‌های مدل با و بدون نمونهٔ $i$، جمع‌زده شده روی کل مجموعه داده، است. مخرج کسر تعداد ویژگی‌های $p$ ضربدر میانگین مربعات خطا (MSE) است. مخرج برای همهٔ نمونه‌ها یکسان است، صرف‌نظر از اینکه کدام نمونهٔ $i$ حذف شده باشد. فاصلهٔ کوک به ما می‌گوید وقتی نمونهٔ $i$ را از آموزش حذف می‌کنیم، خروجی پیش‌بینی‌شدهٔ مدل خطی چقدر تغییر می‌کند.

آیا می‌توان از فاصلهٔ کوک و DFBETA برای هر مدل یادگیری ماشینی استفاده کرد؟ DFBETA به پارامترهای مدل نیاز دارد، پس این معیار تنها برای مدل‌های پارامتریک کار می‌کند. فاصلهٔ کوک به پارامترهای مدل نیاز ندارد. جالب است که فاصلهٔ کوک معمولاً خارج از بافت مدل‌های خطی و خطی تعمیم‌یافته دیده نمی‌شود، اما ایدهٔ محاسبهٔ تفاوت بین پیش‌بینی‌های مدل پیش و پس از حذف یک نمونهٔ خاص بسیار کلی است. مشکل تعریف فاصلهٔ کوک در وجود MSE است که برای همهٔ انواع مدل‌های پیش‌بینی معنادار نیست (برای مثال، طبقه‌بندی).

ساده‌ترین معیار تأثیر برای اثر بر پیش‌بینی‌های مدل را می‌توان چنین نوشت:

$$\text{Influence}^{(-i)}=\frac{1}{n}\sum_{k=1}^{n}\left|\hat{y}_k-\hat{y}_{k}^{(-i)}\right|$$

این عبارت اساساً صورت کسر فاصلهٔ کوک است، با این تفاوت که به‌جای مجذور تفاوت‌ها، قدر مطلق آن‌ها جمع می‌شود. این انتخاب به این دلیل انجام شده که در مثال‌های بعدی معنادارتر است. شکل کلی معیارهای تشخیص حذفی شامل انتخاب یک معیار (مانند پیامد پیش‌بینی‌شده) و محاسبهٔ تفاوت آن معیار برای مدل آموزش‌دیده روی تمام نمونه‌ها و هنگامی که نمونه حذف شده است، می‌باشد.

می‌توان تأثیر را به‌راحتی تجزیه کرد تا برای پیش‌بینی نمونهٔ $k$ نشان داد تأثیر نمونهٔ آموزشی $i$-ام چقدر بوده است:

$$\text{Influence}_{k}^{(-i)}=\left|\hat{y}_k - \hat{y}_{k}^{(-i)}\right|$$

این رویکرد برای تفاوت در پارامترهای مدل یا تفاوت در زیان نیز کار می‌کند. در مثال زیر از این معیارهای ساده تأثیر استفاده می‌کنیم.

مثال تشخیص‌های حذفی

در مثال زیر، یک Random Forest برای پیش‌بینی جنسیت پنگوئن بر اساس اندازه‌گیری‌های بدن آموزش می‌دهیم و اندازه می‌گیریم کدام نمونه‌های آموزشی در مجموع و برای یک پیش‌بینی خاص بیشترین تأثیر را داشته‌اند. از آنجا که این یک مسئلهٔ طبقه‌بندی است، تأثیر را به‌صورت تفاوت در احتمال پیش‌بینی‌شده برای جنس مادهٔ می‌سنجیم. یک نمونه تأثیرگذار است اگر وقتی از آموزش مدل حذف می‌شود، احتمال پیش‌بینی‌شده به‌طور میانگین در کل مجموعه داده به‌شکل قابل‌توجهی افزایش یا کاهش یابد. سنجش تأثیر برای همهٔ ۲۲۲ نمونهٔ آموزشی مستلزم یک‌بار آموزش مدل روی تمام داده‌ها و ۲۲۲ بار آموزش مجدد با حذف یکی از نمونه‌ها است.

تأثیرگذارترین نمونه معیار تأثیری حدود ۰.۰۱۲ دارد. تأثیر ۰.۰۱۲ یعنی اگر نمونهٔ دوازدهم را حذف کنیم، احتمال پیش‌بینی‌شده به‌طور میانگین ۱.۲ درصد تغییر می‌کند. این عدد زیاد به نظر نمی‌رسد، اما میانگینی است روی کل داده که تنها از حذف ۱ نقطه داده به دست آمده است. اکنون می‌دانیم کدام نمونه‌های داده برای مدل بیشترین تأثیر را داشته‌اند. این دانش برای اشکال‌زدایی داده بسیار مفید است: آیا نمونهٔ مشکل‌داری وجود دارد؟ آیا خطاهای اندازه‌گیری وجود دارد؟ نمونه‌های تأثیرگذار اولین‌هایی هستند که باید از نظر خطا بررسی شوند، چون هر خطایی در آن‌ها به‌شدت بر پیش‌بینی‌های مدل اثر می‌گذارد.

نکته — ابتدا تأثیرگذارترین داده‌ها را مرور کنید

برای اشکال‌زدایی، ابتدا تأثیرگذارترین نمونه‌ها را مرور کنید تا وقت خود را روی داده‌هایی صرف کنید که بیشترین اهمیت را برای پیش‌بینی‌ها دارند.

فراتر از اشکال‌زدایی مدل، آیا می‌توان چیزی برای درک بهتر مدل آموخت؟ فقط چاپ کردن ۱۰ نمونهٔ تأثیرگذار اول خیلی مفید نیست، زیرا فقط یک جدول از نمونه‌های با ویژگی‌های فراوان است. تمام روش‌هایی که نمونه را به‌عنوان خروجی برمی‌گردانند، تنها در صورتی معنا دارند که روش خوبی برای بازنمایی آن‌ها داشته باشیم. اما وقتی می‌پرسیم «چه چیزی یک نمونهٔ تأثیرگذار را از یک نمونهٔ غیرتأثیرگذار متمایز می‌کند؟»، می‌توانیم درک بهتری کسب کنیم. این سؤال را می‌توان به یک مسئلهٔ رگرسیون تبدیل کرد و تأثیر هر نمونه را به‌عنوان تابعی از مقادیر ویژگی‌هایش مدل‌سازی کرد. در این مثال، یک درخت تصمیم (شکل ۳۱.۴) انتخاب شده که نشان می‌دهد داده‌هایی از پنگوئن‌های با منقار عمیق بیشترین تأثیر را بر ماشین بردار پشتیبان داشته‌اند.

شکل ۳۱.۴: درخت تصمیمی که رابطهٔ بین تأثیر نمونه‌ها و ویژگی‌هایشان را مدل‌سازی می‌کند. حداکثر عمق درخت برابر ۲ تنظیم شده است.

این نخستین تحلیل تأثیر، تأثیرگذارترین نمونهٔ کلی را آشکار کرد. اکنون نمونهٔ هشتم را انتخاب می‌کنیم تا پیش‌بینی آن را با شناسایی تأثیرگذارترین نمونه‌های آموزشی تبیین کنیم. این یک سؤال شبه‌خلاف‌واقع است: اگر نمونهٔ $i$ را از فرآیند آموزش حذف کنیم، پیش‌بینی برای نمونهٔ ۸ چقدر تغییر می‌کند؟ این حذف را برای تمام نمونه‌ها تکرار می‌کنیم. سپس نمونه‌های آموزشی‌ای را انتخاب می‌کنیم که با حذف آن‌ها بیشترین تغییر در پیش‌بینی نمونهٔ ۸ رخ می‌دهد و از آن‌ها برای تبیین پیش‌بینی مدل برای آن نمونه استفاده می‌کنیم. درخت تصمیم در شکل ۳۱.۵ نشان می‌دهد چه نوع نمونه‌های آموزشی بیشترین تأثیر را بر پیش‌بینی نمونهٔ هشتم داشته‌اند. داده‌هایی از پنگوئن‌های با توده بدنی بالا و منقار عمیق تأثیر بیشتری بر پیش‌بینی نمونهٔ هشتم داشته‌اند.

شکل ۳۱.۵: درخت تصمیمی که توضیح می‌دهد کدام نمونه‌ها در پیش‌بینی نمونهٔ انتخاب‌شده بیشترین تأثیر را داشته‌اند.

این مثال‌ها نشان دادند که شناسایی نمونه‌های تأثیرگذار برای بررسی استواری مدل چقدر مفید است. یک مشکل رویکرد پیشنهادی این است که برای هر نمونهٔ آموزشی باید مدل را از نو آموزش داد. این آموزش مجدد می‌تواند بسیار کند باشد؛ اگر هزاران نمونهٔ آموزشی داشته باشید، باید مدل را هزاران بار آموزش دهید. فرض کنید آموزش مدل یک روز طول می‌کشد و ۱٬۰۰۰ نمونهٔ آموزشی دارید؛ در این صورت، محاسبهٔ نمونه‌های تأثیرگذار — بدون موازی‌سازی — نزدیک به ۳ سال طول خواهد کشید. هیچ‌کس این قدر وقت ندارد. در ادامهٔ این فصل، روشی معرفی می‌شود که نیازی به آموزش مجدد مدل ندارد.

توابع تأثیر

شما: می‌خواهم بدانم یک نمونهٔ آموزشی چه تأثیری بر یک پیش‌بینی خاص دارد. پژوهش: می‌توانید نمونهٔ آموزشی را حذف کنید، مدل را از نو آموزش دهید و تفاوت در پیش‌بینی را اندازه بگیرید. شما: عالی! ولی آیا روشی دارید که بدون آموزش مجدد کار کند؟ خیلی وقت می‌برد. پژوهش: آیا مدلی دارید با تابع زیانی که دو بار نسبت به پارامترهایش مشتق‌پذیر باشد؟ شما: یک شبکهٔ عصبی با زیان لجستیک آموزش دادم. بله، دارم. پژوهش: پس می‌توانید تأثیر نمونه را بر پارامترها و پیش‌بینی مدل با توابع تأثیر تقریب بزنید. تابع تأثیر معیاری است که نشان می‌دهد پارامترها یا پیش‌بینی‌های مدل تا چه حد به یک نمونهٔ آموزشی وابسته‌اند. به‌جای حذف نمونه، این روش وزن نمونه را در تابع زیان به اندازهٔ بسیار کوچکی افزایش می‌دهد. این روش مستلزم تقریب تابع زیان در اطراف پارامترهای فعلی مدل با استفاده از گرادیان و ماتریس هسین است. افزایش وزن شبیه به حذف نمونه است. شما: عالی، همین را می‌خواستم!

Koh و Liang (۲۰۱۷) پیشنهاد کردند از توابع تأثیر، روشی در آمار مقاوم، برای سنجش تأثیر یک نمونه بر پارامترها یا پیش‌بینی‌های مدل استفاده شود. مانند تشخیص‌های حذفی، توابع تأثیر پارامترها و پیش‌بینی‌های مدل را به نمونهٔ آموزشی مسئول ردیابی می‌کنند. اما به‌جای حذف نمونه‌های آموزشی، این روش تقریب می‌زند که اگر وزن نمونه در ریسک تجربی (مجموع زیان روی داده‌های آموزشی) افزایش یابد، مدل چقدر تغییر می‌کند.

روش توابع تأثیر نیازمند دسترسی به گرادیان زیان نسبت به پارامترهای مدل (یا نسبت به پیش‌بینی‌ها) است که تنها برای زیرمجموعه‌ای از مدل‌های یادگیری ماشین کار می‌کند. رگرسیون لجستیک، شبکه‌های عصبی و ماشین‌های بردار پشتیبان واجد شرایط هستند؛ روش‌های مبتنی بر درخت مانند Random Forest واجد شرایط نیستند. توابع تأثیر برای درک رفتار مدل، اشکال‌زدایی و شناسایی خطاها در مجموعه داده کمک می‌کنند.

ریاضیات پشت توابع تأثیر

ایدهٔ اصلی پشت توابع تأثیر، افزایش وزن زیان یک نمونهٔ آموزشی به اندازهٔ گامی بی‌نهایت کوچک $\epsilon$ است که پارامترهای جدید مدل را نتیجه می‌دهد:

$$\hat{\boldsymbol{\theta}}_{\epsilon, \mathbf{z}} = \arg\min_{\boldsymbol{\theta} \in \Theta} \left(\frac{1}{n}\sum_{i=1}^n L(\mathbf{z}^{(i)}, \boldsymbol{\theta}) + \epsilon L(\mathbf{z}, \boldsymbol{\theta}) \right)$$

که در آن $\theta$ بردار پارامترهای مدل و $\hat{\boldsymbol{\theta}}_{\epsilon, \mathbf{z}}$ بردار پارامتر پس از افزایش وزن $\mathbf{z}$ به اندازهٔ عددی بسیار کوچک $\epsilon$ است. $L$ تابع زیانی است که مدل با آن آموزش دیده، $\mathbf{z}^{(i)}$ داده‌های آموزشی و $\mathbf{z}$ نمونهٔ آموزشی‌ای است که می‌خواهیم وزنش را برای شبیه‌سازی حذفش افزایش دهیم. شهود پشت این فرمول این است: اگر وزن یک نمونهٔ خاص $\mathbf{z}^{(i)}$ را کمی ($\epsilon$) افزایش دهیم و وزن سایر نمونه‌ها را متناسب کاهش دهیم، زیان چقدر تغییر می‌کند؟ بردار پارامتر برای بهینه‌سازی این زیان ترکیبی جدید چه شکلی خواهد داشت؟ تابع تأثیر پارامترها — یعنی تأثیر افزایش وزن نمونهٔ آموزشی $\mathbf{z}$ بر پارامترها — به‌صورت زیر محاسبه می‌شود:

$$I_{\text{up,params}}(\mathbf{z}) = \left.\frac{d \hat{\boldsymbol{\theta}}_{\epsilon, \mathbf{z}}}{d\epsilon}\right|_{\epsilon=0} = -H_{\hat{\boldsymbol{\theta}}}^{-1} \nabla_{\boldsymbol{\theta}} L(\mathbf{z}, \hat{\boldsymbol{\theta}})$$

عبارت آخر $\nabla_{\boldsymbol{\theta}}L(\mathbf{z}, \hat{\boldsymbol{\theta}})$ گرادیان زیان نسبت به پارامترها برای نمونهٔ آموزشی با افزایش وزن است. گرادیان نرخ تغییر زیان آن نمونه است. نشان می‌دهد با تغییر اندک پارامترهای مدل $\hat{\boldsymbol{\theta}}$، زیان چقدر عوض می‌شود. یک مقدار مثبت در بردار گرادیان یعنی افزایش کوچک در پارامتر متناظر، زیان را افزایش می‌دهد؛ یک مقدار منفی یعنی افزایش آن پارامتر، زیان را کاهش می‌دهد. بخش اول $H^{-1}_{\hat{\boldsymbol{\theta}}}$ معکوس ماتریس هسین (مشتق دوم زیان نسبت به پارامترهای مدل) است. ماتریس هسین نرخ تغییر گرادیان است، یا بر حسب زیان، نرخ تغییرِ نرخ تغییر زیان است. این ماتریس را می‌توان با استفاده از فرمول زیر تخمین زد:

$$H_{\boldsymbol{\theta}} = \frac{1}{n}\sum_{i=1}^n \nabla^2_{\hat{\boldsymbol{\theta}}}L(\mathbf{z}^{(i)}, \hat{\boldsymbol{\theta}})$$

به زبان ساده‌تر: ماتریس هسین ثبت می‌کند که زیان در یک نقطهٔ خاص چقدر انحنا دارد. هسین یک ماتریس است نه یک بردار، زیرا انحنای زیان را توصیف می‌کند و این انحنا به جهتی که نگاه می‌کنیم بستگی دارد. محاسبهٔ واقعی ماتریس هسین اگر پارامترهای زیادی داشته باشید وقت‌گیر است. Koh و Liang ترفندهایی برای محاسبهٔ کارآمد آن پیشنهاد کردند که از حوصلهٔ این فصل خارج است. به‌روزرسانی پارامترهای مدل، آن‌طور که فرمول بالا توصیف می‌کند، معادل برداشتن یک گام نیوتن (Newton Step) پس از ایجاد یک بسط درجه‌دوم (Quadratic Expansion) پیرامون پارامترهای مدل تخمین‌زده شده است.

شهود پشت این فرمول چیست؟ فرمول از ایجاد یک بسط درجه‌دوم پیرامون پارامترهای $\hat{\boldsymbol{\theta}}$ به دست می‌آید. یعنی دقیقاً نمی‌دانیم — یا محاسبه‌اش خیلی پیچیده است — که زیان نمونهٔ $\mathbf{z}$ هنگام حذف/افزایش وزن دقیقاً چقدر تغییر می‌کند. پس تابع را به‌صورت محلی با استفاده از اطلاعات مربوط به شیب (= گرادیان) و انحنا (= ماتریس هسین) در تنظیم فعلی پارامترهای مدل تقریب می‌زنیم. با این تقریب از زیان، می‌توانیم محاسبه کنیم اگر وزن نمونهٔ $\mathbf{z}$ را افزایش دهیم پارامترهای جدید تقریباً چه شکلی خواهند داشت:

$$\hat{\boldsymbol{\theta}}_{-\mathbf{z}} \approx \hat{\boldsymbol{\theta}} - \frac{1}{n} I_{\text{up,params}}(\mathbf{z})$$

بردار پارامتر تقریبی اساساً پارامتر اصلی منهای گرادیان زیان $\mathbf{z}$ (چون می‌خواهیم زیان را کاهش دهیم) است که با انحنا (= ماتریس هسین معکوس) مقیاس‌بندی شده و با $\frac{1}{n}$ ضرب شده، چون وزن یک نمونهٔ آموزشی منفرد همین است.

شکل ۳۱.۶ نحوهٔ عملکرد افزایش وزن را نشان می‌دهد. محور x مقدار پارامتر $\boldsymbol{\theta}$ و محور y مقدار متناظر زیان با نمونهٔ $\mathbf{z}$ با وزن افزایش‌یافته را نشان می‌دهد. پارامتر مدل در اینجا برای نمایش یک‌بعدی است، اما در واقعیت معمولاً چندبعدی است. ما تنها $\frac{1}{n}$ در جهت بهبود زیان برای نمونهٔ $\mathbf{z}$ حرکت می‌کنیم. نمی‌دانیم زیان اگر $\mathbf{z}$ را حذف کنیم واقعاً چطور تغییر می‌کند، اما با مشتقات اول و دوم زیان، این تقریب درجه‌دوم را پیرامون پارامتر فعلی مدل می‌سازیم و رفتار واقعی زیان را با این تقریب شبیه‌سازی می‌کنیم.

شکل ۳۱.۶: به‌روزرسانی پارامتر مدل (محور x) از طریق ایجاد بسط درجه‌دوم زیان پیرامون پارامتر فعلی مدل و حرکت به اندازهٔ 1/n در جهتی که زیان با نمونهٔ $\mathbf{z}$ با وزن افزایش‌یافته (محور y) بیشترین بهبود را نشان می‌دهد. این افزایش وزن نمونهٔ $\mathbf{z}$ در تقریب زیان، تغییرات پارامتر را شبیه‌سازی می‌کند که اگر $\mathbf{z}$ را حذف کرده و مدل را روی داده‌های کاهش‌یافته آموزش می‌دادیم رخ می‌داد.

در واقع لازم نیست پارامترهای جدید را محاسبه کنیم، بلکه می‌توانیم از تابع تأثیر به‌عنوان معیار تأثیر $\mathbf{z}$ بر پارامترها استفاده کنیم.

پیش‌بینی‌ها چگونه تغییر می‌کنند وقتی وزن نمونهٔ آموزشی $\mathbf{z}$ را افزایش می‌دهیم؟ می‌توانیم پارامترهای جدید را محاسبه کرده و سپس با مدل پارامترگذاری‌شدهٔ جدید پیش‌بینی کنیم، یا می‌توانیم تأثیر نمونهٔ $\mathbf{z}$ بر پیش‌بینی‌ها را مستقیماً محاسبه کنیم، چون می‌توان تأثیر را با قانون زنجیره محاسبه کرد:

$$\begin{align*} I_{up,loss}(\mathbf{z}, \mathbf{z}_{test}) & = \left.\frac{d L(\mathbf{z}_{test},\hat{\boldsymbol{\theta}}_{\epsilon, \mathbf{z}})}{d\epsilon}\right|_{\epsilon=0} \\ & = \left.\nabla_{\boldsymbol{\theta}}L(\mathbf{z}_{test},\hat{\boldsymbol{\theta}})^T \frac{d\hat{\boldsymbol{\theta}}_{\epsilon,\mathbf{z}}}{d \epsilon}\right|_{\epsilon=0} \\ & = -\nabla_{\boldsymbol{\theta}}L(\mathbf{z}_{test}, \hat{\boldsymbol{\theta}})^T H^{-1}_{\boldsymbol{\theta}} \nabla_{\boldsymbol{\theta}} L(\mathbf{z},\hat{\boldsymbol{\theta}}) \end{align*}$$

خط اول این معادله یعنی تأثیر یک نمونهٔ آموزشی بر یک پیش‌بینی خاص $\mathbf{z}_{test}$ را به‌عنوان تغییر در زیان نمونهٔ آزمایشی هنگام افزایش وزن نمونهٔ $\mathbf{z}$ و دریافت پارامترهای جدید $\hat{\theta}_{\epsilon,z}$ اندازه می‌گیریم. در خط دوم، قانون زنجیرهٔ مشتق را اعمال کرده‌ایم و مشتق زیان نمونهٔ آزمایشی نسبت به پارامترها ضربدر تأثیر $\mathbf{z}$ بر پارامترها را به دست آورده‌ایم. در خط سوم، عبارت را با تابع تأثیر برای پارامترها جایگزین می‌کنیم. جملهٔ اول در خط سوم $\nabla_{\boldsymbol{\theta}} L(\mathbf{z}_{test},\hat{\boldsymbol{\theta}})^T$ گرادیان نمونهٔ آزمایشی نسبت به پارامترهای مدل است.

داشتن یک فرمول روش علمی و دقیق است. اما درک شهودی فرمول نیز بسیار مهم است. فرمول $I_{\text{up,loss}}$ می‌گوید: تأثیر نمونهٔ آموزشی $\mathbf{z}$ بر پیش‌بینی نمونهٔ $\mathbf{z}_{test}$ برابر است با «شدت واکنش نمونه به تغییر پارامترهای مدل» ضربدر «میزان تغییر پارامترها هنگام افزایش وزن $\mathbf{z}$». به عبارت دیگر: تأثیر متناسب است با بزرگی گرادیان‌های زیان آموزشی و آزمایشی. هرچه گرادیان زیان آموزشی بزرگ‌تر باشد، تأثیر آن بر پارامترها و در نتیجه بر پیش‌بینی آزمایشی بیشتر است. هرچه گرادیان پیش‌بینی آزمایشی بزرگ‌تر باشد، آن نمونهٔ آزمایشی تأثیرپذیرتر است. کل این ساختار را می‌توان به‌عنوان معیاری از شباهت (آن‌طور که مدل یاد گرفته) بین نمونهٔ آموزشی و آزمایشی نیز در نظر گرفت.

این بود نظریه و شهود. بخش بعدی چگونگی کاربرد توابع تأثیر را توضیح می‌دهد.

کاربردهای توابع تأثیر

توابع تأثیر کاربردهای بسیاری دارند که برخی از آن‌ها قبلاً در این فصل معرفی شدند.

درک رفتار مدل

مدل‌های یادگیری ماشین مختلف پیش‌بینی‌ها را به شیوه‌های متفاوتی انجام می‌دهند. حتی اگر دو مدل عملکرد یکسانی داشته باشند، نحوهٔ پیش‌بینی آن‌ها از ویژگی‌ها می‌تواند بسیار متفاوت باشد و در نتیجه در سناریوهای مختلف شکست بخورند. شناسایی نمونه‌های تأثیرگذار به درک نقاط ضعف خاص یک مدل کمک می‌کند و «مدل ذهنی» از رفتار مدل یادگیری ماشین در ذهن شما شکل می‌دهد.

مدیریت ناهماهنگی دامنه / اشکال‌زدایی خطاهای مدل

مدیریت ناهماهنگی دامنه (Domain Mismatch) ارتباط نزدیکی با درک بهتر رفتار مدل دارد. ناهماهنگی دامنه یعنی توزیع داده‌های آموزشی و آزمایشی متفاوت است که می‌تواند باعث شود مدل روی داده‌های آزمایشی ضعیف عمل کند. توابع تأثیر می‌توانند نمونه‌های آموزشی‌ای را که باعث خطا شده‌اند شناسایی کنند. فرض کنید یک مدل پیش‌بینی پیامد بیماران تحت عمل جراحی آموزش داده‌اید و همهٔ این بیماران از یک بیمارستان هستند. حال مدل را در بیمارستان دیگری استفاده می‌کنید و می‌بینید برای بسیاری از بیماران خوب کار نمی‌کند. طبیعتاً فرض می‌کنید دو بیمارستان بیماران متفاوتی دارند و اگر به داده‌هایشان نگاه کنید می‌بینید در بسیاری از ویژگی‌ها تفاوت دارند. اما کدام ویژگی‌ها یا نمونه‌ها مدل را «خراب» کرده‌اند؟ در اینجا نیز نمونه‌های تأثیرگذار راه خوبی برای پاسخ به این سؤال هستند. یکی از بیماران جدیدی را که مدل پیش‌بینی اشتباهی برایش داشته انتخاب می‌کنید و تأثیرگذارترین نمونه‌ها را می‌یابید و تحلیل می‌کنید. برای مثال، این می‌تواند نشان دهد که بیمارستان دوم به‌طور میانگین بیماران مسن‌تری دارد، تأثیرگذارترین نمونه‌ها از داده‌های آموزشی همان چند بیمار مسن‌تر بیمارستان اول هستند، و مدل به سادگی داده‌های کافی برای یادگیری پیش‌بینی این زیرگروه نداشته است. نتیجه این می‌شود که مدل باید روی بیماران مسن‌تر بیشتری آموزش ببیند تا در بیمارستان دوم نیز خوب کار کند.

اصلاح داده‌های آموزشی

اگر محدودیتی بر تعداد نمونه‌های آموزشی قابل بررسی برای صحت دارید، چگونه انتخاب کارآمدی انجام می‌دهید؟ بهترین راه انتخاب تأثیرگذارترین نمونه‌هاست، زیرا — طبق تعریف — بیشترین تأثیر را بر مدل دارند. حتی اگر نمونه‌ای با مقادیر آشکارا غلط داشته باشید، اگر تأثیرگذار نباشد و تنها به مدل پیش‌بینی نیاز داشته باشید، بررسی نمونه‌های تأثیرگذار انتخاب بهتری است. برای مثال، مدلی برای پیش‌بینی اینکه آیا بیمار باید در بیمارستان بماند یا زود مرخص شود آموزش می‌دهید. واقعاً می‌خواهید مدل مقاوم باشد و پیش‌بینی‌های درستی داشته باشد، چون مرخص کردن اشتباه یک بیمار پیامدهای بدی می‌تواند داشته باشد. پرونده‌های بیماران می‌توانند خیلی نامرتب باشند و اطمینان کاملی به کیفیت داده‌ها ندارید. اما بررسی و تصحیح اطلاعات بیمار می‌تواند بسیار وقت‌گیر باشد. در این شرایط، منطقی است که تنها چند نمونهٔ مهم را بررسی کنید. بهترین راه انتخاب بیمارانی است که تأثیر بالایی بر مدل پیش‌بینی داشته‌اند. Koh و Liang (۲۰۱۷) نشان دادند این نوع انتخاب بسیار بهتر از انتخاب تصادفی یا انتخاب بر اساس بیشترین زیان یا طبقه‌بندی غلط عمل می‌کند.

نقاط قوت

رویکردهای تشخیص‌های حذفی و توابع تأثیر با رویکردهای مبتنی بر اغتشاش ویژگی مانند SHAP (شپ) بسیار متفاوت هستند. نگاه به نمونه‌های تأثیرگذار نقش داده‌های آموزشی در فرآیند یادگیری را برجسته می‌کند. این موضوع توابع تأثیر و تشخیص‌های حذفی را به یکی از بهترین ابزارهای اشکال‌زدایی برای مدل‌های یادگیری ماشین تبدیل می‌کند. از میان روش‌های معرفی‌شده در این کتاب، این‌ها تنها روش‌هایی هستند که مستقیماً در شناسایی نمونه‌هایی که باید از نظر خطا بررسی شوند کمک می‌کنند.

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

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

در این فصل به این موضوع نپرداختیم، اما توابع تأثیر از طریق مشتقات همچنین می‌توانند برای ایجاد داده‌های آموزشی مخالف (Adversarial) استفاده شوند. این‌ها نمونه‌هایی هستند که به‌گونه‌ای دستکاری شده‌اند که مدل وقتی روی آن‌ها آموزش می‌بیند، نتواند برخی نمونه‌های آزمایشی را درست پیش‌بینی کند. تفاوت با روش‌های فصل نمونه‌های مخالف این است که حمله در زمان آموزش انجام می‌شود، که به آن حملات مسموم‌سازی (Poisoning Attacks) نیز گفته می‌شود. اگر علاقه‌مند هستید، مقالهٔ Koh و Liang (۲۰۱۷) را بخوانید.

برای تشخیص‌های حذفی و توابع تأثیر، تفاوت در پیش‌بینی و برای تابع تأثیر افزایش زیان را در نظر گرفتیم. اما در واقع این رویکرد قابل تعمیم است به هر سؤالی به شکل «... چه اتفاقی می‌افتد وقتی نمونهٔ $\mathbf{z}$ را حذف یا وزنش را افزایش می‌دهیم؟» که می‌توان «...» را با هر تابعی از مدل مورد نظر پر کرد. می‌توانید تحلیل کنید یک نمونهٔ آموزشی چقدر بر زیان کلی مدل تأثیر می‌گذارد. می‌توانید تحلیل کنید یک نمونهٔ آموزشی چقدر بر اهمیت ویژگی تأثیر می‌گذارد. می‌توانید تحلیل کنید یک نمونهٔ آموزشی چقدر بر ویژگی انتخاب‌شده برای اولین تقسیم در آموزش یک درخت تصمیم تأثیر می‌گذارد.

همچنین می‌توان گروه‌هایی از نمونه‌های تأثیرگذار را نیز شناسایی کرد (Koh et al. ۲۰۱۹).

محدودیت‌ها

تشخیص‌های حذفی از نظر محاسباتی بسیار پرهزینه هستند چون نیاز به آموزش مجدد دارند. اما تاریخ نشان داده منابع محاسباتی پیوسته در حال افزایش هستند. محاسبه‌ای که ۲۰ سال پیش از نظر منابع غیرقابل تصور بود، امروزه روی گوشی هوشمند شما به‌راحتی انجام می‌شود. مدل‌هایی با هزاران نمونهٔ آموزشی و صدها پارامتر را می‌توان در ثانیه‌ها یا دقیقه‌ها روی یک لپ‌تاپ آموزش داد. بنابراین می‌توان انتظار داشت که تشخیص‌های حذفی در ۱۰ سال آینده حتی با شبکه‌های عصبی بزرگ نیز بدون مشکل کار کنند.

توابع تأثیر جایگزین خوبی برای تشخیص‌های حذفی هستند، اما تنها برای مدل‌هایی با تابع زیان دو بار مشتق‌پذیر نسبت به پارامترهایشان، مانند شبکه‌های عصبی. برای روش‌های مبتنی بر درخت مانند Random Forest، درخت‌های تقویت‌شده (Boosted Trees) یا درخت‌های تصمیم کار نمی‌کنند. حتی اگر مدل‌هایی با پارامتر و تابع زیان داشته باشید، ممکن است تابع زیان مشتق‌پذیر نباشد. اما برای این مشکل آخر ترفندی وجود دارد: از یک تابع زیان مشتق‌پذیر به‌عنوان جایگزین برای محاسبهٔ تأثیر استفاده کنید، مثلاً وقتی مدل اصلی از Hinge Loss به‌جای یک زیان مشتق‌پذیر استفاده می‌کند. زیان با نسخهٔ هموارشده‌ای از زیان مشکل‌دار برای توابع تأثیر جایگزین می‌شود، اما آموزش مدل همچنان می‌تواند با زیان اصلی غیرهموار انجام شود.

توابع تأثیر تنها تقریبی هستند، چون رویکرد یک بسط درجه‌دوم پیرامون پارامترها ایجاد می‌کند. تقریب ممکن است اشتباه باشد و تأثیر واقعی یک نمونه هنگام حذف بیشتر یا کمتر از این مقدار باشد. Koh و Liang (۲۰۱۷) در برخی مثال‌ها نشان دادند تأثیر محاسبه‌شده توسط تابع تأثیر به معیار تأثیر به‌دست‌آمده از آموزش مجدد واقعی مدل پس از حذف نمونه نزدیک بود. اما هیچ تضمینی وجود ندارد که تقریب همیشه این‌قدر دقیق باشد.

آستانهٔ مشخصی برای معیار تأثیر وجود ندارد که بر مبنای آن بتوان یک نمونه را تأثیرگذار یا غیرتأثیرگذار دانست. مرتب کردن نمونه‌ها بر اساس تأثیر مفید است، اما نه‌تنها باید نمونه‌ها را مرتب کنیم، بلکه باید بتوانیم میان تأثیرگذار و غیرتأثیرگذار تمایز قائل شویم. برای مثال، اگر ۱۰ تأثیرگذارترین نمونهٔ آموزشی را برای یک نمونهٔ آزمایشی شناسایی کنید، ممکن است برخی از آن‌ها تأثیرگذار نباشند — چون مثلاً تنها ۳ نمونهٔ اول واقعاً تأثیرگذار بوده‌اند.

نرم‌افزار و جایگزین‌ها

تشخیص‌های حذفی پیاده‌سازی بسیار ساده‌ای دارند.

برای مدل‌های خطی و خطی تعمیم‌یافته، بسیاری از معیارهای تأثیر مانند فاصلهٔ کوک در پکیج stats زبان R پیاده‌سازی شده‌اند.

Koh و Liang کد پایتون توابع تأثیر مقالهٔ خود را در یک مخزن منتشر کرده‌اند. این خوب است! اما متأسفانه این «تنها» کد مقاله است و یک ماژول پایتون نگهداری‌شده و مستنددار نیست. کد بر کتابخانهٔ TensorFlow متمرکز است، پس نمی‌توان مستقیماً آن را برای مدل‌های Black Box که از چارچوب‌های دیگری مانند scikit-learn استفاده می‌کنند به کار برد.


انگلیسیمعادل فارسی پیشنهادی
Influential Instancesنمونه‌های تأثیرگذار
Deletion Diagnosticsتشخیص‌های حذفی
Influence Functionsتوابع تأثیر
Outlierداده‌پرت
Cook's Distanceفاصلهٔ کوک
Hessian Matrixماتریس هسین
Loss Functionتابع زیان
Robust Statisticsآمار مقاوم
Empirical Riskریسک تجربی
Quadratic Expansionبسط درجه‌دوم
Newton Stepگام نیوتن
Domain Mismatchناهماهنگی دامنه
Poisoning Attacksحملات مسموم‌سازی
Upweightافزایش وزن
Learnerیادگیرنده

نکتهٔ ساختاری: بخش گفتگوی فرضی میان شما و پژوهش در ابتدای بخش توابع تأثیر، سبک روایی غیررسمی‌تری دارد که در ترجمه حفظ شد — این تغییر سبک عمدی نویسنده است نه خطا.


Cook, R. Dennis. 1977. "Detection of Influential Observation in Linear Regression." Technometrics 19 (1): 15–18. https://doi.org/10.1080/00401706.1977.10489493.

Koh, Pang Wei, Kai-Siang Ang, Hubert H. K. Teo, and Percy Liang. 2019. "On the Accuracy of Influence Functions for Measuring Group Effects." In Proceedings of the 33rd International Conference on Neural Information Processing Systems, 32:5254–64. 472. Red Hook, NY, USA: Curran Associates Inc.

Koh, Pang Wei, and Percy Liang. 2017. "Understanding Black-Box Predictions via Influence Functions." In Proceedings of the 34th International Conference on Machine Learning - Volume 70, 1885–94. ICML'17. Sydney, NSW, Australia: JMLR.org.

فصل سی‌ودوم: ارزیابی روش‌های تفسیرپذیری

عنوان اصلی: Evaluation of Interpretability Methods
منبع: https://christophm.github.io/interpretable-ml-book/evaluation.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


تا به حال، این کتاب به معرفی روش‌های مختلف تفسیرپذیری و کاربردهایشان پرداخته است. این فصل بر ارزیابی روش‌های تفسیرپذیری متمرکز است.

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

سطوح ارزیابی

مقاله درخورتوجهی توسط دوشی-ولز و همکاران (۲۰۱۷) سه سطح برای ارزیابی تفسیرپذیری پیشنهاد می‌دهد:

  1. سطح کاربرد (Application level): بهترین روش تفسیر را برای یک کار خاص انتخاب کنید. این کار اغلب نیاز به آزمایش‌های انسانی دارد و باید در چارچوب کار واقعی انجام شود.
  2. سطح انسانی (Human level): آزمایش‌های انسانی ساده‌تر، بدون کارشناس حوزه. این آزمایش‌ها مقرون‌به‌صرفه‌تر هستند و می‌توانند کیفیت عمومی تفسیرها را ارزیابی کنند.
  3. سطح تابع (Function level): نیازی به انسان ندارد. از یک تعریف ریاضی از کیفیت تفسیر استفاده می‌کند. این سطح ارزان‌ترین سطح است، اما کیفیت واقعی تفسیر را در یک کار خاص اندازه‌گیری نمی‌کند.

هرچه سطح پایین‌تر باشد، ارزیابی سریع‌تر و ارزان‌تر است، اما ریسک ارزیابی چیزی متفاوت از تفسیرپذیری واقعی نیز بیشتر است.

خصوصیات تفسیر‌ها

رویکرد دیگر برای ارزیابی روش‌های تفسیرپذیری، فهرست کردن خصوصیاتی است که یک تفسیر یا روش تفسیر باید داشته باشد. در ادامه، برخی از مهم‌ترین خصوصیات را که عمدتاً برگرفته از رابنیک-شیکونیا و بوهانیتس (۲۰۱۸) هستند، مرور می‌کنم.

خصوصیات روش‌های تفسیر

این خصوصیات به خود روش تفسیرپذیری مربوط می‌شوند، نه به یک تفسیر خاص.

  • قدرت بیانی (Expressive Power): نوع تفسیری که یک روش می‌تواند تولید کند. آیا می‌تواند قوانین if-then تولید کند؟ یک مدل خطی؟ یک خلاصه آماری؟ یک مثال؟
  • شفاف‌بودن (Translucency): آیا روش به مدل‌گر‌یری (مدل black-box) دسترسی دارد یا فقط به ورودی و خروجی؟
  • قابلیت حمل (Portability): آیا روش روی انواع مختلف مدل‌ها قابل استفاده است؟
  • پیچیدگی الگوریتمی (Algorithmic Complexity): محاسبه یک تفسیر چقدر پیچیده است؟ آیا به آموزش مدل جدید نیاز دارد؟ اجرای آن چقدر طول می‌کشد؟

خصوصیات تفسیر‌های فردی

این خصوصیات به یک تفسیر خاص (مثلاً توضیح یک پیش‌بینی) مربوط می‌شوند.

  • دقت (Accuracy): تفسیر چقدر مدل black-box را به صورت دقیق توصیف می‌کند؟ آیا تفسیر در مناطق دیگر ورودی نیز معتبر است؟ (نگاه کنید به: اثر راشومون (Rashomon Effect))
  • وفاداری (Fidelity): آیا تفسیر به خوبی رفتار مدل را در مجاورت یک نمونه خاص تقریب می‌زند؟
  • سازگاری (Consistency): آیا تفسیرهای مشابه برای نمونه‌های مشابه تولید می‌شوند؟
  • پایداری (Stability): آیا تغییرات کوچک در ورودی باعث تغییرات کوچک در تفسیر می‌شود؟
  • قابلیت فهم (Comprehensibility): آیا یک انسان می‌تواند تفسیر را بفهمد؟ آیا تفسیر خیلی پیچیده نیست؟
  • قطعیت (Certainty): آیا روش تفسیر از عدم قطعیت خودش خبر می‌دهد؟
  • درجه اهمیت (Degree of Importance): آیا روش تعیین می‌کند که هر ویژگی چقدر مهم است؟
  • تازگی (Novelty): آیا تفسیر حاوی اطلاعات جدید و غیرمنتظره است، یا فقط اطلاعات بدیهی را تکرار می‌کند؟
  • نمایندگی (Representativeness): آیا تفسیر فقط یک نمونه را توضیح می‌دهد یا کلاس وسیع‌تری از نمونه‌ها را؟

خلاصه‌ای از خصوصیات

جدول زیر خلاصه‌ای از خصوصیات روش‌ها و تفسیرهای فردی را نشان می‌دهد، همراه با کاربردهایشان در سطوح مختلف ارزیابی:

خصوصیتتوضیحسطح ارزیابی
قدرت بیانینوع تفسیر (قانون، خطی، ...)تابع
شفاف‌بودندسترسی به مدلتابع
قابلیت حمل适用於多种模型تابع
پیچیدگی الگوریتمیهزینه محاسباتیتابع
دقتتقریب مدلتابع
وفاداریتقریب محلیتابع
سازگاریتکرارپذیری بین نمونه‌های مشابهتابع / انسانی
پایداریحساسیت به نویز ورودیتابع
قابلیت فهمقابلیت درک توسط انسانانسانی
قطعیتگزارش عدم قطعیتتابع
درجه اهمیتاهمیت ویژگیتابع
تازگیاطلاعات جدیدانسانی / کاربرد
نمایندگیتعمیم‌پذیری تفسیرتابع / انسانی

منابع

  • Doshi-Velez, Finale, and Been Kim. "Towards A Rigorous Science of Interpretable Machine Learning." arXiv preprint arXiv:1702.08608 (2017).
  • Robnik-Šikonja, Marko, and Marko Bohanec. "Perturbation-Based Explanations of Prediction Models." In Human and Machine Learning, pp. 159–175. Springer, Cham (2018).

فصل ۳۳: وقت داستان

عنوان اصلی: Story Time
منبع: https://christophm.github.io/interpretable-ml-book/storytime.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


هر یک از داستان‌های کوتاه زیر، فریادی اغراق‌آمیز برای یادگیری ماشین تفسیرپذیر است. قالب این داستان‌ها از Tech Tales جک کلارک در خبرنامه‌ی Import AI او الهام گرفته شده است. اگر از این‌گونه داستان‌ها لذت می‌برید یا به هوش مصنوعی علاقه دارید، پیشنهاد می‌کنم در آن خبرنامه عضو شوید.


صاعقه هرگز دو بار نمی‌زند

سال ۲۰۳۰: یک آزمایشگاه پزشکی در سوئیس

«قطعاً بدترین شکل مردن نبود!» تام با لحنی که سعی می‌کرد در این مصیبت نکته‌ی مثبتی بیابد، نتیجه گرفت. پمپ را از پایه‌ی سرم جدا کرد.
«فقط به دلایل اشتباهی مُرد،» لنا اضافه کرد.
«و حتماً با پمپ مورفین اشتباهی! فقط کار بیشتر برای ما درست کرد!» تام در حالی که پیچ‌های پشت پمپ را باز می‌کرد، غرغر کرد. پس از باز کردن همه‌ی پیچ‌ها، صفحه را بلند کرد و کنار گذاشت. یک کابل را به پورت تشخیصی وصل کرد.
«داری از اینکه شغل داری شکایت می‌کنی؟» لنا با لبخندی مسخره‌آمیز به او نگاه کرد.
«البته که نه. هرگز!» او با لحنی طعنه‌آمیز فریاد زد.

کامپیوتر پمپ را روشن کرد.
لنا سر دیگر کابل را به تبلتش وصل کرد. «خیلی خب، تشخیص در حال اجراست،» اعلام کرد. «واقعاً کنجکاوم ببینم چه اتفاقی افتاده.»
«مطمئناً این بیمار ناشناس را به جهان دیگری فرستاد. آن غلظت بالای مورفین. یعنی… این اولین بار است، نه؟ معمولاً یک پمپ خراب، دوز دارو را کمتر از حد لازم یا اصلاً تزریق نمی‌کند. ولی این‌طور نه، یعنی مثل یک تزریق دیوانه‌وار،» تام توضیح داد.
«می‌دانم. لازم نیست قانعم کنی… هی، به این نگاه کن.» لنا تبلتش را بالا گرفت. «این اوج را می‌بینی؟ این قدرت مخلوط مسکن‌هاست. ببین! این خط سطح مرجع را نشان می‌دهد. آن بیچاره مخلوطی از مسکن‌ها در خونش داشت که می‌توانست ۱۷ بار او را بکشد. همه توسط همین پمپ تزریق شده. و اینجا…» صفحه را کشید، «اینجا لحظه‌ی مرگ بیمار را می‌بینید.»
«خب، فکر می‌کنی چه اتفاقی افتاده، رئیس؟» تام از سرپرستش پرسید.
«هم… سنسورها سالم به نظر می‌رسند. ضربان قلب، سطح اکسیژن، گلوکز،… داده‌ها طبق انتظار جمع‌آوری شده‌اند. چند مقدار گمشده در داده‌های اکسیژن خون وجود دارد، اما این غیرعادی نیست. ببین اینجا. سنسورها کاهش ضربان قلب بیمار و سطح بسیار پایین کورتیزول ناشی از مشتقات مورفین و سایر عوامل مسدودکننده‌ی درد را هم ثبت کرده‌اند.» او به خواندن گزارش تشخیصی ادامه داد.
تام مجذوب به صفحه خیره شده بود. این اولین بررسی واقعی خرابی دستگاه برایش بود.

«خب، اینجا اولین تکه‌ی پازل ماست. سیستم در ارسال هشدار به کانال ارتباطی بیمارستان شکست خورد. هشدار فعال شد، اما در سطح پروتکل رد شد. ممکن است تقصیر ما باشد یا تقصیر بیمارستان. لطفاً لاگ‌ها را برای تیم IT ارسال کن،» لنا به تام گفت.
تام در حالی که چشمانش هنوز به صفحه بود، سر تکان داد.
لنا ادامه داد: «عجیب است. آن هشدار باید باعث خاموش شدن پمپ هم می‌شد. اما واضح است که این اتفاق نیفتاده. این باید یک باگ باشد. چیزی که تیم کیفیت از دستش داد. چیزی واقعاً بد. شاید به مشکل پروتکل مربوط باشد.»
«پس سیستم اضطراری پمپ به نوعی از کار افتاد، اما چرا پمپ کاملاً دیوانه شد و این‌قدر مسکن به بیمار تزریق کرد؟» تام تعجب کرد.
«سؤال خوبی است. حق با توست. صرف‌نظر از خرابی اضطراری پروتکل، پمپ اصلاً نباید آن مقدار دارو را تجویز می‌کرد. الگوریتم باید خیلی زودتر به خودی خود متوقف می‌شد، با توجه به سطح پایین کورتیزول و سایر علائم هشداردهنده،» لنا توضیح داد.
«شاید بدشانسی بوده، مثل یک در یک میلیون، مثل اینکه صاعقه به کسی بزند؟» تام پرسید.
«نه، تام. اگر مستنداتی که برایت فرستادم را خوانده بودی، می‌دانستی که پمپ ابتدا در آزمایش‌های حیوانی و بعد روی انسان‌ها آموزش دیده تا یاد بگیرد بر اساس ورودی‌های حسی، مقدار مناسب مسکن را تزریق کند. الگوریتم پمپ ممکن است مبهم و پیچیده باشد، اما تصادفی نیست. این یعنی در همان شرایط، پمپ دقیقاً همان رفتار را دوباره تکرار می‌کند. بیمار ما دوباره می‌مُرد. باید ترکیب یا تعامل ناخواسته‌ای از ورودی‌های حسی باعث رفتار نادرست پمپ شده باشد. به همین دلیل است که باید عمیق‌تر کاوش کنیم و بفهمیم چه اتفاقی افتاده،» لنا توضیح داد.

«می‌فهمم…» تام در حالی که در فکر فرو رفته بود پاسخ داد. «مگر بیمار قرار نبود به زودی بمیرد؟ به خاطر سرطان یا چیزی شبیه به آن؟»
لنا در حالی که گزارش تحلیل را می‌خواند، سر تکان داد.
تام بلند شد و به سمت پنجره رفت. بیرون را نگاه کرد، چشمانش روی نقطه‌ای در دوردست ثابت ماند. «شاید دستگاه به او لطف کرد، می‌دانی، او را از درد رها کرد. دیگر رنجی نبود. شاید فقط کار درست را کرد. مثل صاعقه، اما، می‌دانی، یک صاعقه‌ی خوب. منظورم مثل برنده شدن در قرعه‌کشی است، اما نه تصادفی. بلکه به دلیلی. اگر من پمپ بودم، همین کار را می‌کردم.»
او سرانجام سرش را بلند کرد و به تام نگاه کرد.
تام به چیزی بیرون از پنجره خیره شده بود.
هر دو چند لحظه ساکت ماندند.
لنا سرش را پایین آورد و به تحلیل ادامه داد. «نه، تام. این یک باگ است… فقط یک لعنتی باگ.»


سقوط اعتماد

سال ۲۰۵۰: یک ایستگاه مترو در آلمان

با عجله به سمت ایستگاه مترو رفت. ذهنش از قبل سر کار بود. آزمایش‌های معماری عصبی جدید باید تا الان تمام شده باشند. او در حال رهبری طراحی مجدد «سیستم پیش‌بینی تمایل مالیاتی برای افراد» دولت بود؛ سیستمی که پیش‌بینی می‌کند آیا یک فرد پول خود را از اداره مالیات پنهان خواهد کرد یا نه. تیمش یک راه‌حل مهندسی ظریف ارائه داده بود. در صورت موفقیت، سیستم نه تنها به اداره مالیات خدمت می‌کرد، بلکه به سیستم‌های دیگری مانند سیستم هشدار ضدتروریسم و ثبت تجاری هم داده می‌داد. روزی دولت می‌توانست پیش‌بینی‌ها را در «امتیاز اعتماد مدنی» هم ادغام کند. امتیاز اعتماد مدنی تخمین می‌زد که یک فرد چقدر قابل اعتماد است. این تخمین بر هر جنبه‌ای از زندگی روزمره تأثیر می‌گذاشت؛ از گرفتن وام تا اینکه چقدر باید برای دریافت گذرنامه‌ی جدید صبر کرد. در حالی که از پله برقی پایین می‌رفت، تصور کرد که ادغام سیستم تیمش در سیستم امتیاز اعتماد مدنی چه شکلی خواهد بود.

به طور معمول و بدون اینکه قدمش را کُند کند، دستش را روی خواننده‌ی RFID کشید. ذهنش مشغول بود، اما یک ناهماهنگی میان انتظارات حسی و واقعیت، در مغزش زنگ خطر به صدا درآورد.

دیر بود.

با بینی به درِ ورودی مترو خورد و با نشیمن‌گاه به زمین افتاد. در باید باز می‌شد، ... اما نشد. گیج و منگ بلند شد و به صفحه‌ای که کنار در بود نگاه کرد. یک ایموجی دوست‌داشتنی با لبخند روی صفحه پیشنهاد می‌داد: «لطفاً بار دیگری امتحان کنید.» یک نفر از کنارش رد شد و بدون توجه به او، دستش را روی خواننده کشید. در باز شد و او رد شد. در دوباره بسته شد. بینی‌اش را پاک کرد. درد داشت، اما حداقل خون نمی‌آمد. سعی کرد در را باز کند، اما دوباره رد شد. عجیب بود. شاید حساب حمل‌ونقل عمومی‌اش اعتبار کافی نداشت. به ساعت هوشمندش نگاه کرد تا موجودی حساب را بررسی کند.

«ورود رد شد. لطفاً با دفتر مشاوره شهروندان تماس بگیرید!» ساعتش به او اطلاع داد.

یک حس تهوع مثل مشتی به معده‌اش کوبید. حدس زد چه اتفاقی افتاده. برای تأیید نظریه‌اش، بازی موبایلی «Sniper Guild»، یک بازی اول شخص تیرانداز، را باز کرد. برنامه بلافاصله به طور خودکار بسته شد، که نظریه‌اش را تأیید کرد. سرش گیج رفت و دوباره روی زمین نشست.

تنها یک توضیح ممکن وجود داشت: امتیاز اعتماد مدنی‌اش افت کرده بود. به طور قابل توجهی. یک افت کوچک به معنای ناراحتی‌های جزئی بود، مثل نگرفتن بلیط درجه‌ی اول هواپیما یا کمی بیشتر منتظر ماندن برای اسناد رسمی. امتیاز اعتماد پایین نادر بود و به این معنی بود که شما به عنوان تهدیدی برای جامعه طبقه‌بندی شده‌اید. یکی از اقدامات برای برخورد با این افراد، دور نگه داشتن آن‌ها از مکان‌های عمومی مانند مترو بود. دولت تراکنش‌های مالی افراد با امتیاز اعتماد مدنی پایین را محدود می‌کرد. آن‌ها همچنین شروع به نظارت فعال بر رفتار شما در رسانه‌های اجتماعی می‌کردند و حتی تا آنجا پیش می‌رفتند که محتوای خاصی مثل بازی‌های خشونت‌آمیز را محدود می‌کردند. افزایش امتیاز اعتماد مدنی هر چه پایین‌تر می‌رفت، به شکل نمایی سخت‌تر می‌شد. افرادی با امتیاز بسیار پایین معمولاً هرگز بهبود نمی‌یافتند.

هیچ دلیلی برای اینکه امتیازش افت کرده باشد به ذهنش نمی‌رسید. امتیاز بر اساس یادگیری ماشین بود. سیستم امتیاز اعتماد مدنی مثل یک موتور روغن‌کاری شده کار می‌کرد که جامعه را اداره می‌کرد. عملکرد سیستم امتیاز اعتماد همیشه به دقت زیر نظر بود. یادگیری ماشین از ابتدای قرن بسیار بهتر شده بود. آن‌قدر کارآمد شده بود که تصمیمات گرفته شده توسط سیستم امتیاز اعتماد دیگر قابل اعتراض نبودند. یک سیستم بی‌نقص.

با ناامیدی خندید. سیستم بی‌نقص. کاش این‌طور بود. سیستم به ندرت خطا کرده بود. اما خطا کرده بود. او باید یکی از آن موارد خاص می‌بود؛ یک خطای سیستم؛ از این پس یک طرد شده. هیچ‌کس جرأت نمی‌کرد سیستم را زیر سؤال ببرد. سیستم آن‌قدر در دولت، در خود جامعه ادغام شده بود که نمی‌شد زیر سؤالش برد. در معدود کشورهای دموکراتیک باقی‌مانده، تشکیل جنبش‌های ضددموکراتیک ممنوع بود، نه به این دلیل که ذاتاً مخرب بودند، بلکه چون سیستم موجود را بی‌ثبات می‌کردند. همین منطق برای الگوکراسی‌های (حکومت‌های الگوریتمی) که اکنون رایج‌تر شده بودند هم صدق می‌کرد. انتقاد از الگوریتم‌ها به خاطر خطری که برای وضع موجود داشت ممنوع بود.

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


گیره‌های کاغذ فرمی

سال ۶۱۲ BMS (بعد از استقرار مریخ): یک موزه در مریخ

«تاریخ خسته‌کننده است،» خولا آهسته به دوستش گفت. خولا، دختری با موهای آبی، با دست چپش تنبلانه دنبال یکی از پهپادهای پروژکتور که در اتاق وزوز می‌کرد می‌گشت. «تاریخ مهم است،» معلم با صدایی ناراحت گفت و به دخترها نگاه کرد. خولا سرخ شد. انتظار نداشت معلمش حرفش را بشنود.

«خولا، الان چه یاد گرفتی؟» معلم از او پرسید. «که مردم قدیم همه‌ی منابع سیاره‌ی خاکی را تمام کردند و بعد مُردند؟» او با احتیاط پرسید. «نه. آب‌وهوا را گرم کردند و این مردم نبودند، کامپیوترها و ماشین‌ها بودند. و اسمش سیاره‌ی زمین است نه سیاره‌ی خاکی،» لین، دختر دیگری، اضافه کرد. خولا در موافقت سر تکان داد. معلم با لمسی از غرور لبخند زد و سر تکان داد. «هر دویتان درست می‌گویید. می‌دانید چرا این اتفاق افتاد؟» «چون مردم کوته‌نظر و طمع‌کار بودند؟» خولا پرسید. «مردم نتوانستند ماشین‌هایشان را متوقف کنند!» لین بی‌اختیار گفت.

«باز هم هر دویتان درست می‌گویید،» معلم تصمیم گرفت، «اما خیلی پیچیده‌تر از این است. اکثر مردم در آن زمان از آنچه داشت اتفاق می‌افتاد آگاه نبودند. برخی تغییرات چشمگیر را می‌دیدند اما نمی‌توانستند آن را برگردانند. مشهورترین اثر از این دوره یک شعر از نویسنده‌ای ناشناس است. این شعر بهتر از هر چیزی آنچه را که در آن زمان اتفاق افتاد نشان می‌دهد. با دقت گوش دهید!»

معلم شعر را شروع کرد. دوازده‌تا از پهپادهای کوچک خودشان را جلوی بچه‌ها جابجا کردند و ویدئو را مستقیماً در چشمانشان پخش کردند. تصویر یک مرد کت‌وشلواری را نشان می‌داد که در جنگلی با تنه‌های بریده‌شده ایستاده بود. او شروع به صحبت کرد:

ماشین‌ها محاسبه می‌کنند؛ ماشین‌ها پیش‌بینی می‌کنند.

ما پیش می‌رویم چون بخشی از آن هستیم.

ما در پی بهینه‌ای هستیم که برایش آموزش دیده‌ایم.

بهینه‌ای یک‌بعدی، محلی و بی‌محدودیت.

سیلیکون و گوشت، در تعقیب توانی نمایی.

رشد، ذهنیت ماست.

آنگاه که همه پاداش‌ها جمع‌آوری شدند،

و اثرات جانبی نادیده گرفته شدند؛

آنگاه که همه‌ی سکه‌ها استخراج شدند،

و طبیعت از قافله عقب ماند؛

در دردسر خواهیم بود،

چراکه رشد نمایی حبابی بیش نیست.

تراژدی مشترکات در حال وقوع،

در حال انفجار،

پیش چشمان ما.

محاسبات سرد و طمع یخ‌زده،

زمین را پر از گرما می‌کنند.

همه چیز دارد می‌میرد،

و ما داریم تمکین می‌کنیم.

مثل اسب‌هایی با چشم‌بند، مسابقه‌ی ساخته‌ی خودمان را می‌دویم،

به سوی فیلتر بزرگ تمدن.

و این‌گونه بی‌امان پیش می‌رویم.

چون ما بخشی از ماشین هستیم.

درآغوش گرفتن آنتروپی.

«خاطره‌ای تاریک،» معلم گفت تا سکوت اتاق را بشکند. «در کتابخانه‌تان آپلود خواهد شد. تکلیف شما این است که تا هفته‌ی آینده آن را از حفظ کنید.» خولا آه کشید. موفق شد یکی از پهپادهای کوچک را بگیرد. پهپاد از پردازنده و موتورها گرم بود. خولا دوست داشت که دستانش را گرم می‌کرد.

فصل ۳۴: آینده‌ی تفسیرپذیری

عنوان اصلی: The Future of Interpretability
منبع: https://christophm.github.io/interpretable-ml-book/future.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


آینده‌ی یادگیری ماشین تفسیرپذیر چه خواهد بود؟ این فصل یک تمرین ذهنی گمانه‌زنانه و یک برآورد شخصی درباره‌ی مسیر پیش روی یادگیری ماشین تفسیرپذیر است.

گمانه‌زنی‌های من بر پایه‌ی سه پیش‌فرض بنا شده است:

۱. دیجیتالی‌سازی: هر اطلاعات (جالبی) دیجیتالی خواهد شد. به پول الکترونیک و تراکنش‌های آنلاین فکر کنید. به کتاب‌های الکترونیک، موسیقی و ویدیو فکر کنید. به تمام داده‌های حسی درباره‌ی محیط‌زیست، رفتار انسانی، فرآیندهای تولید صنعتی و غیره فکر کنید. محرک‌های دیجیتالی‌سازی همه چیز عبارتند از: رایانه‌ها/حسگرها/حافظه‌های ارزان، اثرات مقیاس (برنده همه را می‌برد)، مدل‌های کسب‌وکار جدید، زنجیره‌های ارزش مدولار، فشار هزینه و بسیاری موارد دیگر.

۲. خودکارسازی: هر وظیفه‌ای که بتوان خودکار کرد و هزینه‌ی خودکارسازی آن از هزینه‌ی انجام تدریجی‌اش کمتر باشد، خودکار خواهد شد. حتی پیش از ظهور رایانه نیز درجه‌ای از خودکارسازی وجود داشت؛ برای مثال، دستگاه بافندگی، بافتن را خودکار کرد یا ماشین بخار نیروی اسب را جایگزین کرد. اما رایانه‌ها و دیجیتالی‌سازی این خودکارسازی را به سطح دیگری می‌برند. همین واقعیت که می‌توان حلقه‌های for نوشت، ماکروهای Excel ساخت، پاسخ‌های ایمیل را خودکار کرد و مانند آن، نشان می‌دهد که یک فرد چقدر می‌تواند خودکارسازی انجام دهد. دستگاه‌های خودپرداز بلیت، خرید بلیت قطار را خودکار کرده‌اند، ماشین‌های لباسشویی شست‌وشو را خودکار کرده‌اند، دستورهای دائمی پرداخت، تراکنش‌های مالی را خودکار کرده‌اند و به همین ترتیب. خودکارسازی وظایف، زمان و پول را آزاد می‌کند؛ بنابراین انگیزه‌ی اقتصادی و شخصی عظیمی برای خودکارسازی چیزها وجود دارد. در حال حاضر شاهد خودکارسازی ترجمه‌ی زبان، رانندگی و تا حدی کوچک، حتی کشف علمی هستیم.

۳. تعریف ناقص هدف: ما قادر نیستیم یک هدف را به همراه تمام قیدهایش به صورت کامل مشخص کنیم. به جن‌درون‌بطری فکر کنید که همواره آرزوهایتان را به معنای تحت‌اللفظی می‌گیرد: «می‌خواهم ثروتمندترین آدم جهان باشم!» → ثروتمندترین می‌شوید، اما عارضه‌ی جانبی آن سقوط ارزش پولتان بر اثر تورم است. «می‌خواهم تا پایان عمر خوشحال باشم!» → ۵ دقیقه احساس خوشحالی شدید می‌کنید، سپس جن شما را می‌کشد. «آرزوی صلح جهانی دارم!» → جن همه‌ی انسان‌ها را نابود می‌کند. ما اهداف را به‌درستی تعریف نمی‌کنیم، یا چون همه‌ی قیدها را نمی‌شناسیم یا چون نمی‌توانیم آن‌ها را اندازه‌گیری کنیم. به شرکت‌ها به عنوان نمونه‌ای از تعریف ناقص هدف نگاه کنید. یک شرکت هدف ساده‌ای دارد: کسب سود برای سهامداران. اما این تعریف، هدف واقعی را با همه‌ی قیدهایش منعکس نمی‌کند: برای مثال، شرکتی که برای درآمدزایی آدم بکشد، رودخانه‌ها را آلوده کند یا صرفاً پول چاپ کند را نمی‌پذیریم. ما قوانین، مقررات، تحریم‌ها، رویه‌های انطباق، اتحادیه‌های کارگری و بیشتر را اختراع کرده‌ایم تا این تعریف ناقص هدف را وصله‌پینه کنیم. نمونه‌ی دیگری که می‌توانید خودتان تجربه کنید Paperclips است؛ بازی‌ای که در آن نقش یک ماشین با هدف تولید بیشترین تعداد گیره‌ی کاغذ را بازی می‌کنید. هشدار: اعتیادآور است. نمی‌خواهم خیلی خراب کنم، اما به همین اکتفا می‌کنم که اوضاع خیلی سریع از کنترل خارج می‌شود. در یادگیری ماشین، نواقص در تعریف هدف از انتزاع‌های ناقص داده (جمعیت‌های بایاس‌دار، خطاهای اندازه‌گیری و …)، توابع زیان بدون قید، فقدان دانش درباره‌ی قیدها، تغییر توزیع میان داده‌های آموزش و داده‌های کاربردی و موارد بسیار دیگری ناشی می‌شود.

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

صحنه برای پیش‌بینی‌هایمان آماده است، کره‌ی بلورین در دستمان است؛ حالا ببینیم این حوزه به کجا می‌رود!

آینده‌ی یادگیری ماشین

بدون یادگیری ماشین، یادگیری ماشین تفسیرپذیر هم وجود نخواهد داشت. بنابراین پیش از آنکه درباره‌ی تفسیرپذیری صحبت کنیم، باید حدس بزنیم یادگیری ماشین به کجا می‌رود.

یادگیری ماشین (یا «هوش مصنوعی») با وعده‌ها و انتظارات زیادی همراه است. اما بگذارید با مشاهده‌ای کمتر خوشبینانه شروع کنیم: در حالی که علم ابزارهای پیچیده‌ی یادگیری ماشین بسیاری توسعه می‌دهد، در تجربه‌ی من یکپارچه‌سازی آن‌ها در فرآیندها و محصولات موجود کار دشواری است. نه به این دلیل که ناممکن است، بلکه صرفاً به این خاطر که شرکت‌ها و مؤسسات زمان می‌برند تا به‌روز شوند. در دوران تب طلای هیجان کنونی هوش مصنوعی، شرکت‌ها «آزمایشگاه‌های هوش مصنوعی»، «واحدهای یادگیری ماشین» تأسیس می‌کنند و «دانشمندان داده»، «متخصصان یادگیری ماشین»، «مهندسان هوش مصنوعی» و مانند آن استخدام می‌کنند، اما واقعیت، به تجربه‌ی من، کاملاً ناامیدکننده است. اغلب شرکت‌ها حتی داده را در قالب مورد نیاز ندارند و دانشمندان داده ماه‌ها بلاتکلیف منتظر می‌مانند. گاهی شرکت‌ها به خاطر رسانه‌ها انتظارات آنچنان بالایی از هوش مصنوعی و علم داده دارند که دانشمندان داده هرگز نمی‌توانند آن‌ها را برآورده کنند. و اغلب کسی نمی‌داند چگونه دانشمندان داده را در ساختارهای موجود جای دهد و مشکلات دیگری هم هست. این مرا به اولین پیش‌بینی‌ام می‌رساند:

یادگیری ماشین آهسته اما پیوسته بالغ خواهد شد.

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

به باور من باید بهتر توضیح دهیم که چه نوع مسائلی را می‌توان به صورت مسائل یادگیری ماشین فرمول‌بندی کرد. دانشمندان داده‌ی بسیار با حقوق بالایی را می‌شناسم که به جای کاربرد یادگیری ماشین، محاسبات Excel یا هوش تجاری کلاسیک با گزارش‌گیری و کوئری‌های SQL انجام می‌دهند. اما تعداد کمی از شرکت‌ها از یادگیری ماشین با موفقیت استفاده می‌کنند و شرکت‌های بزرگ اینترنتی در خط مقدم هستند. باید روش‌های بهتری برای یکپارچه‌سازی یادگیری ماشین در فرآیندها و محصولات، آموزش افراد و توسعه‌ی ابزارهای یادگیری ماشین آسان‌تر پیدا کنیم. به باور من یادگیری ماشین بسیار راحت‌تر خواهد شد: از هم‌اکنون می‌توان دید که یادگیری ماشین در حال دسترس‌پذیرتر شدن است، برای مثال از طریق خدمات ابری («یادگیری ماشین به‌عنوان سرویس» — فقط برای استفاده از چند اصطلاح باب روز). وقتی یادگیری ماشین به بلوغ رسید — و این نوپا اولین قدم‌هایش را برداشته — پیش‌بینی بعدی‌ام این است:

یادگیری ماشین چیزهای بسیاری را به حرکت درخواهد آورد.

بر اساس این اصل که «هر چیزی که بتوان خودکار کرد، خودکار خواهد شد»، به این نتیجه می‌رسم که هر جا ممکن باشد، وظایف به‌صورت مسائل پیش‌بینی فرمول‌بندی شده و با یادگیری ماشین حل خواهند شد. یادگیری ماشین نوعی خودکارسازی است یا می‌تواند حداقل بخشی از آن باشد. بسیاری از وظایفی که در حال حاضر توسط انسان‌ها انجام می‌شود، با یادگیری ماشین جایگزین می‌شود. در اینجا چند نمونه از وظایفی که یادگیری ماشین برای خودکارسازی بخشی از آن‌ها به کار می‌رود آورده شده است:

  • مرتب‌سازی / تصمیم‌گیری / تکمیل اسناد (مثلاً در شرکت‌های بیمه، بخش حقوقی یا شرکت‌های مشاوره)
  • تصمیمات مبتنی بر داده مانند درخواست‌های اعتباری
  • کشف دارو
  • کنترل کیفیت در خطوط مونتاژ
  • خودروهای خودران
  • تشخیص بیماری‌ها
  • ترجمه. برای این کتاب از یک سرویس ترجمه به نام DeepL که با شبکه‌های عصبی عمیق (deep neural networks) کار می‌کند استفاده کردم تا جملاتم را با ترجمه از انگلیسی به آلمانی و بازگشت به انگلیسی بهبود دهم.

پیشرفت یادگیری ماشین نه تنها از طریق رایانه‌های بهتر / داده‌ی بیشتر / نرم‌افزار بهتر حاصل می‌شود، بلکه:

ابزارهای تفسیرپذیری، پذیرش یادگیری ماشین را تسریع می‌کنند.

بر اساس این پیش‌فرض که هدف یک مدل یادگیری ماشین هرگز نمی‌تواند به‌طور کامل مشخص شود، نتیجه می‌گیریم که یادگیری ماشین تفسیرپذیر برای پر کردن شکاف میان هدف تعریف‌شده‌ی ناقص و هدف واقعی ضروری است. در حوزه‌ها و بخش‌های بسیاری، تفسیرپذیری عامل تسریع پذیرش یادگیری ماشین خواهد بود. چند شاهد جزئی: بسیاری از افرادی که با آن‌ها صحبت کرده‌ام از یادگیری ماشین استفاده نمی‌کنند چون نمی‌توانند مدل‌ها را برای دیگران توضیح دهند. به باور من تفسیرپذیری این مشکل را حل خواهد کرد و یادگیری ماشین را برای سازمان‌ها و افرادی که خواستار شفافیت هستند جذاب خواهد کرد. علاوه بر تعریف ناقص مسئله، بسیاری از صنایع به تفسیرپذیری نیاز دارند، چه به دلایل قانونی، چه به خاطر ریسک‌گریزی، یا برای کسب درک عمیق‌تر از وظیفه‌ی زمینه‌ای. یادگیری ماشین فرآیند مدل‌سازی را خودکار می‌کند و انسان را کمی از داده و وظیفه‌ی زمینه‌ای دورتر می‌کند: این احتمال بروز مشکلاتی در طراحی آزمایش، انتخاب توزیع آموزش، نمونه‌گیری، رمزگذاری داده، مهندسی ویژگی و غیره را افزایش می‌دهد. ابزارهای تفسیر، شناسایی این مشکلات را آسان‌تر می‌کنند.

آینده‌ی تفسیرپذیری

بیایید نگاهی به آینده‌ی محتمل تفسیرپذیری یادگیری ماشین بیندازیم.

تمرکز بر ابزارهای تفسیرپذیری مدل‌-مستقل (model-agnostic) خواهد بود.

خودکارسازی تفسیرپذیری بسیار آسان‌تر است وقتی از مدل یادگیری ماشین زمینه‌ای مجزا باشد. مزیت تفسیرپذیری مدل-مستقل در ماژولار بودن آن نهفته است. می‌توانیم مدل یادگیری ماشین زمینه‌ای را به‌آسانی جایگزین کنیم. به همان اندازه می‌توانیم روش تفسیر را جایگزین کنیم. به این دلایل، روش‌های مدل-مستقل مقیاس‌پذیری بسیار بهتری خواهند داشت. به همین دلیل است که به باور من روش‌های مدل-مستقل در بلندمدت غالب‌تر خواهند شد. اما روش‌های ذاتاً تفسیرپذیر نیز جایگاه خود را خواهند داشت.

یادگیری ماشین خودکار خواهد شد و با آن، تفسیرپذیری نیز.

یک روند هم‌اکنون قابل مشاهده، خودکارسازی آموزش مدل است. این شامل مهندسی و انتخاب خودکار ویژگی‌ها، بهینه‌سازی خودکار فراپارامترها (hyperparameters)، مقایسه‌ی مدل‌های مختلف، و یکپارچه‌سازی یا پشته‌گذاری مدل‌هاست. نتیجه، بهترین مدل پیش‌بینی ممکن است. وقتی از روش‌های تفسیر مدل-مستقل استفاده می‌کنیم، می‌توانیم آن‌ها را به‌طور خودکار بر هر مدلی که از فرآیند یادگیری ماشین خودکار بیرون می‌آید اعمال کنیم. به نوعی، این مرحله‌ی دوم را نیز می‌توانیم خودکار کنیم: اهمیت ویژگی‌ها را به‌طور خودکار محاسبه کنیم، نمودار وابستگی جزئی رسم کنیم، یک مدل جایگزین (surrogate model) آموزش دهیم و به همین ترتیب. هیچ‌چیز مانع از محاسبه‌ی خودکار همه‌ی این تفسیرهای مدل نمی‌شود. تفسیر واقعی همچنان به افراد نیاز دارد. تصور کنید: یک مجموعه داده آپلود می‌کنید، هدف پیش‌بینی را مشخص می‌کنید و با فشار یک دکمه بهترین مدل پیش‌بینی آموزش می‌بیند و برنامه همه‌ی تفسیرهای مدل را بیرون می‌دهد. از هم‌اکنون محصولات اولیه‌ای وجود دارد و استدلال می‌کنم که برای بسیاری از کاربردها، استفاده از این سرویس‌های یادگیری ماشین خودکار کافی خواهد بود. امروز هر کسی می‌تواند بدون دانستن HTML، CSS و Javascript وب‌سایت بسازد، اما هنوز توسعه‌دهندگان وب بسیاری وجود دارند. به‌طور مشابه، به باور من همه خواهند توانست بدون دانستن برنامه‌نویسی مدل‌های یادگیری ماشین آموزش دهند، و همچنان نیاز به متخصصان یادگیری ماشین خواهد بود.

ما داده را تحلیل نمی‌کنیم، مدل‌ها را تحلیل می‌کنیم.

داده‌ی خام خودش همواره بی‌فایده است. (عمداً اغراق می‌کنم. واقعیت این است که برای انجام تحلیل معنادار نیاز به درک عمیق داده دارید.) به داده اهمیت نمی‌دهم؛ به دانش نهفته در داده اهمیت می‌دهم. یادگیری ماشین تفسیرپذیر روشی عالی برای استخراج دانش از داده است. می‌توانید مدل را به‌طور گسترده کاوش کنید، مدل به‌طور خودکار تشخیص می‌دهد که آیا و چگونه ویژگی‌ها برای پیش‌بینی مرتبط هستند (بسیاری از مدل‌ها انتخاب ویژگی داخلی دارند)، مدل می‌تواند به‌طور خودکار تشخیص دهد که روابط چگونه نمایش داده می‌شوند، و — اگر به‌درستی آموزش دیده باشد — مدل نهایی تقریب بسیار خوبی از واقعیت است.

بسیاری از ابزارهای تحلیلی از پیش مبتنی بر مدل‌های داده هستند (چون بر فرضیات توزیعی استوارند):

  • آزمون‌های فرضیه‌ی ساده مانند آزمون t استیودنت
  • آزمون‌های فرضیه با تعدیل برای عوامل مخدوش‌کننده (معمولاً GLMها)
  • تحلیل واریانس (ANOVA)
  • ضریب همبستگی (ضریب رگرسیون خطی استانداردشده با ضریب همبستگی پیرسون ارتباط دارد)

آنچه اینجا می‌گویم در واقع چیز جدیدی نیست. پس چرا از تحلیل مدل‌های مبتنی بر فرضیه‌ی شفاف به تحلیل مدل‌های Black Box بدون فرضیه منتقل شویم؟ چون ایجاد همه‌ی این فرضیات مشکل‌ساز است: معمولاً اشتباه هستند (مگر آنکه باور داشته باشید بیشتر جهان از توزیع گاوسی پیروی می‌کند)، بررسی آن‌ها دشوار است، بسیار انعطاف‌ناپذیرند و سخت می‌توان آن‌ها را خودکار کرد. در حوزه‌های بسیاری، مدل‌های مبتنی بر فرضیه معمولاً عملکرد پیش‌بینی ضعیف‌تری روی داده‌های آزمایشی دست‌نخورده نسبت به مدل‌های Black Box یادگیری ماشین دارند. این تنها برای مجموعه داده‌های بزرگ صادق است، چون مدل‌های تفسیرپذیر با فرضیات مناسب اغلب عملکرد بهتری نسبت به مدل‌های Black Box در مجموعه داده‌های کوچک دارند. رویکرد Black Box یادگیری ماشین به داده‌ی بسیاری نیاز دارد تا به‌خوبی کار کند. با دیجیتالی‌سازی همه چیز، مجموعه داده‌های هرچه بزرگ‌تری خواهیم داشت و از این رو رویکرد یادگیری ماشین جذاب‌تر خواهد شد. فرضیاتی نمی‌سازیم، بلکه واقعیت را تا جای ممکن تقریب می‌زنیم (در عین اجتناب از بیش‌برازش داده‌های آموزشی). استدلال می‌کنم که باید تمام ابزارهایی که در آمار برای پاسخ به سؤالات داریم (آزمون‌های فرضیه، معیارهای همبستگی، معیارهای تعامل، ابزارهای بصری‌سازی، فاصله‌های اطمینان، مقادیر p، فاصله‌های پیش‌بینی، توزیع‌های احتمال) توسعه دهیم و آن‌ها را برای مدل‌های Black Box بازنویسی کنیم. به نوعی، این کار از هم‌اکنون در حال انجام است:

  • یک مدل خطی کلاسیک را در نظر بگیرید: ضریب رگرسیون استانداردشده از پیش یک معیار اهمیت ویژگی است. با معیار اهمیت ویژگی جابه‌جایی، ابزاری داریم که با هر مدلی کار می‌کند.
  • در یک مدل خطی، ضرایب اثر یک ویژگی منفرد بر خروجی پیش‌بینی‌شده را اندازه می‌گیرند. نسخه‌ی تعمیم‌یافته‌ی این، نمودار وابستگی جزئی است.
  • آزمون اینکه آیا A بهتر از B است: برای این، می‌توانیم از توابع وابستگی جزئی نیز استفاده کنیم. آنچه هنوز نداریم (تا آنجا که می‌دانم) آزمون‌های آماری برای مدل‌های Black Box دلخواه هستند.

دانشمندان داده خود را خودکار خواهند کرد.

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

ربات‌ها و برنامه‌ها خودشان را توضیح خواهند داد.

به رابط‌های کاربری شهودی‌تری با ماشین‌ها و برنامه‌هایی نیاز داریم که به‌شدت از یادگیری ماشین بهره می‌برند. چند نمونه: یک خودرو خودران که توضیح می‌دهد چرا ناگهان ترمز کرد («احتمال ۷۰٪ که یک کودک از خیابان رد شود»)؛ یک برنامه‌ی نکول اعتباری که به کارمند بانک توضیح می‌دهد چرا یک درخواست وام رد شد («متقاضی کارت اعتباری بیش از حد دارد و در شغلی ناپایدار مشغول به کار است»)؛ یک بازوی رباتیک که توضیح می‌دهد چرا قطعه را از نوار نقاله به داخل سطل آشغال انداخت («قطعه در قسمت پایین ترک دارد»).

در پایان، همه اینها گمانه‌زنی است و باید دید آینده واقعاً چه می‌آورد. نظر خودتان را شکل دهید و به یادگیری ادامه دهید!

پیوست الف — اصطلاحات یادگیری ماشین

عنوان اصلی: Machine Learning Terms
منبع: https://christophm.github.io/interpretable-ml-book/what-is-machine-learning.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


برای پرهیز از ابهام، تعاریف اصطلاحاتی که در این کتاب به‌کار رفته‌اند در ادامه آمده است:

الگوریتم (Algorithm) مجموعه‌ای از قوانین است که ماشین برای رسیدن به هدفی مشخص از آن‌ها پیروی می‌کند (Merriam-Webster 2017). الگوریتم را می‌توان به‌مثابه یک دستورالعمل دانست که ورودی‌ها، خروجی و تمام مراحل لازم برای رسیدن از ورودی به خروجی را مشخص می‌کند. دستورالعمل‌های آشپزی نمونه‌ای از الگوریتم هستند: مواد اولیه، ورودی؛ غذای پخته‌شده، خروجی؛ و مراحل آماده‌سازی و پخت، دستورالعمل‌های الگوریتم‌اند.

یادگیری ماشین (Machine Learning) مجموعه‌ای از روش‌هاست که به رایانه‌ها امکان می‌دهد از داده بیاموزند و پیش‌بینی‌هایی بسازند و بهبود دهند (برای نمونه: پیش‌بینی سرطان، فروش هفتگی، یا نکول اعتباری). یادگیری ماشین یک تحول پارادایمی است؛ از «برنامه‌نویسی متعارف» که در آن تمام دستورالعمل‌ها باید به‌صراحت به رایانه داده شوند، به سمت «برنامه‌نویسی غیرمستقیم» که از طریق ارائه داده انجام می‌گیرد.

یادگیرنده (Learner) یا الگوریتم یادگیری ماشین برنامه‌ای است که برای یادگیری یک مدل یادگیری ماشین از داده به‌کار می‌رود. نام دیگر آن «استنتاج‌کننده» (inducer) است (برای مثال: «استنتاج‌کننده درخت»).

مدل یادگیری ماشین (Machine Learning Model) برنامه‌ی آموخته‌شده‌ای است که ورودی‌ها را به پیش‌بینی نگاشت می‌کند. این مدل می‌تواند مجموعه‌ای از وزن‌ها برای یک مدل خطی یا یک شبکه عصبی باشد. نام‌های دیگری که به‌جای واژه کلی «مدل» به‌کار می‌روند عبارت‌اند از «پیش‌بین» یا — بسته به وظیفه — «دسته‌بند» یا «مدل رگرسیون». در فرمول‌ها، مدل یادگیری ماشین آموزش‌دیده با $\hat{f}$ یا $\hat{f}(\mathbf{x})$ نمایش داده می‌شود.

یک یادگیرنده از داده‌های آموزشی برچسب‌دار، مدلی می‌آموزد. سپس از آن مدل برای پیش‌بینی استفاده می‌شود.

یک یادگیرنده از داده‌های آموزشی برچسب‌دار، مدلی می‌آموزد. سپس از آن مدل برای پیش‌بینی استفاده می‌شود.

مدل جعبه‌سیاه (Black Box Model) سیستمی است که سازوکار درونی خود را آشکار نمی‌کند. در یادگیری ماشین، اصطلاح «جعبه‌سیاه» به مدل‌هایی اشاره دارد که با نگاه به پارامترهایشان قابل درک نیستند (مانند شبکه‌های عصبی). نقطه مقابل جعبه‌سیاه گاهی جعبه‌سفید (White Box) نامیده می‌شود که در این کتاب با عنوان مدل تفسیرپذیر از آن یاد می‌شود. روش‌های مدل‌آگنوستیک تفسیرپذیری، مدل‌های یادگیری ماشین را به‌مثابه جعبه‌سیاه تلقی می‌کنند، حتی اگر در واقع چنین نباشند.

یادگیری ماشین تفسیرپذیر (Interpretable Machine Learning) به روش‌ها و مدل‌هایی اشاره دارد که رفتار و پیش‌بینی‌های سیستم‌های یادگیری ماشین را برای انسان قابل فهم می‌سازند.

مجموعه داده (Dataset) جدولی است که داده‌های مورد نیاز برای یادگیری ماشین را در خود دارد. این مجموعه شامل ویژگی‌ها و متغیر هدفی است که باید پیش‌بینی شود. هنگامی که از مجموعه داده برای آموزش مدل استفاده می‌شود، به آن داده آموزشی گفته می‌شود.

نمونه (Instance) یک سطر در مجموعه داده است. نام‌های دیگر برای «نمونه» عبارت‌اند از: نقطه داده (data point)، مثال (example)، مشاهده (observation). هر نمونه از مقادیر ویژگی $\mathbf{x}^{(i)}$ و — در صورت موجود بودن — مقدار هدف $y^{(i)}$ تشکیل شده است.

ویژگی‌ها (Features) ورودی‌هایی هستند که برای پیش‌بینی یا دسته‌بندی به‌کار می‌روند. هر ویژگی یک ستون در مجموعه داده است. در سراسر کتاب فرض بر این است که ویژگی‌ها تفسیرپذیرند؛ یعنی درک معنای آن‌ها آسان است، مانند دمای هوا در یک روز مشخص یا قد یک فرد. این فرض درباره تفسیرپذیری ویژگی‌ها، پیش‌فرض مهمی است. اگر درک ویژگی‌های ورودی دشوار باشد، فهمیدن اینکه مدل چه می‌کند به‌مراتب دشوارتر خواهد بود. ماتریس تمام ویژگی‌ها با $\mathbf{X}$ و برای یک نمونه منفرد با $\mathbf{x}^{(i)}$ نمایش داده می‌شود. بردار یک ویژگی مشخص برای تمام نمونه‌ها $\mathbf{x}_j$ است و مقدار ویژگی $j$ برای نمونه $i$ برابر $x^{(i)}_j$ خواهد بود.

هدف (Target) اطلاعاتی است که ماشین یاد می‌گیرد آن را پیش‌بینی کند. در فرمول‌های ریاضی، هدف معمولاً با $y$ یا برای یک نمونه منفرد با $y^{(i)}$ نشان داده می‌شود.

وظیفه یادگیری ماشین (Machine Learning Task) ترکیبی از یک مجموعه داده با ویژگی‌ها و یک هدف است. بسته به نوع هدف، وظیفه می‌تواند دسته‌بندی (classification)، رگرسیون، تحلیل بقا (survival analysis)، خوشه‌بندی (clustering) یا تشخیص داده‌های پرت (outlier detection) باشد.

پیش‌بینی (Prediction) «حدس» مدل یادگیری ماشین برای مقدار هدف بر اساس ویژگی‌های داده‌شده است. در این کتاب، پیش‌بینی مدل با $\hat{f}(\mathbf{x}^{(i)})$ یا $\hat{y}$ نشان داده می‌شود.


Merriam-Webster. 2017. "Definition of Algorithm." https://www.merriam-webster.com/dictionary/algorithm.

پیوست ب — اصطلاحات ریاضی

عنوان اصلی: Math Terms
منبع: https://christophm.github.io/interpretable-ml-book/math-terms.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


اصطلاحات ریاضی به‌کاررفته در سراسر این کتاب:

اصطلاح ریاضیمعنا
$X_j$متغیر تصادفی متناظر با ویژگی $j$.
$X$مجموعه‌ی تمام متغیرهای تصادفی.
$\mathbb{P}$معیار احتمال (اندازه‌ی احتمال).
$\mathbb{P}(X_j = c)$احتمال اینکه متغیر تصادفی $X_j$ مقدار $c$ را بپذیرد.
$\mathbf{x}_j$بردار مقادیر ویژگی $j$ در چندین نمونه‌ی داده.
$\mathbf{x}^{(i)}$بردار ویژگی‌های $i$-امین نمونه.
$x^{(i)}_j$مقدار ویژگی $j$ برای $i$-امین نمونه.
$y^{(i)}$مقدار هدف (برچسب) برای $i$-امین نمونه.
$\mathbf{X}$ماتریس ویژگی‌ها؛ هر سطر متناظر با یک نمونه و هر ستون متناظر با یک ویژگی است.
$\mathbf{y}$بردار مقادیر هدف، یک مقدار به ازای هر نمونه.
$n$تعداد نمونه‌های داده (تعداد سطرهای $\mathbf{X}$).
$p$تعداد ویژگی‌ها (تعداد ستون‌های $\mathbf{X}$).

پیوست ج — بسته‌های R مورد استفاده

عنوان اصلی: R Packages Used
منبع: https://christophm.github.io/interpretable-ml-book/r-packages.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


بستهنسخهمرجع
base4.4.2R Core Team (2024a)
caret6.0.94Kuhn and Max (2008)
ceterisParibus0.4.2Biecek (2020)
DALEX2.4.3Biecek (2018)
data.table1.16.2Barrett et al. (2024)
e10711.7.16D. Meyer et al. (2024)
GGally2.2.1Schloerke et al. (2024)
glmnet4.1.8Friedman, Tibshirani, and Hastie (2010); Simon et al. (2011); Tay, Narasimhan, and Hastie (2023)
grid4.4.2R Core Team (2024b)
iml0.11.3Molnar, Bischl, and Casalicchio (2018)
infotheo1.2.0.1P. E. Meyer (2022)
interactions1.2.0Long (2024)
jpeg0.1.10Urbanek (2022)
kableExtra1.4.0Zhu (2024)
knitr1.48Xie (2014); Xie (2015); Xie (2024)
latex2exp0.9.6Meschiari (2022)
Metrics0.1.4Hamner and Frasco (2018)
mgcv1.9.1S. N. Wood (2003); S. N. Wood (2004); S. N. Wood (2011); S. N. Wood et al. (2016); S. N. Wood (2017)
nnet7.3.19Venables and Ripley (2002)
OneR2.2von Jouanne-Diedrich (2017)
palmerpenguins0.1.1Horst, Hill, and Gorman (2020)
partykit1.2.22Hothorn, Hornik, and Zeileis (2006); Zeileis, Hothorn, and Hornik (2008); Hothorn and Zeileis (2015)
patchwork1.3.0Pedersen (2024)
pre1.0.7Fokkema (2020)
randomForest4.7.1.2Liaw and Wiener (2002)
ranger0.17.0Wright and Ziegler (2017)
reshape21.4.4Wickham (2007)
rJava1.0.11Urbanek (2024)
rmarkdown2.29Xie, Allaire, and Grolemund (2018); Xie, Dervieux, and Riederer (2020); Allaire et al. (2024)
rpart4.1.23Therneau and Atkinson (2023)
RWeka0.4.46Witten and Frank (2005); Hornik, Buchta, and Zeileis (2009)
sbrl1.2Yang, Rudin, and Seltzer (2016)
tidyverse2.0.0Wickham et al. (2019)
tm0.7.14Feinerer, Hornik, and Meyer (2008); Feinerer and Hornik (2024)
viridis0.6.5Garnier et al. (2024)
yaImpute1.0.34.1Nicholas L. Crookston and Andrew O. Finley (2007)

Allaire, JJ, Yihui Xie, Christophe Dervieux, Jonathan McPherson, Javier Luraschi, Kevin Ushey, Aron Atkins, et al. 2024. rmarkdown: Dynamic Documents for r. https://github.com/rstudio/rmarkdown.

Barrett, Tyson, Matt Dowle, Arun Srinivasan, Jan Gorecki, Michael Chirico, Toby Hocking, and Benjamin Schwendinger. 2024. data.table: Extension of "data.frame". https://CRAN.R-project.org/package=data.table.

Biecek, Przemyslaw. 2018. "DALEX: Explainers for Complex Predictive Models in r." Journal of Machine Learning Research 19 (84): 1–5. https://jmlr.org/papers/v19/18-416.html.

———. 2020. ceterisParibus: Ceteris Paribus Profiles. https://CRAN.R-project.org/package=ceterisParibus.

Feinerer, Ingo, and Kurt Hornik. 2024. tm: Text Mining Package. https://CRAN.R-project.org/package=tm.

Feinerer, Ingo, Kurt Hornik, and David Meyer. 2008. "Text Mining Infrastructure in r." Journal of Statistical Software 25 (5): 1–54. https://doi.org/10.18637/jss.v025.i05.

Fokkema, Marjolein. 2020. "Fitting Prediction Rule Ensembles with R Package pre." Journal of Statistical Software 92 (12): 1–30. https://doi.org/10.18637/jss.v092.i12.

Friedman, Jerome, Robert Tibshirani, and Trevor Hastie. 2010. "Regularization Paths for Generalized Linear Models via Coordinate Descent." Journal of Statistical Software 33 (1): 1–22. https://doi.org/10.18637/jss.v033.i01.

Garnier, Simon, Ross, Noam, Rudis, Robert, Camargo, et al. 2024. viridis(Lite) - Colorblind-Friendly Color Maps for r. https://doi.org/10.5281/zenodo.4679423.

Hamner, Ben, and Michael Frasco. 2018. Metrics: Evaluation Metrics for Machine Learning. https://CRAN.R-project.org/package=Metrics.

Hornik, Kurt, Christian Buchta, and Achim Zeileis. 2009. "Open-Source Machine Learning: R Meets Weka." Computational Statistics 24 (2): 225–32. https://doi.org/10.1007/s00180-008-0119-7.

Horst, Allison Marie, Alison Presmanes Hill, and Kristen B Gorman. 2020. palmerpenguins: Palmer Archipelago (Antarctica) Penguin Data. https://doi.org/10.5281/zenodo.3960218.

Hothorn, Torsten, Kurt Hornik, and Achim Zeileis. 2006. "Unbiased Recursive Partitioning: A Conditional Inference Framework." Journal of Computational and Graphical Statistics 15 (3): 651–74. https://doi.org/10.1198/106186006X133933.

Hothorn, Torsten, and Achim Zeileis. 2015. "partykit: A Modular Toolkit for Recursive Partytioning in R." Journal of Machine Learning Research 16: 3905–9. https://jmlr.org/papers/v16/hothorn15a.html.

Kuhn, and Max. 2008. "Building Predictive Models in r Using the Caret Package." Journal of Statistical Software 28 (5): 1–26. https://doi.org/10.18637/jss.v028.i05.

Liaw, Andy, and Matthew Wiener. 2002. "Classification and Regression by randomForest." R News 2 (3): 18–22. https://CRAN.R-project.org/doc/Rnews/.

Long, Jacob A. 2024. interactions: Comprehensive, User-Friendly Toolkit for Probing Interactions. https://doi.org/10.32614/CRAN.package.interactions.

Meschiari, Stefano. 2022. Latex2exp: Use LaTeX Expressions in Plots. https://CRAN.R-project.org/package=latex2exp.

Meyer, David, Evgenia Dimitriadou, Kurt Hornik, Andreas Weingessel, and Friedrich Leisch. 2024. E1071: Misc Functions of the Department of Statistics, Probability Theory Group (Formerly: E1071), TU Wien. https://CRAN.R-project.org/package=e1071.

Meyer, Patrick E. 2022. infotheo: Information-Theoretic Measures. https://CRAN.R-project.org/package=infotheo.

Molnar, Christoph, Bernd Bischl, and Giuseppe Casalicchio. 2018. "iml: An r Package for Interpretable Machine Learning." JOSS 3 (26): 786. https://doi.org/10.21105/joss.00786.

Nicholas L. Crookston, and Andrew O. Finley. 2007. "yaImpute: An r Package for kNN Imputation." Journal of Statistical Software 23 (10). https://doi.org/10.18637/jss.v023.i10.

Pedersen, Thomas Lin. 2024. patchwork: The Composer of Plots. https://CRAN.R-project.org/package=patchwork.

R Core Team. 2024a. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.

———. 2024b. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.

Schloerke, Barret, Di Cook, Joseph Larmarange, Francois Briatte, Moritz Marbach, Edwin Thoen, Amos Elberg, and Jason Crowley. 2024. GGally: Extension to "ggplot2". https://CRAN.R-project.org/package=GGally.

Simon, Noah, Jerome Friedman, Robert Tibshirani, and Trevor Hastie. 2011. "Regularization Paths for Cox's Proportional Hazards Model via Coordinate Descent." Journal of Statistical Software 39 (5): 1–13. https://doi.org/10.18637/jss.v039.i05.

Tay, J. Kenneth, Balasubramanian Narasimhan, and Trevor Hastie. 2023. "Elastic Net Regularization Paths for All Generalized Linear Models." Journal of Statistical Software 106 (1): 1–31. https://doi.org/10.18637/jss.v106.i01.

Therneau, Terry, and Beth Atkinson. 2023. rpart: Recursive Partitioning and Regression Trees. https://CRAN.R-project.org/package=rpart.

Urbanek, Simon. 2022. jpeg: Read and Write JPEG Images. https://CRAN.R-project.org/package=jpeg.

———. 2024. rJava: Low-Level r to Java Interface. https://CRAN.R-project.org/package=rJava.

Venables, W. N., and B. D. Ripley. 2002. Modern Applied Statistics with s. Fourth. New York: Springer. https://www.stats.ox.ac.uk/pub/MASS4/.

von Jouanne-Diedrich, Holger. 2017. OneR: One Rule Machine Learning Classification Algorithm with Enhancements. https://CRAN.R-project.org/package=OneR.

Wickham, Hadley. 2007. "Reshaping Data with the reshape Package." Journal of Statistical Software 21 (12): 1–20. http://www.jstatsoft.org/v21/i12/.

Wickham, Hadley, Mara Averick, Jennifer Bryan, Winston Chang, Lucy D'Agostino McGowan, Romain François, Garrett Grolemund, et al. 2019. "Welcome to the tidyverse." Journal of Open Source Software 4 (43): 1686. https://doi.org/10.21105/joss.01686.

Witten, Ian H., and Eibe Frank. 2005. Data Mining: Practical Machine Learning Tools and Techniques. 2nd ed. San Francisco: Morgan Kaufmann.

Wood, S. N. 2017. Generalized Additive Models: An Introduction with r. 2nd ed. Chapman; Hall/CRC.

Wood, S. N. 2003. "Thin-Plate Regression Splines." Journal of the Royal Statistical Society (B) 65 (1): 95–114.

———. 2004. "Stable and Efficient Multiple Smoothing Parameter Estimation for Generalized Additive Models." Journal of the American Statistical Association 99 (467): 673–86.

———. 2011. "Fast Stable Restricted Maximum Likelihood and Marginal Likelihood Estimation of Semiparametric Generalized Linear Models." Journal of the Royal Statistical Society (B) 73 (1): 3–36.

Wood, S. N., N., Pya, and B. S"afken. 2016. "Smoothing Parameter and Model Selection for General Smooth Models (with Discussion)." Journal of the American Statistical Association 111: 1548–75.

Wright, Marvin N., and Andreas Ziegler. 2017. "ranger: A Fast Implementation of Random Forests for High Dimensional Data in C++ and R." Journal of Statistical Software 77 (1): 1–17. https://doi.org/10.18637/jss.v077.i01.

Xie, Yihui. 2014. "knitr: A Comprehensive Tool for Reproducible Research in R." In Implementing Reproducible Computational Research, edited by Victoria Stodden, Friedrich Leisch, and Roger D. Peng. Chapman; Hall/CRC.

———. 2015. Dynamic Documents with R and Knitr. 2nd ed. Boca Raton, Florida: Chapman; Hall/CRC. https://yihui.org/knitr/.

———. 2024. knitr: A General-Purpose Package for Dynamic Report Generation in r. https://yihui.org/knitr/.

Xie, Yihui, J. J. Allaire, and Garrett Grolemund. 2018. R Markdown: The Definitive Guide. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown.

Xie, Yihui, Christophe Dervieux, and Emily Riederer. 2020. R Markdown Cookbook. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown-cookbook.

Yang, Hongyu, Cynthia Rudin, and Margo Seltzer. 2016. sbrl: Scalable Bayesian Rule Lists Model. https://CRAN.R-project.org/package=sbrl.

Zeileis, Achim, Torsten Hothorn, and Kurt Hornik. 2008. "Model-Based Recursive Partitioning." Journal of Computational and Graphical Statistics 17 (2): 492–514. https://doi.org/10.1198/106186008X319331.

Zhu, Hao. 2024. kableExtra: Construct Complex Table with "kable" and Pipe Syntax. https://CRAN.R-project.org/package=kableExtra.

پیوست د — منابع

عنوان اصلی: References
منبع: https://christophm.github.io/interpretable-ml-book/references.html
نویسنده: Christoph Molnar
مترجم: مریم محمودی


Aas, Kjersti, Martin Jullum, and Anders Løland. 2021. "Explaining Individual Predictions When Features Are Dependent: More Accurate Approximations to Shapley Values." Artificial Intelligence 298: 103502. https://doi.org/https://doi.org/10.1016/j.artint.2021.103502.

Adadi, Amina, and Mohammed Berrada. 2018. "Peeking Inside the Black-Box: A Survey on Explainable Artificial Intelligence (XAI)." IEEE Access 6: 52138–60. https://doi.org/10.1109/ACCESS.2018.2870052.

Adebayo, Julius, Justin Gilmer, Michael Muelly, Ian Goodfellow, Moritz Hardt, and Been Kim. 2018. "Sanity Checks for Saliency Maps." In Proceedings of the 32nd International Conference on Neural Information Processing Systems, 9525–36. NIPS'18. Red Hook, NY, USA: Curran Associates Inc.

Alain, Guillaume, and Yoshua Bengio. 2018. "Understanding Intermediate Layers Using Linear Classifier Probes." arXiv. https://doi.org/10.48550/arXiv.1610.01644.

Alber, Maximilian, Sebastian Lapuschkin, Philipp Seegerer, Miriam Hägele, Kristof T. Schütt, Grégoire Montavon, Wojciech Samek, Klaus-Robert Müller, Sven Dähne, and Pieter-Jan Kindermans. 2019. "iNNvestigate Neural Networks!" Journal of Machine Learning Research 20 (93): 1–8. http://jmlr.org/papers/v20/18-540.html.

Alberto, Túlio C, Johannes V Lochter, and Tiago A Almeida. 2015. "Tubespam: Comment Spam Filtering on Youtube." In 2015 IEEE 14th International Conference on Machine Learning and Applications (ICMLA), 138–43. IEEE.

Allaire, JJ, Yihui Xie, Christophe Dervieux, Jonathan McPherson, Javier Luraschi, Kevin Ushey, Aron Atkins, et al. 2024. rmarkdown: Dynamic Documents for r. https://github.com/rstudio/rmarkdown.

Alvarez-Melis, David, and Tommi S. Jaakkola. 2018. "On the Robustness of Interpretability Methods." arXiv. https://doi.org/10.48550/arXiv.1806.08049.

Apley, Daniel W., and Jingyu Zhu. 2020. "Visualizing the Effects of Predictor Variables in Black Box Supervised Learning Models." Journal of the Royal Statistical Society Series B: Statistical Methodology 82 (4): 1059–86. https://doi.org/10.1111/rssb.12377.

Athalye, Anish, Logan Engstrom, Andrew Ilyas, and Kevin Kwok. 2018. "Synthesizing Robust Adversarial Examples." In International Conference on Machine Learning, 284–93. PMLR.

Bach, Sebastian, Alexander Binder, Grégoire Montavon, Frederick Klauschen, Klaus-Robert Müller, and Wojciech Samek. 2015. "On Pixel-Wise Explanations for Non-Linear Classifier Decisions by Layer-Wise Relevance Propagation." PLOS ONE 10 (7): e0130140. https://doi.org/10.1371/journal.pone.0130140.

Barrett, Tyson, Matt Dowle, Arun Srinivasan, Jan Gorecki, Michael Chirico, Toby Hocking, and Benjamin Schwendinger. 2024. data.table: Extension of "data.frame". https://CRAN.R-project.org/package=data.table.

Bau, David, Bolei Zhou, Aditya Khosla, Aude Oliva, and Antonio Torralba. 2017. "Network Dissection: Quantifying Interpretability of Deep Visual Representations." In 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 3319–27. https://doi.org/10.1109/CVPR.2017.354.

Biecek, Przemyslaw. 2018. "DALEX: Explainers for Complex Predictive Models in r." Journal of Machine Learning Research 19 (84): 1–5. https://jmlr.org/papers/v19/18-416.html.

———. 2020. ceterisParibus: Ceteris Paribus Profiles. https://CRAN.R-project.org/package=ceterisParibus.

Biggio, Battista, and Fabio Roli. 2018. "Wild Patterns: Ten Years After the Rise of Adversarial Machine Learning." Pattern Recognition 84 (December): 317–31. https://doi.org/10.1016/j.patcog.2018.07.023.

Bilodeau, Blair, Natasha Jaques, Pang Wei Koh, and Been Kim. 2024. "Impossibility Theorems for Feature Attribution." Proceedings of the National Academy of Sciences 121 (2): e2304406120. https://doi.org/10.1073/pnas.2304406120.

Biran, Or, and Courtenay V. Cotton. 2017. "Explanation and Justification in Machine Learning: A Survey." In Proceedings of the IJCAI-17 Workshop on Explainable Artificial Intelligence (XAI). https://www.cs.columbia.edu/~orb/papers/xai_survey_paper_2017.pdf.

Borgelt, Christian. 2005. "An Implementation of the FP-Growth Algorithm." In Proceedings of the 1st International Workshop on Open Source Data Mining: Frequent Pattern Mining Implementations, 1–5. OSDM '05. New York, NY, USA: Association for Computing Machinery. https://doi.org/10.1145/1133905.1133907.

Breiman, Leo. 2001. "Random Forests." Machine Learning 45 (1): 5–32. https://doi.org/10.1023/A:1010933404324.

Britton, Matthew. 2019. "Vine: Visualizing Statistical Interactions in Black Box Models." arXiv Preprint arXiv:1904.00561.

Brown, Tom B., Dandelion Mané, Aurko Roy, Martín Abadi, and Justin Gilmer. 2018. "Adversarial Patch." arXiv. https://doi.org/10.48550/arXiv.1712.09665.

Bühlmann, Peter, and Torsten Hothorn. 2007. "Boosting Algorithms: Regularization, Prediction and Model Fitting." Statistical Science 22 (4): 477–505. https://doi.org/10.1214/07-STS242.

Caruana, Rich, Yin Lou, Johannes Gehrke, Paul Koch, Marc Sturm, and Noemie Elhadad. 2015. "Intelligible Models for HealthCare: Predicting Pneumonia Risk and Hospital 30-Day Readmission." In Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 1721–30. KDD '15. New York, NY, USA: Association for Computing Machinery. https://doi.org/10.1145/2783258.2788613.

Chen, Zhi, Yijie Bei, and Cynthia Rudin. 2020. "Concept Whitening for Interpretable Image Recognition." Nature Machine Intelligence 2 (12): 772–82. https://doi.org/10.1038/s42256-020-00265-z.

Cohen, William W. 1995. "Fast Effective Rule Induction." In Machine Learning Proceedings 1995, edited by Armand Prieditis and Stuart Russell, 115–23. San Francisco (CA): Morgan Kaufmann. https://doi.org/10.1016/B978-1-55860-377-6.50023-2.

Cook, R. Dennis. 1977. "Detection of Influential Observation in Linear Regression." Technometrics 19 (1): 15–18. https://doi.org/10.1080/00401706.1977.10489493.

Dandl, Susanne, Christoph Molnar, Martin Binder, and Bernd Bischl. 2020. "Multi-Objective Counterfactual Explanations." In Parallel Problem Solving from Nature – PPSN XVI, edited by Thomas Bäck, Mike Preuss, André Deutz, Hao Wang, Carola Doerr, Michael Emmerich, and Heike Trautmann, 448–69. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-030-58112-1_31.

Deb, K., A. Pratap, S. Agarwal, and T. Meyarivan. 2002. "A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II." IEEE Transactions on Evolutionary Computation 6 (2): 182–97. https://doi.org/10.1109/4235.996017.

DeLMA, and Will Cukierski. 2013. "The ICML 2013 Whale Challenge - Right Whale Redux." https://kaggle.com/competitions/the-icml-2013-whale-challenge-right-whale-redux.

Deng, Jia, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Li Fei-Fei. 2009. "ImageNet: A Large-Scale Hierarchical Image Database." In 2009 IEEE Conference on Computer Vision and Pattern Recognition, 248–55. https://doi.org/10.1109/CVPR.2009.5206848.

Doshi-Velez, Finale, and Been Kim. 2017. "Towards a Rigorous Science of Interpretable Machine Learning." arXiv Preprint arXiv:1702.08608.

Fanaee-T, Hadi, and Joao Gama. 2014. "Event Labeling Combining Ensemble Detectors and Background Knowledge." Progress in Artificial Intelligence 2 (2): 113–27. https://doi.org/10.1007/s13748-013-0040-3.

Feinerer, Ingo, and Kurt Hornik. 2024. tm: Text Mining Package. https://CRAN.R-project.org/package=tm.

Feinerer, Ingo, Kurt Hornik, and David Meyer. 2008. "Text Mining Infrastructure in r." Journal of Statistical Software 25 (5): 1–54. https://doi.org/10.18637/jss.v025.i05.

Fisher, Aaron, Cynthia Rudin, and Francesca Dominici. 2019. "All Models Are Wrong, but Many Are Useful: Learning a Variable's Importance by Studying an Entire Class of Prediction Models Simultaneously." Journal of Machine Learning Research : JMLR 20: 177. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8323609/.

Flora, Montgomery, Corey Potvin, Amy McGovern, and Shawn Handler. 2022. "Comparing Explanation Methods for Traditional Machine Learning Models Part 1: An Overview of Current Methods and Quantifying Their Disagreement." arXiv. http://arxiv.org/abs/2211.08943.

Fokkema, Marjolein. 2020a. "Fitting Prediction Rule Ensembles with r Package Pre." Journal of Statistical Software 92: 1–30.

———. 2020b. "Fitting Prediction Rule Ensembles with R Package pre." Journal of Statistical Software 92 (12): 1–30. https://doi.org/10.18637/jss.v092.i12.

Freedman, David, and Persi Diaconis. 1981. "On the Histogram as a Density Estimator:L2 Theory." Zeitschrift für Wahrscheinlichkeitstheorie Und Verwandte Gebiete 57 (4): 453–76. https://doi.org/10.1007/BF01025868.

Freiesleben, Timo, Gunnar König, Christoph Molnar, and Álvaro Tejero-Cantero. 2024. "Scientific Inference with Interpretable Machine Learning: Analyzing Models to Learn About Real-World Phenomena." Minds and Machines 34 (3): 32. https://doi.org/10.1007/s11023-024-09691-z.

Friedman, Jerome H. 2001. "Greedy Function Approximation: A Gradient Boosting Machine." The Annals of Statistics 29 (5): 1189–1232. https://doi.org/10.1214/aos/1013203451.

Friedman, Jerome H., and Bogdan E. Popescu. 2008. "Predictive Learning via Rule Ensembles." The Annals of Applied Statistics 2 (3): 916–54. https://www.jstor.org/stable/30245114.

Friedman, Jerome, Robert Tibshirani, and Trevor Hastie. 2010. "Regularization Paths for Generalized Linear Models via Coordinate Descent." Journal of Statistical Software 33 (1): 1–22. https://doi.org/10.18637/jss.v033.i01.

Fürnkranz, Johannes, Dragan Gamberger, and Nada Lavrač. 2012. Foundations of Rule Learning. Cognitive Technologies. Berlin, Heidelberg: Springer. https://doi.org/10.1007/978-3-540-75197-7.

Garnier, Simon, Ross, Noam, Rudis, Robert, Camargo, et al. 2024. viridis(Lite) - Colorblind-Friendly Color Maps for r. https://doi.org/10.5281/zenodo.4679423.

Gauss, Carl Friedrich. 1877. Theoria Motus Corporum Coelestium in Sectionibus Conicis Solem Ambientium. Vol. 7. FA Perthes.

Ghorbani, Amirata, Abubakar Abid, and James Zou. 2019. "Interpretation of Neural Networks Is Fragile." Proceedings of the AAAI Conference on Artificial Intelligence 33 (01): 3681–88. https://doi.org/10.1609/aaai.v33i01.33013681.

Ghorbani, Amirata, James Wexler, James Zou, and Been Kim. 2019. "Towards Automatic Concept-Based Explanations." In Proceedings of the 33rd International Conference on Neural Information Processing Systems, 32:9277–86. 832. Red Hook, NY, USA: Curran Associates Inc.

Gkolemis, Vasilis, Theodore Dalamagas, Eirini Ntoutsi, and Christos Diou. 2023. "RHALE: Robust and Heterogeneity-Aware Accumulated Local Effects." In ECAI 2023, 859–66. IOS Press.

———. n.d. "Fast and Accurate Regional Effect Plots for Automated Tabular Data Analysis." Proceedings of the VLDB Endowment. ISSN 2150: 8097.

Goldstein, Alex, Adam Kapelner, Justin Bleich, and Emil Pitkin. 2015. "Peeking Inside the Black Box: Visualizing Statistical Learning With Plots of Individual Conditional Expectation." Journal of Computational and Graphical Statistics 24 (1): 44–65. https://doi.org/10.1080/10618600.2014.907095.

Goodfellow, Ian J., Jonathon Shlens, and Christian Szegedy. 2015. "Explaining and Harnessing Adversarial Examples." arXiv. https://doi.org/10.48550/arXiv.1412.6572.

Gorman, Kristen B., Tony D. Williams, and William R. Fraser. 2014. "Ecological Sexual Dimorphism and Environmental Variability Within a Community of Antarctic Penguins (Genus Pygoscelis)." PloS One 9 (3): e90081. https://doi.org/10.1371/journal.pone.0090081.

Greenwell, Brandon M., Bradley C. Boehmke, and Andrew J. McCarthy. 2018. "A Simple and Effective Model-Based Variable Importance Measure." arXiv. https://doi.org/10.48550/arXiv.1805.04755.

Grömping, Ulrike. 2020. "Model-Agnostic Effects Plots for Interpreting Machine Learning Models." Reports in Mathematics, Physics and Chemistry, Department II, Beuth University of Applied Sciences Berlin Report 1: 2020.

Hamner, Ben, and Michael Frasco. 2018. Metrics: Evaluation Metrics for Machine Learning. https://CRAN.R-project.org/package=Metrics.

Hastie, Trevor. 2009. "The Elements of Statistical Learning: Data Mining, Inference, and Prediction." Springer. https://hastie.su.domains/ElemStatLearn/.

Heider, Fritz, and Marianne Simmel. 1944. "An Experimental Study of Apparent Behavior." The American Journal of Psychology 57 (2): 243–59. https://doi.org/10.2307/1416950.

Herbinger, Julia, Bernd Bischl, and Giuseppe Casalicchio. 2022. "REPID: Regional Effect Plots with Implicit Interaction Detection." In International Conference on Artificial Intelligence and Statistics, 10209–33. PMLR.

Herbinger, Julia, Marvin N Wright, Thomas Nagler, Bernd Bischl, and Giuseppe Casalicchio. 2024. "Decomposing Global Feature Effects Based on Feature Interactions." Journal of Machine Learning Research 25 (381): 1–65.

Holte, Robert C. 1993. "Very Simple Classification Rules Perform Well on Most Commonly Used Datasets." Machine Learning 11 (1): 63–90. https://doi.org/10.1023/A:1022631118932.

Hooker, Giles. 2004. "Discovering Additive Structure in Black Box Functions." In Proceedings of the Tenth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 575–80.

———. 2007. "Generalized Functional ANOVA Diagnostics for High-Dimensional Functions of Dependent Variables." Journal of Computational and Graphical Statistics 16 (3): 709–32. https://doi.org/10.1198/106186007X237892.

Hornik, Kurt, Christian Buchta, and Achim Zeileis. 2009. "Open-Source Machine Learning: R Meets Weka." Computational Statistics 24 (2): 225–32. https://doi.org/10.1007/s00180-008-0119-7.

Horst, Allison Marie, Alison Presmanes Hill, and Kristen B Gorman. 2020. palmerpenguins: Palmer Archipelago (Antarctica) Penguin Data. https://doi.org/10.5281/zenodo.3960218.

Horst, Allison M., Alison Presmanes Hill, and Kristen B. Gorman. 2020. "Allisonhorst/Palmerpenguins: V0.1.0." Zenodo. https://doi.org/10.5281/zenodo.3960218.

Hothorn, Torsten, Kurt Hornik, and Achim Zeileis. 2006. "Unbiased Recursive Partitioning: A Conditional Inference Framework." Journal of Computational and Graphical Statistics 15 (3): 651–74. https://doi.org/10.1198/106186006X133933.

Hothorn, Torsten, and Achim Zeileis. 2015. "partykit: A Modular Toolkit for Recursive Partytioning in R." Journal of Machine Learning Research 16: 3905–9. https://jmlr.org/papers/v16/hothorn15a.html.

Inglis, Alan, Andrew Parnell, and Catherine B. Hurley. 2022. "Visualizing Variable Importance and Variable Interaction Effects in Machine Learning Models." Journal of Computational and Graphical Statistics 31 (3): 766–78. https://doi.org/10.1080/10618600.2021.2007935.

Janzing, Dominik, Lenon Minorics, and Patrick Blöbaum. 2020. "Feature Relevance Quantification in Explainable AI: A Causal Problem." In International Conference on Artificial Intelligence and Statistics, 2907–16. PMLR.

Kahneman, Daniel, and Amos Tversky. 1982. "The Simulation Heuristic." In Judgment Under Uncertainty: Heuristics and Biases, edited by Amos Tversky, Daniel Kahneman, and Paul Slovic, 201–8. Cambridge: Cambridge University Press. https://doi.org/10.1017/CBO9780511809477.015.

Karimi, Amir-Hossein, Gilles Barthe, Borja Balle, and Isabel Valera. 2020. "Model-Agnostic Counterfactual Explanations for Consequential Decisions." In Proceedings of the Twenty Third International Conference on Artificial Intelligence and Statistics, 895–905. PMLR. https://proceedings.mlr.press/v108/karimi20a.html.

Karpathy, Andrej, Justin Johnson, and Li Fei-Fei. 2015. "Visualizing and Understanding Recurrent Networks." arXiv. https://doi.org/10.48550/arXiv.1506.02078.

Kaufmann, Emilie, and Shivaram Kalyanakrishnan. 2013. "Information Complexity in Bandit Subset Selection." In Proceedings of the 26th Annual Conference on Learning Theory, 228–51. PMLR. https://proceedings.mlr.press/v30/Kaufmann13.html.

Kim, Been, Rajiv Khanna, and Oluwasanmi Koyejo. 2016. "Examples Are Not Enough, Learn to Criticize! Criticism for Interpretability." In Proceedings of the 30th International Conference on Neural Information Processing Systems, 2288–96. NIPS'16. Red Hook, NY, USA: Curran Associates Inc.

Kim, Been, Martin Wattenberg, Justin Gilmer, Carrie Cai, James Wexler, Fernanda Viegas, and Rory Sayres. 2018. "Interpretability Beyond Feature Attribution: Quantitative Testing with Concept Activation Vectors (TCAV)." In Proceedings of the 35th International Conference on Machine Learning, 2668–77. PMLR. https://proceedings.mlr.press/v80/kim18d.html.

Kindermans, Pieter-Jan, Sara Hooker, Julius Adebayo, Maximilian Alber, Kristof T. Schütt, Sven Dähne, Dumitru Erhan, and Been Kim. 2019. "The (Un)reliability of Saliency Methods." In Explainable AI: Interpreting, Explaining and Visualizing Deep Learning, edited by Wojciech Samek, Grégoire Montavon, Andrea Vedaldi, Lars Kai Hansen, and Klaus-Robert Müller, 267–80. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-030-28954-6_14.

Koh, Pang Wei, Kai-Siang Ang, Hubert H. K. Teo, and Percy Liang. 2019. "On the Accuracy of Influence Functions for Measuring Group Effects." In Proceedings of the 33rd International Conference on Neural Information Processing Systems, 32:5254–64. 472. Red Hook, NY, USA: Curran Associates Inc.

Koh, Pang Wei, and Percy Liang. 2017. "Understanding Black-Box Predictions via Influence Functions." In Proceedings of the 34th International Conference on Machine Learning - Volume 70, 1885–94. ICML'17. Sydney, NSW, Australia: JMLR.org.

Koh, Pang Wei, Thao Nguyen, Yew Siang Tang, Stephen Mussmann, Emma Pierson, Been Kim, and Percy Liang. 2020. "Concept Bottleneck Models." In Proceedings of the 37th International Conference on Machine Learning, 5338–48. PMLR. https://proceedings.mlr.press/v119/koh20a.html.

Kuhn, and Max. 2008. "Building Predictive Models in r Using the Caret Package." Journal of Statistical Software 28 (5): 1–26. https://doi.org/10.18637/jss.v028.i05.

Kuźba, Michał, Ewa Baranowska, and Przemysław Biecek. 2019. "pyCeterisParibus: Explaining Machine Learning Models with Ceteris Paribus Profiles in Python." Journal of Open Source Software 4 (37): 1389. https://doi.org/10.21105/joss.01389.

Lapuschkin, Sebastian, Stephan Wäldchen, Alexander Binder, Grégoire Montavon, Wojciech Samek, and Klaus-Robert Müller. 2019. "Unmasking Clever Hans Predictors and Assessing What Machines Really Learn." Nature Communications 10 (1): 1096. https://doi.org/10.1038/s41467-019-08987-4.

Laugel, Thibault, Marie-Jeanne Lesot, Christophe Marsala, Xavier Renard, and Marcin Detyniecki. 2017. "Inverse Classification for Comparison-based Interpretability in Machine Learning." arXiv. https://doi.org/10.48550/arXiv.1712.08443.

Legendre, Adrien Marie. 1806. Nouvelles méthodes Pour La détermination Des Orbites Des Comètes: Avec Un Supplément Contenant Divers Perfectionnemens de Ces méthodes Et Leur Application Aux Deux Comètes de 1805. Courcier.

Lei, Jing, Max G'Sell, Alessandro Rinaldo, Ryan J. Tibshirani, and Larry Wasserman. 2018. "Distribution-Free Predictive Inference for Regression." Journal of the American Statistical Association 113 (523): 1094–1111. https://doi.org/10.1080/01621459.2017.1307116.

Letham, Benjamin, Cynthia Rudin, Tyler H. McCormick, and David Madigan. 2015. "Interpretable Classifiers Using Rules and Bayesian Analysis: Building a Better Stroke Prediction Model." The Annals of Applied Statistics 9 (3): 1350–71. https://doi.org/10.1214/15-AOAS848.

Liaw, Andy, and Matthew Wiener. 2002. "Classification and Regression by randomForest." R News 2 (3): 18–22. https://CRAN.R-project.org/doc/Rnews/.

Lipton, Peter. 1990. "Contrastive Explanation." Royal Institute of Philosophy Supplements 27 (March): 247–66. https://doi.org/10.1017/S1358246100005130.

Long, Jacob A. 2024. interactions: Comprehensive, User-Friendly Toolkit for Probing Interactions. https://doi.org/10.32614/CRAN.package.interactions.

Lundberg, Scott M., Gabriel G. Erion, and Su-In Lee. 2019. "Consistent Individualized Feature Attribution for Tree Ensembles." arXiv. https://doi.org/10.48550/arXiv.1802.03888.

Lundberg, Scott M., and Su-In Lee. 2017. "A Unified Approach to Interpreting Model Predictions." In Proceedings of the 31st International Conference on Neural Information Processing Systems, 4768–77. NIPS'17. Red Hook, NY, USA: Curran Associates Inc.

Ma, Chiyu, Jon Donnelly, Wenjun Liu, Soroush Vosoughi, Cynthia Rudin, and Chaofan Chen. 2024. "Interpretable Image Classification with Adaptive Prototype-based Vision Transformers." arXiv. http://arxiv.org/abs/2410.20722.

Mahmoudi, Amin, and Dariusz Jemielniak. 2024. "Proof of Biased Behavior of Normalized Mutual Information." Scientific Reports 14 (1): 9021. https://doi.org/10.1038/s41598-024-59073-9.

Merriam-Webster. 2017. "Definition of Algorithm." https://www.merriam-webster.com/dictionary/algorithm.

Meschiari, Stefano. 2022. Latex2exp: Use LaTeX Expressions in Plots. https://CRAN.R-project.org/package=latex2exp.

Meyer, David, Evgenia Dimitriadou, Kurt Hornik, Andreas Weingessel, and Friedrich Leisch. 2024. E1071: Misc Functions of the Department of Statistics, Probability Theory Group (Formerly: E1071), TU Wien. https://CRAN.R-project.org/package=e1071.

Meyer, Patrick E. 2022. infotheo: Information-Theoretic Measures. https://CRAN.R-project.org/package=infotheo.

Miller, Tim. 2019. "Explanation in Artificial Intelligence: Insights from the Social Sciences." Artificial Intelligence 267 (February): 1–38. https://doi.org/10.1016/j.artint.2018.07.007.

Mitchell, Rory, Joshua Cooper, Eibe Frank, and Geoffrey Holmes. 2022. "Sampling Permutations for Shapley Value Estimation." Journal of Machine Learning Research 23 (43): 1–46. http://jmlr.org/papers/v23/21-0439.html.

Molnar, Christoph, Bernd Bischl, and Giuseppe Casalicchio. 2018. "iml: An r Package for Interpretable Machine Learning." JOSS 3 (26): 786. https://doi.org/10.21105/joss.00786.

Molnar, Christoph, Giuseppe Casalicchio, and Bernd Bischl. 2018. "Iml: An R Package for Interpretable Machine Learning." Journal of Open Source Software 3 (26): 786. https://doi.org/10.21105/joss.00786.

———. 2020a. "Interpretable Machine Learning – A Brief History, State-of-the-Art and Challenges." In ECML PKDD 2020 Workshops, edited by Irena Koprinska, Michael Kamp, Annalisa Appice, Corrado Loglisci, Luiza Antonie, Albrecht Zimmermann, Riccardo Guidotti, et al., 417–31. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-030-65965-3_28.

———. 2020b. "Quantifying Model Complexity via Functional Decomposition for Better Post-hoc Interpretability." In Machine Learning and Knowledge Discovery in Databases, edited by Peggy Cellier and Kurt Driessens, 193–204. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-030-43823-4_17.

Molnar, Christoph, Timo Freiesleben, Gunnar König, Julia Herbinger, Tim Reisinger, Giuseppe Casalicchio, Marvin N. Wright, and Bernd Bischl. 2023. "Relating the Partial Dependence Plot and Permutation Feature Importance to the Data Generating Process." In Explainable Artificial Intelligence, edited by Luca Longo, 456–79. Communications in Computer and Information Science. Cham: Springer Nature Switzerland. https://doi.org/10.1007/978-3-031-44064-9_24.

Molnar, Christoph, Gunnar König, Bernd Bischl, and Giuseppe Casalicchio. 2023. "Model-Agnostic Feature Importance and Effects with Dependent Features – A Conditional Subgroup Approach." Data Mining and Knowledge Discovery, January. https://doi.org/10.1007/s10618-022-00901-9.

Mothilal, Ramaravind K., Amit Sharma, and Chenhao Tan. 2020. "Explaining Machine Learning Classifiers Through Diverse Counterfactual Explanations." In Proceedings of the 2020 Conference on Fairness, Accountability, and Transparency, 607–17. FAT* '20. New York, NY, USA: Association for Computing Machinery. https://doi.org/10.1145/3351095.3372850.

Murdoch, W. James, Chandan Singh, Karl Kumbier, Reza Abbasi-Asl, and Bin Yu. 2019. "Definitions, Methods, and Applications in Interpretable Machine Learning." Proceedings of the National Academy of Sciences 116 (44): 22071–80. https://doi.org/10.1073/pnas.1900654116.

Muschalik, Maximilian, Hubert Baniecki, Fabian Fumagalli, Patrick Kolpaczki, Barbara Hammer, and Eyke Hüllermeier. 2024. "Shapiq: Shapley Interactions for Machine Learning." arXiv. https://doi.org/10.48550/arXiv.2410.01649.

Nguyen, Anh, Jeff Clune, Yoshua Bengio, Alexey Dosovitskiy, and Jason Yosinski. 2017. "Plug & Play Generative Networks: Conditional Iterative Generation of Images in Latent Space." In 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 3510–20. IEEE Computer Society. https://doi.org/10.1109/CVPR.2017.374.

Nguyen, Anh, Alexey Dosovitskiy, Jason Yosinski, Thomas Brox, and Jeff Clune. 2016. "Synthesizing the Preferred Inputs for Neurons in Neural Networks via Deep Generator Networks." In Proceedings of the 30th International Conference on Neural Information Processing Systems, 3395–3403. NIPS'16. Red Hook, NY, USA: Curran Associates Inc.

Nicholas L. Crookston, and Andrew O. Finley. 2007. "yaImpute: An r Package for kNN Imputation." Journal of Statistical Software 23 (10). https://doi.org/10.18637/jss.v023.i10.

Nickerson, Raymond S. 1998. "Confirmation Bias: A Ubiquitous Phenomenon in Many Guises." https://doi.org/https://journals.sagepub.com/doi/10.1037/1089-2680.2.2.175.

Olah, Chris, Alexander Mordvintsev, and Ludwig Schubert. 2017. "Feature Visualization." Distill. https://doi.org/10.23915/distill.00007.

Olah, Chris, Arvind Satyanarayan, Ian Johnson, Shan Carter, Ludwig Schubert, Katherine Ye, and Alexander Mordvintsev. 2018. "The Building Blocks of Interpretability." Distill. https://doi.org/10.23915/distill.00010.

Papernot, Nicolas, Patrick McDaniel, Ian Goodfellow, Somesh Jha, Z. Berkay Celik, and Ananthram Swami. 2017. "Practical Black-Box Attacks Against Machine Learning." In Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security, 506–19. ASIA CCS '17. New York, NY, USA: Association for Computing Machinery. https://doi.org/10.1145/3052973.3053009.

Pedersen, Thomas Lin. 2024. patchwork: The Composer of Plots. https://CRAN.R-project.org/package=patchwork.

R Core Team. 2024a. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.

———. 2024b. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.

Rdusseeun, LKPJ, and P Kaufman. 1987. "Clustering by Means of Medoids." In Proceedings of the Statistical Data Analysis Based on the L1 Norm Conference, Neuchatel, Switzerland. Vol. 31.

Ribeiro, Marco Tulio, Sameer Singh, and Carlos Guestrin. 2016a. "Model-Agnostic Interpretability of Machine Learning." arXiv Preprint arXiv:1606.05386.

———. 2016b. ""Why Should I Trust You?": Explaining the Predictions of Any Classifier." In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 1135–44. KDD '16. New York, NY, USA: Association for Computing Machinery. https://doi.org/10.1145/2939672.2939778.

———. 2018. "Anchors: High-Precision Model-Agnostic Explanations." Proceedings of the AAAI Conference on Artificial Intelligence 32 (1). https://doi.org/10.1609/aaai.v32i1.11491.

Robnik-Šikonja, Marko, and Marko Bohanec. 2018. "Perturbation-Based Explanations of Prediction Models." In Human and Machine Learning: Visible, Explainable, Trustworthy and Transparent, edited by Jianlong Zhou and Fang Chen, 159–75. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-319-90403-0_9.

Roscher, Ribana, Bastian Bohn, Marco F. Duarte, and Jochen Garcke. 2020. "Explainable Machine Learning for Scientific Insights and Discoveries." IEEE Access 8: 42200–42216. https://doi.org/10.1109/ACCESS.2020.2976199.

Rudin, Cynthia. 2019. "Stop Explaining Black Box Machine Learning Models for High Stakes Decisions and Use Interpretable Models Instead." Nature Machine Intelligence 1 (5): 206–15. https://doi.org/10.1038/s42256-019-0048-x.

Schloerke, Barret, Di Cook, Joseph Larmarange, Francois Briatte, Moritz Marbach, Edwin Thoen, Amos Elberg, and Jason Crowley. 2024. GGally: Extension to "ggplot2". https://CRAN.R-project.org/package=GGally.

Schmidhuber, Jürgen. 2015. "Deep Learning in Neural Networks: An Overview." Neural Networks 61 (January): 85–117. https://doi.org/10.1016/j.neunet.2014.09.003.

Scholbeck, Christian A., Christoph Molnar, Christian Heumann, Bernd Bischl, and Giuseppe Casalicchio. 2020. "Sampling, Intervention, Prediction, Aggregation: A Generalized Framework for Model-Agnostic Interpretations." In Machine Learning and Knowledge Discovery in Databases, edited by Peggy Cellier and Kurt Driessens, 205–16. Communications in Computer and Information Science. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-030-43823-4_18.

Selvaraju, Ramprasaath R., Michael Cogswell, Abhishek Das, Ramakrishna Vedantam, Devi Parikh, and Dhruv Batra. 2017. "Grad-CAM: Visual Explanations from Deep Networks via Gradient-Based Localization." In 2017 IEEE International Conference on Computer Vision (ICCV), 618–26. https://doi.org/10.1109/ICCV.2017.74.

Shapley, Lloyd S. 1953. "A Value for n-Person Games." Contribution to the Theory of Games 2.

Shrikumar, Avanti, Peyton Greenside, and Anshul Kundaje. 2017. "Learning Important Features Through Propagating Activation Differences." In Proceedings of the 34th International Conference on Machine Learning - Volume 70, 3145–53. ICML'17. Sydney, NSW, Australia: JMLR.org.

Simon, Noah, Jerome Friedman, Robert Tibshirani, and Trevor Hastie. 2011. "Regularization Paths for Cox's Proportional Hazards Model via Coordinate Descent." Journal of Statistical Software 39 (5): 1–13. https://doi.org/10.18637/jss.v039.i05.

Simonyan, Karen, Andrea Vedaldi, and Andrew Zisserman. 2014. "Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps." arXiv. https://doi.org/10.48550/arXiv.1312.6034.

Simonyan, Karen, and Andrew Zisserman. 2015. "Very Deep Convolutional Networks for Large-Scale Image Recognition." arXiv. https://doi.org/10.48550/arXiv.1409.1556.

Slack, Dylan, Sophie Hilgard, Emily Jia, Sameer Singh, and Himabindu Lakkaraju. 2020. "Fooling LIME and SHAP: Adversarial Attacks on Post Hoc Explanation Methods." In Proceedings of the AAAI/ACM Conference on AI, Ethics, and Society, 180–86. AIES '20. New York, NY, USA: Association for Computing Machinery. https://doi.org/10.1145/3375627.3375830.

Smilkov, Daniel, Nikhil Thorat, Been Kim, Fernanda Viégas, and Martin Wattenberg. 2017. "SmoothGrad: Removing Noise by Adding Noise." arXiv. https://doi.org/10.48550/arXiv.1706.03825.

Staniak, Mateusz, and Przemyslaw Biecek. 2018. "Explanations of Model Predictions with Live and breakDown Packages." arXiv. https://doi.org/10.48550/arXiv.1804.01955.

Strobl, Carolin, Anne-Laure Boulesteix, Thomas Kneib, Thomas Augustin, and Achim Zeileis. 2008. "Conditional Variable Importance for Random Forests." BMC Bioinformatics 9 (1): 307. https://doi.org/10.1186/1471-2105-9-307.

Štrumbelj, Erik, and Igor Kononenko. 2011. "A General Method for Visualizing and Explaining Black-Box Regression Models." In Adaptive and Natural Computing Algorithms, edited by Andrej Dobnikar, Uroš Lotrič, and Branko Šter, 21–30. Berlin, Heidelberg: Springer. https://doi.org/10.1007/978-3-642-20267-4_3.

———. 2014. "Explaining Prediction Models and Individual Predictions with Feature Contributions." Knowledge and Information Systems 41 (3): 647–65. https://doi.org/10.1007/s10115-013-0679-x.

Su, Jiawei, Danilo Vasconcellos Vargas, and Kouichi Sakurai. 2019. "One Pixel Attack for Fooling Deep Neural Networks." IEEE Transactions on Evolutionary Computation 23 (5): 828–41. https://doi.org/10.1109/TEVC.2019.2890858.

Sudjianto, Agus, Aijun Zhang, Zebin Yang, Yu Su, and Ningzhou Zeng. 2023. "PiML Toolbox for Interpretable Machine Learning Model Development and Diagnostics." arXiv Preprint arXiv:2305.04214.

Sundararajan, Mukund, and Amir Najmi. 2020. "The Many Shapley Values for Model Explanation." In Proceedings of the 37th International Conference on Machine Learning, 9269–78. PMLR. https://proceedings.mlr.press/v119/sundararajan20b.html.

Sundararajan, Mukund, Ankur Taly, and Qiqi Yan. 2017. "Axiomatic Attribution for Deep Networks." In Proceedings of the 34th International Conference on Machine Learning - Volume 70, 3319–28. ICML'17. Sydney, NSW, Australia: JMLR.org.

Szegedy, Christian, Vincent Vanhoucke, Sergey Ioffe, Jon Shlens, and Zbigniew Wojna. 2016. "Rethinking the Inception Architecture for Computer Vision." In 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2818–26. https://doi.org/10.1109/CVPR.2016.308.

Szegedy, Christian, Wojciech Zaremba, Ilya Sutskever, Joan Bruna, Dumitru Erhan, Ian Goodfellow, and Rob Fergus. 2014. "Intriguing Properties of Neural Networks." arXiv. https://doi.org/10.48550/arXiv.1312.6199.

Tay, J. Kenneth, Balasubramanian Narasimhan, and Trevor Hastie. 2023. "Elastic Net Regularization Paths for All Generalized Linear Models." Journal of Statistical Software 106 (1): 1–31. https://doi.org/10.18637/jss.v106.i01.

Therneau, Terry, and Beth Atkinson. 2023. rpart: Recursive Partitioning and Regression Trees. https://CRAN.R-project.org/package=rpart.

Tomsett, Richard, Dave Braines, Dan Harborne, Alun Preece, and Supriyo Chakraborty. 2018. "Interpretable to Whom? A Role-based Model for Analyzing Interpretable Machine Learning Systems." arXiv. https://doi.org/10.48550/arXiv.1806.07552.

Tomsett, Richard, Dan Harborne, Supriyo Chakraborty, Prudhvi Gurram, and Alun Preece. 2020. "Sanity Checks for Saliency Metrics." Proceedings of the AAAI Conference on Artificial Intelligence 34 (04): 6021–29. https://doi.org/10.1609/aaai.v34i04.6064.

Tufte, Edward R, and Peter R Graves-Morris. 1983. The Visual Display of Quantitative Information. Graphics press Cheshire, CT.

Urbanek, Simon. 2022. jpeg: Read and Write JPEG Images. https://CRAN.R-project.org/package=jpeg.

———. 2024. rJava: Low-Level r to Java Interface. https://CRAN.R-project.org/package=rJava.

Van Looveren, Arnaud, and Janis Klaise. 2021. "Interpretable Counterfactual Explanations Guided by Prototypes." In Machine Learning and Knowledge Discovery in Databases. Research Track, edited by Nuria Oliver, Fernando Pérez-Cruz, Stefan Kramer, Jesse Read, and Jose A. Lozano, 650–65. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-030-86520-7_40.

Van Noorden, Richard, and Jeffrey M. Perkel. 2023. "AI and Science: What 1,600 Researchers Think." Nature 621 (7980): 672–75. https://doi.org/10.1038/d41586-023-02980-0.

Venables, W. N., and B. D. Ripley. 2002. Modern Applied Statistics with s. Fourth. New York: Springer. https://www.stats.ox.ac.uk/pub/MASS4/.

von Jouanne-Diedrich, Holger. 2017. OneR: One Rule Machine Learning Classification Algorithm with Enhancements. https://CRAN.R-project.org/package=OneR.

Wachter, Sandra, Brent Mittelstadt, and Chris Russell. 2018. "Counterfactual Explanations Without Opening the Black Box: Automated Decisions and the GDPR." Harvard Journal of Law and Technology 31 (2): 841–87.

Watson, David S., and Marvin N. Wright. 2021. "Testing Conditional Independence in Supervised Learning Algorithms." Machine Learning 110 (8): 2107–29. https://doi.org/10.1007/s10994-021-06030-6.

Wei, Pengfei, Zhenzhou Lu, and Jingwen Song. 2015. "Variable Importance Analysis: A Comprehensive Review." Reliability Engineering & System Safety 142 (October): 399–432. https://doi.org/10.1016/j.ress.2015.05.018.

Wickham, Hadley. 2007. "Reshaping Data with the reshape Package." Journal of Statistical Software 21 (12): 1–20. http://www.jstatsoft.org/v21/i12/.

Wickham, Hadley, Mara Averick, Jennifer Bryan, Winston Chang, Lucy D'Agostino McGowan, Romain François, Garrett Grolemund, et al. 2019. "Welcome to the tidyverse." Journal of Open Source Software 4 (43): 1686. https://doi.org/10.21105/joss.01686.

Witten, Ian H., and Eibe Frank. 2005. Data Mining: Practical Machine Learning Tools and Techniques. 2nd ed. San Francisco: Morgan Kaufmann.

Wood, S. N. 2017. Generalized Additive Models: An Introduction with r. 2nd ed. Chapman; Hall/CRC.

Wood, S. N. 2003. "Thin-Plate Regression Splines." Journal of the Royal Statistical Society (B) 65 (1): 95–114.

———. 2004. "Stable and Efficient Multiple Smoothing Parameter Estimation for Generalized Additive Models." Journal of the American Statistical Association 99 (467): 673–86.

———. 2011. "Fast Stable Restricted Maximum Likelihood and Marginal Likelihood Estimation of Semiparametric Generalized Linear Models." Journal of the Royal Statistical Society (B) 73 (1): 3–36.

Wood, S. N., N., Pya, and B. S"afken. 2016. "Smoothing Parameter and Model Selection for General Smooth Models (with Discussion)." Journal of the American Statistical Association 111: 1548–75.

Wright, Marvin N., and Andreas Ziegler. 2017. "ranger: A Fast Implementation of Random Forests for High Dimensional Data in C++ and R." Journal of Statistical Software 77 (1): 1–17. https://doi.org/10.18637/jss.v077.i01.

Xie, Yihui. 2014. "knitr: A Comprehensive Tool for Reproducible Research in R." In Implementing Reproducible Computational Research, edited by Victoria Stodden, Friedrich Leisch, and Roger D. Peng. Chapman; Hall/CRC.

———. 2015. Dynamic Documents with R and Knitr. 2nd ed. Boca Raton, Florida: Chapman; Hall/CRC. https://yihui.org/knitr/.

———. 2024. knitr: A General-Purpose Package for Dynamic Report Generation in r. https://yihui.org/knitr/.

Xie, Yihui, J. J. Allaire, and Garrett Grolemund. 2018. R Markdown: The Definitive Guide. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown.

Xie, Yihui, Christophe Dervieux, and Emily Riederer. 2020. R Markdown Cookbook. Boca Raton, Florida: Chapman; Hall/CRC. https://bookdown.org/yihui/rmarkdown-cookbook.

Yang, Hongyu, Cynthia Rudin, and Margo Seltzer. 2016. sbrl: Scalable Bayesian Rule Lists Model. https://CRAN.R-project.org/package=sbrl.

———. 2017. "Scalable Bayesian Rule Lists." In International Conference on Machine Learning, 3921–30. PMLR.

Yang, Zebin, Agus Sudjianto, Xiaoming Li, and Aijun Zhang. 2024. "Inherently Interpretable Tree Ensemble Learning." arXiv. https://doi.org/10.48550/arXiv.2410.19098.

Zeileis, Achim, Torsten Hothorn, and Kurt Hornik. 2008. "Model-Based Recursive Partitioning." Journal of Computational and Graphical Statistics 17 (2): 492–514. https://doi.org/10.1198/106186008X319331.

Zeiler, Matthew D., and Rob Fergus. 2014. "Visualizing and Understanding Convolutional Networks." In Computer Vision – ECCV 2014, edited by David Fleet, Tomas Pajdla, Bernt Schiele, and Tinne Tuytelaars, 818–33. Cham: Springer International Publishing. https://doi.org/10.1007/978-3-319-10590-1_53.

Zhang, Zhou, Yufang Jin, Bin Chen, and Patrick Brown. 2019. "California Almond Yield Prediction at the Orchard Level With a Machine Learning Approach." Frontiers in Plant Science 10 (July): 809. https://doi.org/10.3389/fpls.2019.00809.

Zhao, Qingyuan, and Trevor Hastie. 2019. "CAUSAL INTERPRETATIONS OF BLACK-BOX MODELS." Journal of Business & Economic Statistics: A Publication of the American Statistical Association 2019. https://doi.org/10.1080/07350015.2019.1624293.

Zhu, Hao. 2024. kableExtra: Construct Complex Table with "kable" and Pipe Syntax. https://CRAN.R-project.org/package=kableExtra.