Sparse Coding کدگذاری تنک مریم عبدالعلی بهار 90
فهرست مطالب کدگذاری تنک چیست و چرا؟ کاربردها و دستاوردها مبانی کدگذاری تنک استفاده از کدگذاری تنک در بازشناسی استفاده از کدگذاری تنک در طبقه بندی خلاصه و جمع بندی مراجع
کدگذاری تنک چیست کدگذاری تنک: بردارهای داده را به صورت ترکیب خطی تعداد کمی از مؤلفه های یک دیکشنری overcomplete بیان می کند. روش موفق در انتخاب ویژگی تخمین با بعد پایین تر از یک سیگنال برخلاف PCA لزومی بر متعامد یکه بودن مؤلفه های پایه امکان adaptation وجود دارد
چرا کد گذاری تنک Sparse code الهام گرفته از neural code است. Neural coding چگونگی بازنمایی اطلاعات و حواس در مغز توسط شبکه ای از نورون ها را بررسی می کند. اطلاعات توسط strong activation مجموعه ای کمی از نورون ها کد می شوند. تنکی از لحاظ زمانی یا جمعیتی ادعای جنجالی Olshausen و همکاران: کدگذاری تنک تصاویر طبیعی نتایج مشابه (حتی بهتر) از فیلترهای wavelet دارد. مشابه عملی که در سلول های میدان گیرندگی در غشر بینایی صورت می گیرد
نمایش سیگنال تبدیل فوریه: Wavelet نمایش سیگنال بر اساس مؤلفه های پایه ای سینوسی و کسینوسی Wavelet در مقایسه با تبدیل فوریه میتوان گفت که تبدیل موجک دارای خصوصیت محلیسازی بسیار خوبی است. بطور مثال تبدیل فوریه یک پیک تیز دارای تعداد زیادی ضریب است، چرا که توابع پایه تبدیل فوریه توابع سینوسی و کسینوسی هستند که دامنه آنها در کل بازه ثابت است، در حالی که توابع موجک توابعی هستند که بیشتر انرژی آنها در بازه کوچکی متمرکز شدهاست و به سرعت میرا میشوند. بنابراین با انتخاب مناسب موجک های مادر می توان فشرده سازی بهتری در مقایسه با تبدیل فوریه انجام داد.
کدگذاری تنک از منظر سیگنالی نمایش بر اساس ترکیب خطی و تنک از دیکشنری + خطای sparse
کاربردها و دستاوردها حذف نویز از تصاویر تشخیص لبه In-painting Super-resolution فشرده سازی همه در سال های اخیر 2008 به بعد ارائه شده اند
مبانی کدگذاری تنک جملات زبان انگلیسی با تعدا کمی سمبل قابل بیان هستند. نمونه از کد گذاری تنک X: یک سیگنال در Rm مجموعه ای از مؤلفه های پایه (دیکشنری) بردار تنک آلفا در Rp به گونه ای است که: α، sparse code نامیده می شود
مثال پر واضح است که بی نهایت ضرایب α می توانند وجود داشته باشند که بتوانند x را تولید کنند. چگونه می توان بهترین α را پیدا کرد؟ = ضرایب تنک α دیکشنری (D) تصویر نویزی (x)
استفاده از ضرایب لاگرانژ در بهینه سازی استراتژی برای پیدا کردن مینمم یا ماکزیمم یک تابع در حالی که محدود به شرایطی است. هدایت کردن محدود کردن
ادامه... در نقطه بهینه، شیب f و g همراستا هستند. در سایر نقاط، مشتق f مولفه ای در راستای منحنی g=c دارد، یعنی اگر در این راستا حرکت کنیم، ضمن اینکه روی منحنی g=c باقی مانده ایم، مقدار تابع f را نیز بهینه تر کرده ایم، پس باید این کار را بکنیم. وجود ضریب لاگرانژ بدان علت است که مشتق f وg در نقطه بهینه لزوما هم اندازه نیستند و فقط هم راستا هستند، لذا این ضریب باعث میشود چنین نقطه ای عملا قابل محاسبه باشد.
معادله تجزیه تنک Ψ(α) تنک بودن را لحاظ می کند، می تواند: نرم L0 باشد تنک بودن قطعاً لحاظ می شود، مسئله NP نرم L1 باشد .... نرم L∞ باشد تعریف نرم
نکته تعداد مجهولات بیشتر از تعداد معلوم ها است. یا جواب ندارد: اگر x در محدوده پوشش ستونهای D نباشد. یا بی نهایت جواب دارد. شرط زیر اضافه میشود تا مطمئن شویم جواب وجود دارد: ستونهای D کل فضای n بعدی را پوشش میدهند. به عبارت دیگر D (دیکشنری) full rank matrix باشد تعداد سطرهای D از تعداد ستون ها بیشتر باشد
کدام نرم را انتخاب کنیم؟
ادامه... نرم L0 تنک بودن را قطعاً لحاظ می کند نرم L2: نرم L1: محاسبات امکان پذیر نیست نرم L2: Convex جواب یکتا فرم closed ساده لزوماً بهترین جواب نیست نرم L1: جواب تنک هرتابع که (مانند نرم های کمتر مساوی 1) نسب به محورها متقارن باشد، به طور یکنواخت غیر نزولی باشد، به طور یکنواخت شیب غیر صعودی داشته باشد، برای x>0، خلوت بودن را حفظ میکند.
با فرض داشتن دیکشنری α چگونه انتخاب شود؟ Matching pursuit Orthogonal Matching pursuit LS-OMP الگوریتم Lasso الگوریتم FOCUSS
Matching Pursuit روش حریصانه یکی از روش های پایه ای عددی به دنبال یافتن بهترین تطابق در تصویر کردن یک داده چندبعدی بر روی یک دیکشنری D است. مؤلفه ای از دیکشنری را انتخاب می کند که بزرگ ترین ضرب داخلی با Dα-x را دارد.
الگوریتم Matching Pursuit
الگوریتم Orthogonal Matching Pursuit تنک بودن را قطعاً لحاظ می کند. ضرایب α باید متعامد یکه باشند
هر دو روش تکراری محسوب می شوند MP و OMP در OMP هر مؤلفه دیکشنری تنها یک بار می تواند انتخاب شود پیاده سازی دشوارتری دارد می توان DTD را یک بار اول الگوریتم پیاده سازی کرد می توان DTr را برای هر سیگنالی از قبل محاسبه کرد می توان تجزیه چلسکی را برای هر سیگنال از قبل محاسبه کرد هر دو روش تکراری محسوب می شوند
الگوریتم LS-OMP الگوریتم بهبود یافته این که در هر بار که یک ستون انتخاب میشود، فرض نباشد که همین یک ستون باید خطا را تقریب زند، بلکه این ستون کاندید در کنار ستونهای قبلی انتخاب شده قرار است تقریب بزند و همه ضرایب ستونها هم یکجا محاسبه شود! هزینه محاسباتی بالاتری هم دارد!
الگوریتم Lasso Lasso مسئله تخمین تنک بودن را به یک مسئله محدب تبدیل می کند. بهتر از الگوریتم های حریصانه تکراری مشکل : نرم صفر راه حل: تبدیل به نرم یک معادله محدب بدست می آید نرم یک با مقدار مؤلفه ها سر و کار دارد نه با تعداد نرم یک کوچک ممکن است نرم صفر بزرگی باشد
ادامه Lasso برای حل مسئله محدب حاصل از انواع روش ها می توان استفاده کرد: [Boyd and Vandenberghe, 2004], [Nocedal and Wright, 2006], [Borwein and Lewis, 2006], [Bonnans et al., 2006], [Bertsekas, 1999]. یک روش نسبتاً ساده تر directional derivatives است. نرم یک به طور مستقیم قابل مشتق گیری نیست. در جهت بردار خاص u مشتق گیری انجام می شود بر اساس این تعریف مشتق، مشتق گیری انجام می شود و آلفای بهینه پیدا می شود. امروزه از LARS استفاده می شود (Efron, 2004)
الگوریتم FOCUSS این مساله محدب است و با تابع لاگرانژ قابل حل است. از روشی با نام Iterative-Reweighed-Least-Squares (IRLS) برای تقریب زدن نرم صفر توسط نرم 2 وزن دار استفاده میکند. این مساله محدب است و با تابع لاگرانژ قابل حل است. علت اینکه تلاش کردیم تا نرم p را به صورت نرم2 بیان کنیم : نرم های کمتر از 1، هنگام مشتق گیری از تابع لاگرانژ، توان منفی برای x ایجاد میکنند که حل آن درد سر بیشتری دارد و در برخی نقاط هم تحلیلی نیست به لحاظ هندسی هم نرم های کمتر از 1 نقاط غیر تحلیلی دارند که احتمالا جواب بهینه در نزدیک همان نقاط است. نرم صفر هم که اصلا قابل مشتق گیری نیست اساسا.
دیکشنری Choosing versus Learning سرعت بالا در یافتن بردار تنک pre-constructed dictionaries, such as undecimated wavelets steerable wavelets contourlets curvelets etc. سرعت بالا در یافتن بردار تنک محدودیت در میزان تنک بودن بازنمایی محدود به نوع خاصی از سیگنالها برای بازنمایی مثلا تبدیل Wavelet
روش های یادگیری دیکشنری Brute-force search تمام حالت های ممکن برای دیکشنری را در نظر می گیرد نا ممکن به عنوان base line K-means-like: MOD K_SVD نمونه های آموزشی
الگوریتم MOD این معادله غیر محدب است. دو متغیر A و x مینمم کردن در دو مرحله انجام می شود گامی که A را مینمم می کند، گام به روز رسانی دیکشنری نامیده می شود از روی داده های آموزشی انجام می شود تمام داده های آموزشی را کنار هم قرار می دهیم: Y (n*M) تمام ضرایب مجهول را هم کنار هم قرار می دهیم: X (m*M) معادله Y=AX ایجاد می شود
ادامه الگوریتم MOD در هر گام ابتدا دیکشنری A را مینمم می کنیم و سپس تعداد صفرهای x را مینمم می کند. در گام k: A(k-1) بدست آمده از گام قبلی استفاده می شود و معادله برای تمام yi ها بر اساس روش های قبلی گفته شده حل می شود (دیکشنری ثابت فرض می شود) از ماتریس X(k) بدست آمده، دیکشنری A(k) با حداقل کردن مربع خطا بدست می آوریم:
ادامه MOD مثالی از پیدا کردن دیکشنری: دیکشنری رندم (مؤلفه های گوسی iid و نرمال شده) با سایز 30*60 از این دیکشنری 4000 نمونه با ترکیب 4 مؤلفه با ضرایب N(0,1) ایجاد می کنیم. نمونه ها با نویز گوسی N(0,0.1) نویزی می شوند.
الگوریتم K-SVD ستونهای A یکی یکی تغییر مییابند. rewriting (12.3) as: هر دو بردار تغییر میکنند تا عبارت داخل پرانتز را تقریب بزنند.
ادامه خطایی که بعد از حذف ستون j0 از A حاصل شده است. تا قبل از این مقدار Y-AX نزدیک صفر بود(کمترین مقدار ممکن با A فعلی بود)، اما حالا یک ستون از A حذف شده تا اثرش سنجیده شود. مقدار بهینه آن است که فرض کنیم همین ستون j0 از A به تنهایی قرار است کل خطای تقریب کل سیگنالها را جبران کند. لذا باید را بسازد تا 12.4 صفر شود.
ادامه بهینه سازی روی و انجام میشود. برخی از عناصر صفر هستند(متناظر با سیگنالهایی که از استفاده نکرده اند). ممکن است این عناصر تغییر کنند و کاردینالیتی را (که در مرحله قبل پایین آورده شده بود) بالا ببرند. برای جلوگیری از این امر، این عناصر را حذف میکنیم. متناظرا سیگنالهای مربوطه را از Y و و نهایتا ستونهای مربوطه از حذف میشوند. ستونهایی حذف میشوند که متناظر با سیگنالهایی هستند که از این استفاده نکرده اند. این کار با عملگر P انجام میشوند (حذف ستونهای مربوطه).
SVD روشی به نام SVD وجود دارد که بدین شرح است: هدف تقریب ماتریس زیر توسط ضرب دو بردار و است. روشی به نام SVD وجود دارد که بدین شرح است: the singular value decomposition of an m×n real or complex matrix M is a factorization of the form U is an m×m real or complex unitary matrix, (orthogonal matrix for real matrix M) Σ is an m×n rectangular diagonal matrix with nonnegative real numbers on the diagonal, and V* (the conjugate transpose of V ) is an n×n real or complex unitary matrix. The diagonal entries Σi,i of Σ are known as the singular values of M.
مثال SVD برای حل SVD از روشهای تکراری استفاده میشود.
الگوریتم K-SVD
طبقه بندی با sparse coding مسئله اساسی در الگوریتم های طبقه بندی: انتخاب ویژگی دیکشنری بزرگی از ویژگی های ممکن همزمان یا قبل از فاز تخمین پارامترها انتخاب ویژگی بهینه، NP-complete راه حل: تغییر تابع جریمه، لحاظ کردن شرط تنک بودن
Basis Pursuit Classification فرض: Φi : بردار ویژگی های ورودی θ : پارامترهای کلاسیفایر b : ترم بایاس Y=±1 تبدیل به مسئله مینمم کردن
طبقه بندی با sparse coding کدگذاری تنک نوعی بازسازی مناسب برای کاربردهای حذف نویز، تشخیص چهره روش های discriminative (LDA): مناسب برای طبقه بندی ادغام دو روش: مقابله با نویز، missing data، outlier تبدیل به روش state of art استفاده از Fisher برای ساخت دیکشنری هر دو مزیت لحاظ می شود.
Fisher و Sparse یکدیگر را یاری می کنند! مؤلفه های دیکشنری بر اساس برچسب کلاس ها ساخته می شوند از فرمول خطای بازسازی در کدگذاری تنک برای طبقه بندی می توان استفاده کرد. ضرایب کدینگ، within-class scatter پایین و between-class scatter بالایی دارند. یادگیری دیکشنری بر اساس روش KSVD برای کاربرد طبقه بندی مناسب نیست. از دیکشنری ساختار یافته استفاده می کند. D=[D1,…, Dc] به تعداد کلاس ها دیکشنری خواهیم داشت. where Di is the class-specified sub-dictionary associated with class i
ادامه Fisher و Sparse A=[A1, A2, …, Ac] the set of training samples, where Ai is the sub-set of the training samples from class i. X the coding coefficient matrix of A over D, i.e. A≈DX. We can write X as X = [X1, X2, …, Xc], where Xi is the sub-matrix containing the coding coefficients of Ai over D. D باید: A را بازسازی کند قدرت تمایز ایجاد کند.
چگونه فیشر و sparse با یکدیگر ترکیب شدند؟ ترم f(x): با این ترم اطمینان حاصل می شود که دیکشنری D روی نمونه های آموزشی A می تواند تمایز ایجاد کند. از معیار فیشر بدین منظور استفاده می کند. ترم r: اطمینان حاصل می کند که دیکشنری هر کلاس تنها می تواند نمونه های آموزشی یک کلاس تمایز ایجاد کند.
روش wright و همکاران در تشخیص چهره دو مسئله اساسی در تشخیص چهره: انتخاب ویژگی قدرت تحمل پوشش تصاویر در صورتی که تنک بودن به درستی لحاظ شود، دیگر انتخاب ویژگی مسئله مهم نخواهد بود. از همه مهم تر مسئله به یک مسئله convex تبدیل می شود.
ادامه... در این مسئله طبقه بندی، مؤلفه های دیکشنری خود داده های آموزشی هستند. بازنمایی تنک خواهد شد. arrange the given ni training samples from the i-th class as columns of a matrix Ai := [vi;1; vi;2; ...; vi;ni ] داده تست ترکیب خطی تنک نمونه های آموزشی خواهد شد. تمام نمونه های آموزشی را در کنار هم قرار می دهیم: ضرایب x0 تنها به ازای کلاسی که y به آن تعلق دارد، غیر صفر خواهد بود
ادامه A valid test sample y can be sufficiently represented using only the training samples from the same class تبدیل به: Ideally, the nonzero entries in the estimate x1 will all be associated with the columns of A from a single object class i, and we can easily assign the test sample y to that class. اما نویز دردسرساز می شود:
الگوریتم موفق SRC
آزمایش تأیید کننده روی پایگاه داده Extended Yale B با 1207 تصویر آموزشی و بقیه به عنوان داده تست انجام شده است. تصاویر به اندازه 12*10 تغییر داده شده اند : 120 ویژگی دیکشنری: 120*1207 برای نرم یک، نرم دو و داده outlier ضرایب x برای داده تست رسم شده اند.
نرم یک و نرم دو
داده outlier و robustness الگوریتم ارائه شده نسبت به outlier ها و occlusion مقاوم است.
جمع بندی رویکرد موفق در انتخاب ویژگی نمایش یک بردار ویژگی به صورت ترکیب خطی تعداد اندکی از مؤلفه های یک دیکشنری از قبل تعریف شده نرم یک شرط تنک بودن را فراهم می کند دیکشنری و ضرایب در فرمول کدگذاری تنک به طور جداگانه پیدا می شوند کدگذاری تنک به روش state-of-art در بسیاری از کاربردها تبدیل شده است
مراجع F. Bach. Consistency of the group Lasso and multiple kernel learning. Journal of Machine Learning Research, 9:1179–1225, 2008a. K. Huang and S. Aviyente. Sparse representation for signal classication. In Advances in Neural Information Processing Systems, Vancouver, Canada, December 2006. M. Leordeanu, M. Hebert, and R. Sukthankar. Beyond local appearance: Category recognition from pairwise interactions of simple features. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2007. J. Winn, A. Criminisi, and T. Minka. Object categorization by learned universal visual dictionary. In Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2005. J. Wright, A.Y. Yang, A. Ganesh, S.S. Sastry, and Y. Ma. Robust face recognition via sparse representation. IEEE Transactions on Pattern Analysis and Machine Intelligence, pages 210{227, 2009. M. Aharon, M. Elad, and A. M. Bruckstein. The K-SVD: An algorithm for designing of overcomplete dictionaries for sparse representations. IEEE Transactions on Signal Processing, 54(11):4311{4322, November 2006.
با تشکر از توجه شما The only stupid question is the one you were afraid to ask but never did. -Rich Sutton