هوش مصنوعی توضیح پذیر

**هوش مصنوعی توصیف‌پذیر** یا **هوش مصنوعی قابل توضیح** (Explainable Artificial Intelligence) و یا **یادگیری ماشین تفسیرپذیر** (Interpretable Machine Learning) تلاش می‌کند تا مراحل و تصمیم‌هایی که یک مدل یادگیری ماشین هنگام پیش‌بینی می‌گیرد را توضیح دهد که به کاربران انسانی اجازه می‌دهد تا نتایج و خروجی ایجاد شده توسط الگوریتم‌های یادگیری ماشین را درک کرده و به آن اعتماد کنند.

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

همان‌طور که هوش مصنوعی پیشرفته‌تر می‌شود، انسان‌ها برای درک نحوه به نتیجه رسیدن الگوریتم‌های یادگیری ماشین با چالش‌هایی مواجه می‌شوند. کل فرایند محاسبات به چیزی تبدیل می‌شود که معمولاً به آن **[[جعبه سیاه (سامانه)|جعبه سیاه]]** یا **Black box** می‌گویند و تفسیر آن غیرممکن است. این مدل‌های جعبه سیاه به‌طور مستقیم از داده‌ها ساخته می‌شوند و حتی مهندسان یا دانشمندان داده‌ای که الگوریتم را ساخته‌اند نمی‌توانند آن را درک کنند و توضیح دهند که دقیقاً درون آن چه اتفاقی می‌افتد یا چگونه الگوریتم هوش مصنوعی به یک نتیجه خاص می‌رسد. درک این‌که چگونه یک سیستم مجهز به هوش مصنوعی به یک خروجی خاص منجر شده‌است، مزایای زیادی دارد، توضیح‌پذیری می‌تواند به توسعه‌دهندگان کمک کند تا مطمئن شوند که سیستم همان‌طور که انتظار می‌رود کار می‌کند.

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

### کاربرد هوش مصنوعی توصیف‌پذیر در [[تصویربرداری پزشکی|تحلیل تصاویر پزشکی]]
برای این‌که انسان‌ها بتوانند مدل‌های هوش مصنوعی را بپذیرند، باید به آنها اعتماد کنند. تفسیرپذیر بودن مدل‌ها به ویژه در پزشکی و به‌ویژه در سیستم‌های پشتیبانی تصمیم‌گیری بالینی، که در آن متخصصان پزشکی باید قادر به درک چگونگی و چرایی تصمیم‌گیری مبتنی بر ماشین باشند، بسیار مهم است.
استفاده از هوش مصنوعی توصیف‌پذیر (به اختصار **XAI**) در پردازش تصاویر پزشکی به چند دلیل اهمیت زیادی دارد:
* **افزایش اعتماد و پذیرش مدل‌های هوش مصنوعی:**
پردازش تصویر پزشکی نقش مهمی در تصمیم‌گیری و تشخیص بیماری و برنامه‌ریزی درمانی ایفا می‌کند، با به‌کارگیری تکنیک‌های XAI، پزشکان می‌توانند نتایج حاصل از الگوریتم‌های هوش مصنوعی را بهتر درک کنند؛ که این شفافیت و قابل درک بودن، اعتماد و پذیرش سیستم‌های پردازش تصویر پزشکی مبتنی بر هوش مصنوعی را در میان پزشکان افزایش می‌دهد.
* **کمک به تشخیص پزشکان و سرعت در تصمیم‌گیری و تشخیص بیماری:**
با درک دلایل اساسی و عوامل در نظر گرفته شده توسط سیستم هوش مصنوعی، پزشکان می‌توانند تصمیمات آگاهانه‌تر و سریع‌تری نیز بگیرند و از مدل‌های هوش مصنوعی به عنوان یک ابزار 
تصمیم‌گیری بالینی استفاده کنند.
* **شناسایی خطا در تصمیم‌گیری و تشخیص بیماری توسط مدل‌های هوش مصنوعی:**
روش‌های XAI به شناسایی و تشخیص خطاها یا سوگیری‌ها در الگوریتم‌های هوش مصنوعی مورد استفاده برای پردازش تصویر پزشکی کمک می‌کنند. برای مثال، سوگیری‌های مجموعه داده، تفاوت‌های اهمیت ویژگی یا محدودیت‌های عملکرد الگوریتم را شناسایی می‌کنند که این امر، امکان بهبود و اصلاح مداوم مدل‌های هوش مصنوعی را فراهم می‌کند.

## برخی از روش‌های هوش مصنوعی توصیف‌پذیر یا XAI

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

**برای مثال:**
* Permutation Feature Importance - اهمیت ویژگی‌ جایگردی 
* SHAP (SHapley Additive exPlanations) - توضیحات افزودنی شپلی 
* LIME (Local Interpretable Model-agnostic Explanations) - توضیحات مدل قابل تفسیر محلی 
* (ICE (Individual Conditional Expectation - انتظارات شرطی منحصر به‌فرد 
* Shapley Value - مقادیر شپلی 

### روش‌های خاص مدل
روش‌های خاص مدل مختص یک نوع مدل یا گروهی از مدل‌ها هستند. این روش‌ها به کار و قابلیت‌های یک مدل خاص بستگی دارند.

**برای مثال:**
* Guided Backpropagation - پس‌انتشار هدایت‌ شده 
* Integrated Gradients - گرادیان‌های یکپارچه 
* (Grad-Cam) Gradient-weighted Class Activation Mapping - نگاشت فعال‌سازی کلاس با وزن گرادیان
* ++Grad-CAM - (نسخه‌ی دیگری از روش قبلی است که بر همان پایه بنا شده است.)
* Saliency Map - نقشه برجستگی 

#### توضیح روش (Grad-Cam) Gradient-weighted Class Activation Mapping - نگاشت فعال‌سازی کلاس با وزن گرادیان
هدف هوش مصنوعی توصیف‌پذیر این است که تصمیمات اتخاذ شده توسط مدل‌های یادگیری ماشین برای انسان قابل درک باشد. به‌طور خلاصه، Grad-CAM به ما کمک می‌کند تا بفهمیم کدام مناطق از تصویر ورودی بر پیش‌بینی‌های مدل تأثیر می‌گذارد، با این حال، Grad-CAM لزوماً عملکرد مدل را بهبود نمی‌بخشد یا پیش‌بینی‌های نادرست را اصلاح نمی‌کند.
پیش‌بینی‌های نادرست ممکن است به دلایل مختلفی مانند ویژگی‌های مشابه بین کلاس‌ها یا عدم مواجهه مدل با نمونه‌های خاص در طول آموزش اتفاق بیفتد. برای بهبود بیشتر عملکرد و پیش‌بینی مدل، می‌توان از تکنیک‌هایی مانند تنظیم دقیق، افزایش داده‌ها یا استفاده از معماری پیشرفته‌تر استفاده کرد.
در روش Grad-CAM نیازی به تغییر در معماری مدل نیست و می‌توان از آن برای طیف وسیعی از خانواده‌های مدل شبکه عصبی پیچشی (Convolutional Neural Network) اعمال شود. این روش به‌شدت بر پایهٔ ریاضیات بنا شده‌است، بنابراین برای درک عمیق‌تر روش Grad-Cam، بهتر است به این مقاله، که مقالهٔ اصلی این روش است، رجوع کنید.

##### گام‌های استفاده از این روش به‌صورت زیر می‌باشد

۱- **ورودی:**
با یک تصویر شروع کنید و پیش‌بینی خاصی را انتخاب کنید که می‌خواهید بفهمید. (به عنوان مثال، شناسایی یک گربه در تصویر).

۲- **اصلاح مدل:**
یک مدل شبکه عصبی پیچشی (CNN) از پیش آموزش‌دیده را انتخاب کنید و آن را در آخرین لایه پیچشی حذف کنید. لایه‌های کاملاً متصل را در بالای مدل اضافه کنید تا یک پیش‌بینی بر اساس ویژگی‌های استخراج شده توسط آخرین لایه ایجاد کنید.

۳- **مرحلهٔ انتشار رو به جلو:**
تصویر انتخاب شده را از مدل اصلاح شده عبور دهید تا خروجی‌های زیر را به‌دست آورید:
* **پیش‌بینی:** خروجی مدل، که احتمال پیش‌بینی انتخابی را نشان می‌دهد (به عنوان مثال، احتمال تصویر حاوی یک گربه).
* **[[تابع هزینه|هزینه]]:** تفاوت بین مقدار تخمین‌زده‌شده توسط مدل و مقدار واقعی را محاسبه کنید.
* **خروجی آخرین لایه:** خروجی آخرین لایه کانولوشن را که نمایان‌گر ویژگی‌های آموخته‌شده تصویر است را بازیابی کنید.
# **[[پس‌انتشار]]:** با استفاده از الگوریتم پس‌انتشار، گرادیان خروجی آخرین لایه را نسبت به هزینه محاسبه کنید. این گرادیان نشان می‌دهد که چگونه هر عنصر از خروجی لایه آخر به پیش‌بینی کلی کمک می‌کند.
# **بخش‌های گرادیان مرتبط:** بخش‌هایی از گرادیان را که تأثیر مستقیمی بر پیش‌بینی انتخابی دارند، شناسایی کنید. این بخش‌ها مهم‌ترین ویژگی‌های تصویر را که بر تصمیم مدل تأثیر گذاشته‌است برجسته می‌کنند. (به عنوان مثال، مناطقی که نمایان‌گر حضور یک گربه هستند).
# **تولید نقشه‌حرارتی:** بخش‌های شناسایی‌شده از گرادیان را برای مطابقت با ابعاد تصویر ورودی، کاهش، اندازه و تغییر مقیاس دهید. این فرایند تضمین می‌کند که نقشه‌حرارتی همان شکل تصویر اصلی را خواهد داشت. نقشه‌حرارتی به‌دست آمده، مهم‌ترین بخش‌های تصویر را که به پیش‌بینی انتخاب‌شده کمک کرده‌اند. (به عنوان مثال، مناطقی که گربه در آن قرار دارد یا قسمت‌هایی از بدن گربه) را به تصویر می‌کشد.

###### پیاده‌سازی با [[پایتون (زبان برنامه‌نویسی)|پایتون]]

```python
from pytorch_grad_cam import GradCAM
from pytorch_grad_cam.utils.model_targets import ClassifierOutputTarget
from pytorch_grad_cam.utils.image import show_cam_on_image
from torchvision.models import resnet50

model = resnet50(pretrained=True)
target_layers = [model.layer4[-1]] #گرفتن لایهٔ مد نظر
input_tensor = # تصویر گربه

cam = GradCAM(model=model, target_layers=target_layers, use_cuda=args.use_cuda)
targets = #
grayscale_cam = cam(input_tensor=input_tensor, targets=targets)

grayscale_cam = grayscale_cam[0, :]
visualization = show_cam_on_image(rgb_img, grayscale_cam, use_rgb=True)
```


## منابع

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