یه روش خیلی مطمئن و خفن برای شناسایی سرطان خون حاد با عکسای میکروسکوپی!

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

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

توی این تحقیق یه کاری که انجام دادن این بود که از یه مدل شبکه عصبی به اسم MobileNet استفاده کردن. MobileNet در واقع یه مدل سبک و جمع و جوره – یعنی نه حافظه زیادی می‌خواد و نه پردازش سنگینی داره. همین باعث میشه روی موبایل‌ها یا دستگاه‌های کوچیک (یعنی Embedded Systems) هم راحت اجرا بشه.

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

اونا چی کار کردن؟ اومدن چند تا کار با عکسا انجام دادن تا مدل دلش رو به یه سری نمونه خاص نبازه! مثلاً:

  • تبدیل تصویر به HSV (یعنی تصویر رو از مدل رنگی معمولی به مدل Hue, Saturation, Value تبدیل می‌کنن تا رنگ‌بندی عکس‌ها متفاوت شه)
  • حذف اشباع رنگ (یعنی یه جورایی صدای نویز رنگ رو کم می‌کنن)
  • اضافه کردن نویز گاوسی (Gaussian noise، که نویز تصادفیه و باعث میشه مدل به عکسای واقعی‌تر عادت کنه)
  • کلی روش دیگه به اسم Data Augmentation (یعنی یه عکس رو هزار جور متفاوت درست کنن که مدل همه‌فن‌حریف بار بیاد)

اینا همش باعث شد که مدلشون کلی قوی‌تر و باثبات‌تر بشه. مثلاً موقع آزمایش روی یه مجموعه خاص از عکسای عمومی (اسم دیتاستش CNMC2019 که همگانیه)، مدل به دقت (accuracy) ۹۵.۳۳٪ رسید که عالیه! F1 Score که یه معیار دیگه برای سنجش خوب بودن تشخیصر هست هم شد ۰.۹۵، یعنی مدلشون هم خوب درست میگه هم خوب غلط نگه! (F1 Score ترکیبیه از precision و recall — اگه دوست داشتی بگو توضیح بیشتر بدم!)

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

در نهایت اومدن نتایج مدل خودشونو (که اسمش رو MobileNet_M گذاشتن، همون MobileNet تغییریافته) با بقیه مدل‌ها مثل ALNet مقایسه کردن. نتیجه چی شد؟ مدل خودشون کارایی بالاتری نشون داد و از رقبا بهتر بود.

سورپرایز آخر: اگه دلت بخواد کل کدها رو ببینی و خودت تست کنی، همه‌چیز رو اینجا گذاشتن: https://tamaslevente.github.io/ALLM/ پس اگه دانشجوی کامپیوتر بودی یا یکم اهل کدنویسی، برو حالش رو ببر!

به طور خلاصه:

  • تشخیص لوکمی خیلی مهمه اما سنتی‌هاش زمان‌بره.
  • مدل هوشمندِ سبک و جمع‌وجور می‌تونه رو موبایل هم اجرا شه.
  • با کلی تکنیک تصویری خفن جلوی overfitting رو گرفتن.
  • نتیجه‌ها عالیه: دقت بالای ۹۵٪ حتی با عکسای نویزدار.
  • کدش رو هم دادن که خودت تست کنی!

دم دانشمندایی که واقعاً کار رو راحت‌تر کردن گرم! حالا حداقل یه قدم بزرگ برداشتیم تا تشخیص این مریضی سخت با هوش مصنوعی سریع‌تر و دقیق‌تر انجام شه.

منبع: +