تجزیه‌وتحلیل مؤلفه‌های مستقل (ICA)

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

مفهوم تجزیه‌وتحلیل مؤلفه‌های مستقل:

بیایید با یک مثال به بررسی مفهوم تجزیه‌وتحلیل مؤلفه‌های مستقل بپردازیم.

فرض کنید یک مهمانی با ۳ شرکت‌کننده در یک اتاق برگزار می‌شود. در این مهمانی افراد باهم صحبت می‌کنند.

در همان اتاق، ۳ میکروفن در فواصل مختلف از بلندگوهایی که سیگنال‌های صوتی را ضبط می‌کنند، قرار دارند. ازاین‌رو، تعداد بلندگوها با تعداد میکروفون‌های موجود در اتاق برابر است.

اکنون، با استفاده از ضبط‌های این میکروفون‌ها، می‌خواهیم ۳ سیگنال صوتی بلندگوهای موجود در اتاق را جدا کنیم، به دلیل تفاوت در فواصل بین میکروفون‌ها، سیگنال صوتی را از هر بلندگو با شدت‌های مختلف دریافت خواهیم کرد.

تجزیه سیگنال‌های مختلط ضبط هر میکروفون در سیگنال منبع گفتاری که مستقل  باشد را می‌توان با استفاده از یک روش یادگیری ماشین، به نام تجزیه‌وتحلیل مؤلفه‌های مستقل انجام داد.

 

 

 

به‌طورکلی تجزیه‌وتحلیل مؤلفه های مستقل را می‌توان به‌صورت زیر بازنویسی کرد:

\[ [X1, X2, …, Xn] => [Y1, Y2, …, Yn] \]

که در آن، \( [X1, X2, …, Xn] \) سیگنال‌های اصلی موجود در سیگنال مختلط هستند و \( [Y1, Y2, …, Yn] \) ویژگی‌های جدید و اجزای مستقلی هستند که مستقل از یکدیگر هستند.

فرض کنید مسئله‌ای به‌صورت زیر داشته باشیم:

استخراج سیگنال‌های منابع مستقل از سیگنال مختلط که متشکل از سیگنال‌هایی از این منابع است.

در مسئله بالا منابع داده‌شده عبارت‌اند از:

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

هدف نهایی از این مسئله:

هدف ،تجزیه سیگنال مختلط به ۳ منبع مستقل است.

راه‌حل رسیدن به هدف این مسئله:

راه حل ،تجزیه‌وتحلیل مؤلفه‌های مستقل (ICA) می باشد.

محدودیت در ICA :

  • فرض بر این است که مؤلفه‌های مستقل تولیدشده توسط ICA ازنظر آماری مستقل از یکدیگر هستند.
  • اجزای مستقل تولیدشده توسط ICA باید توزیع غیر گاوسی داشته باشند.
  • تعداد اجزای مستقل تولیدشده توسط ICA با تعداد اجزای مختلط مشاهده‌شده برابر است.

 

کاربردها:

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

پیاده‌سازی:

برای پیاده‌سازی ICA از کتابخانه scikit-learn استفاده می‌کنیم . همان‌طور که در کد زیر مشاهده می‌کنید با قرار دادن n_components=10

 

درواقع 10 جز برای ICA ایجاد می‌کنیم.

تصویر زیر را در این پیاده‌سازی تحلیل می‌کنیم:

 

from sklearn.decomposition import FastICA
from pylab import *
from skimage import data, io, color

!mkdir image_jpg && wget "http://parsino.com/wp-content/uploads/2017/08/%D8%B9%DA%A9%D8%B3-%D9%BE%D8%B1%D9%88%D9%81%D8%A7%DB%8C%D9%84-%DA%AF%D9%84-%D8%B2%DB%8C%D8%A8%D8%A7-46-1.jpg"
image = io.imread("عکس-پروفایل-گل-زیبا-46-1.jpg" ,as_gray=True)

ica = FastICA(n_components = 10)


ica.fit(image)

image_ica = ica.fit_transform(image)
restored = ica.inverse_transform(image_ica)
 

io.imshow(restored)
show()

خروجی بالا به شکل زیر است:

برای بهبود نمایش خروجی \( n\_components \) را برابر با 100 قرار می دهیم،حال به ازای تعداد اجزا بیشتر، تصویری به شکل زیر خواهیم داشت:

 

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.