//
Card image cap

الگوریتم‌های موثر در پیش‌بینی با استفاده از یادگیری ماشین

در دنیای امروز، عبارت "یادگیری ماشین" (Machine Learning) به طور گسترده در دانشگاه‌ها و صنایع، به ویژه در زمینه‌های "تحلیل‌های پیش‌بین" و "هوش مصنوعی" مورد استفاده قرار می‌گیرد. یادگیری ماشین به کامپیوترها این امکان را می‌دهد که بدون نیاز به برنامه‌ریزی مشخص، اطلاعات را فراگیری کرده و الگوهای مختلف را تشخیص دهند. این مسئله از طریق استفاده از الگوریتم‌ها به وقوع می‌پیوندد.

در واقع، کلید این فرآیند در الگوریتم‌ها مخفی است. الگوریتم‌ها مجموعه‌هایی از قوانین هستند که کامپیوترها می‌توانند از آن‌ها پیروی کنند. به عنوان مثال، روش تقسیم اعداد صحیح یکی از الگوریتم‌ها است که برای انجام این عمل از آن استفاده می‌شود. افراد عموماً با استفاده از این الگوریتم اعداد را از سمت چپ تقسیم می‌کنند و تا زمانی ادامه می‌دهند که باقیمانده (باقیمانده تقسیم بر مقسوم‌علیه) برابر با صفر شود.

الگوریتم‌ها در واقعیت به صورت پیچیده‌تر و کامل‌تری پیاده‌سازی می‌شوند. در حین انجام تحلیل‌های پیش‌بین، از الگوریتم‌های پیش‌بینی بهره‌گیری می‌شود که به کمک آن‌ها، کامپیوترها قادر به انجام محاسبات به سرعت و دقت بالاتری نسبت به انسان‌ها هستند. در ادامه، به خلاصه‌ای از برترین الگوریتم‌های مورد استفاده در تحلیل‌های پیش‌بین می‌پردازیم.

یادگیری ماشین چگونه است؟

در حوزه یادگیری ماشین، هدف اصلی پیش‌بینی یا خوشه‌بندی داده‌ها است. در این مقاله، به بررسی جنبه‌های پیش‌بینی متمرکز می‌شود. پیش‌بینی یک فرآیند است که با استفاده از مجموعه‌ای از ویژگی‌های ورودی، ما به تخمین مقدار یک ویژگی خاص در خروجی می‌پردازیم. به عنوان مثال، با تحلیل ویژگی‌های یک خانه، می‌توان قیمت آن را پیش‌بینی کرد. مسائل پیش‌بینی به دو دسته‌بندی اصلی تقسیم می‌شوند: "رگرسیون" و "دسته‌بندی".

  1. رگرسیون:

    • در مسائل رگرسیون، متغیری که باید پیش‌بینی شود، یک مقدار عددی است، به عنوان مثال، قیمت یک خانه.
  2. دسته‌بندی:

    • در مسائل دسته‌بندی، از متغیرها برای پیش‌بینی تعلق به یک یا چند دسته از پیش تعریف شده استفاده می‌شود. این دسته‌ها ممکن است مثبت یا منفی باشند، به عنوان مثال، پیش‌بینی اینکه آیا یک قطعه مکانیکی دچار نقص فنی خواهد شد یا خیر.

این مقاله به معرفی برخی از محبوب‌ترین و برجسته‌ترین الگوریتم‌های پیش‌بینی در زمینه یادگیری ماشین می‌پردازد. این الگوریتم‌ها به سه دسته اصلی تقسیم می‌شوند: "مدل‌های خطی"، "مدل‌های مبتنی بر درخت" و "شبکه‌های عصبی".

همچنین لازم به ذکر است که این مقاله به منظور آموزش یا فراگیری علم داده نیست؛ بلکه هدف آن ارائه یک معرفی کلی از الگوریتم‌های پرکاربرد در زمینه یادگیری ماشین است.

مدل‌های خطی

استفاده از یک مدل خطی با یک فرمول ساده برای یافتن بهترین برازش در مجموعه‌ای از نقاط داده، به پیشینه‌هایی با بیش از ۲۰۰ سال تاریخچه بازمی‌گردد. این روش‌ها امروزه به طور گسترده در حوزه‌های آمار و یادگیری ماشین استفاده می‌شوند.

مدل‌های خطی به دلیل سادگی و کارآیی بسیار مناسب برای تحلیل‌های آماری محسوب می‌شوند. در این مدل‌ها، متغیری که می‌خواهیم پیش‌بینی کنیم (متغیر وابسته) به عنوان یک معادله از متغیرهای شناخته‌شده (متغیرهای مستقل) مدل می‌شود. بنابراین، پیش‌بینی نهایی تنها به متغیرهای ورودی مستقل و معادله‌ای که پاسخ را تولید می‌کند بستگی دارد.

برای مثال، اگر فرد بخواهد زمان پخت یک کیک را بر اساس وزن خمیر و نوع آن (شکلاتی یا غیرشکلاتی) پیش‌بینی کند، می‌تواند از تحلیل‌های رگرسیون استفاده کند. به عنوان مثال، یک معادله ممکن است به صورت زیر باشد: t = 0.5x + 0.25y. در اینجا، t زمان پخت کیک به ساعت، x وزن خمیر به کیلوگرم، و y متغیری است که اگر کیک شکلاتی باشد برابر با ۱ و اگر غیرشکلاتی باشد برابر با ۰ است.

با قرار دادن مقادیر متغیرها در معادله، می‌توان زمان پخت کیک را برآورد کرد. به عنوان مثال، اگر فرد یک کیلوگرم خمیر کیک شکلاتی داشته باشد، با قرار دادن مقادیر x=1 و y=1 در معادله، می‌تواند مقدار t را به دست آورد. برای این مثال، t = (0.5 x 1) + (0.25 x 1) = 0.75 ساعت یا ۴۵ دقیقه است.

رگرسیون خطی

«رگرسیون خطی» (Linear Regression) یا به طور مشخص‌تر «رگرسیون کم‌ترین مربعات» (Least Squares Regression) استاندارترین شکل یک مدل خطی است. برای مساله رگرسیون، رگرسیون خطی ساده‌ترین و قابل فهم‌ترین نوع مدل‌های خطی محسوب می‌شود. اشکال این روش آن است که گرایش به «بیش‌برازش» (Overfit) کردن مدل دارد.

 

بیش‌برازش به بیان ساده یعنی مدل بیش از اندازه با داده‌های برچسب‌دار آموزش داده شود و خروجی‌هایی عینا مثل داده‌های آموزش به دست دهد که مانعی در راه عمومی‌سازی مدل محسوب می‌شوند. به همین دلیل، رگرسیون خطی (همراه با رگرسیون لوجستیک که در ادامه به آن پرداخته خواهد شد) در یادگیری ماشین اغلب «تنظیم» (regularized) می‌شوند، بدین معنا که مدل در صورت انجام بیش‌برازش دارای جریمه مشخصی خواهد شد. دیگر اشکال مدل رگرسیون خطی سادگی بسیار زیاد آن است که موجب می‌شود هنگام پیش‌بینی رفتارهای پیچیده‌تر که متغیرهای ورودی در آن‌ها مستقل نیستند دچار مشکل می‌شود.

رگرسیون لوجستیک

رگرسیون لوجستیک تطبیق دادن رگرسیون خطی برای مسائل دسته‌بندی است. مشکلات رگرسیون لوجستیک درست مانند رگرسیون خطی است با این تفاوت که این روش گرایش زیادی نیز به بیش برازش دارد.

از آنجا که این رگرسیون مقادیر بین ۰ و ۱ را نگاشت می‌کند، راهکار مناسبی برای مسائل دسته‌بندی است، زیرا احتمال وجود داشتن نقاط داده در هر کلاس را به دست می‌دهد.

مدل‌های مبتنی بر درخت

اغلب افراد هنگامی که عبارت «مدل‌های مبتنی بر درخت» را می‌شنوند، «درخت تصمیم» (Decision Trees) را به خاطر می‌آورند که دنباله‌ای از عملیات انشعابی است.

درخت تصمیم

درخت تصمیم گرافی است که از روش انشعابی برای نمایش کلیه خروجی‌های ممکن برای یک تصمیم استفاده می‌کند. برای مثال، فرد برای سفارش یک سالاد، ابتدا نوع کاهو، سپس چاشنی و در نهایت سس روی آن را انتخاب می‌کند. می‌توان همه خروجی‌های ممکن را در درخت تصمیم ارائه کرد. در یادگیری ماشین، انشعاب‌های استفاده شده پاسخ‌های دودویی بله/خیر هستند.

 

برای آموزش دادن درخت تصمیم، مجموعه داده آموزش (train data set) از ورودی دریافت می‌شود (که مجموعه داده‌ای است که برای آموزش دادن مدل مورد استفاده قرار می‌گیرد) و متغیرهایی که مجموعه داده آموزش را به بهترین شکل منشعب می‌کنند با توجه به هدف انتخاب می‌شوند. برای مثال، در تشخیص کلاهبرداری، می‌توان ویژگی(هایی) را پیدا کرد که به بهترین شکل خطر کلاهبرداری در یک کشور را پیش‌بینی می‌کند.

پس از اولین انشعاب دو زیرمجموعه حاصل می‌شوند، سپس منشعب کردن بر اساس دومین ویژگی برای هر زیر مجموعه تکرار می‌شود و این کار تا هنگامی که از تعداد کافی از متغیرها برای ارضای نیازهای کاربر استفاده شده باشد ادامه پیدا می‌کند. درخت‌های تصمیم در صورت مشخص بودن اولین ویژگی در انجام پیش‌بینی عالی هستند.

جنگل‌های تصادفی

یک جنگل تصادفی میانگینی از تعداد بسیار زیادی درخت تصمیم است که هر یک با نمونه‌ای تصادفی از داده‌ها آموزش داده شده‌اند. هر درخت تنها در کل جنگل از یک درخت تصمیم کامل ضعیف‌تر است، اما با کنار هم قرار گرفتن همه آن‌ها، به لطف تنوع خروجی‌ها کارایی کلی بهتری حاصل می‌شود.

 

جنگل تصادفی امروزه یکی از محبوب‌ترین الگوریتم‌های یادگیری ماشین محسوب می‌شود. آموزش دادن این مدل بسیار آسان و کارایی آن خوب محسوب می‌شود. مشکل این الگوریتم آن است که برای ارائه پیش‌بینی‌های خروجی نسبت به دیگر الگوریتم‌ها کندتر عمل می‌کند، بنابراین ممکن است هنگام نیاز به پیش‌بینی‌های خیلی سریع از این روش استفاده نشود.

گرادیان بوستینگ

روش «گرادیان بوستینگ» (Gradient Boosting)، نیز مانند جنگل تصادفی از درخت‌های تصمیم «ضعیف» استفاده می‌کند. تفاوت بزرگ این دو روش آن است که در روش گرادیان بوستینگ درخت‌ها یکی پس از دیگری آموزش داده می‌شوند. هر درخت زیرمجموعه در درجه اول با داده‌هایی که به اشتباه توسط درخت پیشین پیش‌بینی شده‌اند آموزش داده می‌شوند. این امر موجب می‌شود مدل کمتر بر مسائلی که پیش‌بینی در آن‌ها آسان است و بیشتر روی موارد پیچیده متمرکز شود.

شبکه‌های عصبی

شبکه عصبی به پدیده بیولوژیکی مربوط می‌شود که شامل «نورون‌های» (Neurons) متصلی است که به مبادله پیام با یکدیگر می‌پردازند. این ایده در حال حاضر در جامعه یادگیری ماشین پذیرفته شده و به آن «شبکه‌های عصبی مصنوعی» (Artificial Neural Networks) گفته می‌شود.

«یادگیری عمیق» (Deep learning) که یکی از مباحث داغ روز است را می‌توان با چندین لایه از شبکه‌های عصبی روی هم قرار گرفته پیاده‌سازی کرد.

شبکه‌های عصبی مصنوعی خانواده‌ای از مدل‌ها هستند که آموخته‌اند مهارت‌های شناختی را کسب کنند. هیچ الگوریتم دیگری نمی‌تواند وظیفه فوق‌العاده پیچیده‌ای همچون «بازشناسی تصویر» (Image Recognition) را به خوبی شبکه‌های عصبی انجام دهد. اگرچه، درست مانند مغز انسان، زمان زیادی لازم است تا این مدل آموزش ببیند و نیازمند توان محاسباتی زیادی نیز هست (همانطور که میزان خوراک مصرفی انسان برای حفظ عملکرد مغز قابل توجه است).

 



نظرات

برای ثبت نظر لطفا وارد حساب کاربری شوید

ورود / ثبت نام