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

یادگیری تقویتی چیست؟

هوش مصنوعی/ یادگیری ماشین چهارشنبه, 26 شهریور 1399 مهران زیدی

احتمال خیلی زیاد Machine Learning و یا "یادگیری ماشین" به گوشتان خورده است، اما آیا می‌دانید چیست و چند دسته دارد؟

یادگیری ماشین همانطور که از نامش هم برمی‌آید درصدد این است که کاری کند که بدون نیاز به برنامه‌نویسی صریح، توانایی یادگیری را به سیستم ببخشید.

یادگیری ماشین ۳ دسته‌ی اصلی دارد:

  1. یادگیری با ناظر (Supervised Learning) 
  2. یادگیری بدون ناظر (Unsupervised Learning)
  3. یادگیری تقویتی (Reinforcement Learning)

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

ماشین لرنینگ

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

1. یادگیری تقویتی چیست؟

 یادگیری تقویتی و یا Reinforcement Learning و به اختصار RL یکی از انواع تکنیک‌های ماشین لرنینگ می‌باشد که یک عامل (Agent) توانایی این را دارد که در یک محیط تعاملی به کمک بازخوردی که از رفتارهایش دریافت می‌کند و همچنین تجاربی که کسب می‌کند یاد بگیرد و دانش خود را بهبود ببخشد.

بیایید برای ملموس‌تر شدن داستان برایتان مثالی بزنم.

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

پاسخ کاملا مشخص است! تجربه!

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

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

اما این تجارب عموما دو دسته هستند:

  1. تجارب خوب و بدون خطر
  2.  تجارب بد و خطرآفرین

فرض کنید کودک به سمت چاقویی می‌رود و آن را در دست می‌گیرد و بدون هیچ آگاهی قبلی دست خود را می‌برد. درد و سوزش ناشی از بریدگی چاقو برای کودک تجربه ای بد می‌شود و به رفتار کودک هنگام دیدن چاقوهایی (یا وسایلی مانند آن) که در آینده می‌بیند جهت می‌دهد و او را آگاه می‌کند که "نباید به این جسم برنده‌ی بدریخت دست بزنم. "

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

پس تا اینجا توپ برای کودک خوب بوده است و چاقو بد!

حال اگر ناخواسته توپ به سمت یک چیز شکننده قل بخورد و آن را بشکند، آیا باعث تغییر وضعیت توپ در ذهن کودک می‌شود؟ آيا بعد از آن توپ هم به زمره‌ی "تجارب بد" می‌پیوندد؟

یا اگر چاقویی را در دست مادرش ببیند که برایش میوه‌ای پوست می‌کند، آيا از آن به بعد مغزش از چاقو به عنوان وسیله‌ای خوب یاد می‌کند؟

با توجه به دو سوال آخر متوجه می‌شویم که "تجارب‌" اغلب صفر و یکی نیستند و دارای یک طیف هستند. (از منطق بولی تبعیت نمی‌کنند و به‌جای آن منطقشان فازی است.)

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

ربات هم همینطور است. رفتار ربات با یادگیری عمیق مانند رفتار کودک است.

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

دو گلدان روی میز است، یکی از آنها را هل می‌دهد تا از روی میز بیفتد و باز هم جریمه می‌شود.

پس ربات باید چه کند؟ پاسخ این است: ربات باید بر رفتارهایی تمرکز داشته باشد که پاداش بگیرد و این پاداش را بیشینه کند.

ربات و رباتیک

نگاهی به Agile و Waterfall

 

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

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

به عنوان مقایسه‌ای بین یادگیری بدون ناظر و تقویتی، باید گفت که اهداف یادگیری تقویتی متفاوت است.

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

یادگیری تقویتی چیست؟

 

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

بعضی از شرایط کلیدی که می‌توانند عناصر یک مسئله ی یادگیری تقویتی را توصیف کنند عبارتند از:

Environment (محیط): دنیایی که در آن عامل فعالیت می‌کند.

State (حالت): وضعیت فعلی عامل.

Policy (خط مشی): روشی که باعث رفتار عامل با توجه به حالتی (state) که دارد، می‌شود.

Value (ارزش): پاداشی که عامل در آینده با توجه به رفتاری که در یک حالت (state) مشخص انجام می‌دهد، می‌گیرد.

موافقید سری بزنیم به بازی معروف PacMan؟

در این بازی، هدف عامل (که همان PacMan می‌باشد) این است که هر غذایی که در محیط (Environment) بازی سر راهش است را بخورد. پکمن با خوردن غذاها به پاداش دست پیدا می‌کند و زمانی مجازات می‌شود که توسط Ghostهای درون بازی کشته شود (در اینصورت بازی را می‌بازد). در این مسئله، state، مکان پکمن در محیط بازی می‌باشد و بیشینه‌ی پاداش پکمن زمانی اتفاق می‌افتد که بازی را ببرد.

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

که این کار موجب می‌شود عامل بین اکتشاف و بهره‌برداری گیر کند. (Exploration vs Exploitation trade-off)

یادگیری تقویتی در بازی

3. کابردهای عملی یادگیری تقویتی چه هستند؟

  • به لطف جناب ایلان ماسک و شرکت قدرتمندش یعنی تسلا، همگی کم و بیش با ماشین‌های خودران (Self-driving Cars) آشنا هستیم. در این ماشین‌ها یکی از تکنیک‌هایی که مورد استفاده قرار می‌گیرد همین یادگیری تقویتی است.
  • دستیارهای صوتی را می‌شناسید؟

Alexa شرکت آمازون، Siri شرکت اپل، Google Assistant شرکت گوگل و دستیار قدرتمند Iron Man که جارویس (Jarvis) نام داشت همگی براساس تکنیک یادگیری تقویتی          هستند و از واکنش‌های کاربر می‌آموزند و اطلاعات خود را بیشتر می‌کنند در نتیجه‌ی این کار عملکرد خود را بهبود می‌بخشند.

  • یادگیری تقویتی بطور گسترده در بازی‌های کامپیوتری استفاده می‌شود. مثلا AlphaGo Zero اولین برنامه‌ای است که قهرمان جهان را در بازی باستانی چینی GO شکست داد.

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

  • یادگیری تقویتی در حوزه‌ی رباتیک و اتوماسیون صنعتی نیز کاربردهای بسیاری دارد.

 

4. چطور یادگیری عمیق را شروع کنم؟

معرفی منبع از عهده‌ی بنده خارج است اما برای درک مفاهیم پایه‌ای یادگیری عمیق می‌توانید از کتاب Reinforcement Learning-An Introduction به قلم پدر یادگیری عمیق یعنی آقای ریچارد ساتن (Richard Sutton) بهره بگیرید.


ذخیره مقاله:

اشتراک گذاری:




...

مهران زیدی

هم-بنیان‌گذار و عضو ارشد CGC

Working on ML


مطالب پیشنهادی



              
                 امنیت شبکه لایه بندی شده
امنیت شبکه لایه بندی شده (قسمت دوم)

پیش از این در مورد امنیت شبکه لایه بندی صحبت کردیم. در این مطلب موارد باقی مانده را ذکر میکنیم و با تکنولوژی‌های IDS و IPS آشنا خواهیم شد. اگر به شبکه علاقه مند هستید این مطلب را پیشنهاد می‌کنیم.


              
                 نرم افزار ادیت عکس
پنج اپلیکیشن کاربردی ادیت و طراحی عکس ساده برای کاربران آماتور

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


              
                 ui ux designer
7 مرحله برای تبدیل شدن به یک طراح UI/UX

در این مطلب از جامعه‌ی گیک‌های کامپیوتر به شما راهنمایی‌های لازم را جهت ورود به دنیای طراحی رابط و تجربه کاربری می‌دهیم و به بررسی 7 مرحله برای تبدیل شدن به یک طراح UI/UX می‌پردازیم.


نظری برای نمایش وجود ندارد. شما اولین نظر باشید.


ارسال دیدگاه

برای ثبت دیدگاه باید ابتدا وارد شوید