چرا کاهش بعد (feature conditioning ) در پروژه های شناسایی الگو امکانپذیر است؟
در یک سیستم شناسایی الگو، کاهش بعد در مرحله چهارم بین طبقهبندی و استخراج ویژگی قرار میگیرید و هدفش کاهش تعداد ویژگی های استخراج شده میباشد تا کار تصمیم گیری را برای طبقهبند تسهیل کند. در این بخش میخواهیم این مسئله رو بررسی که کنیم چرا کاهش بعد(feature conditioning ) امکان پذیر است؟
همانطور که میدانیم یک سیستم شناسایی الگو از 5 مرحله اساسی تشکیل شده است و هر کدام از این مراحل اهمیت زیادی در نتیجه نهایی میگذارند. در جلسه قبل در مورد اهمیت پیش پردازش و حذف اطلاعات مشترک صحبت کردیم، حال در این بخش میخواهیم اهمیت feature conditioning را بررسی کنیم و به سوالی که پرسیدیم جواب بدهیم.
چرا میخواهیم کاهش بعد (feature conditioning) انجام دهیم؟
برای اینکه کار تصمیم گیری را برای طبقهبند تسهیل کنیم و طبقه بند خاصیت generalization داشته باشد. میخواهیم روی sample کار کنیم منتهی در جمعیت جواب بگیریم! چرا که در پروسه آموزش ما داده محدودی داریم و میخواهیم براساس همین داده محدود یک سیستمی طراحی کنیم که در عمل برای همه داده ها درست کار کند. یعنی طبقه بند بتواند در داده های جدید هم خوب عمل کند. هر چقدر طبقه بند ساده تر باشد، امکان اینکه generalized شود بسیار زیاد است و هر چقدر طبقهبند پیچیده باشد، از خاصیت generalization فاصله میگیرد.
اگر تعداد ویژگی ها کم باشد پارامترهای طبقهبند کم خواهد بود، در نتیجه یک طبقه بند سادهای خواهد بود و خاصیت generalization خوبی خواهد داشت.
پس ما برای اینکه کار طبقه بند را ساده تر بکنیم، لازمه که تعداد ویژگیهای کمتری، در عین حال ویژگیهای مناسبی را به طبقه بند ارائه دهیم. ولی ما معمولا در مرحله استخراج ویژگی تعداد زیادی ویژگی استخراج میکنیم، چرا که یک مسئله پیچیدهای داریم و دقیق نمیدانیم که چه پارامتری از داده استخراج کنیم، برای همین تا جایی که میتوانیم پارامترهای مختلفی از داده ورودی استخراج میکنیم و ممکنه ابعاد بردار ویژگی خیلی بالا برود و لازم بشه تعدادی از این ویژگیها را به نحوی کم کنیم!
آیا حذف تعدادی از ویژگیها باعث از بین رفتن اطلاعات مفید نمیشود؟!
ما در مرحله استخراج ویژگی، ویژگیهای زیادی از داده استخراج میکنیم، که ممکن است در بین ویژگیهای استخراج شده، ویژگی های نا مناسب هم استخراج شوند. که نه تنها کمکی به مدل نمیکنند بلکه ابعاد رو بالا برده اند و کار تصمیم گیری را برای طبقه بی دلیل سخت کرده اند!
چه ویژگی هایی را میتوانیم حذف کنیم؟
- حذف ویژگیهای مربوط به نویز
در بین ویژگیهای استخراج شده، ممکن است ویژگیهایی باشند که مربوط به اطلاعات نویزی داده باشند و نه تنها اطلاعاتی در مورد مجهول مسئله(لیبل داده ورودی) نمیدهند! بلکه برای ماشین نیز گمراه کننده هستند و از ابعاد بردار ویژگی را زیاد کردند، پس بهتره حذف بشوند! پس ما مجاز هستیم ویژگی های مربوط به اطلاعات نویزی را حذف کنیم!
- حذف ویژگیهای خنثی
ممکن است در بین ویژگیهای استخراج شده، ویژگی هایی باشند که مرتبط با مسئله باشند، ولی اطلاعاتی که به مدل ارائه ندهند. برای مثال ویژگی استخراج شده در بین گروهای مختلف مقدار یکسانی داشته باشد. داشتن این ویژگی کمکی به طبقهبند در تفکیک کلاسها نمیکند! به عبارتی طلاعاتی در مورد مجهول مسئله(لیبل داده ورودی) ارائه نمیدهند! فقط ابعاد رو زیاد کردند، پس بهتره حذف بشوند! مثل ویژگی رنگ، در مسئله دو کلاسه سیب قرمز و گوجه فرنگی! پس مجاز هستیم ویژگیهایی که مفید نیستند را حذف کنیم!
- حذف اطلاعات تکراری
ممکن است در بین ویژگی های استخراج شده، ویژگی هایی داشته باشیم که اطلاعات یکسانی در مورد مسئله به طبقه بند ارائه دهند!
برای مثال فرض کنید که در بین ویژگیها دو تا ویژگی وجود دارد که اطلاعات مهمی دارند، ولی اطلاعات یکسانی در مورد مسئله به طبقهبند ارائه میدهند! چه یکی از اینها را استفاده کنیم و چه هر دوی آنها برای طبقهبند فرقی نخواهد کرد! چرا که هر دو ویژگی اطلاعاتشون یکسان است! و لزومی هم نداره جنس دو ویژگی یکی باشه، ممکن است هر کدام از ویژگی ها در یک حوزهای متفاوت استخراج شده باشد، ولیاطلاعات یکسانی ارائه بدهند!
پس در چنین مواقعی مجاز هستیم که یکی از این ویژگیها را حذف کنیم و مشکلی به وجود نخواهد آمد، چرا که میزان اطلاعاتی که این ویژگی ارائه میدهد توسط ویژگی که حفظ شده به مدل ارائه میشود.
یا مثلا در یک مسئلهای 4 تا ویژگی استخراج کردهاید، سه تا ویژگی اول، هر کدام مقداری اطلاعات در مورد مجهول مسئله ارائه میدهند! ولی ویژگی چهارم اطلاعات جدیدی را به مسئله اضافه نمیکند! اطلاعات دارد ولی میزان اطلاعاتی که این ویژگی ارائه میدهد، توسط سه ویژگی اول ارائه میشود. هر کدام بخشی از اطلاعات ویژگی چهارم را ارائه میدهند. به عبارتی وقتی این ویژگی را کنار سه ویژگی اول قرار میدهیم، اطلاعاتی به صورت مسئله اضافه نمیشود، پس حذف این ویژگی تاثیری در نتیجه کار نمیگذارد و اینجا هم مجاز هستیم که این ویژگی را حذف کنیم!
در پست بعدی، در مورد انواع روشهای feature conditioning و تفاوت آنها صحبت خواهیم کرد.
اگر علاقه مند به یادگیری تخصصی مباحث feature conditioning هستید، به فصل کاهش بعد(feature mapping) و فصل انتخاب ویژگی (feature selection) دوره جامع شناسایی الگو و یادگیری ماشین را نگاه کنید. در هر فصل تعداد زیادی از الگوریتمهای feature conditioning از پایه بصورت تخصصی و همچنین پروژه محور آموزش داده شده است.
دیدگاه ها