آموزش پردازش سیگنال مغزی EEG در متلب + معرفی دوره

۱۸۰۵ بازدید
آخرین به‌روزرسانی: ۲۴ اردیبهشت ۱۴۰۲
زمان مطالعه: ۵ دقیقه
آموزش پردازش سیگنال مغزی EEG در متلب + معرفی دوره

در دنیای امروز، کاربرد «هوش مصنوعی» (Artificial Intelligence | AI) را می‌توان در تمامی جنبه‌های زندگی انسان ملاحظه کرد. روش‌های «یادگیری عمیق» (Deep Learning) و «ماشین لرنینگ» (Machine Learning) تاثیرات مهمی را در حوزه پزشکی و به خصوص در پژوهش‌های مربوط به شناخت اختلالات مغز داشته‌اند. در مطلب حاضر، به توضیح EEG در حوزه پزشکی خواهیم پرداخت و نحوه پردازش سیگنال مغزی EEG در متلب را شرح می‌دهیم.

پردازش سیگنال چیست ؟

پردازش سیگنال یکی از حوزه‌های وسیع مطالعاتی است که موضوعاتی نظیر تحلیل، ترکیب و اصلاح سیگنال‌ها را شامل می‌شود. سیگنال‌ها می‌توانند شامل اطلاعات خاصی نظیر صوت، تصویر و اندازه‌گیری‌های بیولوژیکی باشند. به عنوان مثال، از روش‌های پردازش سیگنال می‌توان به منظور بهبود انتقال سیگنال و افزایش سطح کیفیت سیگنال استفاده کرد.

کاربرد پردازش سیگنال را می‌توان در قالب فهرست زیر برشمرد:

  • پردازش سیگنال صدا نظیر موسیقی و گفتار
  • پردازش سیگنال دیجیتالی نظیر سیگنال‌های کامپیوتری
  • پردازش سیگنال صوتی نظیر تفسیر کلمات و جملات گوینده
  • پردازش تصویر
  • پردازش ویدئو
  • ارتباطات بی‌سیم
  • پردازش سیگنال‌های مالی
  • استخراج ویژگی
  • پردازش سیگنال «ژنومیک» (Genomics)
  • پردازش سیگنال‌های مغزی EEG

در ادامه مطلب،‌ قصد داریم به کاربرد پردازش سیگنال در بررسی سیگنال مغزی EEG بپردازیم و کاربرد آن را توضیح دهیم.

پردازش سیگنال مغزی EEG چیست ؟

«الکتروانسفالوگرافی» (Electroencephalogram)‌ یا همان EEG آزمایشی برای ارزیابی فعالیت‌های الکتریکی مغز است که از آن به منظور تشخیص مشکلات احتمالی در ارتباط بین سلول‌های مغز استفاده می‌شود.

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

EEG چیست

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

کاربرد پردازش سیگنال مغزی EEG چیست ؟

از سال ۱۹۲۹ از پردازش سیگنال مغزی EEG به منظور تشخیص اختلالات موجود در فعالیت‌های الکتریکی مغز استفاده شده است. کاربرد EEG را می‌توان برای تشخیص مواردی همچون اختلالات تشنجی (مانند صرع)، صدمات وارد شده به جمجمه، التهابات مغزی، تومور مغزی، اختلالات عملکرد مغزی، اختلالات خواب، آلزایمر، سکته مغزی و زوال عقل برشمرد.

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

کاربرد پردازش سیگنال مغزی EEG

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

مراحل پردازش سیگنال مغزی EEG

در پردازش سیگنال مغزی EEG با استفاده از روش‌های یادگیری ماشین هدف این است که سیگنال‌های مغزی را با رویکرد «شناسایی الگو» (Pattern Recognition) دسته‌بندی کنیم. در راستای تحقق این هدف، دو مرحله اصلی را باید انجام دهیم:

  • استخراج ویژگی: اولین گام در پردازش سیگنال، مرحله استخراج ویژگی است که هدف آن، توصیف سیگنال‌های مغزی EEG با مقادیر کمتر است. با استفاده از روش‌های استخراج ویژگی می‌توان اطلاعات اصلی سیگنال‌های EEG را استخراج و مقادیر نویزی و اطلاعات غیر مرتبط را از سیگنال‌ها حذف کرد. اطلاعات استخراج شده (ویژگی) در قالب بردار عددی در مرحله آموزش، به مدل داده می‌شوند.
  • مدل دسته‌بند: گام دوم پردازش سیگنال، دسته‌بندی بردارهای ویژگی هستند که از گام قبل به دست آمده‌اند.

در ادامه، به ارائه مثالی از پردازش سیگنال مغزی EEG در متلب خواهیم پرداخت.

پردازش سیگنال مغزی EEG در متلب

در بخش فعلی، به آموزش پردازش سیگنال مغزی EEG در متلب و نحوه تهیه و آماده‌سازی داده‌ها و پیاده‌سازی دسته‌بند برای پردازش داده‌های سیگنال مغزی می‌پردازیم.

در مرحله نخست، باید از طریق الکترود، سیگنال‌های مغزی فردی را ثبت کنیم. بدین منظور ۲۷ الکترود را بر روی سر فرد مورد نظر نصب می‌کنیم به نحوی که فاصله بین این الکترودها از یکدیگر حدود ۲۰ میلی‌متر باشند. این الکترودها سیگنال‌هایی را از گوش سمت راست، پیشانی و حرکات افقی و عمودی چشم فرد را ثبت می‌کنند.

در این آزمایش، فرد در مقابل یک مانیتور قرار می‌گیرد. در طول آزمایش، فلش‌هایی به سمت راست و چپ در مانیتور به ترتیب ظاهر می‌شوند و فرد با مشاهده هر فلش، باید جهت فلش را در ذهن خود تصور کند. بدین ترتیب، با دیدن هر فلش، سیگنال‌های مغزی متفاوتی ایجاد می‌شوند که الکترودهای متصل به سر فرد، آن‌ها را ثبت می‌کنند. هدف نهایی این آزمایش این است که مدلی برای پردازش سیگنال مغزی EEG در مطلب طراحی شود که بتواند سیگنال‌های مغزی را در دو کلاس ۰ و ۱ دسته‌بندی کند.

برای تحلیل داده‌ها، قسمتی از سیگنال‌های ضبط شده توسط کانال‌هایی مشخص می‌شوند که در این مثال ۲۸ کانال برای هر سیگنال تعریف شده است. به منظور بارگذاری داده‌ها درون متلب و تعریف کانال‌ها از قطعه کد زیر استفاده می‌شود:

1File = 'C:\run1234_nottriggered.mat'; % file with data of run 1 to run 4
2P_C = load(File); % load data into structure P_C
3new_tmw{1} = {28, 1, 'v', 0.78, 0, 'TRIGGERED', 'red'}; % use these parameters
4samples_before = 256; % trigger 2 seconds before
5samples_after = 768; % and 6 seconds after trigger signal
6uncomplete = 0;
7channels = [1:28, 25:28]; % trigger all channels
8P_C = trigger(P_C, new_tmw, samples_before, samples_after, uncomplete, channels);

برای هر سیگنال نیز برچسب کلاس را نیز مشخص می‌کنیم. برای سیگنال‌های مغزی فرد که نشان‌دهنده تجسم فلش سمت راست است، عدد ۰ را در نظر می‌گیریم و سیگنال‌هایی را که نشان‌دهنده تجسم فلش سمت چپ است، با کلاس ۱ مشخص می‌کنیم.

1AttributeName = {'RIGHT', 'LEFT'};  %define name for the trial attribute
2P_C.AttributeName = AttributeName;
3
4AttributeColor = {'green', 'blue'};  %define color for the trial attribute
5P_C.AttributeColor = AttributeColor;
6
7%define the attribute for the 160 trials; for each class a vector with 160 entries is created
8%LEFT class
9Attribute = [ 
10    001001110111010001001010001101101100
11    100110010010100001101101110010011000
12    111011110010010100000100111011010110
13    111000110111100100101000001001110110
14    110111001001101001010001001001110111
15    001011011100100110101000100100111010
16    101110111100111010001100101000011110
17    010100111110100011001101001001011011
18    111001011011100110110111110111001101
19    001101001010001001001110111001011011
20    001000111101000110011010100010010111
21    011011100101110001100010100000001101
22    011110011101000011011111001000110111
23    101011010011001111011001101001011101
24    101010101010100100111100101101110011
25    001111000010111010111101101000101010
26]
27%RIGHT class
28[
29    110110001000110110101110010010001101
30    101101011100100100011011001110110111
31    000100011010111101101011100100010010
32    001101101001111001001000110110011011
33    001110001000110111111011000100101000
34    011000011110111011010001100100101111
35    001111101000011010101111001010010111
36    111001000001001011011001001010001101
37    100110111000111011001101010001001011
38    111010110101001110000101111000011110
39    000010101000110100111001010001001011
40    101111110100100011010001111011111111
41    100000011011101111110100010010000001
42    111011100001110000001001110011110100
43    010111101101010100111001001010001101
44    001101001010001001001110111001011011
45]
46
47P_C.Attribute = Attribute;

سیگنال‌ها را می‌توان در تصویر زیر ملاحظه کرد. سیگنال‌هایی که با رنگ آبی نشان داده شده‌اند، کلاس ۱ هستند و رنگ سبز، سیگنال‌هایی را نشان می‌دهد که جزو کلاس ۰ محسوب می‌شوند:

نمایش داده ها در پردازش سیگنال مغزی EEG در متلب

از آنجا که در مسئله حاضر قصد داریم از روش‌های یادگیری ماشین برای طراحی یک دسته‌بند برای پردازش سیگنال مغزی EEG در متلب استفاده کنیم، باید مرحله «استخراج ویژگی» (Feature Extraction) را نیز برای تهیه داده‌های نهایی مدل به کار ببریم.

بدین منظور، از تنظیمات پنجره زیر برای کاهش ابعاد داده‌ها استفاده می‌کنیم.

استخراج ویژگی برای پردازش سیگنال مغزی EEG در متلب

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

1DPF = 38SpI;
2
3% Load spatial filter
4Filter = load(SPF, 'C:\g.tec\ghsanalyze\testdatal CSPYt5\CSP\cspl234filter.mat');
5
6FilterNwader = [1 2 26 27]; % Select 4 filters
7
8Replace = 'all';
9
10Transformation = 'Create temporal pattern';
11
12% Perform transformation resulting in 4 time courses
13PC = perform_spatial_filter(PC, Filter, FilterNumber, Replace, Transformation);

به منظور دسته‌بندی پردازش سیگنال مغزی EEG در متلب از یک دسته‌بندی خطی آماده استفاده می‌کنیم. داده‌ها را بدین منظور به داده‌های آموزشی و داده‌های تست تقسیم می‌کنیم. برای ارزیابی مدل نیز از روش «اعتبارسنجی متقابل» (Cross Validation) استفاده می‌کنیم.

در مثال حاضر از یکی از الگوریتم های یادگیری ماشین با نام «آنالیز تشخیص خطی» (Linear Discriminant Analysis | LDA) برای دسته‌بندی پردازش سیگنال مغزی EEG در متلب استفاده کردیم که نتایج آن در تصویر زیر ملاحظه می‌شوند:

دسته بندی سیگنال مغزی EEG در متلب

جمع‌بندی

یکی از مهم‌ترین دستاوردهای شاخه هوش مصنوعی را می‌توان در حوزه پزشکی ملاحظه کرد. در حال حاضر، از ابزارها و سیستم‌های هوشمندی در پژوهش‌های پزشکی و تشخیص بیماری‌های مختلف انسان استفاده می‌شوند که باعث شده‌اند تشخیص بیماری‌ها و علاج آن‌ها نسبت به سال‌های پیش و قبل از ظهور هوش مصنوعی راحت‌تر و دقیق‌تر انجام شوند. مغز انسان به عنوان مهم‌ترین و پیچیده‌ترین عضو بدن محسوب می‌شود که هنوز منشاء بسیاری از اختلالات موجود در عملکرد آن برای انسان ناشناخته است. با این حساب، هوش مصنوعی در تشخیص بسیاری از بیماری‌های مغزی نقش به‌سزایی داشته است.

در مطلب حاضر سعی کردیم به مفهوم یکی از روش‌های ارزیابی عملکرد مغز انسان یعنی EEG‌ بپردازیم که در تشخیص بسیاری از بیماری‌های مهم نظیر صرع و سکته مغزی کاربرد دارد. سپس، به نحوه پیاده‌سازی یکی از الگوریتم های یادگیری ماشین برای پردازش سیگنال مغزی EGG‌ در متلب اشاره کردیم و نحوه آماده‌سازی داده‌های سیگنالی را برای آموزش مدل در قالب مثال شرح دادیم.

بر اساس رای ۸ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
HOJNS HOPKINShealthlineMediumMathWorks
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *