شماهایی که از من بیشتر AI کار کردین میدونید که مفهومی وجود داره تحت عنوان «کاهش ابعاد» یا به همون اسم خارجکیش Dimension Reduction. این مفهوم میگه وقتی توی یه مسئلهی یادگیری ماشین تعداد ویژگیها(ورودیها) زیاد میشه دردسرهاش هم زیاد میشه. دردسرهایی مثل هزینهی پردازشی زیاد، همپوشانی ویژگیها و غیره. این مفهوم البته توی خیلی جاهای دیگه هم کاربرد داره و کلا هر جایی مسئلهای هست خب حتما سادهسازی مسئله هم هست. اما چرا باید ابعاد مسئله رو کم کنیم؟ اگه ابعاد مسئله رو کم کنیم(به نوعی داریم سادهسازی میکنیم) آیا مسئله خراب نمیشه؟ جزئیات مربوط به مسئله از بین نمیره؟
صحبت کردن در باب سادهسازی مسئله شاید یه ذره صحبت از بدیهیات باشه ولی اشارکی میکنیم.
این که شما بتونید فاکتورهای تعیینکنندهی مسئله رو کاهش بدید به شما کمک میکنه اون مسئله رو زودتر و با صرف منابع کمتری حل کنید. پیچیدگی مسئله رو کاهش بدید. همچنین میشه به راه حلی دست پیدا کرد که جنرالتره و قابل تعمیم به مسائل مشابه هم هست. گاهی حتی این سادهسازی باعث میشه مسئله قابل حل بشه و این خیلی مهمه.
اما سوال دوم: اگه ما ابعاد مسئله رو کاهش بدیم آیا مسئله گم نمیشه؟
جوابش اینه که چرا گم میشه. اما از یه جایی به بعد. این که شما بتونید ویژگیهایی رو پیدا کنید که حذف کردنشون(یا ادغام کردنشون) تاثیر چندانی روی مسئله نذاره واقعا هنره. جاهایی مثل ماشین لرنینگ براش تکنیکهای زیادی داره. مثلا یه چیزی مثل تحلیل حساسیت(فکر کنم بهش همبستگی یا ضریب همبستگی بالا هم بگن) میگه که اگه رفتار دوتا ویژگی خیلی شبیه به همه، احتمالا میتونی یکی از اونها رو حذف کنی. گاهی ممکنه حذف کردن یه ویژگی روی نتیجهی نهایی تاثیر داشته باشه آیا نباید اونو حذف کرد؟ اینجا برمیگردیم به مبحث شیرین هزینه/فایده. اگه اون ویژگی رو حذف کنی چی به دست میاری؟ و چی از دست میدی؟ ممکنه اون ویژگی رو حذف کنی یه بهبود خفنی هم روی سرعت حل حاصل بشه ولی از دقت مسئله ۳ درصد کم بشه. آیا این برای مسئلهی شما اوکیه؟ باید جواب این سوال رو پیدا کنید.
برای منی که از مهندسی نرمافزار سراغ هوش رفتم اما این مفهوم یادآور مفهوم شیرین «انتزاع» هم هست. چشم پوشی از جزئیات غیرضروری. ۱۰ ۱۲ سالی هست که توی این کارها هستم و این مدت به اندازهی خودم تکنیک و روش و مسئله و غیره دیدم. کلی هم متنوع بودن. اما چیزی که از مفهوم انتزاع و یا کاهش ابعاد به یاد من موند و توی زندگیم به کار گرفتم همیشه ثابت بوده.یاد گرفتم توی بحرانها و مشکلات زندگی یکی از اولین کارهایی که باید انجام بدم کاهش ابعاد اون مشکله.
چند نفر هستن که واقعا اون مشکل بهشون مرتبطه و توی اون مشکل تاثیرگذار هستن؟ یادم نمیاد در بحرانیترین حالت بیش از سه چهار نفر بوده باشن. چه چیزهایی روی اون مشکل زندگی من تاثیر داشتن و باید واقعا روشون فکر میکردم و ازشون برای حل مسئله کمک میگرفتم؟ کمتر از ۴تا غالبا. گاهی واقعا به این مرحله رسیدم که یکی از فاکتورها رو که حذف کردم تونستم مسئله رو حل کنم(تا قبل از اون حل نمیشد). باید سعی کنید به هر ویژگی به اندازهی تاثیرش وزن بدید نه بیشتر و نه کمتر(مگر آگاهانه و با هدف گردوندن بازی). وقتی توی مشکلی گیر میکنید یا میخواید تصمیم مهمی بگیرید یا کلا سردرگم میشین، یکی از اولین کارهایی که باید انجام بدید کاهش ابعاد مسئله است. سخته، جرات میخواد، جسارت میخواد ولی راهشه. یه سری چیزها رو از دید خودم میگم. چیزهایی که تجربهشون کردم و برای من هستن و لزوما ممکنه برای شما کار نکنن ولی خب بد نیست ببینید دیگه.
اگه الان درگیر مشکلی هستید(خانوادگی مخصوصا) یا در آینده درگیر مشکلی شدین. اول سعی کنید ذهنتون رو آروم کنید.بعدش یه کاغذ و قلم بیارید و شروع کنید به نوشتن فاکتورها و افرادی که این وضعیت بهشون ارتباط داره. دونه دونه بهشون نگاه کنید. چقدر این مشکل بهش مربوطه؟ ایا توی مشکلی بین شما و مادرتون دوستتون مهمه؟ خالهتون مهمه؟ اگه این مشکل حل بشه/نشه چه تاثیری روی این فرد داره؟ این فرد چه وزنی داره توی حل این مسئله؟ چقدر دردسر داره ایجاد میکنه؟ آیا توی تصمیم مهاجرتتون فلان فاکتور مهمه؟ چقدر مهمه؟ فلان حس مهمه؟ کجا مهمه؟ اگه نباشه چه تاثیری توی حل مسئله داره. اگه در نظرش بگیرم/نگیرم چی میشه؟
نوشتن این حرفها ساده است حقیقتش(سرعت تایپم هم بالاست سه سوت مینویسم) اما عملی کردنشون سخته.
بعضی موانعش رو هم بهتون میگم: گیج شدن توی اون شرایط، رودربایستی با افراد، پا گذاشتن روی تفکرات(که خودتم میدونی در اینجا چرت هستن و مهم نیستن ولی همراهتن)، گنگ بودن وزنهایی که میدیم و... . چطور این موانع رو رفع کردم؟ تمرین حقیقتش و تلاش در تقویت جهان بینی. التجربه الفوق العلم. مشورت گرفتن هم میتونه خیلی مفید باشه. مشورت کردن نه با پریسا جون و داش ممد. با آدم دانا. توی مشورت گرفتن یه چیزی برای من خیلی مشخص شده، این که باید طوری به طرف شرایط رو منتقل کنی و شرح بدی که طرف مخش سوگیری نکنه. پیش میاد که افراد میان پیش من برای مشورت(کارهای فنی یا مثلا مسائل اینچنینی) شرح مسئله رو که میگه درجا بهش میگم داداش تو اصلا نمیخوای مسئله حل بشه. چون طوری به من منتقل کردی که من هم کاملا نظر تو رو گرفتم. تو نیاز به مشورت نداشتی، نیاز به تایید داشتی. برای همین بهتون توصیه میکنم که حتما این مورد رو در نظر داشته باشید. اون فرد مشاور میتونه بهتون کمک کنه که ابعاد کموزن یا بیوزن رو راحتتر پیدا کنید و البته به ویژگیهای باقیمونده هم وزن مناسبی نسبت بدید.
کانال من: @lifeAsAService