street-fighter-ai icon indicating copy to clipboard operation
street-fighter-ai copied to clipboard

請益: 關於增強式學習的損失函數

Open ricky-696 opened this issue 1 year ago • 2 comments

林哥您好,我想請問在此專案使用的增強式學習,您的損失函數是定義在哪個py檔案呢? 我在street_fighter_custom_wrapper.py中只看到遊戲輸贏時更新custom_reward變數,我想知道您對AI的獎懲演算法的細節。 譬如: 如果成功使出過肩摔這種高難度技巧重創對手,會增加x分...等獎懲策略,如果能有程式碼細節就更好了~

我目前是專攻電腦視覺與深度學習的研究生,很喜歡您的視頻,希望林哥有機會解答我的疑惑~

ricky-696 avatar Apr 16 '23 18:04 ricky-696

你说的那段代码就是这个AI训练的奖惩算法啊。这个算法就只是从双方的血量变化计算奖惩。这个retro框架还没有高级到可以从画面检测角色是否使用了过肩摔,从而计算奖惩。不过因为过肩摔等高难度动作通常会造成对手比较大血量损失,所以当AI做出了过肩摔,是会得到比较大的奖励的。从另一方面说,这个游戏要赢的目的就是无论用什么招式让对手血量清零,所以只用血量作为奖惩就足够了。

tonyxu99 avatar Apr 21 '23 16:04 tonyxu99

另外一个youtuber做的类似AI就只是用分数的变化来计算血量也是一个方法。我觉得如果只是想让AI赢的几率较大,还是用血量靠谱一点。如果想让AI赢的漂亮(招式华丽),可能用分数比较好。

tonyxu99 avatar Apr 21 '23 16:04 tonyxu99