720 likes | 1.51k Views
Sparse Coding کدگذاری تنک. مریم عبدالعلی بهار 90. فهرست مطالب. کدگذاری تنک چیست و چرا؟ کاربردها و دستاوردها مبانی کدگذاری تنک استفاده از کدگذاری تنک در بازشناسی استفاده از کدگذاری تنک در طبقه بندی خلاصه و جمع بندی مراجع. کدگذاری تنک چیست.
E N D
Sparse Codingکدگذاری تنک مریم عبدالعلی بهار 90
فهرست مطالب • کدگذاری تنک چیست و چرا؟ • کاربردها و دستاوردها • مبانی کدگذاری تنک • استفاده از کدگذاری تنک در بازشناسی • استفاده از کدگذاری تنک در طبقه بندی • خلاصه و جمع بندی • مراجع
کدگذاری تنک چیست • کدگذاری تنک: بردارهای داده را به صورت ترکیب خطی تعداد کمی از مؤلفه های یک دیکشنری overcomplete بیان می کند. • روش موفق در انتخاب ویژگی • تخمین با بعد پایین تر از یک سیگنال • برخلاف PCA لزومی بر متعامد یکه بودن مؤلفه های پایه • امکان adaptation وجود دارد
چرا کد گذاری تنک • Sparse code الهام گرفته از neural code است. • Neural coding چگونگی بازنمایی اطلاعات و حواس در مغز توسط شبکه ای از نورون ها را بررسی می کند. • اطلاعات توسط strong activation مجموعه ای کمی از نورون ها کد می شوند. • تنکی از لحاظ زمانی یا جمعیتی • ادعای جنجالی Olshausen و همکاران: • کدگذاری تنک تصاویر طبیعی نتایج مشابه (حتی بهتر) از فیلترهای 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: • Convex • جواب یکتا • فرم closed • ساده • لزوماً بهترین جواب نیست • نرم L1: • Convex • جواب تنک هرتابع که (مانند نرم های کمتر مساوی 1) نسب به محورها متقارن باشد، به طور یکنواخت غیر نزولی باشد، به طور یکنواخت شیب غیر صعودی داشته باشد، برای x>0، خلوت بودن را حفظ میکند.
با فرض داشتن دیکشنری α چگونه انتخاب شود؟ • Matching pursuit • Orthogonal Matching pursuit • LS-OMP • الگوریتم Lasso • الگوریتمFOCUSS
Matching Pursuit • روش حریصانه • یکی از روش های پایه ای عددی • به دنبال یافتن بهترین تطابق در تصویر کردن یک داده چندبعدی بر روی یک دیکشنری D است. • مؤلفه ای از دیکشنری را انتخاب می کند که بزرگ ترین ضرب داخلی با Dα-x را دارد.
الگوریتم Orthogonal Matching Pursuit • تنک بودن را قطعاً لحاظ می کند. • ضرایب α باید متعامد یکه باشند
MP و OMP • در OMP هر مؤلفه دیکشنری تنها یک بار می تواند انتخاب شود • پیاده سازی دشوارتری دارد • می توان DTD را یک بار اول الگوریتم پیاده سازی کرد • می توان DTr را برای هر سیگنالی از قبل محاسبه کرد • می توان تجزیه چلسکی را برای هر سیگنال از قبل محاسبه کرد هر دو روش تکراری محسوب می شوند
الگوریتم LS-OMP • الگوریتم بهبود یافته این که در هر بار که یک ستون انتخاب میشود، فرض نباشد که همین یک ستون باید خطا را تقریب زند، بلکه این ستون کاندید در کنار ستونهای قبلی انتخاب شده قرار است تقریب بزند و همه ضرایب ستونها هم یکجا محاسبه شود! • هزینه محاسباتی بالاتری هم دارد!
الگوریتم Lasso • Lasso مسئله تخمین تنک بودن را به یک مسئله محدب تبدیل می کند. • بهتر از الگوریتم های حریصانه تکراری • مشکل : نرم صفر • راه حل: تبدیل به نرم یک • معادله محدب بدست می آید • نرم یک با مقدار مؤلفه ها سر و کار دارد نه با تعداد • نرم یک کوچک ممکن است نرم صفر بزرگی باشد
ادامه Lasso • برای حل مسئله محدب حاصل از انواع روش ها می توان استفاده کرد: • [Boyd and Vandenberghe, 2004], [Nocedaland 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 وجود دارد که بدین شرح است: • 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×nrectangular 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 از روشهای تکراری استفاده میشود.
طبقه بندی با 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 isthe sub-matrix containing the coding coefficients of Ai overD. • Dباید: • A را بازسازی کند • قدرت تمایز ایجاد کند.
چگونه فیشر و sparse با یکدیگر ترکیب شدند؟ • ترم f(x): • با این ترم اطمینان حاصل می شود که دیکشنری D روی نمونه های آموزشی A می تواند تمایز ایجاد کند. • از معیار فیشر بدین منظور استفاده می کند. • ترم r: • اطمینان حاصل می کند که دیکشنری هر کلاس تنها می تواند نمونه های آموزشی یک کلاس تمایز ایجاد کند.
روش wright و همکاران در تشخیص چهره • دو مسئله اساسی در تشخیص چهره: • انتخاب ویژگی • قدرت تحمل پوشش تصاویر • در صورتی که تنک بودن به درستی لحاظ شود، دیگر انتخاب ویژگی مسئله مهم نخواهد بود. • از همه مهم تر مسئله به یک مسئله convex تبدیل می شود.