در لینک زیر کد مربوط به اموزش مدل DDPG قرار داره مربوط به سایت cleanrl هست
https://github.com/vwxyzjn/cleanrl/blob/master/cleanrl/ddpg_continuous_action.py
کد از pytorch برای شبکه استفاده کرده و محیط پیشفرض کد برای gym محیط Hopper-v4 هستش
میخواستم این کد مطابق با توضیحات زیر تغییر داده بشه
به جای استفاده از شبکه Q میخواستم از مقداز roundQ/RoundA استفاده کنم که به صورت زیر میشه
دیگر شبکه qf1 , qf1_target نداریم به جاش یک شبکه برای یادگیری پاداش reward داریم و یک شبکه هم برای یادگیری roundq/rounda
فرمول تولید داده برای شبکه roundQ/roudA به صورت زیر هست:
(roundQ/roundA = (roundR/roundA) + (roundQ/round(a*)
که مقدار a* از شبکه actor میاد
در ابتدا شبکه r آموزش داده میشه تا پاداش ها رو یادبگیره بعد از اینکه این شبکه به طور کامل اموزش داده شد
در هر مرحله از آموزش برای هر داده داخل بچ
در ابتدا به شبکه reward داده میشه و مقدار roundR/roundA از شبکه استخراج میشه(چک کردم پایتورچ خودش مشتق نسبت به ورودی میده)
بعد از اون داده برای شبکه roundQ/roundA تولید میشه که مقدار roundR/roundA رو از شبکه rward گرفتیم و مقدار a* رو شبکه actor میده و اون رو با s' ورودی به شبکه roundQ/roundA میدم و اموزش میبینه
بعد از اون وزن های شبکه actor مطابق با فرمول زیر بروزرسانی میشه که s رو داریم مشتق از پارامترهای شبکه رو نسبت به شبکه میگریم مقدار (roundQ/roundA) برای همین اکشن رو نه a* رو هم از شبکه roundQ/RoundA میگریم و مطابق با فرمول زیر بروزرسانی میکنیم.
theta = theta + alpha * (roundQ/roundA) * (round mu/round theta)
توجه بشه که در ابتدا باید شبکه r که به مقدار خوبی در یادگیری داشته باشه که بعد دوتا شبکه اموزش ببینه
خروجی های مورد انتظار
یک فایل jupyter که تو colab ران بشه (کدها برای ورژن جدیدتر pytorch و پایتون 3.12 ارور میده) توجه بشه که نتایج داخل درایو ذخیره بشه
خروجی های نمودار در tensorboard ایجاد بشه
این آگهی از وبسایت کارلنسر پیدا شده، با زدن دکمهی تماس با کارفرما، به وبسایت کارلنسر برین و از اونجا برای این شغل اقدام کنین.
هشدار
توجه داشته باشید که دریافت هزینه از کارجو برای استخدام با هر عنوانی غیرقانونی است. در صورت مواجهه با موارد مشکوک، با کلیک بر روی «گزارش مشکل آگهی» به ما در پیگیری تخلفات کمک کنید.