یادگیری فرهنگ لغت پراکنده

از testwiki
پرش به ناوبری پرش به جستجو

الگو:پانویس بیشتر الگو:یادگیری ماشین

کاهش نویز در یک تصویر

رمزگذاری پراکنده (Sparse Coding) یک روش یادگیری بازنمایی (representational learning) است که سعی بر یافتن نمایش پراکنده‎‌ای از داده‌های ورودی (همچنین شناخته‌ شده به عنوان رمزگذاری پراکنده یا Sparse Coding) به صورت ترکیب خطی‌ای از مولفه‌های تشکیل‌دهنده آن‌ها دارد. به این مولفه‌ها اتم گفته می‌شود و در کنار یکدیگر یک لغت‌نامه (ِdictionary) تشکیل می‌دهند. اتم‌های موجود در هر لغت‌نامه لزوما متعامد نیستند، و ممکن است یک مجموعه پوشای بیش از حد کامل (over-complete spanning set) باشند. شرایط این مسئله همچنین اجازه می‌دهد ابعاد سیگنال‌های نمایش‌داده‌شده از سیگنال‌های مشاهده‌شده بیشتر باشد. این دو ویژگی باعث وجود اتم‌های به‌ظاهر بدون استفاده می‌شوند ولی در عین حال، پراکندگی و انعطاف‌پذیری نمایش را بهبود می‌بخشند.

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

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

صورت‌بندی مسئله

با داشتن داده ورودی X=[x1,...,xK],xid می‌خواهیم دیکشنری 𝐃d×n:D=[d1,...,dn] و نمایش𝐑n:R=[r1,...,rn] را طوری به دست آوریم که X𝐃RF2 هم کمینه و هم تا حد ممکن پراکنده (sparse) باشد. این مسئله به صورت زیر بهینه‌سازی زیر فرمول‌بندی می‌شود:

argmin𝐃𝒞,rini=1Kxi𝐃ri22+λri0، که در آن 𝒞{𝐃d×n:di21i=1,...,n}، λ>0

محدودیت 𝒞، دیکشنری 𝐃 را طوری محدود می‌کند که اتم‌ها مقادیر بالایی به خود نگیرند و از مقادیر کم ولی غیرصفر ri جلوگیری شود.

مسئله کمینه‌سازی بالا به دلیل 0-"norm" یک مسئله محدب نیست و حل کردن آن NP-hard است.[۱] در بسیاری از مسائل، استفاده از LASSO باعث ایجاد پراکندگی می‌شود[۲] و مسئله بالا با ثابت نگه داشتن یکی از متغیرهای 𝐃 و 𝐑 به یک مسئله بهینه‌سازی محدب تبدیل می‌شود.

الگوریتم‌ها

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

مسئله یافتن رمزگذاری پراکنده بهینه R با فرض لغت‌نامه 𝐃 با عنوان تقریب پراکنده شناخته می‌شود. الگوریتم‌هایی مانند تطبیق تعقیب و لسو توسعه داده شده و در الگوریتم‌های توضیح داده شده در پایین‌، به کار گرفته می‌شوند.

روش جهت‌های بهینه (MOD)

روش جهت‌های بهینه یا MOD یکی از اولین الگوریتم‌های ایجاد شده برای حل مسئله یادگیری لغت‌نامه پراکنده است.[۳] ایده اصلی این الگوریتم حل کردن مسئله کمینه‌سازی منوط به تعداد محدودی از مولفه‌های غیر صفر از نمایش بردار زیر است:

min𝐃,R{X𝐃RF2}s.t.iri0T

که در آن، F نشان‌دهنده نرم فربنیوس است.

MOD بین به دست آوردن رمزگذاری پراکنده به وسیله روشی مانند تطبیق تعقیب و تصحیح لغت‌نامه با استفاده از محاسبه حل تحلیلی مسئله که برابر 𝐃=XR+ است که در آن R+ یک معکوس مور-پنروز است، نوسان می‌کند. پس از هر بار تصحیح، 𝐃 دوباره نرمال‌سازی شده تا با محدودیت مسئله سازگار شود و رمزگذاری پراکنده جدید به دست می‌آید. این فرایند تا همگرایی (یا تا زمانی که تغییرات در هر مرحله به اندازه کافی کوچک باشند) تکرار می‌شود.

MOD یک روش بسیار کارآمد برای داده ورودی با ابعاد کم است و تنها به چند تکرار برای همگرایی نیاز دارد. با این حال، به علت پیچیدگی محاسباتی بالای عملیات وارونگی ماتریس، محاسبه سود وارونه R+ در بسیاری از موارد از نظر محاسباتی دشوار است. این مشکل باعث توسعه‌ یافتن روش‌های دیگر یادگیری دیکشنری پراکنده شده است.

K-SVD

K-SVD الگوریتمی است که در بطن خود از SVD برای تصحیح یک به یک اتم‌های موجود در یک دیکشنری استفاده می‌کند و اساسا تعمیمی از الگوریتم خوشه‌بندی کی-میانگین است.در این الگوریتم، هر مولفه داده ورودی xi را بر حسب ترکیب خطی از حداکثر T0 مولفه به شیوه مشابه با MOD رمزگذاری می‌شود:

min𝐃,R{X𝐃RF2}s.t.iri0T0

در این الگوریتم، ابتدا دیکشنری ثابت نگه داشته می‌شود و بهترین مقدار R متناظر با آن به دست می‌آید، سپس اتم‌های دیکشنری به به صورت زیر به شکل تکرار‌شونده تصحیح می‌شوند:

X𝐃RF2=|Xi=1KdixTi|F2=EkdkxTkF2

قدم بعدی الگوریتم شامل تقریب رنک 1 ماتریس باقی‌مانده (residual matrix) Ek، تصحیح dk و اطمینان از پراکندگی xk پس از تصحیح است. این الگوریتم، الگوریتم استاندارد برای یادگیری دیکشنری پراکنده تلقی می‌شود و در بسیاری از کاربردها استفاده می‌شود. با این حال، این الگوریتم نیز همانند MOD تنها برای داده‌های کم‌بعد به خوبی کار می‌کند و همچنین احتمال گیر افتادن در کمینه موضعی نیز وجود دارد.

نزول گرادیان تصادفی

ایده این الگوریتم، تصحیح دیکشنری به وسیله گرادیان تصادفی مرتبه اول و افکندن آن روی مجموعه محدودیت 𝒞 است.[۴][۵] i-امین گام الگوریتم را می‌توان به صورت زیر نوشت:

𝐃i=proj𝒞{𝐃i1δi𝐃iSxi𝐃ri22+λri1}، که در آن S زیرمجموعه تصادفی‌ای از {1...K} و δi گرادیان در این گام است.

روش دوگانه لاگرانژ

این الگوریتم بر پایه یک مسئله لاگرانژ دوگانه طراحی شده است و روشی کارآمد برای حل این مسئله است.[۶] لاگرانژی زیر را در نظر بگیرید:

(𝐃,Λ)=tr((X𝐃R)T(X𝐃R))+j=1nλj(i=1d𝐃ij2c)، که در آن c یک محدودیت روی نرم اتم‌ها است و λi متغیرهای دوگانه تشکیل‌دهنده ماتریس قطری Λ هستند.

می‌توانیم دوگانه لاگرانژ را به صورت تحلیلی زیر بنویسیم:

𝒟(Λ)=min𝐃(𝐃,Λ)=tr(XTXXRT(RRT+Λ)1(XRT)TcΛ)

پس از اعمال روش بهینه‌سازی برای مقادیر دوگانه، مقدار 𝐃 به دست می‌آید:

𝐃T=(RRT+Λ)1(XRT)T

حل کردن این مسئله از لحاظ محاسباتی بسیار ساده‌تر است زیرا تعداد متغیرهای دوگانه از تعداد متغیرهای مسئله اولیه بسیار کمتر است.

LASSO

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

minrn{r1}subject toX𝐃RF2<ϵ، که در آن ϵ خطای مجاز در LASSO بازسازی‌شده است.

با استفاده از این معادله، مقدار ri با استفاده از کمینه کردن خطای مربع کمینه با محدودیت L1-norrm در بردار حل به دست می‌آید:

minrn12X𝐃rF2+λr1

و با حل این معادله، حل بهینه به دست می‌آید.[۷]

کاربردها

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

این چارچوب همچنین برای کاهش نویز سیگنال ورودی کاربرد دارد زیرا می‌توان دیکشنری‌ای را به دست آورد که قسمت‌های مهم سیگنال‌ ورودی را به صورت پراکنده نمایش دهد ولی نمایش نویز سیگنال ورودی از پراکندگی بسیار کمتری برخوردار باشد.[۸]

یادگیری دیکشنری پراکنده در بسیاری از زمینه‌های تحلیل صدا و سنتز متن[۹] و دسته‌بندی بدون نظارت استفاده شده است.[۱۰]

جستارهای وابسته

منابع

  1. A. M. Tillmann, "On the Computational Intractability of Exact and Approximate Dictionary Learning", IEEE Signal Processing Letters 22(1), 2015: 45–49.
  2. الگو:Cite journal
  3. الگو:Cite book
  4. الگو:Cite journal
  5. الگو:Cite book
  6. Lee, Honglak, et al. "Efficient sparse coding algorithms." Advances in neural information processing systems. 2006.
  7. الگو:Cite web
  8. Aharon, M, M Elad, and A Bruckstein. 2006. "K-SVD: An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation." Signal Processing, IEEE Transactions on 54 (11): 4311-4322
  9. الگو:Cite journal
  10. الگو:Cite book