نگاهی تخصصی به فناوری کیو-یادگیری عمیق

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

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

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

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

بازی Breakout عامل هوش مصنوعی

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

کیو-یادگیری عمیق چیست؟

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

تابع ارزش عمل

در مقاله قبلی، مفهوم تابع مقدار عمل Q(s,a) را معرفی کردیم (معادله ۱). به عنوان یادآوری، تابع action-value بازده مورد انتظاری است که عامل هوش مصنوعی با شروع در حالت s، انجام عمل a و سپس پیروی از یک خط مشی π دریافت می کند.

توجه: ما می توانیم خط مشی π را به عنوان استراتژی عامل برای انتخاب اقدامات خاص، بسته به وضعیت فعلی s توصیف کنیم.

یادگیری عمیق1
معادله ۱:تابع ارزش-عمل

Q(s,a) مقدار (یا کیفیت) یک عمل ممکن a در یک حالت خاص s را به عامل اعلام می‌کند. با توجه به وضعیت s، تابع action-value کیفیت/مقدار هر عمل ممکن a_i را در این حالت به عنوان یک مقدار اسکالر محاسبه می کند (شکل ۱). کیفیت بالاتر به معنای اقدام بهتر با توجه به هدف داده شده است.

یادگیری عمیق2
شکل ۱: با توجه به وضعیت S فعالیت ها و مقادیر مختلفی برای Q(s,a) وجود دارد

اگر تابع انتظار E را در معادله ۱ اجرا کنیم، شکل جدیدی از تابع مقدار عمل به دست می آوریم که در آن با احتمالات سروکار داریم. Pss احتمال انتقال از حالت s به حالت بعدی s است که توسط محیط تعیین می شود. π(a’|s’) خط مشی یا، از نظر ریاضی، توزیع بر روی همه اقدامات با یک حالت s است.

یادگیری عمیق 3
معادله ۲: شکل دیگری از Q(s,a) که احتمالات را در بر می گیرد.

یادگیری تفاوت زمانی

هدف ما در کیو-یادگیری عمیق حل تابع ارزش عمل Q(s,a) است. چرا؟ اگر عامل هوش مصنوعی Q(s,a) را بداند، آنگاه هدف داده شده (مانند برنده شدن در یک بازی شطرنج در مقابل یک بازیکن انسانی یا بازی Breakout) را حل شده در نظر می گیرد زیرا دانش Q(s,a) عامل را قادر می سازد تا کیفیت هر اقدام ممکن در هر وضعیت معین را تعیین کند.با این دانش، عامل می تواند بر این اساس و به شکلی مستمر فتار کند.

معادله ۲ همچنین یک راه حل بازگشتی به ما می دهد که می توانیم از آن برای محاسبه Q(s,a) استفاده کنیم. اما از آنجایی که ما بازگشت و برخورد با احتمالات را در نظر می گیریم، استفاده از این معادله عملی نیست. در عوض، ما باید از الگوریتم یادگیری تفاوت زمانی (TD) برای حل تکراری Q(s,a) استفاده کنیم.

در یادگیری TD ما Q(s,a) را برای هر عمل a در حالت s به سمت بازده تخمینی R(t+1)+γQ(s(t+1)، a(t+1)) به روز می کنیم (معادله ۳) . بازده تخمینی همچنین TD-target نیز نامیده می شود. اجرای مکرر این قانون به روز رسانی برای هر حالت و عمل به دفعات، مقادیر تابع – Q(s,a) صحیح را برای هر حالت – جفت اقدام در محیط به دست می دهد.

یادگیری عمیق4

می‌توانیم الگوریتم TD-Learning را در مراحل زیر خلاصه کنیم:

  • Q(s_t, a_t) را برای عمل a_t در حالت s_t محاسبه کنید
  • به حالت بعدی s_(t+1) بروید، یک عمل a(t+1) را در آنجا انجام دهید و مقدارQ(s_(t+1)، a(t+1)) را محاسبه کنید.
  • از Q(s_(t+1)، a(t+1)) و پاداش فوری R(t+1) برای عمل a_t در آخرین حالت s_t برای محاسبه TD-هدف استفاده کنید.
  • Q(s_t, a_t) قبلی را با اضافه کردن Q(s_t, a_t) به تفاوت بین TD-target و Q(s_t, a_t) به روز کنید، α نرخ یادگیری است.

تفاوت زمانی

بیایید مفهوم الگوریتم TD را با جزئیات بیشتری مورد بحث قرار دهیم. در یادگیری TD ما تفاوت زمانی Q(s,a) را در نظر می گیریم – تفاوت بین دو “نسخه” Q(s, a) که یک بار قبل از انجام یک عمل a در حالت s و یک بار بعد از آن با زمان از هم جدا می شوند.

قبل از اقدام

به شکل ۲ نگاهی بیندازید. فرض کنید عامل هوش مصنوعی در حالت s است (فلش آبی). در حالت s، او می تواند دو عمل مختلف a_1 و a_2 را انجام دهد. بر اساس محاسبات برخی از مراحل زمانی قبلی، عامل هوش مصنوعی مقادیر عمل Q(s, a_1) و Q(s, a_2) را برای دو اقدام ممکن در این حالت می داند.

یادگیری عمیق5
شکل ۲: عامل در حالت s همه Q(s,a) ممکن را می داند.

پس از اقدام

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

اگر به تعریف Q(s,a) در معادله ۱ نگاه کنید، متوجه خواهید شد که در حالت s اکنون اطلاعات جدیدی داریم که می‌توانیم از آن برای محاسبه یک مقدار جدید برای Q(s, a_1) استفاده کنیم. این اطلاعات پاداش فوری R برای آخرین اقدام در آخرین وضعیت و Q(s’,a’) برای اقدام a’ است که عامل در این حالت جدید انجام خواهد داد. می‌توانیم مقدار جدید Q(s, a_1) را با توجه به معادله شکل ۳ محاسبه کنیم. سمت راست معادله نیز همان چیزی است که ما به آن TD-target می‌گوییم. تفاوت بین TD-target و مقدار قدیمی (یا نسخه زمانی) Q(s,a_1) تفاوت زمانی نامیده می شود.

توجه: در طول یادگیری TD، تفاوت‌های زمانی را برای هر مقدار عمل-مقدار Q(s,a) محاسبه می‌کنیم و از آنها برای به‌روزرسانی Q(s,a) همزمان استفاده می‌کنیم تا زمانی که Q(s,a) به سمت مقدار واقعی خود همگرا شود.

یادگیری عمیق6
شکل ۳: عامل در حالت s پس از انجام اقدام a_1

SARSA

الگوریتم یادگیری TD که برای Q(s,a) اعمال می شود معمولاً به عنوان الگوریتم SARSA (وضعیت-عمل-پاداش-حالت-عمل) شناخته می شود. SARSA نمونه خوبی از نوع خاصی از الگوریتم های یادگیری است که به عنوان الگوریتم های روی خط مشی نیز شناخته می شود.

قبلاً سیاست π(a|s) را به عنوان نگاشت از حالت s به عمل a معرفی کردیم. نکته ای که در این مرحله باید به خاطر بسپارید این است که الگوریتم های روی خط مشی از همان خط مشی برای به دست آوردن اقدامات برای Q(s_t, a_t) و همچنین اقدامات برای Q(s(t+1), a_(t+1)) در TD-targe استفاده می کنند. این بدان معناست که ما همزمان سیاست یکسانی را دنبال کرده و بهبود می‌دهیم.

Q-Learning

بالاخره به Q-learning رسیدیم. ابتدا باید نگاهی به دومین نوع خاص از الگوریتم ها به نام الگوریتم های خارج از خط مشی بیاندازیم. همانطور که قبلاً می دانید Q-learning به این دسته از الگوریتم ها تعلق دارد که از الگوریتم های مبتنی بر سیاست مانند SARSA متمایز است.

برای درک الگوریتم های خارج از خط مشی باید خط مشی رفتار μ(a|s) را معرفی کنیم. خط مشی رفتار، اقدامات a_t~µ(a|s) را برای Q(s_t,a_t) برای همه t ها تعیین می کند. در مورد SARSA، خط مشی رفتاری همان سیاستی است که ما دنبال می کنیم و در عین حال سعی در بهینه سازی آن داریم.

در الگوریتم های خارج از خط مشی ما دو خط مشی متفاوت داریم μ(a|s) و μ(a|s). π(a|s) رفتار و π(a|s) هدف است. در حالی که از خط مشی رفتار برای محاسبه Q(s_t, a_t) استفاده می کنیم، از خط مشی هدف برای محاسبه Q(s_t, a_t) فقط در TD-target استفاده می کنیم. (ما در بخش بعدی به این موضوع باز خواهیم گشت، جایی که محاسبات واقعی را انجام خواهیم داد.)

توجه: خط‌مشی رفتار اقداماتی را برای همه Q(s,a) انتخاب می‌کند. در مقابل، سیاست هدف اقدامات را فقط برای محاسبه TD-target تعیین می کند.

الگوریتمی که ما آن را الگوریتم یادگیری Q می نامیم یک مورد خاص است که در آن خط مشی هدف π(a|s) یک w.r.t حریصانه است. Q(s,a)، به این معنی که استراتژی ما اقداماتی را انجام می دهد که منجر به بالاترین مقادیر Q می شود. پیروی از خط مشی هدف، نتیجه می دهد:

یادگیری عمیق7
معادله ۴: خط مشی هدف حریصانه w.r.t Q(s,a)

در این حالت، سیاست هدف، سیاست حریص نامیده می شود. خط‌مشی حریصانه به این معنی است که ما فقط اقداماتی را انتخاب می‌کنیم که به بالاترین مقادیر Q(s,a) منجر می‌شوند. می‌توانیم این خط‌مشی هدف حریصانه را در معادله مقادیر عمل Q(s,a) وارد کنیم، جایی که قبلاً یک خط‌مشی تصادفی π(a|s) را دنبال می‌کردیم:

یادگیری عمیق9
معادله ۵: درج سیاست حریصانه در Q(s,a)

خط مشی حریصانه مقادیر عمل بهینه Q*(s,a) را در اختیار ما قرار می دهد زیرا طبق تعریف Q*(s,a) Q(s,a) است که از خط مشی پیروی می کند که مقادیر کنش را به حداکثر می رساند:

یادگیری عمیق10
معادله ۶: تعریف Q(s,a) بهینه

آخرین خط در معادله ۵ چیزی نیست جز معادله بهینه بلمن که در قسمت اول این سری به دست آوردیم. ما از این معادله به عنوان یک قانون به روز رسانی بازگشتی برای تخمین تابع مقدار عمل بهینه Q*(s,a) استفاده می کنیم.

با این حال، یادگیری TD بهترین راه برای یافتن Q*(s,a) است. با سیاست هدف حریصانه، مرحله به‌روزرسانی یادگیری TD برای Q(s,a) در معادله ۳ ساده‌تر می‌شود و به صورت زیر به نظر می‌رسد:

یادگیری عمیق11
معادله ۷: قانون به روز شده یادگیری TD با سیاست حریصانه

می‌توانیم الگوریتم یادگیری TD را برای Q(s,a) با خط‌مشی هدف حریصانه در مراحل زیر خلاصه کنیم:

  • Q(s_t, a_t) را برای عمل a_t در حالت s_t محاسبه کنید
  • به حالت بعدی s_(t+1) بروید، عمل ‘a را انجام دهید که بالاترین مقادیر Q را به همراه دارد و Q(s_(t+1)، a’) را محاسبه کنید.
  • از Q(s_(t+1)، a’) و پاداش فوری R برای عمل a_t در آخرین حالت s_t برای محاسبه TD-target استفاده کنید.
  • Q(s_t, a_t) قبلی را با اضافه کردن Q(s_t, a_t) به تفاوت بین TD-target و Q(s_t, a_t) به روز کنید، α نرخ یادگیری است.

شکل ۳ را در نظر بگیرید، جایی که عامل در حالت s قرار گرفت و مقادیر عمل را برای اقدامات ممکن در آن حالت می دانست. با پیروی از سیاست هدف حریصانه، عامل هوش مصنوعی اقدامی را با بالاترین مقدار عمل انجام می دهد (مسیر آبی در شکل ۴). این خط مشی همچنین یک مقدار جدید برای Q(s, a_1) به ما می دهد (به معادله شکل ۴ در زیر مراجعه کنید)، که طبق تعریف، TD-target است.

یادگیری عمیق12
معادله ۸: محاسبه Q(s,a_1) به دنبال سیاست حریصانه

کیو-یادگیری عمیق (Deep Q-Learning)

ما در نهایت آماده استفاده از یادگیری عمیق هستیم. اگر به قانون به روز شده برای Q(s,a) نگاه کنید، ممکن است متوجه شوید که اگر TD-target و Q(s,a) مقادیر یکسانی داشته باشند، هیچ به روز رسانی دریافت نمی کنیم. در این حالت Q(s,a) به ارزشهای عمل واقعی همگرا می شود و به هدف می رسد.

این بدان معناست که هدف ما به حداقل رساندن فاصله بین TD-هدف و Q(s,a) است که می‌توانیم آن را با تابع از دست دادن خطا مجذور بیان کنیم (معادله ۱۰). ما این تابع از دست دادن را با استفاده از الگوریتم‌های شیب نزولی معمول به حداقل می‌رسانیم.

یادگیری عمیق13
معادله ۱۰: تابع از دست دادن خطا مربع

هدف و Q-Network

در کیو-یادگیری عمیق ، ما TD-target y_i و Q(s,a) را به طور جداگانه توسط دو شبکه عصبی مختلف که اغلب شبکه های هدف و کیو-شبکه نامیده می شوند، تخمین می زنیم (شکل ۴). پارامترهای θ(i-1) (وزن‌ها، سوگیری‌ها) شبکه هدف با پارامتر θ(i) شبکه Q در زمان قبلی مطابقت دارد. به عبارت دیگر، پارامترهای شبکه هدف در زمان ثابت می شوند و پس از n تکرار با پارامترهای شبکه Q به روز می شوند.

توجه: با توجه به وضعیت فعلی s، کیو-شبکه مقادیر عمل Q(s,a) را محاسبه می کند. در همان زمان، شبکه هدف از حالت بعدی s برای محاسبه Q(s’,a) برای TD-target استفاده می کند.

یادگیری عمیق14
شکل ۴: شبکه هدف و Q با s حالت فعلی و s در حالت بعدی

تحقیقات نشان می دهد که استفاده از دو شبکه عصبی مختلف برای محاسبه TD-target و Q(s,a) منجر به پایداری بهتر مدل می شود.

خط مشی ε-Greedy

در حالی که خط مشی هدف π(a|s) خط مشی حریصانه باقی می ماند، خط مشی رفتار μ(a|s) اقدام a_i را که عامل هوش مصنوعی انجام می دهد، تعیین می کند، بنابراین مدل Q(s,a_i) باید آن را در تلفات مربعی خطا وارد کند. تابع (محاسبه شده توسط کیو-شبکه).

ما معمولاً ε-Greedy را برای خط مشی رفتار انتخاب می کنیم زیرا با خط مشی ε-Greedy، عامل هوش مصنوعی یک عمل تصادفی با احتمال ثابت ε را در هر مرحله زمانی انتخاب می کند. اگر ε مقدار بیشتری نسبت به عدد p تولید شده به طور تصادفی داشته باشد، ۰ ≤ p ≤ ۱ باشد، عامل هوش مصنوعی یک عمل تصادفی را از فضای عمل انتخاب می کند. در غیر این صورت، عمل مطابق با مقدار عمل متمایل Q(s,a) حریصانه انتخاب می شود:

یادگیری عمیق15
معادله ۱۱: تعریف سیاست ε-Greedy

انتخاب خط مشی ε-Greedy به عنوان خط مشی رفتار μ معضل مبادله کاوش/بهره وری را حل می کند.

کاوش / بهره برداری

تصمیم گیری برای اینکه کدام اقدام انجام شود شامل یک انتخاب اساسی است:

  • بهره برداری: با توجه به اطلاعات فعلی بهترین تصمیم را بگیرید
  • کاوش: اطلاعات بیشتری جمع آوری کنید، مسیرهای جدید احتمالی را کشف کنید

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

خط مشی ε-Greedy این مشکل را با اجازه دادن به عامل هوش مصنوعی برای انجام اقدامات تصادفی از فضای عمل با احتمال مشخص ε حل می کند. به این می گویند کاوش(اکتشاف). طبق رابطه ۱۲ معمولاً مقدار ε در طول زمان کاهش می یابد. در اینجا n برابر است با تعداد تکرارها. کاهش ε به این معنی است که در ابتدای آموزش، سعی می‌کنیم مسیرهای جایگزین بیشتری را کشف کنیم، اما در پایان، به سیاست اجازه می‌دهیم در مورد کدام اقدام تصمیم بگیرد.

یادگیری عمیق16
معادله ۱۲: کاهش ε در طول زمان

تکرار را تجربه کنید

در گذشته، رویکرد شبکه عصبی برای تخمین TD-هدف و Q(s,a) پایدارتر می شود اگر مدل کیو-یادگیری عمیق بازپخش تجربه را اجرا کند. بازپخش تجربه چیزی نیست جز حافظه ای که <s, s’, a’, r > tuple را ذخیره می کند.

  • s=وضعیت عامل هوش مصنوعی
  • a’=عملی که در حالت s توسط عامل انجام می شود
  • r = پاداش فوری دریافت شده در حالت s برای اقدام a
  • s’= حالت بعدی عامل بعد از حالت s

هنگام آموزش شبکه عصبی، ما معمولاً از جدیدترین <s, s’, a’, r> استفاده نمی کنیم. در عوض، دسته‌های تصادفی <s, s’, a’, r> را از بازپخش تجربه برای محاسبه TD-target, Q(s,a) می‌گیریم و در پایان نزول گرادیان را اعمال می‌کنیم.

الگوریتم شبه بازی Q-Learning عمیق با تجربه

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

یادگیری عمیق17
الگوریتم شبه برای یادگیری عمیق Q با پخش مجدد تجربه

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

بیشتر بخوانید:

منبع Builtin

درباره‌ی علی قلی زاده

همچنین ببینید

نگاهی عمیق به آینده هوش مصنوعی از دید کارشناسان

نگاهی عمیق به آینده هوش مصنوعی از دید کارشناسان

با نگاه به روند رشد تکنولوژی و تغییرات ایجاد شده در زندگی مردم، انتظار می‌رود …

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

نشانی ایمیل شما منتشر نخواهد شد.