آموزش تحلیل مولفه اساسی یا PCA در متلب - قسمت دوم
با سلام
خب در این قسمت قصد داریم استفاده از تکنیک PCA را توی یه پروژه توضیح بدیم :
فرض کنید شما تو فاز استخراج ویژگی، یه سری ویژگی رو بدست آوردین، الان میخواین ابعاد این ویژگی ها رو کاهش بدین. خب شروع میکنید به نوشتن یه تابع برای PCA و بردار ویژگی هاتون رو هم به عنوان ورودی بهش میدین.
حالا داخل تابع چی بنویسیم؟ فاز اول میانگین گیری هستش، از چی؟ از همون بردار ویژگی که به عنوان ورودی بهش دادین. بعد از این باید اختلاف بردار ویژگی رو از بردار میانگین بدست بیارین.
فاز دوم محاسبه ی کواریانس، ماتریس کواریانس یه ماتریس N*N هستش، میتونیم از این ماتریس K تا بردار ویژه رو بدست بیاریم. واسه همین از تابع eig استفاده میکنیم، چون ایشون بردار ویژه و مقادیر ویژه رو از یه ماتریس واسمون فرآهم میکنن.
فاز سوم تغییر مختصات، الان ما بردار ویژه و مقادیر ویژه رو داریم، پس داده هامون رو میبریم به مختصات جدید، پس از دستور diag استفاده میکنین.
خب پس در کل به این نتیجه رسیدیم که بردارهای ویژگی N بعدی براساس K بردار مشخصه، به فضای K بعدی نگاشت میشن.
حالا خروجی تابع PCA، به عنوان ورودی به شبکه عصبی (مثلا تو پروژتون از شبکه عصبی استفاده کردین) داده میشه واسه آموزش شبکه.
راستی یه فیلم آموزشی فارسی در زمینه ی PCA هست، که میتونین از لینک زیر تهیه کنید :
http://faradars.org/courses/mvrnn9102mn-principal-component-analysis-pca-in-matlab




















































اکثر ما موفقیت را قله ای دور از دسترس می بینیم و این گاهی باعث می شود هیچ تمایلی به سعی و تلاش از خود نشان ندهیم. چرا سختی بکشیم وقتی به هر حال این راه طی می شود و به پایان می رسد؟ این تصور از پیروزی اشتباه و مهلک است. اینشتین روز و شب تلاش کرد و بر کاستی ها و مسائل علم فیزیک غلبه کرد اما نه یک شبه! هدفی غایی در ذهن داشت و می دانست با هر گامی که به جلو بر می دارد یک قدم به آن چه در ذهنش دارد نزدیکتر می شود. کار کوچکی که در یک زمان محدود انجام می دهی شاید به نظر بزرگ و مهم نرسد اما بدان که در مقیاس بزرگتر حرکتی است کوچک در مسیری طولانی به سوی هدفی بزرگ !