单元四

第14课 游戏里选最高分动作——奖励与动作选择

任务场景:棋盘游戏里做对加分、做错扣分
任务场景:棋盘游戏里做对加分、做错扣分

一、任务目标

理解强化学习用奖励评价动作:分数高的动作更值得再选;能在几个动作中选出当前奖励最高的一个。

二、我们要学什么

  • 学习要点:游戏里选最高分动作|奖励与动作选择
  • 本课过关:能完成:说出奖励是对动作好坏的反馈;载入体验程序,指出程序选择了分最高的动作;改某个动作的分数后重新运行,所选动作跟着变。
  • 示例对齐:体验题对应本课「编程体验」;完整代码对应编程题1;补全与独立编写对应编程题2–3。均在 Mixly 图形化积木中完成。

三、本节要点

本课要认识奖励与选动作。重难点是先列出动作及其奖励,再选最大者;奖励设计会引导行为。要点对齐「游戏里选最高分动作|奖励与动作选择」。

1读场景明确真实任务
2对要点游戏里选最高分动作|奖励与动作选择
3载入运行图形化积木

四、解题思路

任务:在若干动作中选择奖励最高的一个。请分清输入(各动作的分)与输出(所选动作)。

本课主要用到:Mixly 图形化积木与屏幕输出。

  1. 1明确任务「选最高分动作」:输出应是一个动作名。
  2. 2比较各动作的奖励,取最大者。
  3. 3改一个动作的分数后重跑,观察选择是否跟随。

流程示意(可对照左侧文字)

任务:选最高分动作比较各动作的奖励改一个动作的分数后重跑

五、图形块功能讲解

本课用到的 Mixly 图形块均已在前面的课讲过。请直接对照编程练习搭积木;若有遗忘,回到该积木首次出现的课页复习。

六、知识点讲解

强化学习靠奖励评价动作:做对加分、做错扣分,再据此改策略。本课用游戏选动作作例子——先练一步:在当前几个动作里选分最高的。奖励怎么设,行为就会往哪边靠。

先弄清:改分数,所选动作应跟着变;再进编程练习对照选择。

七、编程练习

用下拉列表切换题目;下方 Mixly 默认显示图形化积木。请在 Mixly 工具栏点「运行」;「检查」读取 Mixly 代码自动判题。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

参考代码(对照抄写到下方 Mixly)
def choose_action(scores):
    best_a = None
    best_s = None
    for a in scores.keys():
        s = scores[a]
        if best_s is None or s > best_s:
            best_a = a
            best_s = s
    return best_a

print(choose_action({"左": 1, "右": 5, "跳": 3}))

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:在当前几个动作里选分数最高的那一个,就是本课的动作选择。

  2. 判断:过马路也可以用“试错扣分”随便试,反正错了再扣分。

  3. 「奖励」在本课指的是?

  4. 本课选择动作的办法是?

  5. 更适合用强化学习的是?

九、本节小结

本课主题是奖励与选动作:比较各动作的分,选择最高者。奖励会塑造行为。