هوش مصنوعی برای تشخیص بیماری (بخش پنجم)

سه چالش عمده در دسته‌بندی کردن تصاویر پزشکی

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

چالش class imbalance

چالش class imbalance از آنجا پدید می‌آید که تعداد بیماران از تعداد افراد سالم به مراتب کمتر است و به همین خاطر تعداد تصاویری که از بیماران وجود دارد نسبت به کل تصاویر موجود بسیار کم است

این مساله باعث می‌شه که الگوریتم در هنگام آموزش تعداد تصویری که از بیماران می‌بینه کم باشه و به همین دلیل پیش‌بینی‌ای که برای وجود بیماری انجام می‌دهد خیلی کم باشه

برای درک بهتر این مشکل به سراغ تابع loss می‌رویم به مثال زیر توجه کنید

در اینجا یک تصویر از یک بیمار داریم که الگوریتم ما پیش‌بینی کرده به احتمال ۰.۲ یا به عبارت دیگه ۲۰ درصد بیماری در تصویر وجود دارد که اگر میزان خطای الگوریتم را با توجه به این نمونه‌ی خاص محاسبه کنیم می‌شه چیزی در حدود ۷۰ درصد خطا!!!!!

حالا تابع محاسبه‌ی خطا را برای یک فرد سالم اجرا می‌کنیم

این تصویر یک فرد سالم است که خروجی الگوریتم ما می‌گوید ۷۰ درصد احتمال وجود بیماری در تصویر هست. برای محاسبه‌ی خطای الگوریتم با توجه به اینکه این تصویر یک فرد سالم است به سراغ عبارت دوم میرویم و خطای الگوریتم را با توجه به عبارات موجود محاسبه می‌کنیم.

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

خوب ما استفاده از تابع محاسبه‌ی خطا را برای دو مثال دیدیم حال بهتر است آن را برای مجموعه‌ای از داده‌ها مورد بررسی قرار دهیم.

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

خوب که در این صورت اگه میزان خطای کل برای هر دسته را محاسبه کنیم داریم

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

تکنیک اول برای حل مشکل

برای حل این مشکل می‌توان تابع محاسبه‌ی خطا را تغییر کوچکی داد که داشته باشیم

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

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

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

به صورت کلی وزن هر دسته از فرمول زیر قابل محاسبه است

در فرمول‌های فوق negative متعلق به افراد سالم و positive متعلق به افراد بیمار است.

در بخش بعدی یک تکنیک دیگه برای رفع مشکل class imbalance مطرح خواهیم کرد.