تعریف مسائل یادگیری ماشین (Machine Learning) – راهنمای کاربردی


تصوری غالب در میان فعالان حوزه «یادگیری ماشین» (Machine Learning) وجود دارد مبنی بر اینکه «یادگیری ماشین همان میزان که علم محسوب میشود هنر نیز هست». این موضوع صحت دارد. در این مطلب به چگونگی تعریف مسائل یادگیری ماشین پرداخته خواهد شد. شاید به نظر برسد که این کار امری بدیهی و بینیاز به انجام تلاش خاصی است، در حالیکه راهکار خاصی برای انجام این کار وجود دارد.
تعریف مساله یادگیری ماشین
مهمترین گامی که پژوهشگر باید به منظور تعریف یک مساله یادگیری ماشین بردارد آن است که از خود بپرسد: آیا من باور دارم که الگویی در میان دادهها وجود دارد؟ فرض اساسی در این راستا که همه مسائل یادگیری ماشین را تحت پوشش قرار میدهد «وجود داشتن الگو است». در واقع نمیتوان بدون تخممرغ املت پخت. اگر هیچ الگویی وجود نداشته باشد، پس کاری نیز برای انجام وجود ندارد. بنابراین، پیش از آغاز یک پروژه این پرسش باید مطرح شود که آیا الگویی وجود دارد یا خیر. طرح این پرسش در آغاز راه موجب میشود از برخی نگرانیها (مانند اینکه آیا اصلا مساله صحیح و یا قابل حل به وسیله یادگیری ماشین هست) ضمن انجام کار کاسته شود.
اگر پس از طرح این پرسش، پاسخ مبنی بر وجود داشتن الگو است، میتوان دست به کار شد و به حل مساله به وسیله یادگیری ماشین پرداخت. الگویی که باید به دنبال آن گشت تابع f است که ورودی X را به خروجی Y نگاشت میکند. این موضوع به صورت نمادین با f:XY نمایش داده میشود. البته، پژوهشگر تابع f را نمیداند و به دنبال یافتن آن است. این پرسش کلیت معمای یادگیری ماشین محسوب میشود: اگر الگوهایی وجود داشته باشند که نمیتوان آنها را مستقیما مشاهده کرد، پس چگونه میتوان دستکم آنها را تخمین زد؟
تعریف مساله به شیوه کارآگاهان
این کار را باید به شیوه کارآگاهان در گیر یک معمای پلیسی انجام داد. اگر f در پس شواهد و مشاهدات قرار دارد، میتوان چیزی که f شبیه آن است را ساخت. هر مشاهده یک ورودی xi =[x1,x2,…xd] Ɛ Rd (که در آن هر xi یک آرایه از اعداد حقیقی با طول d به شمار میآید) و خروجی مشاهده شده yi است.
به طور خلاصه، این مشاهدات {(x1,y1), (x2,y2)… (xn,yn)} مجموعه داده موجود D هستند. مساله آن است که حتی با این مشاهدات، یک عدد بینهایت از احتمالات میتواند آنها را تشریح کند. برای مثال، دریافت D با دو مشاهده موجودی که در ادامه آمدهاند را میتوان در نظر گرفت.
حدسهای خوبی میتوان درباره نوع تابع f برای این مشاهدات داشت. میتوان گفت به احتمال زیاد این تابع یک خط راست است.
این معنادارترین حالت ممکن است. اما چرا تابع f نمیتواند یک چندجملهای باشد؟
یا حتی تابعی پیچیدهتر مانند آنچه در تصویر زیر آمده باشد.
حقیقت آن است که هیچ دلیلی مبنی بر آنکه هر یک از توابع بیان شده غلط باشند وجود ندارد. اما آیا راهی برای مقایسه حالات ممکن و رسیدن به حقیقت وجود دارد؟ به زودی به این موضوع پرداخته خواهد شد، اما ابتدا تلاش میشود که فرضیه بر پایه آنچه احتمالا حقیقت است فرمولهسازی شود. در اینجا تلاش میشود برخی از نظریههایی (g) که به نظر میرسد بهترین هستند را از فضای نامتناهی از نظریات گوناگون (H) یافت.
چطور میتوان این کار را انجام داد؟ با کارآگاهی و البته الگوریتم A این کار انجامپذیر است. الگوریتم مسئول پیدا کردن فضای نظریه بسیار بزرگ متناهی H و یافتن معنادارترین گزینه است. آنچه در نهایت انتخاب میشود g است که تخمینی از تابع حقیقی f به دست میدهد. این تخمین به گونهای است که میتوان از آن (gf) استفاده کرد. این همه آنچه است که برای تعریف رسمی یک مساله یادگیری ماشین مورد نیاز محسوب میشود. در عین حال، توابع هدف ناشناخته f:XY نیز وجود دارد. مشخص نیست که f چیست، اما مثالهایی از ورودیها و خروجیهایی که D نامیده میشوند وجود دارد. بنابراین، تعداد نامتناهی از فرضیههای ممکن H وجود دارد که به آهستگی و تا هنگامی که فرضیهای که به اندازه کافی صحیح است (g) پیدا شود، کاهش پیدا میکنند.
حل معما
در فضای کارآگاهی موجود، عامل A شماری از شواهد D را برای تشخیص آنکه تابع f چیست دارد. A دارای دایره گستردهای از حالات ممکن H تا هنگامی است که گزینه مناسب یافت شود. البته در یادگیری ماشین هیچ وقت چنین تضمینی وجود ندارد (که یک گزینه بهترین حالت ممکن باشد)، اما میتوان گزینهای که بهترین حالت ممکن است را کشف کرد. اگر شواهد بیشتری موجود باشد، این امکان وجود دارد که بتوان به نتیجه دیگری رسید. این شانس نیز وجود دارد که گزینه اشتباهی انتخاب و منجر به وقوع یک فاجعه شود. در عمل، باید مشخص باشد که چه میزان خطا برای الگوریتم بر مبنای نیازمندیها قابل پذیرش است.
بنابر شواهد موجود، توابع گوناگونی وجود دارد، و هر یک از آنها ممکن است جنبهای کاملا متفاوت از دیگری را پوشش دهند. این اتفاق زمانی به وقوع میپیوندد که پژوهشگر الگوریتم مورد استفاده برای ارزیابی دادهها را تغییر میدهد. البته برای این کار باید هزینهای پرداخت و بنابراین باید الگوریتم را به صورت هوشمندانه برگزید. نکته قابل توجه آن است که باید با تخصیص زمان همه ظرافتهای ممکن را در هنگام کار روی بخش تئوری به خرج داد. این کار ممکن است زمانبر باشد، اما منجر به ساخت الگوریتم یادگیری ماشین بهتری میشود و این موضوع در صورت استفاده از الگوریتم برای مسائل جهان واقعی امری حیاتی محسوب میشود.
اگر مطلب بالا برای شما مفید بوده، آموزشهای زیر نیز به شما پیشنهاد میشود:
- گنجینه آموزشهای برنامه نویسی پایتون (Python)
- مجموعه آموزشهای آمار، احتمالات و دادهکاوی
- مجموعه آموزشهای یادگیری ماشین و بازشناسی الگو
- مجموعه آموزشهای شبکههای عصبی مصنوعی
- مجموعه آموزشهای هوش محاسباتی
- آموزش برنامهنویسی R و نرمافزار R Studio
- مجموعه آموزشهای برنامه نویسی متلب (MATLAB)
^^