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

رضا حاتمی رضا حاتمی
آخرین تاریخ ویرایش : ۱۵ بهمن ۱۴۰۳
20 دقیقه
2 نظر
یادگیری ماشین یا ماشین لرنینگ

یادتون هست که تو مقاله «هوش مصنوعی چیست؟» گفتیم که قصد داریم بر اساس معتبرترین منابع (کتب دانشگاهی) مسئله هوش مصنوعی رو براتون بشکافیم؟ اونجا یه مطلب کلی داشتیم در رابطه با هوش مصنوعی و حالا توی این مقاله قصد داریم مسئله یادگیری ماشین رو براتون باز کنیم.

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

تو این مطلب ممکنه کلمات و عبارات کلیدی زیادی ببینین؛ اما لطفا پنیک نکنین و با این دیدگاه پیش برین که تمام این مفاهیم جدید [که بعضا نمی‌شه در چهارچوب این مقاله بازشون کرد چون مبحث زیادی تخصصی می‌شه] همه سرنخ‌هایی هستن برای یادگیری بیشتر هوش مصنوعی که باید آهسته‌آهسته با هم پیش بریم و فرا بگیریم. اگه حوصله مطالعه کل مطلب رو ندارین، این یک پاراگراف رو به‌عنوان تعریف ساده‌ای از مبحث یادگیری ماشین بپذیرین:

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

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

این پاراگراف رو در ادامه در ۵ بخش زیر بسط می‌دیم:

  • یادگیری از مثال‌ها
  • دانش در یادگیری
  • یادگیری مدل‌های احتمالی
  • یادگیری عمیق
  • یادگیری تقویتی

برای این که حجم مطلب بیش از اندازه زیاد نشه، تعریف و چیستی هوش مصنوعی رو دیگه تکرار نمی‌کنیم؛ بنابراین اگه احساس می‌کنین نیاز به مقدمه بیشتری دارین، لطفا مقاله «هوش مصنوعی چیست؟» رو مطالعه کنین. خوندنش تقریبا ۲۰ دقیقه زمان می‌بره؛ ولی ارزشش رو داره. حالا بریم سراغ یادگیری ماشین…

۱. یادگیری از مثال‌ها

تو این بخش، می‌خوایم ببینیم یادگیری ماشین چیه و بیشتر سراغ یادگیری نظارت‌شده می‌ریم که با مثال‌ها کار می‌کنه. بعدش هم کلی مفهوم مهم رو توضیح می‌دیم.

یادگیری چیه و چطوری انجام می‌شه؟

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

𝑦 = ℎ(𝑥)

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

چالش یادگیری: دقت در برابر سادگی

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

درخت تصمیم و یادگیری قوانین

درخت تصمیم یه روش رایج برای یادگیری از داده‌هاست. این مدل می‌تونه همه توابع منطقی (Boolean) رو نمایش بده. یه الگوریتم به اسم «اطلاعات-کسب‌شده» (Information Gain) کمک می‌کنه تا یه درخت ساده و سازگار با داده‌ها بسازیم.

ارزیابی عملکرد یه مدل یادگیری

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

انتخاب مدل مناسب

بعضی وقت‌ها چندتا مدل مختلف برای حل یه مسئله وجود داره. تو این موارد، انتخاب مدل خیلی مهمه. این کار با تنظیم پارامترهایی به اسم فراپارامترها (Hyperparameters) انجام می‌شه. یه روش رایج برای پیدا کردن بهترین مقادیر این پارامترها، اعتبارسنجی متقابله (Cross-validation)‌. بعد از انتخاب مقادیر مناسب، مدل نهایی رو با استفاده از همه داده‌های آموزشی می‌سازیم.

همه خطاها به یه اندازه مهم نیستند

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

پیچیدگی محاسباتی در یادگیری ماشین

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

مدل‌های پایه‌ای یادگیری ماشین

  • رگرسیون خطی: این مدل برای پیش‌بینی مقادیر عددی استفاده می‌شه. پارامترهای بهینه این مدل یا مستقیماً از طریق فرمول‌های ریاضی محاسبه می‌شن، یا با استفاده از روشی به اسم گرادیان نزولی (Gradient Descent) به‌دست میان.
  • پرسپترون (Perceptron): این مدل یه نوع دسته‌بندی‌کننده خطیه که با یه قانون ساده به‌روزرسانی وزن‌ها، داده‌هایی رو که به‌طور خطی از هم جدا می‌شن، یاد می‌گیره. ولی اگه داده‌ها کاملاً قابل تفکیک نباشن، این روش به مشکل می‌خوره.
  • رگرسیون لجستیک: این روش نسخه بهبود‌یافته پرسپترونه که به‌جای استفاده از مرز تصمیم‌گیری سخت، از یه تابع لجستیک استفاده می‌کنه که امکان کار با داده‌های پیچیده‌تر و همراه با نویز رو فراهم می‌کنه.

مدل‌های غیرپارامتری

بعضی مدل‌ها سعی نمی‌کنن داده‌ها رو با یه تعداد مشخص از پارامترها خلاصه کنن، بلکه برای هر پیش‌بینی، از کل داده‌ها استفاده می‌کنن. روش‌هایی مثل نزدیک‌ترین همسایه‌ها (Nearest Neighbors) و رگرسیون وزن‌دار محلی (Locally Weighted Regression) نمونه‌هایی از این مدل‌ها هستن.

ماشین‌های بردار پشتیبان (SVM)

این مدل‌ها سعی می‌کنن یه مرز تصمیم‌گیری پیدا کنن که بیشترین فاصله رو بین دسته‌های مختلف ایجاد کنه. این فاصله بیشتر کمک می‌کنه که مدل روی داده‌های جدید بهتر عمل کنه. اگه داده‌ها به‌طور خطی قابل تفکیک نباشن، روش‌هایی مثل هسته‌ها (Kernel Methods) داده‌ها رو به یه فضای جدید منتقل می‌کنن که تو اون تفکیک‌پذیری آسون‌تره.

روش‌های ترکیبی (Ensemble Methods)

بعضی وقت‌ها ترکیب چندتا مدل مختلف، نتیجه‌ای بهتر از استفاده از یه مدل تنها می‌ده. دو روش معروف تو این زمینه بگینگ (Bagging) و بوستینگ (Boosting) هستن. تو یادگیری آنلاین، از این ایده استفاده می‌شه که نظرات چندتا مدل رو ترکیب کنیم تا عملکرد کلی به بهترین مدل ممکن نزدیک بشه، حتی اگه داده‌ها مدام تغییر کنن.

فرایند کامل ساخت یه مدل یادگیری ماشین

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

۲. دانش در یادگیری

تو این بخش، بررسی می‌کنیم که چطور داشتن یه دانش اولیه می‌تونه به یه سیستم کمک کنه تا از تجربه‌های جدید بهتر یاد بگیره. تو خیلی از موارد، این دانش اولیه به شکل مدل‌های رابطه‌ای (Relational Models) بیان می‌شه، نه مدل‌هایی که فقط بر اساس ویژگی‌ها (Attributes) ساخته شدن. پس علاوه بر روش‌های معمول یادگیری، سیستم‌هایی که می‌تونن مدل‌های رابطه‌ای رو یاد بگیرن هم بررسی شدن. تو ادامه، نکات کلیدی این موضوع رو توضیح می‌دیم.

چطور دانش اولیه به یادگیری کمک می‌کنه؟

وقتی یه سیستم تو طول زمان دانش بیشتری به‌دست میاره، توانایی یادگیریش هم بهتر می‌شه. این فرایند، یه تصویر کلی از یادگیری تجمعی (Cumulative Learning) رو نشون می‌ده که توش، یادگیری‌های قبلی باعث می‌شن یادگیری‌های جدید سریع‌تر و مؤثرتر باشن.

دانش اولیه به دو روش اصلی به یادگیری کمک می‌کنه:

۱. کاهش تعداد فرضیه‌های ممکن: وقتی اطلاعات اولیه‌ای داشته باشیم، می‌تونیم خیلی از فرضیه‌های غیرضروری رو حذف کنیم و فقط روی گزینه‌های معقول‌تر تمرکز کنیم.

۲. تکمیل توضیح مثال‌ها: دانش قبلی کمک می‌کنه تا توضیحی برای داده‌های جدید بسازیم و فرضیه‌هایی کوتاه‌تر و مؤثرتر تولید کنیم. این کار باعث می‌شه سیستم بتونه با تعداد کمتری از نمونه‌ها، سریع‌تر یاد بگیره.

نقش منطقی دانش قبلی در یادگیری

تو یادگیری، دانش اولیه نقش‌های منطقی مختلفی بازی می‌کنه که با استفاده از محدودیت‌های استنتاجی (Entailment Constraints) تعریف می‌شن. شناخت این نقش‌ها می‌تونه به توسعه روش‌های یادگیری متنوع کمک کنه.

روش‌های استفاده از دانش اولیه در یادگیری

۱. یادگیری مبتنی بر توضیح (EBL – Explanation-Based Learning)

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

۲. یادگیری مبتنی بر ارتباطات (RBL – Relevance-Based Learning)

تو این روش، دانش اولیه به شکل تعیین‌کننده‌های ارتباطی (Determinations) به سیستم داده می‌شه. این تعیین‌کننده‌ها کمک می‌کنن تا سیستم تشخیص بده که کدوم ویژگی‌ها تو یادگیری مهم‌ترن. با این کار، فضای فرضیه‌ها کاهش پیدا کرده و یادگیری سریع‌تر می‌شه. علاوه بر این، RBL به سیستم اجازه می‌ده که از یه مثال منفرد، تعمیم‌های قیاسی انجام بده.

۳. یادگیری استقرایی مبتنی بر دانش (KBIL – Knowledge-Based Inductive Learning)

تو این روش، سیستم تلاش می‌کنه فرضیه‌های استقرایی (Inductive Hypotheses) رو پیدا کنه که بتونن مجموعه‌ای از مشاهدات رو با کمک دانش پس‌زمینه توضیح بدن. این رویکرد، ترکیبی از یادگیری استقرایی و استفاده از اطلاعات قبلی برای تولید مدل‌های بهتره.

برنامه‌نویسی منطق استقرایی (ILP – Inductive Logic Programming)

ILP یه روش برای انجام یادگیری استقرایی مبتنی بر دانشه (KBIL)‌ که اطلاعات رو تو قالب منطق مرتبه اول (First-Order Logic) بیان می‌کنه. در حالی که خیلی از سیستم‌های یادگیری سنتی از مدل‌های مبتنی بر ویژگی استفاده می‌کنن، ILP می‌تونه دانش رابطه‌ای رو یاد بگیره، یعنی دانشی که با روابط بین اشیا سروکار داره، نه فقط ویژگی‌های منفرد.

روش‌های مختلف ILP

دو روش کلی برای اجرای ILP وجود داره:

  • رویکرد از بالا به پایین (Top-Down): اول یه قاعده کلی خیلی عمومی تعریف می‌شه و بعد اصلاح و محدود می‌شه تا با داده‌های موجود هماهنگ بشه.
  • رویکرد از پایین به بالا (Bottom-Up): این روش برعکس روش بالا به پایینه، از داده‌های خاص شروع کرده و سعی می‌کنه قواعد کلی رو از طریق وارونه‌سازی فرایند استنتاجی (Inverting Deduction) استخراج کنه.

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

۳. یادگیری مدل‌های احتمالی

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

یادگیری بیزین (Bayesian learning) و استنباط احتمالاتی

روش‌های یادگیری بیزین، یادگیری رو به‌عنوان یه نوع استنباط احتمالاتی مدل‌سازی می‌کنن. تو این رویکرد، داده‌ها برای به‌روزرسانی توزیع پیشین فرضیه‌ها استفاده می‌شن. این روش امکان پیاده‌سازی تیغ اوکام (Ockham’s Razor) رو فراهم می‌کنه که توش فرضیه‌های ساده‌تر ترجیح داده می‌شن. اما اگه فضای فرضیه‌ها خیلی پیچیده باشه، این روش می‌تونه محاسباتی‌تر و غیرقابل انجام بشه.

یادگیری MAP (حداکثر احتمالات پسین)

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

یادگیری بیشینه احتمال (Maximum Likelihood)

تو این روش، فرضیه‌ای انتخاب می‌شه که بیشترین احتمال رو برای داده‌ها فراهم می‌کنه. این روش معادل یادگیری MAP‌ هستش، اما با یه توزیع پیشین یکنواخت (uniform prior). تو موارد ساده‌ای مثل رگرسیون خطی و شبکه‌های بیزین قابل مشاهده کامل، راه‌حل‌های بیشینه احتمال به‌راحتی به‌صورت بسته (closed form) پیدا می‌شن. یکی از تکنیک‌های مؤثر تو این زمینه، یادگیری بیزین ساده (Naive Bayes)‌ هست که توی مسائل مختلف عملکرد خوبی داره و مقیاس‌پذیره.

یادگیری با متغیرهای مخفی و الگوریتم EM

وقتی بعضی از متغیرها مخفی باشن، می‌شه از روش الگوریتم انتظارات بیشینه (EM) برای پیدا کردن حلول بیشینه احتمال محلی استفاده کرد. این روش تو کاربردهایی مثل خوشه‌بندی بدون نظارت (unsupervised clustering) با استفاده از ترکیب‌های گوسی (mixtures of Gaussians)، یادگیری شبکه‌های بیزین و یادگیری مدل‌های مارکوف مخفی (hidden Markov models) خیلی مفیده.

یادگیری ساختار شبکه‌های بیزین

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

مدل‌های غیرپارامتری

مدل‌های غیرپارامتری توزیع‌ها رو با استفاده از مجموعه داده‌ها نمایش می‌دن. تو این مدل‌ها، تعداد پارامترها با افزایش مجموعه داده‌های آموزشی بیشتر می‌شه. دو روش رایج تو این زمینه عبارتند از:

  • روش‌های نزدیک‌ترین همسایه‌ها (Nearest Neighbors): این روش‌ها به نزدیک‌ترین داده‌ها نگاه می‌کنن تا پیش‌بینی انجام بدن.
  • روش‌های هسته‌ای (Kernel Methods): این روش‌ها ترکیب وزنی از فاصله‌ها بین همه داده‌ها می‌سازن.

تحقیقات در یادگیری آماری

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

۴. یادگیری عمیق

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

شبکه‌های عصبی و توابع غیرخطی پیچیده

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

الگوریتم بازگشتی (Backpropagation)

الگوریتم بازگشتی یا همون back-propagation یه روش برای انجام کاهش شیب (Gradient Descent) تو فضای پارامترهاست که هدفش کم کردن مقدار تابع هزینه (Loss Function)‌ هست. این الگوریتم از روش‌هایی برای اصلاح وزن‌ها و پارامترهای شبکه عصبی استفاده می‌کنه تا به بهترین مدل ممکن برسه.

کاربردهای یادگیری عمیق

یادگیری عمیق تو خیلی از زمینه‌ها عملکرد خیلی خوبی داره، مثلاً:

  • شناسایی اشیاء بصری (Visual Object Recognition)
  • شناسایی گفتار (Speech Recognition)
  • پردازش زبان طبیعی (Natural Language Processing)
  • یادگیری تقویتی (Reinforcement Learning) تو محیط‌های پیچیده.
  • شبکه‌های کانولوشنی (Convolutional Networks)

شبکه‌های کانولوشنی برای پردازش تصویر و کارهای دیگه‌ای که داده‌ها ساختار شبکه‌ای (Grid Topology) دارن، خیلی مناسبن. این شبکه‌ها به‌طور خاص تو پردازش تصاویر، تشخیص ویژگی‌ها و شناسایی الگوهای بصری خیلی خوب عمل می‌کنن.

شبکه‌های بازگشتی (Recurrent Networks)

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

۵. یادگیری تقویتی

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

طراحی عامل و نوع اطلاعات یادگرفتنی

نوع طراحی عامل تعیین می‌کنه که چه نوع اطلاعاتی باید یاد گرفته بشه:

  • عامل یادگیری تقویتی مبتنی بر مدل: این عامل یه مدل از انتقال وضعیت (P(s₀|s,a برای محیط به‌دست میاره یا با اون تجهیز می‌شه و یه تابع سود (U(s یاد می‌گیره.
  • عامل یادگیری تقویتی بدون مدل: این عامل ممکنه یه تابع سود عملیاتی (Q(s,a یا یه سیاست (π(s یاد بگیره.

روش‌های یادگیری سود

سودها رو می‌شه با چندین روش مختلف یاد گرفت:

  • ارزیابی مستقیم سود: از مجموع پاداش‌های مشاهده‌شده برای یه وضعیت خاص به‌عنوان مدرک مستقیم برای یادگیری سود اون وضعیت استفاده می‌کنه.
  • برنامه‌ریزی پویا تطبیقی (ADP): این روش یه مدل از محیط و تابع پاداش رو از مشاهدات یاد می‌گیره و بعد از تکرار ارزش یا سیاست برای به‌دست آوردن سودها یا سیاست بهینه استفاده می‌کنه.
  • روش‌های تفاوت زمانی (TD): این روش‌ها تخمین‌های سود رو طوری تنظیم می‌کنن که با تخمین‌های وضعیت‌های جانشین همخوانی بیشتری داشته باشن. این روش‌ها می‌تونن به‌عنوان تقریب‌های ساده از رویکرد ADP دیده بشن که می‌تونن بدون نیاز به مدل انتقال یاد بگیرن. استفاده از یه مدل یادگرفته‌شده برای تولید تجربیات جعلی می‌تونه باعث یادگیری سریع‌تر بشه.

یادگیری توابع سود عملیاتی یا Q-function

توابع سود عملیاتی یا Q-functions می‌تونن توسط روش‌های ADP یا TD یاد گرفته بشن. تو یادگیری TD، Q-learning نیازی به مدل تو مرحله یادگیری یا انتخاب عمل نداره. این ساده‌سازی مشکل یادگیریه، اما ممکنه توانایی یادگیری تو محیط‌های پیچیده رو محدود کنه، چون عامل نمی‌تونه نتایج اقدامات احتمالی رو شبیه‌سازی کنه.

تعادل بین کاوش و بهره‌برداری

وقتی عامل یادگیرنده مسئول انتخاب اقداماته، باید بین ارزش تخمینی این اقدامات و پتانسیل یادگیری اطلاعات جدید مفید، تعادل برقرار کنه. پیدا کردن راه‌حل دقیق برای مشکل کاوش امکان‌پذیر نیست، اما بعضی از هورستیک‌های (heuristics – اکتشافی) ساده می‌تونن عملکرد مناسبی داشته باشن. همچنین، عامل کاوش‌گر باید مراقب باشه تا از مرگ زودهنگام اجتناب کنه.

فضاهای حالت بزرگ و یادگیری تقویتی عمیق

تو فضاهای حالت بزرگ، الگوریتم‌های یادگیری تقویتی باید از یه نمایش تقریبی برای U(s) یا Q(s,a) استفاده کنن تا بتونن روی حالت‌ها تعمیم بدن. یادگیری تقویتی عمیق، که از شبکه‌های عصبی عمیق به‌عنوان تقریب‌زننده‌های توابع استفاده می‌کنه، تو حل مسائل پیچیده موفقیت‌های قابل توجهی داشته.

شکل‌دهی پاداش و یادگیری تقویتی سلسله‌مراتبی

شکل‌دهی پاداش و یادگیری تقویتی سلسله‌مراتبی برای یادگیری رفتارهای پیچیده مفیدن، به‌ویژه وقتی که پاداش‌ها کم باشن و توالی‌های طولانی از اقدامات برای به‌دست آوردن پاداش‌ها لازم باشه.

روش‌های جستجوی سیاست

روش‌های جستجوی سیاست به‌طور مستقیم روی یه نمایش از سیاست عمل می‌کنن و سعی دارن اون رو بر اساس عملکرد مشاهده‌شده بهبود بدن. تنوع در عملکرد تو یه دامنه تصادفی می‌تونه مشکل‌ساز باشه؛ تو دامنه‌های شبیه‌سازی‌شده، این مشکل می‌تونه با تثبیت تصادفی از پیش برطرف بشه.

یادگیری از طریق مشاهده رفتار متخصص

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

  • یادگیری تقلیدی (Imitation Learning): این مشکل رو به‌عنوان یادگیری نظارت‌شده یه سیاست از جفت‌های حالت-عمل متخصص فرموله می‌کنه.
  • یادگیری معکوس تقویتی (Inverse Reinforcement Learning): اطلاعات پاداش رو از رفتار متخصص استنتاج می‌کنه.

پژوهش و پیشرفت‌های یادگیری تقویتی

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

رویکردهای مختلف یادگیری تقویتی

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

نظر شما چیه؟

می‌دونیم که این مطلب به‌خاطر این همه کلمه و عبارت کلیدی تخصصی ممکنه کمی قلمبه‌سلمبه به نظر بیاد؛ اما نگران نباشین، همین که مطالعه کردین و تا اینجا پیش اومدین، در واقع اصل کار انجام شده و حالا شما دانش نسبی بهتری در رابطه با یادگیری ماشین (نسبت به دیگران) دارین.

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

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

اشتراک گذاری
ثبت نظر
نظرات کاربران
ناهید
1 هفته قبل

جالبه مفهوم پرسپترون رو اولین بار یه روانشناس آمریکایی گفته

1پاسخ برای این کامنت
عاطفه آجلی
5 روز قبل

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