خب بچهها، امروز میخوام در مورد یه ایده جالب توی دنیای پزشکی و هوش مصنوعی براتون حرف بزنم؛ چیزی به اسم BlendNet که میتونه تو تشخیص بیماریهای قلبی از روی سیگنالهای ECG (همون نوار قلب خودمون) کلی کمک کنه.
اول یه توضیح کوچیک درباره ECG بدم: وقتی میرید دکتر و سیم بهتون وصل میکنن و اون خطهای بالا پایین رو نشون میدن که نشوندهنده ضربان قلبتونه، همونه! این سیگنالها معمولاً یهبعدی هستن (یعنی فقط در طول زمان تغییر میکنن). اما بعضی وقتا برای پردازش بهتر، اونا رو به حالت تصویری یا دوبعدی درمیارن. مثلاً کاری که خیلیها میکنن اینه که اول سیگنال نوار قلب رو با یه روشی به اسم Continuous Wavelet Transform (CWT) به تصویر تبدیل میکنن — این یعنی میگیرن و با یه الگوریتم مخصوصی، امواج مختلف توی سیگنال رو به شکل عکس درمیارن که بهش scalogram میگن. حالا چرا این کار رو میکنن؟ چون الگوریتمهای یادگیری عمیق مثل Convolutional Neural Network یا همون CNN (شبکه عصبی کانولوشنی که مخصوص پردازش عکسهاس) روی تصویر بهتر کار میکنن و میتونن ویژگیهای بیشتری رو شکار کنن.
ولی مشکلی که هست اینه که این روش کلاسیک (تبدیل به scalogram و بعد پردازش تصویر) فقط یه سری ویژگیهای خاص توی سیگنال رو میگیره و باعث میشه یه جاهایی محدود باشیم و هوش مصنوعی نتونه بیماریها رو خیلی درست تشخیص بده.
حالا پژوهشگرها اومدن و BlendNet رو معرفی کردن. قضیه اینه: BlendNet یه مدل یادگیری عمیق (Deep Learning) جدیده که میاد از تکنیکی به اسم «alpha blending» استفاده میکنه. منظورش چیه؟ بیاید سادهش کنیم 👇
۱- اول همون سیگنال ECG یکبعدی رو با همون روش CWT به یه تصویر scalogram تبدیل میکنن.
۲- در کنارش از این تصویر هم یه نسخه باینری میسازن — یعنی هر جایی که سیگنال قوی بوده رو سیاه/سفید میکنن، صرفاً حضور یا عدم حضور امواج رو نمایش میدن (باینری یعنی دوتایی شدن، یا سفید یا سیاه).
۳- حالا هر دو این تصاویر (scalogram معمولی و باینری) رو از یه سری لایههای کانولوشنی و pooling (اینها همون لایههایی هستن که توی یادگیری عمیق واسه یاد گرفتن ویژگیهای تصویر استفاده میشه) رد میکنن.
۴- حالا نقطه جالبش میرسه: این دو سری ویژگی که گرفتیم رو با هم قاطی میکنیم! این قاطی کردن طبق یه فرمول کنترلشونده با پارامتری به اسم α (آلفا) انجام میشه — مثلاً وقتی آلفا ۰/۷ باشه یعنی ۷۰٪ از ویژگیهای یکی و ۳۰٪ از اون یکی توی مخلوط هست. به این کار میگن alpha blending. این باعث میشه شبکه ویژگیهای متنوعتر و عمیقتری رو داشته باشه.
۵- در نهایت، این تصویر ترکیبی رو میدیم به یه لایه متراکم (dense layer) که مسئول دستهبندی (classification) نهایی هستش؛ یعنی بر اساس اطلاعات یادگرفته شده، تصمیم میگیره این سیگنال مال یه آدم سالمه یا مشکل قلبی داره یا هر دستهبندی دیگهای.
حالا نتیجه چی بوده؟ اومدن روی دیتاست PhysioNet کار کردن که توش ۱۶۲ تا ECG هست (PhysioNet یکی از معروفترین بانکهای داده پزشکی دنیاست). وقتی آلفا رو گذاشتن رو ۰/۷، دیدن که BlendNet خیلی بهتر از روشهای کلاسیک و حتی خیلی از مدلهای پیشرفته دیگه عمل کرده — یعنی با دقت بیشتری بیماریهای قلبی رو تشخیص داده. خلاصش اینکه این ترکیب جذاب باعث شده ویژگیهای بیشتری از سیگنال توی مدل ثبت بشه و فرصت خطاها کمتر بشه.
یه نکته قشنگ دیگه هم اینه که BlendNet خیلی منعطفه از نظر تنظیماتش و حتی میتونه با الگوریتمهای یادگیری ماشین (Machine Learning یا ML، همون روشهایی که سرعتشون بالاتره و حافظه کمتری مصرف میکنن) هم همراه بشه و سرعت یادگیریش بیشتر بشه.
در کل اگه بخوام جمعبندی کنم، این BlendNet با ترکیب کردن دیدهای متفاوت (هم تصویری، هم باینری) حسابی کمک کرده دستهبندی سیگنالهای نوار قلب دقیقتر و قابلاعتمادتر بشه و نشون داده فقط تکیه روی یه مدل یا یه نوع خروجی کافی نیست — باید دیدهای مختلف رو باهم آمیخت تا نتیجه مطمئنتری گرفت.
منبع: +