شناسایی با شبکه عصبی – بیماری پارکینسون

شاخص شبکه عصبی در تشخیص عیب

بیان مقدمه و اهداف پروژه (شناسایی با شبکه عصبی برای شخص مبتلا به پارکینسون)

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

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

در این پروژه شنسایی با شبکه عصبی، هدف بررسی رفتار بیماران مبتلا به پارکینسون می باشد. این بیماری شخص را به لحاظ حرکتی دچار ناتوانی می کند. این ناتوانی بصورت فریز شدن (freezing) حرکتی می باشد. در واقع یکی از نشانه های این بیماری بروز حرکت فریز (نوسانات سریع حرکتی – لرزش های حرکتی) می باشد. بنابراین در این پروژه به دنبال این شاخص می باشیم.

در شکل زیر یک سیگنال نمونه از حرکت شخص بیمار نمایش داده شده است که در زمان هایی دچار فریز می گردد.

سیگنال اولیه مورد بررسی با شبکه عصبی min 300x225 شناسایی با شبکه عصبی   بیماری پارکینسون

نمایش سیگنال حرکت شخص مبتلا به پارکینسون

توضیحات کلی

در این پروژه با یک سیستم داده ای مواجه هستیم. این سیستم بدون ورودی می باشد! حرکت شخص به صورت رفت و برگشتی انجام گرفته و داده های حرکتی در خروجی ثبت شده اند. بنابراین اصلی ترین کار شناسایی این داده های خروجی می باشد.

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

مشخصا تمامی عیوب تاثیری در خروجی به جای خواهند گذاشت. این تاثیرها می توانند توسط عواملی بعضا ساده همچون مشتق گیری، یا انتگرال گیری از داده بدست آیند. حال آنکه در برخی اوقات بدست آوردن این تاثیر به لحاظ کند بودن تاثیرگذاری عیب بر سیستم و یا تاثیرگذاری ترکیبی بر سیستم (تاثیرگذاری بر مجموعه ای از خروجی ها) پیچیده باشد.

در این پروژه مسئله بیماری(شخص مبتلا به پارکینسون) به عنوان عیب سیستم مطرح است. چرا که این عامل سبب تغییر رفتار حرکتی شخص بیمار نسبت به اشخاص سالم می گردد. اما آنچه که هست، این عیب به صورت طول زمانی کامل بر شخص تاثیر نمی گذارد. عیب مورد نظر طبق آنچه در شکل دیدیم، باعث نوسانات سریع در پاره ای از زمان ها می گردد. نوسانات یکباره سیستم به عنوان تاثیر عیب می باشند. در واقع شناسایی این نوسانات در این پروژه به عنوان وقوع عیب (شناسایی عیب) مطرح است. با این هدف بایستی دنبال ویژگی باشیم که این نوسانات را به ما نشان دهد.

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

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

خروجی شمارنده در شناسایی با شبکه عصبی min 300x225 شناسایی با شبکه عصبی   بیماری پارکینسون

نمایش خروجی شمارنده بر روی یک کانال

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

در مرحله نهایی از این مقدار خروجی به عنوان ویژگی برای ورودی شبکه عصبی استفاده شد. البته شبکه عصبی مورد نظر ابتدا با استفاده از داده های نمونه قطعی ساخته می شود. (با استفاده از ابزار نرم افزار متلب)

خروجی زیر نمونه شاخص خروجی را نشان می دهد. (خروجی شبکه عصبی)

شاخص شبکه عصبی در تشخیص عیب min 300x225 شناسایی با شبکه عصبی   بیماری پارکینسون

خروجی شاخص شبکه عصبی برای نمایش عیب (فریز حرکتی) – شناسایی با شبکه عصبی

همانطور که از شکل قابل مشاهده است، در زمان های فریز رخ داده است.

الگوریتم پروژه

با توجه به شرح پروژه شناسایی با شبکه عصبی که بیان شد، در این پروژه ابتدا از یک سری عملیات مرتبط با پردازش داده بر روی سه کانال از داده های خروجی استفاده شد. در مرحله عملیات اصلی مرتبط با شناسایی با شبکه عصبی انجام شد. در این عملیات ابتدا بایستی شبکه عصبی را با داده های شناخته شده آموزش داده و آن را بسازیم. در نرم افزار متلب و در بخش toolbox های متلب ، با استفاده از تولباکس مرتبط با شبکه های عصبی و استفاده از pattern recognition tools می توان این کار را انجام داد. البته می توان به منظور بهبود کار تغییراتی نیز بر روی خروجی کار لحاظ کرد.

منبع : برق تِک

برای بررسی سایر نمونه کارها در زمینه شبکه های عصبی می توانید ببینید :

شناسایی و عیب یابی سیستم با شبکه عصبی – شیر صنعتی