خط لوله‌ی داده‌ی بالینی: بار اصلی پیش از رسیدن داده به طبقه‌بند کشیده می‌شود.
خط لوله‌ی داده‌ی بالینی: بار اصلی پیش از رسیدن داده به طبقه‌بند کشیده می‌شود.

چرا در یادگیری ماشین بالینی، پیش‌پردازش مهم‌تر از طبقه‌بند است

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

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

مقاله‌ای کارشناسی ارشد و تازه از دبوپریا گوش دقیقاً همین ساختار را دارد. داده از پایگاه ADNI می‌آید که سه دسته اطلاعات را کنار هم می‌گذارد: جزئیات بالینی، نمرات آزمون‌های عصب‌روان‌شناختی و سنجه‌های تصویربرداری عصبی. نویسنده مدلی ترکیبی و انباشته (stacking ensemble) می‌سازد — با رگرسیون لجستیک، Extra Trees، Bagging KNN و LightGBM — و آن را با یک شبکه‌ی عصبی مصنوعی ساده مقایسه می‌کند. دو هدف را هم اعلام می‌کند: یافتن بهترین طبقه‌بند و شناسایی نشانگرهای زیستی مهم.

کارکرد این مدل در سیستم بزرگ‌تر چیست

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

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

چرا دقت معیاری فریبنده است

مقاله به‌درستی از accuracy استفاده نمی‌کند و به‌جای آن دقت (precision)، بازخوانی (recall)، امتیاز F1 و سطح زیر منحنی (AUC-ROC) را گزارش می‌کند. این انتخابی مهندسی و درست است. روی داده‌ی پزشکی نامتوازن، دقت معیاری خودپسند است. فرض کنید تنها ۵ درصد بیماران در معرض خطرند؛ مدلی که به همه بگوید «سالم»، به ۹۵ درصد دقت می‌رسد و کاملاً بی‌فایده است. آنچه اهمیت دارد بازخوانی است. بازخوانی پایین یعنی مدل بیماران واقعی را از دست می‌دهد و به آن‌ها اطمینانی دروغین می‌بخشد. این از بی‌فایده بودن هم بدتر است.

بخش اول: مقادیر گم‌شده

داده‌ی ADNI مقادیر گم‌شده دارد و مقاله برای پر کردنشان از درون‌یابی تکراری (iterative imputation) استفاده می‌کند. باید روشن باشد که درون‌یابی خودش مدلی درون خط لوله است. می‌تواند همبستگی‌هایی بسازد که در واقعیت وجود ندارند و اطلاعات را نشت بدهد. اینجا بده‌بستانی جدی هست: اگر سطرهای ناقص را دور بریزیم، اغلب بیمارترین بیماران را از دست می‌دهیم، چون بیشترین داده‌ی گم‌شده را همان‌ها دارند؛ اگر درون‌یابی کنیم، ساختاری اختراع می‌کنیم.

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

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

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

بخش سوم: انتخاب ویژگی — محصول واقعی همین‌جاست

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

من این ساختار را در محیط عملیاتی جای دیگری هم دیده‌ام. در کار روی شاخص کیفیت هوای مشتق‌شده از ماهواره‌ی Sentinel-5P، ارزش واقعی در خود عدد نبود؛ در این بود که بدانیم کدام ورودی‌های طیفی آن عدد را توجیه می‌کنند و بشود در برابر یک ممیز از آن دفاع کرد. ساختار مسئله یکسان است: داده‌ی حساس و پراکنده، یک مدل، و یک انسان که به دلیل نیاز دارد.

پس پاسخ ترکیب در برابر شبکه‌ی عصبی چه شد

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

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

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

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

منابع

مقالات مرتبط