به نام خدا Sparse Coding ستاره فرامرزپور 120728399 1
فهرست مطالب مقدمه... 0 برخی کاربردها... 0 4... تنک: کدگذاری مبانی تجزیه معادله تنک:... 5 6...:α Sparse پیدا ه یا الگوریتم کردن ضریب یادگیری ه یا روش دیکشنری:... 93 تنک:...95 کدگذاری با بندی طبقه 96...:Sparse ترکیب Fisher و منابع:...97 2
مقدمه کدینگ تنک با توجه به داده های ورودی بدون برچسب یک کالس از الگوریتم ها برای پیدا کردن بازنمایی مختصر از داده فراهم می کند. توابع پایه ای مورد استفاده قرار می گیرد که بتواند ویژگی های سطح باالی داده را یاد دهند. پیدا کردن کدهای تنک مشکل دشوار محاسباتی دارد. هنگامی که یک الگوریتم کدگذاری تنک روی تصاویر طبیعی به کار رود کاری شبیه سلول های عصبی در قشر بینایی انسان انجام می دهد. کد گذاری تنک می تواند یک مدل بازدارنده بین پایگاه های sparsify باشد مشابه سلول های عصبی بیولوژیکی بنابراین کد گذاری تنک یک مدل قابل قبول از قشر بینایی می باشد. عالوه بر این کدگذاری تنک زمانی که برای سایر داده ها از قبیل صوت و ویدیو بکار رود یک پایگاه داده محلی تولید می کند. کدگذاری تنک بردارهای داده را به صورت ترکیب خطی تعداد کمی از مولفه های یک دیکشنری overcomplete بیان می کند و یک روش موفق در انتخاب ویژگی می باشد. برخالف برخی از تکنیک های دیگر آموزش بدون ناظر مانند PCA از کدگذاری تنک می توان برای یادگیری مجموعه های پایه overcomplete که هر یک از مجوعه های پایه در آن بزرگتر از ابعاد ورودی ست استفاده کرد. در واقع تخمینی از یک سیگنال را با بعد پایین تری ارائه می دهد. با وجود کارایی باال این مدل توسعه آن با هزینه محاسباتی باالیی امکان دارد. برخی کاربردها پردازش تصویر: حذف نویز لبه یابی حذف تاری فشرده سازی تصویر شناسایی چهره کدگذاری تنک به صو رت بهتری انجام می پذیرد. ردیابی اشیا کالس بندی و.. از طریق :Tranform coding 3
نوعی فشرده سازی اطالعات است و بیشتر در داده هایی مثل صوت و تصویر استفاده می شود. هدف از این فشرده سازی کاهش حجم داده که این داده پهنای باند مورد استفاد می باشد. بر اساس نوع application اطالعات اضافی حذف می شوند. این حذف ممکن است از دست دهنده باشد یعنی با انجام عملیات معکوس این فشرده سازی داده اصلی به درستی بازگردانده نشود. اگر از بازنمایی خلوت استفاده کنیم می توانیم این عملیات معکوس را با تامین کردن بازگرداندن درست داده اصلی انجام دهیم. :Sparse PCA در PCA ترکیب خطی از متغیر ها PC به طوری پیدا می شوند که واریانس داده ها در آن راستا بیشتر باشد. این کار سبب می شود تحلیل روی داده های با ابعاد کمتر ساده تر انجام شود. در Sparse PCA تالش می شود بردارهای خلوتی پیدا شوند که از آنها برای ترکیب خطی متغیرها استفاده شود به همان صورت که به منظور افزایش واریانس استفاده می شود. در نتیجه ی این کار احتماال برخی از متغیرها کنار گذاشته می شوند و روشی تنک بکار برده می شود. مبانی کدگذاری تنک: در کد گذاری تنک یک تصویر یا یک سیگنال را به صورت ضرب یک دیکشنری در ضرایب α در نظر می گیریم: m*p مجموعه ای از مولفه های پایه ( دیکشنری ) است ماتریسی D و بردار تنک آلفا که sparse code نامیده می شود. این بردار به گونه ای انتخاب می شود که Dα تقریب بهتری برای سیگنال باشد. در نتیجه بی نهایت ضرایب α می تواند وجود داشته باشند که x را تولید کنند. 4
برای بهینه انجام شدن کد گذاری تنک به دیکشنری احتیاج داریم که مینیمم باشد برای پیدا کردن دیکشنری مینیمم می توان از فرمول زیر استفاده کرد: معموال φ(aj) را نرم 0 یا نرم 1 در نظر می گیریم: برای یک دیکشنری D ثابت برای هر Sparse coding j را به صورت زیر محاسبه می کنیم: معادله تجزیه تنک: هدف ما بدست آوردن تقریب بهینه ای از سیگنال است در واقع باید اختالف این تقریب و سیگنال مینیمم باشد به شرط آنکه تنک بودن را لحاظ کنیم می توان از ضریب الگرانژ برای این بهینه سازی به صورت زیر استفاده کنیم: 5 تعداد مجهوالت بیشتر از تعداد معلوم ها می باشد. اگر x در محدوده پوشش ستون های D نباشد جواب ندارد و در غیر این صورت دارای بی نهایت جواب می باشد. برای مطمئن شدن از داشتن جواب شرایط زیر را اضافه می کنیم:
ستون های D کل فضای n بعدی را پوشش می دهند. دیکشنری full rank matrix باشد. تعداد سطر های D از تعداد ستون ها بیشتر باشد. - - - تابع شرط: ѱ(α) تنک بودن را لحاظ می کند بهترین گزینه استفاده از نرم ها برای شرط تنک بودن می باشد. هرتابع که )مانند نرم های کمتر مساوی 9( نسب به محورها متقارن باشد به طور یکنواخت غیر نزولی باشد به طور یکنواخت شیب غیر صعودی داشته باشد برای 0<x خلوت بودن را حفظ میکند. تعریف نرم: نرم صفر تنک بودن را قطعا لحاظ می کند ولی به دلیل محدب نبودن نرم صفر و ماهیت گسسته آن به راحتی قابل حل نمی باشد. نرم 9 شرط محدب بودن و تنکی جواب را دارا می باشد. نرم 2 شرط محدب بودن و تنکی جواب را دارد عالوه بر آن جواب یکتا دارد ساده است و فرم closed ولی لزوما بهترین جواب نیست. است الگوریتم های پیدا کردن ضریب α: Sparse Matching pursuit Orthogonal Matching pursuit LS-OMP الگوریتم Lasso 6
الگوریتم FOCUSS الگوریتم :Matching Pursuit در این الگوریتم از روش حریصانه استفاده شده است یکی از روش های پایه ای عددی است که در آن به دنبال یافتن بهترین تطابق در تصویر کردن یک داده چند بعدی بر روی یک دیکشنری D است و در آن مولفه ای از دیکشنری را انتخاب می کند که بزرگ ترین ضرب داخلی را با Dα-x دارد. الگوریتم :Orthogonal Matching Pursuit این الگوریتم تنک بودن را قطعا لحاظ می کند و ضرایب α باید متعامد یکه باشند. 7
الگوریتم های MP و :OMP در OMP هر مولفه دیکشنری تنها یک بار می تواند انتخاب شود و پیاده سازی دشوارتری دارد عالوه بر آن هر دو روش تکراری محسوب می شوند. الگوریتم :)OMP(The Orthogonal-Matching-Pursuit 8
الگوریتم :LS-OMP این الگوریتم بهبود یافته OMP است در هر بار که یک ستون انتخاب می شود خطا با این ستون در کنار ستون های قبلی انتخاب شده تقریب زده می شود و همه ضرایب ستون ها یک جا محاسبه می شود در نتیجه هزینه محاسباتی باالتری نسبت به بقیه دارد. الگوریتم :Lasso این الگوریتم مسئله تخمین تنک بودن را به یک مسئله محدب تبدیل می کند و از الگوریتم های حریصانه ی تکراری بهتر عمل می کند به دلیل محدب نبودن نرم 3 از نرم 9 استفاده می کند. الگوریتم :FOCUSS از روشی با نام (IRLS) Iterative-Reweighed-Least-Squares وزن دار استفاده میکند. برای تقریب زدن نرم صفر توسط نرم 2 9
این مساله محدب است و با تابع الگرانژ قابل حل است. علت اینکه تالش کردیم تا نرم p را به صورت نرم 2 بیان کنیم این است که نرم های کمتر از 9 هنگام مشتق گیری از تابع الگرانژ توان منفی برای x ایجاد میکنند که حل آن درد سر بیشتری دارد و در برخی نقاط هم تحلیلی نیست به لحاظ هندسی هم نرم های کمتر از 9 نقاط غیر تحلیلی دارند که احتماال جواب بهینه در نزدیک همان نقاط است. نرم صفر نیز قابل مشتق گیری نیست. روش های یادگیری دیکشنری: Brute-force search.9 تمام حالت های ممکن برای دیکشنری را در نظر می گیرد نا ممکن 10
به عنوان base line :K-means-like.2 MOD K_SVD 0. نمونه های آموزشی الگوریتم :MOD معادله زیر غیر محدب می باشد مینیمم کردن در دو مرحله انجام می شود گامی که A را مینیمم می کند گام به روز رسانی دیکشنری نامیده می شود و از روی داده های آموزشی انجام می شود. در هر گام ابتدا دیکشنری A را مینیمم می کنیم و سپس تعداد صفرهای x را مینیمم می کند. X تمام داده های آموزشی را کنار هم قرار می دهیم معادله Y=AX را ایجاد می کنیم. در گام k: Y تمام ضرایب مجهول را هم کنار هم قرار می دهیم A(k-1) بدست آمده از گام قبلی استفاده می شود و معادله برای تمام Yi ها بر اساس روش های قبلی گفته شده حل می شود ( دیکشنری ثابت فرض می شود(. A(k) از ماتریس X(k) بدست آمده دیکشنری با حداقل کردن مربع خطا بدست می آوریم: 11
الگوریتم (MOD) :Method of Optimal Directions الگوریتم :K-SVD 12
13
ستون های A یکی یکی تغییر می یابد. هر دو بردار تغییر می کنند تا عبارت داخل پرانتز را تقریب بزنند. خطایی که بعد از حذ ف ستون j0 از A حاصل شده است. تا قبل از این مقدار Y-AX نزدیک صفر بود ( کمترین مقدار ممکن با A فعلی بود ( اما حاال یک ستون از حذف شده تا اثرش سنجیده شود. مقدار بهینه آن است که فرض کنیم همین ستون j0 از است کل خطای تقریب کل سیگنالها را جبران کند. لذا باید بهینه سازی روی A A به تنهایی قرار Ej0 بسازد. و aj0 x T jo انجام می شود. برخی از عناصر x T jo صفر هستند) متناطر با سیگنالهایی که aj0 استفاده نکرده اند(. ممکن است این عناصر تغییر کنند و کار دینالیتی را که در مرحله قبل پایین آورده شده بود باال ببرند. x T j0 برای جلوگیری از این امر این عناصر را حذف می کنیم متناظرا سیگنالهای مربوطه را از Y و نهایتا و ستون های مربوطه از Ej0 حذف می شوند. ستون هایی حذف می شوند که متناظر با سیگنالهایی هستند که از این aj0 p انجام می شود. :SVD هدف تقریب ماتریس زیر توسط ضرب دو بردار شود. و aj0 استفاده نکرده اند. این کار با عملگر x T j0 است. برای حل آن از روش های تکراری استفاده می 14
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. طبقه بندی با کدگذاری تنک: در طبقه بندی انتخاب ویژگی پیدا کردن دیکشنری بزرگی از ویژگی های ممکن همزمان و یا قبل از فاز تخمین پارامترها مسائلی هستند که با آنها روبرو هستیم. ویژگی انتخاب شده باید بهینه باشد و برای پیدا کردن این ویژگی می توان به جای تابع جریمه شرط تنک بودن را لحاظ کنیم. کد گذاری تنک نوعی باز سازی می باشد و به همین دلیل می توان برای حذف نویز و تشخیص چهره از آن استفاده کرد. 15
ترکیب Fisher و :Sparse از Fisher برای ساخت دیکشنری استفاده می کنیم. مولفه های دیکشنری بر اساس برچسب کالس ها ساخته می شوند از فرمول خطای بازسازی در کدگذاری تنک برای طبقه بندی می توان استفاده کرد. یادگیری دیکشنری بر اساس روش K-SVD برای کاربرد طبقه بندی مناسب نیست بنابراین از دیکشنری ساختار یافته استفاده می کنیم و به تعداد کالس ها دیکشنری خواهیم داشت. where Di is the class-specified sub-dictionary associated with class i A=[A1, A2,, Ac] the set of training samples, where Ai is the sub-set of the training samples from class i. 16
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 را بازسازی کند و قدرت تمایز ایجاد کند. ترم :f(x) با این ترم اطمینان حاصل می شود که دیکشنری D روی نمونه های آموزشی A می تواند تمایز ایجاد کند. از معیار فیشر بدین منظور استفاده می کند. ترم r: اطمینان حاصل می کند که دیکشنری هر کالس تنها می تواند نمونه های آموزشی یک کالس تمایز ایجاد کند. 17
Lee, H., Battle, A., Raina, R. and Y. Ng, A. Efficient sparse coding algorithms. Computer Science Department. منابع: Grosse, R., Raina, R., Kwong, H. and Y. Ng, A. 2007. Shift-Invariant sparse coding for audio classification. Journal of UAl. Rubinstein, R., M. Bruckstein, A. and Elad, M. 2010. Dictionaries for sparse representation modeling. Proceending of the IEEE, 98:6. Sivaram, G. S. V. S., Nemala, S. K., Elhilali, M., Tran, T. D. and Hermansky, H. 2010. Sparse coding for speech recognition. Journal of ICASSP. Ekanadham, Ch. 2007. Sparse deep belief net models for visual area V2. Lee, H. 2010. Unsupervised feature learning via sparse hierarchical representations. 18