برای فهمیدن هر مطلبی می شه یک سری سوال پرسید... البته بعضی سوالها اساسی تر و مهمتر از بقیه سوالها هستند.... یافتن و پرسیدن این سوالات می تونه خیلی در یادگیری موثر باشه...
برای مثال در همین یادگیری تقویتی (اسم یک درس هست) شاید بشه سوال کرد:
- فرق یادگیری تقویتی با یادگیری باناظر چیه؟
- چه مسایلی رو میشه با یادگیری تقویتی حل کرد؟
- از کجا بفهمم که چه مسیله ای رو با یادگیری تقویتی حل کنم؟
- چه جوری مسیله رو مدل کنم و به کامپیوتر بدم... چه گامهایی باید برداشته بشه...
- و ...
بعد از نوشتن این سوالات می شه تک تک توی اینترنت دنبال جواب هر کدوم گشت...اینطوری بحثهایی که در مورد کنجکاوی داشتیم هم پوشش داده میشه...
حتی می شه از برخی سوالات اساسی به سوالات اساسی تر رسید. مثلا
- کلا کامپیوتر چه نوع مسایلی رو می تونه حل کنه
- اصلا مسیله یعنی چی؟
- راه حل یعنی چی؟
- تقسیم بندی مسایل به چه شکلی است؟
- قضیه چی؟!
البته شاید برای جواب به این سوالات باید قضیه رو کمی انتزاعی کنی... مثلا کامپیوتر چیه؟ می شه گفت وسیله ای برای پردازش داده...و خروجی پردازش داده معمولا اطلاعات هست... و خروجی پردازش اطلاعات دانش هست... دانش هم شاید دانستن اینکه در هر وضیعتی چه کاری انجام بشه...
و یا مسیله رو بشه یک نگاشتی از یک ورودی به یک خروجی تعریف کرد (مثل یک رابطه یا یک تابع)... حتی یک تابع می تونه فرمول مشخصی نداشته باشه و یک جدول باشه... اما خروجیها می تونند روی محیط اثر بگذارند ... اثرات می تونند با عث تغییر محیط بشن... تغیر محیط می تونه برای ما مطلوب یا نا مطلوب باشه... تغییر محیط ممکنه جواب یک مسیله باشه...
مثلا در چت بات ها جوابهایی که داده میشه انگار محیط رو عوض می کنه و آیا کاربر نهایتا احساس مطلوبی از پاسخ نهایی خواهد داشت و یا از کل چت...
اینکه کامپیوتر یا یک ماشین چه اعمالی رو می تونه انجام بده بسته به محرکهاش داره...
اینکه کامپیوتر یا یک ماشین چه درکی می تونه داشته باشه بستگی به حسگرها و پردازشها و الگوریتمهای شناسایی وضیت می تونه داشته باشه...
در کل کامپیوتر خودش یک عامل هوشمند هست... ربات یک نوع عامل هوشمند هست... برنامه چیه؟ برنامه یک سری دستورات هست که وقتی تک به تک اجرا بشن جوابی رو به ما تولید کنند... جواب می تونه هدف باشه... و برنامه یک برنامه ریزی برای رسیدن به هدف... و راههای رسیدن به یک هدف یکی نیست... اعمال چکار می کنند؟ اعمال حالت محیط رو عوض می کنند و مثلا حالت حافظه رو عوض می کنند .... تغییر حالات خودش حاوی اطلاعات هست... یعنی همون پردازش داده و یا نمایش و تغییر نمایش ...نمایشی که برای ما اطلاعات بیشتری دارد....و یه جورهایی به نظریه زبانها و ماشینها و یا نظریه تورینگ برمی گرده... تعریف ماشین... نظریه اتوماتاها... رفتن از یک حالت به حالت دیگه...
اما سوال بعدی اینه که آیا این انتزاع یعنی همه مسایل؟ حداقل احتمالا ۸۰ یا ۹۰ درصد مسایلی که ما باهاش درگیر هستیم به این شکل هست... البته اگر mdp باشه ظاهرا مسایلی هستند که mdp نیستند و نیاز به .... اینها همشون مدل هستند یعنی خود mdp هم یک دسته یا کلاس مسایل رو پوشش میده...
برمی گردی به اینکه برنامه چیه... ما همه چیز برنامه رو خودمون می نویسیم... اما در یادگیری با ناظر ما یک اسکلت برنامه بهش می دیم و بعد می گیم اینجاش رو جوری پر کنه که این رابطه برقرار بشه... یعنی همون مدل خطی... حتی شبکه عصبی هم خودش یک نوع مدل هست... یک مدل خطی که احتمالا توابع زیادی رو پوشش می ده و نگاشتهای زیادی رو پوشش میده و انعطاف پذیری بالایی داره و یا ظرفیت یادگیری بالایی داره...
اما در یادگیری تقویتی ما چی میدیم؟ آیا باز اسکلت می دیم؟ ورودی خروجی چی هست؟ چه انتظاری داریم... احتمالا انتظار داریم که نهایت بشه مثل یک برنامه
مثلا برنامه شطرنج رو اگر قرار بود بنویسیم
+ نوشته شده در شنبه بیست و چهارم خرداد ۱۳۹۹ ساعت 22:3 توسط بینام
|