دو هفته پیش نوشتم که مشکل کار با سیگنال مغز هیچوقت الکترود نبوده و ما فقط نمیتوانستیم سیگنالی را مدل کنیم که هم پر از نویز است و هم هر لحظه رفتارش عوض میشود. هنوز هم بیشتر آن حرف را قبول دارم، اما مقالهای که چهار روز بعد از انتشار آن متن بیرون آمد یک قید ناخوشایند به آن اضافه میکند و میگوید شاید ما هنوز آزمونی نداریم که بتواند بگوید این مدلسازی جواب داده یا نه. برای اینکه معلوم شود این حرف چقدر جدی است، اول باید بدانیم اصلا چه چیزی اندازه گرفته میشود.
نوار مغزی فعالیت الکتریکی مغز را با چند الکترود از روی پوست سر میخواند و ارزان و بیآزار و سریع است، اما چون جمجمه سیگنال را پیش از رسیدن به الکترود محو میکند، آنچه ثبت میشود پر از نویز است. حالا مدلی را در نظر بگیرید که هزاران ساعت از این ضبطها را دیده باشد بیآنکه کسی به او گفته باشد کدامیک مال بیمار است و کدام مال آدم سالم، و در نتیجه فقط الگوهای تکرارشونده را یاد گرفته باشد. بعد با مقدار کمی دادهی برچسبخورده همان مدل را برای یک کار مشخص تنظیم میکنیم، مثلا پیدا کردن تشنج یا تشخیص اینکه حافظهی بیمار سالم است یا رو به زوال. در این حوزه به چنین مدلی foundation model میگویند و ما اینجا «مدل پایه» مینامیمش.
ژوئیه دو مدل پایهی خوب تحویل داد و از همانها شروع میکنیم.
مدلی که ضبط را بازمیسازد
ضبط نوار مغزی تقریبا همیشه ناقص است، چون بیمار تکان میخورد و چند ثانیه سیگنال از بین میرود، یا الکترودی شل میشود و کانالش تا آخر جلسه خراب میماند. راهحلی که امروز همهجا به کار میرود این است که مقدار گمشده را از روی الکترودهای همسایه حدس بزنند، روشی به اسم spherical spline interpolation که در کتابخانهی MNE پیشفرض است و در عمل بیشتر خطهای پردازش نوار مغزی در دنیا همین کار را میکنند.
ZUNA1.1 که مدلی است با ۳۸۰ میلیون پارامتر و کدش هم آزاد منتشر شده، همین کار را بهتر انجام میدهد و میتواند تا سی ثانیه از سیگنال گمشده را بازبسازد، چه یک بازهی کوتاه وسط یک کانال باشد و چه کانالی که از اول تا آخر جلسه خالی مانده. تا اینجا با یک بهبود مهندسی خوب طرفیم و نه بیشتر.
چیزی که این مدل را از یک نویزگیر بهتر جدا میکند در یک عبارت از چکیده پنهان مانده، و آن اینکه ZUNA1.1 با هر تعداد الکترود و در هر موقعیتی روی سر کار میکند. همینجاست که ماجرا از ترمیم سیگنال فراتر میرود.
چون مشکل بزرگتر نوار مغزی این است که دو ضبط را نمیشود به این سادگی کنار هم گذاشت. بیمارستان با ۱۹ الکترود ضبط میکند و آزمایشگاه با کلاهی ۶۴ کاناله، و چون هیچکدام الکترودها را جای یکسانی نمیگذارند، برای مقایسهی این دو تا امروز چارهای نبوده جز اینکه هر چه را مشترک نیست دور بریزیم. حالا مدلی داریم که هر چیدمانی را از روی چیدمان دیگر میسازد و با آن میشود ضبط دو مرکز مختلف را واقعا با هم سنجید. این نکته را نگه دارید، چون آخر مقاله معلوم میشود که از خود ترمیم مهمتر است.
مدلی که یک هفته بیدار میماند
مقالهی دوم سراغ گوشهی دیگری از همین مسئله رفته، چون نوار مغزی وقتی بیشترین ارزشش را نشان میدهد که ساعتها و روزها ادامه پیدا کند. در بخش پایش صرع بیمار چند روز به دستگاه وصل میماند تا تشنج اتفاق بیفتد، و در بخش مراقبتهای ویژه پرسش این است که آیا بیمار بیهوش دارد تشنج میکند بدون اینکه هیچ نشانهی بیرونی داشته باشد. حجم داده همانجاست و توان مرور انسانی هم دقیقا همانجا کم میآورد.
و دقیقا همانجا مدلهای امروزی میشکنند، چون transformer برای اینکه بفهمد هر لحظه از سیگنال به کدام لحظههای قبلش ربط دارد گذشته را در حافظه نگه میدارد و این حافظه همپای سیگنال بزرگ میشود. برای یک قطعهی سیثانیهای اشکالی ندارد، اما در پایش چندروزه حافظه سرریز میکند.
S-CEReBrO این گره را ساده باز میکند و سیگنال را به پنجرههای هماندازه تقسیم میکند تا مدل داخل هر پنجره کار کند و حافظه، هرچقدر هم ضبط ادامه پیدا کند، ثابت بماند. اعدادش هم قابل توجه است، چون سیگنالی صد برابر بلندتر از حالت معمول و سه برابر بلندتر از روشهای سبکشدهی قبلی را با ۵۵ درصد حافظه و بیش از دو برابر سرعت پردازش میکند، و مدلی که روی بیش از ۲۵ هزار ساعت ضبط از ۱۲ هزار نفر آموزش دیده در ۷ کار از ۱۱ کار بهترین نتیجهی موجود را میگیرد، آن هم با تا ۶۰ درصد پارامتر کمتر.
حافظهی ثابت و پارامتر کمتر با هم یعنی چنین مدلی میتواند کنار تخت بیمار بنشیند بدون اینکه لازم باشد در مرکز داده اجرا شود، و یک هفته ضبط را پردازش کند بیآنکه مصرف حافظهاش بالا برود. این دستاورد به همان اندازه که به مدلسازی مربوط است به زیرساخت هم مربوط میشود، و معمولا همین دستاوردهای زیرساختیاند که از سد خرید یک بیمارستان رد میشوند.
همان دیوار، بیرون از پزشکی
یک لحظه از پزشکی فاصله بگیریم، چون این محدودیت اصلا پزشکی نیست.
Wonder که همان هفته منتشر شد کار کاملا متفاوتی میکند و از یک عکس، فضایی سهبعدی میسازد که میتوانید دوربین را زنده در آن بچرخانید و به جایی که قبلا دیدهاید برگردید. اما هرچه بیشتر در آن فضا بچرخید گذشتهی بیشتری برای بهخاطر سپردن میماند، و این همان گرهی است که S-CEReBrO با آن دستوپنجه نرم میکرد. پاسخ این تیم هم همان بود، یعنی بهجای نگه داشتن همهچیز فقط تکههای مرتبط را از گذشته فرامیخوانند.
دو تیم از دو حوزهی بیربط به یک نتیجه رسیدهاند، و آن اینکه وقتی ورودی هیچوقت تمام نمیشود، فراموش کردن حسابشده باید در طراحی بنشیند و خریدن حافظهی بیشتر فقط تاریخ سرریز را عقب میاندازد.
پس تا اینجا دو پیشرفت واقعی داریم و نشانهای که این پیشرفتها فقط به نوار مغزی مربوط نیستند. حالا میرسیم به مقالهای که میپرسد اصلا از کجا میدانیم اینها پیشرفتاند.
بعد کسی شاهد منفی گرفت
مرضیه زارع هفت مدل پایهی منتشرشده را برداشت و روی پنج کار بالینی و چهار مجموعهی داده سنجید، یعنی LaBraM، EEGMamba، CBraMod، REVE، LEAD، BENDR و BIOT. تا اینجا کار عادی است و کاری که معمولا انجام نمیشود این بود که او شاهد منفی هم گرفت.
شاهد منفی آزمایشی است که انتظار دارید در آن رد شوید، و اگر قبول شدید یعنی ابزار اندازهگیریتان خراب است، مثل ترازویی که برای جعبهی خالی هم عددی نشان میدهد.
نتیجه بهقدر کافی روشن است. کار این بود که از روی نوار مغزی تشخیص بدهیم بیمار سالم است، اختلال خفیف دارد، یا به زوال عقل رسیده، و برای این کار ۱۱۸۷ ضبط با چیدمان یکسان ۱۹ کاناله در اختیار مدلها گذاشته شد. ویژگیهایی که متخصصها سالها پیش با دست طراحی کرده بودند نمرهی 0.734 گرفتند، در معیاری که 0.5 یعنی شیر یا خط انداختن و 1.0 یعنی تشخیص بیخطا، در حالی که بهترین مدل پیشآموزشدیده یعنی BIOT به 0.699 رسید و REVE از آن هم پایینتر ماند و 0.568 گرفت.
یعنی روش قدیمی از هر سه مدل تازه جلو زد، و بعد عددی میآید که آدم دو بار میخواندش، چون مدلی با وزنهای تصادفی که یک ساعت هم آموزش ندیده بود 0.659 گرفت و از REVE که روی هزاران ساعت داده آموزش دیده بود بالاتر ایستاد.
اگر پیشآموزش هیچ کمکی نکرده، پس مدل در آن هزاران ساعت چه چیزی یاد گرفته؟ زارع همین را پرسید و خروجی مدل را همانطور که بود برداشت، بیآنکه چیزی را دوباره آموزش دهد، و آزمود که آیا همین خروجی بهتنهایی لو میدهد هر ضبط از کدام مرکز آمده. جواب تقریبا همیشه درست بود.
ممکن است فکر کنید نشانهی سادهای دارد کار را راه میاندازد، و زارع هم همین را فکر کرد و یکییکی پاکشان کرد. خروجی را تا پنجاه عدد فشرده کرد، همهمهی برق شهر را که از سیمکشی ساختمان وارد ضبط میشود حذف کرد، و بلندی کلی سیگنال را یکسان کرد. باز هم میشد مرکز را تشخیص داد.
با این حال زارع در تفسیر محتاط است و باید هم باشد، چون تنها چیزی که ثابت میشود اینقدر است که خروجی مدل ردی از مجموعهی دادهاش را با خود دارد، نه اینکه محل ضبط علت چیزی بوده باشد. در جهت مخالف هم همانقدر محتاط است و یادآوری میکند که در تشخیص تشنج روی دادهی CHB-MIT، REVE واقعا برنده است و 0.793 میگیرد در برابر 0.739 برای بهترین رقیب کلاسیک، اما چون پیشپردازش بلندی مطلق سیگنال را حذف میکند همین برد هم ثابت نمیکند مدل از هر روش دستی ممکن بهتر است. زارع این مقاله را برای بهتر کردن اندازهگیری نوشته، نه برای تخریب این حوزه.
چرا مدل بیمارستان را یاد میگیرد
این خرابی بیرون از علوم اعصاب اسم دارد و به آن batch effect میگویند، چون هر مجموعهی داده اثر انگشت خودش را دارد و دستگاه تقویتکننده و چیدمان الکترودها و حتی اینکه چه بیمارانی از اول به آن مرکز ارجاع شدهاند، از مرکزی به مرکز دیگر فرق میکند.
وقتی داده و برچسب حتی کمی با هم همراستا باشند، ارزانترین راه رسیدن به جواب درست همین اثر انگشت است و مدلی که ظرفیت کافی داشته باشد ارزانترین راه را برمیدارد. پس مدل تقلب نمیکند و همان کاری را میکند که از او خواستهایم، و ما بد پرسیدهایم.
همین الگو در رادیولوژی هم دیده شده، جایی که مدل قرار بوده ذاتالریه را تشخیص دهد ولی یاد گرفته بود عکس را با کدام دستگاه گرفتهاند. نسخهی کوچکترش را هم من موقع ساخت BioVR دیدهام، سامانهای که شدت تمرین توانبخشی را از روی دادهی زندهی حسگرهای زیستی تنظیم میکرد و در آن شکنندهترین قطعه هیچوقت مدل نبود، بلکه جای دقیق حسگر روی بدن بود و کالیبراسیون اول هر جلسه. مدلی که بیسروصدا بهجای بیمار جلسه را یاد بگیرد، همان خرابی است با پارامتر بیشتر.
راهحل یک پروتکل است، نه یک معماری
پاسخ زارع به این وضعیت معماری تازهای نیست و یک پروتکل گزارشدهی است که میگوید چیدمان الکترودها بین مجموعهها یکسان شود، مطمئن شویم یک بیمار همزمان در دادهی آموزش و آزمون نیست، رقیب کلاسیک قوی انتخاب کنیم نه ضعیفترین گزینه، و خود خروجی مدل را هم آزمایش کنیم نه فقط دقت نهایی را. کار پرزرقوبرقی نیست، ولی همین تعیین میکند اعداد یک حوزه اصلا چیزی میگویند یا نه.
و حالا آن دو مقالهی اول برمیگردند، چون اولین بند این پروتکل یکسان کردن چیدمان الکترودهاست و ZUNA1.1 دقیقا همین کار را میکند و هر چیدمانی را از روی چیدمان دیگر میسازد. یعنی مدلی که آن را زیر عنوان «نویزگیر بهتر» بایگانی کرده بودیم در عمل بخشی از زیرساخت ارزیابی از آب درمیآید، و این همان نکتهای است که خواستم نگهش دارید.
بند دیگری از پروتکل به S-CEReBrO میرسد، چون اگر ببینید مدلهای پیشآموزشدیده تنها کجا برنده شدند به تشخیص تشنج بین آزمودنیهای مختلف میرسید، یعنی همان کاری که روی ساعتها و روزها ضبط پیوسته اجرا میشود و دقیقا همان وضعیتی که S-CEReBrO ممکنش میکند. پس این حسابرسی کل میدان را صاف نمیکند، بلکه میگوید کدام بخشش فعلا پابرجاست، و هر دو پیشرفت ژوئیه همان طرف پابرجا ایستادهاند.
یک دلیل دیگر هم برای دوام این دو هست، و آن اینکه هر دو را میشود بدون هیچ برچسب بالینی سنجید. یا مدل کانال افتاده را بهتر از روش قدیمی پر میکند یا نمیکند، و یا حافظه بعد از یک هفته پایش صاف مانده یا نمانده. اینها دقیقا به همین دلیل بردهای صادقانهای هستند، چون اندازهگیریشان به آن محکی وابسته نیست که خودش زیر سوال رفته.
درس این ماجرا از نوار مغزی فراتر میرود، چون هر ادعایی که دربارهی یک مدل میکنیم به آزمایشهایی محدود میشود که رویش انجام دادهایم، و یک محک هم مثل هر زیرساخت دیگری بیسروصدا تعیین میکند بعد از آن چه چیزی ساخته شود.
اگر این شاهدهای منفی پابرجا بمانند، اولین پرسش من در شروع پروژهی بعدی تغییر خواهد کرد و دیگر نخواهم پرسید کدام مدل آماده قویتر است، بلکه خواهم پرسید اگر مدل هیچ چیز یاد نگرفته بود، ارزیابی من چه شکلی میشد.