یک عدد دانشجوی کامپیوتر/ علاقهمند به حوزه دیتا / توسعهدهنده وب
از «ویژگی» چه می دانید؟ (قسمت اول)
مروری بر مهندسی ویژگی و اهمیت آن + یک تجربه
همواره یکی از مهمترین علل اهمیت علم برای انسان قابلیت تجزیه و تحلیل و علت یابی پدیدهها و در ادامه آن پیشبینی رفتار آن پدیده با پارامترهای جدید و در شرایط متفاوت، بوده است.
فرآیند تحلیل در علم به صورت کلی به دو بخش مدلسازی شرایط و مدلسازی رفتار پدیده تقسیم می شود.
به طور مثال وقتی می خواهیم پیش بینی کنیم که یک جسم با سرعت ۲ متر بر ثانیه بعد از ۲ ثانیه چند متر جابهجا میشود، از معادله سرعت (سرعت*زمان = جابهجایی) استفاده می کنیم، در درجه اول پارامتری به نام سرعت برای جسم تعریف کرده (ملاکی برای سنجش مقدار شدت جابهجایی) و جسم را فارق از بقیه ویژگیهایش در سرعت خلاصه کرده و سرعتش را نیز در عدد «۲» و در مرحله دوم رفتار پدیده حرکت را در فرمول ریاضی سرعت مدل میکنیم؛
بدین ترتیب با وارد کردن مدل شرایط جدید در مدلِ پیشبینی رفتار پدیده، رفتار پدیده را در شرایط مد نظر(که هنوز اتفاق نیافتادهاست) پیشبینی می کنیم؛ و نیز همیشه از یک سطحی به پایین، همه مدلسازی ها در دنیای ریاضی اتفاق میافتد به دو دلیل، یک اینکه فعلا قویترین و بهترین ابزار تحلیل برای ما در علم ریاضیات است و برای استفاده از ریاضیات باید همه چیز را به زبان ریاضی ترجمه کرد و دلیل دوم نیز که شاید ناشی از دلیل اول باشد این است که، علم امروزه اساسا «کمّی» است و همه چیز را به صورت عدد و معادله و فرمول می بیند از فیزیک و نجوم گرفته تا بخش زیادی از علوم انسانی که تحلیل های خود را وارد دنیای آمار و احتمال می کند.
در اکثر موارد و در خیلی از مقاله ها و مطالب علمی، محققان و دانشجویان بیشتر به دنبال مدلسازی رفتار پدیده ها هستند و کمتر کسی به بررسی و تحقیق و دقت بر روی بخش اول می پردازد در حالی که اهمیت این بخش کمتر از بخش دوم نیست ولی به صورت سادهانگارانهای نادیده گرفته میشود.
مدلسازی علمی چیست؟
مدلسازی علمی یک فعالیت علمی است، که هدف آن در نظر گرفتن بخش خاصی و یا ویژگیهایی از جهان است که درک، تعیین، تعیین کمیت، تجسم، یا شبیهسازی و ارجاع شبیهسازی به دانش موجود پذیرفته شده قبلی را سادهتر کند. این کار به انتخاب و شناسایی جنبههای مرتبط یک وضعیت در دنیای واقعی نیاز دارد.
چرا مدلسازی؟
مدلسازی از آن جهت مهم است که همواره ما نمی توانیم پدیده ها را با تمامی ابعاد و ویژگی ها و ارتباطات آن با جهان و دیگر پدیده ها در نظر بگیریم برای همین گزینشی برخورد کرده و ویژگی هایی را که به نظرمان برای تحلیل رفتاری خاص موثر تر و مهم تر هستند را جدا کرده و فقط آن ها را در نظر می گیریم، به این طریق توانایی تحلیل، علتیابی و پیشبینی پدیدهها برایمان ایجاد خواهد شد. مثلا برای تحلیل رفتار یک توپ ما هیچ وقت نمی توانید شکل کامل آن را با رنگ و وزن و شکل واقعی هندسی در نظر بگیریم برای همین آن را گاهی به صورت یک دایره مدل می کنیم و گاهی با یک کره دایرهای (بسته به نیاز و تحلیل مورد نظرمان)؛ گاهی دایره جواب دلخواه ما را در تحلیل می دهد ولی گاهی مدل کره نیاز است؛ و این بدیهی است که کره، مدل دقیقتری برای یک توپ است چون ویژگیهای کمتری از خود پدیده هستند که در نظر گرفتهنشدهاند (مثل سهبُعدی بودن توپ).
در نتیجه، هر چه ویژگی های بهتر و دقیقتری داشته باشیم، مدلمان به واقعیت نزدیک تر است و این موضوع دو وجه دارد: یک اینکه احتمالا رفتاری که از آن می بینیم رفتاری دقیقتر است اما وجه دوم آن است که شبیهسازی و مدلسازی رفتار مدل پیچیدهتر سخت تر و پیچیده تر خواهد بود.
مهندسی ویژگی چیست؟
امروزه که اکثر مدلسازی ها به سمت مدلسازی های یادگیری ماشین رفته اند، دو رویکرد وجود دارد، یک ماشین را ما آموزش بدهیم (Supervised) دو اینکه ماشین خودش یاد بگیرد (َUnsupervised). در حالت دوم تمام فرایند های مدلسازی را خود ماشین و خود الگوریتم باید انجام دهد و در حالت اول انسان به صورت کلاسیک بخشی از این کار را برعهده میگیرد (مثل برچشب گذاری برروی داده ها)؛ اما ایدهآل این خواهد بود که انسان به ماشین بگوید که چطور می تواند خودش مدلسازی کند و یادبگیرد.
به عنوان مثال می خواهیم کاری کنیم که به توالی زمان نیاز دارد و مهم است که چه ماهی آن اتفاق افتاده است، برای همین (از آنجایی که باید مدل ریاضی باشد) عدد ماه(چندمین ماه سال بودن) را به به الگوریتم یادگیرنده مان می دهیم. ما می دانیم که این عددی که به مدل پیشبینی کننده دادهایم تفسیر چیست و مدل شده چیست، ما می دانیم که ۵ نمایانگر ماه مرداد است، مرداد در فصل تابستان است، فصل تابستان گرم است، فصل تابستان مدارس تعطیل هستند ما خیلی چیز ها از قبل، درباره عدد ۵ (به عنوان ماه) می دانیم ولی الگوریتم ما نمی داند، نمی فهمد. فرقی قایل نمیشود بین ماه ۵ یا ۵ نفر یا ۵ سال یا ۵ کتاب، فقط عدد ۵ را میبیند؛ این یعنی این که در این مدل سازی که ماه را به عدد مدل کردیم، داده های زیادی از دسترفته است (data lost زیاد بوده است). یعنی به عبارت دیگر وقتی ما(به عنوان انسان) عدد ۵ را برای ماه میبینیم، آن را با توجه به دانش قبلیای که داریم، تفسیر میکنیم و داده های از دسته رفته با استفاده از تفسیرمان بازیابی می کنیم؛
این در صورتی است که الگوریتم و مدل ما، نمی تواند این کار بکند، چون نه دانش قبلی دارد و نه می تواند خودش بر اساس آن تفسیر کند؛ برای همین ما می توانیم با مدلسازی و ارایه دانش قبلی خودمان به ماشین، دید ماشین به آن ویژگی را واقعیتر وکامل کنیم. برای مثال علاوه بر عدد ماه مورد نظر، اینکه آخر سال یا اول سال هست را نیز مدل می کنیم یا فصل آن ماه را نیز به مدل می دهیم یا احتمال تعطیلی در آن ماه یا…؛ با افزودن این داده های مدل شده جدید از روی داده های قبلی با یک ساختار تفسیری خاص، دقت پیش بینی رفتار پدیده بالاتر خواهد رفت و دید مدل پیشبینی کننده نسبت به پدیده جامع تر خواهدشد.
نظر شما درباره اهمیت «مهندسی ویژگی» چیست؟
در قسمت بعد داستان یک تجربه را با هم دنبال خواهیم کرد...
مطلبی دیگر از این انتشارات
هوش مصنوعی به کجا می رود؟
مطلبی دیگر از این انتشارات
تحلیل شبکههای اجتماعی در داده کاوی
مطلبی دیگر از این انتشارات
آیا الگوریتم ها می توانند خلاقیت داشته باشند؟