资源简介 (共24张PPT)第30课 训练模型玩游戏第六单元 AI项目工坊第30课 课堂导入试一试尝试运行《躲避障碍》游戏。本游戏目标是通过敲空格键,控制绿色方块跳跃,以躲避不断靠近的障碍物,碰撞障碍物或碰到上下边缘则游戏失败。第30课 课堂导入问题情境如何有效评估人工智能在游戏中的表现?当人工智能玩游戏时,它是如何从游戏画面中提取信息并做出决策的?第30课 学习内容一 分析任务二 选择人工神经网络四 调用模型玩游戏三 训练模型学习活动一、分析任务第30课 学习内容自动玩游戏的模型,对应的核心技术是强化学习。强化学习是一种让智能系统(如模型)通过与环境交互,不断学习决策方法的机器学习方式。其基本思想是:智能系统在尝试不同动作的过程中,根据环境提供的反馈调整自身行为,以实现奖励的最大化。为实现这一目标,需要构建完整的训练体系,包括对当前状态的描述、动作的确定以及奖励机制的设计等。奖励机制鼓励尽可能延长生存时间并穿越更多障碍物,同时避免危险操作。·未发生碰撞,每帧得0.01分;·成功穿过一根管道,得1分;·若发生碰撞,得-1分。状态动作奖励机制第30课 学习内容在每一帧游戏画面中,智能系统所处的环境可以通过多种方式进行状态描述。根据不同视角,可以选择不同的特征作为模型的输入。本任务中,智能系统需要执行的动作只有两种:保持不动或跳跃。一、分析任务1.运行《躲避障碍分析》软件,继续玩游戏,观察不同的状态描述方法得到的数据,了解游戏过程中的可选动作和奖励方式。第30课 学习内容一、分析任务2.思考以下问题:·游戏画面分辨率是多少?·视觉状态分别用了多少个数字表示宽和高?这样做有什么优势?可能会带来哪些问题?·如何理解强化学习中的环境交互?第30课 学习内容一、分析任务第30课 学习内容Q学习(Q-Learning)的核心概念是Q表,其中行表示状态,列表示动作,而表中的值则表示在该状态下采取该动作所能获得的回报。前面介绍的基于井字棋棋谱训练获得一张表,并通过查表决定下一步操作的过程,实际上就是Q学习的一种体现。当状态空间过大时,例如面对图像,Q学习的效率会显著降低,需要借助深度人工神经网络。之前我们已经体验过Q学习的思想了哦!二、选择人工神经网络第30课 学习内容在本项目中,我们选用深度Q网络(Deep Q-Network,DQN)。深度Q网络代表着一种将深度神经网络与Q学习相结合的强化学习方法,特别适用于训练能够自主玩游戏的智能模型。DQN本质上是一种强化学习方法 ,而不是一种具体或固定的神经网络结构哦。对于不同的任务需求,网络结构可以灵活设计!二、选择人工神经网络第30课 学习内容# 复杂的卷积层,由多个不同的层组成,用于提取特征self.conv = nn.Sequential(nn.Conv2d(in_channels, 32, kernel_size=8, stride=4),nn.BatchNorm2d(32),nn.ReLU(),ann.Conv2d(32, 64, kernel_size=4, stride=2),nn.BatchNorm2d(64),nn.ReLU(),nn.Conv2d(64, 64, kernel_size=3, stride=1),nn.BatchNorm2d(64),nn.ReLU())# 卷积运算会输出64个通道,每个通道大小是7×7# 复杂的全连接层,由多个不同层组成,用于判断self.fc = nn.Sequential(nn.Linear(64 * 7 * 7 , 512),nn.ReLU(),nn.Dropout(0.2),nn.Linear(512, 256),nn.ReLU(),nn.Dropout(0.2),nn.Linear(256, 2))借用智能工具辅助我们分析上面的代码,进一步了解这个神经网络吧。还可以用同样的方法分析配套资源中的game.py程序,了解相关函数的功能。二、选择人工神经网络第30课 学习内容训练过程可视为计算机通过不断尝试玩游戏、积累经验并优化决策的过程。在这个过程中,智能系统并非初始即知晓什么动作是最好的选择,而是通过反复试错,逐步学会在不同状态下做出合理决策。三、训练模型第30课 学习内容为了实现这一学习过程,强化学习引入了“探索-利用”策略。在训练初期,智能系统主要进行“探索”,即以较高概率随机选择动作,从而广泛收集不同状态的反馈数据。这种方式有助于智能系统全面了解环境,避免陷入局部最优策略。随着训练的推进,智能系统会逐渐增加“利用”的比例,即越来越多地依据当前模型的预测结果,选择当前模型预测的最优动作。三、训练模型第30课 学习内容例如,初始探索率为80%,意味着80%的动作是随机选择的,只有20%的动作由模型决定。随着训练轮次的增加,探索率会按照设定的策略逐步降低。这样,智能系统就能从以“探索”为主,逐步过渡到以“利用”为主。三、训练模型第30课 学习内容在强化学习中,智能系统通过不断与环境交互来学习如何做出最优决策。为了实现这一目标,需要评估某一状态不同动作的价值。这种价值反映了在当前状态下采取某个动作后,未来可能获得的奖励。例如,在游戏画面中,如果智能系统判断跳跃这个动作的价值高于保持,它就会发出“跳跃”指令,以躲避障碍物。三、训练模型第30课 学习内容训练时,每执行一个动作,智能系统都会从环境中获得即时奖励。基于这些奖励和下一状态,可以计算出该动作的预期回报,也就是当前动作在未来可能带来的收益。随后,系统会将这个实际计算出的回报值与人工神经网络的预测值进行比较,从而得到两者的误差。三、训练模型第30课 学习内容利用误差反向传播算法,逐层调整参数,尽可能让系统下一次对类似状态的预测更接近真实值。训练过程就是“输入状态→预测动作→执行动作→获得反馈→计算误差→更新模型”的循环过程。三、训练模型第30课 学习内容选择合适的方式,利用数据训练模型1.参照以下方法,获得用于训练的软件或程序。方法一:利用人工智能模型生成训练代码。方法二:参考配套资源中的train.py程序。方法三:运行配套资源中的《游戏训练器》软件。三、训练模型以《游戏训练器》软件为例。2.参照界面提示,适当设置参数后单击“开始训练”按钮,开始训练模型。第30课 学习内容三、训练模型训练开始前,可以通过拖动滑块调整探索率。一般来说,初始探索率应设置得较高,以保证智能系统在训练初期能够广泛尝试各种动作,充分收集环境信息。随着训练次数的增加,探索率应逐步降低,使智能系统逐渐转向依赖模型的预测结果。第30课 学习内容你是否注意到了训练过程中探索率的变化情况?如果探索率一直为0或一直为100%,会发生什么?三、训练模型第30课 学习内容class AIPlayer:#标注自身是人工智能玩家mode = "ai"def __init__(self, model=None):#确定运算设备self.device = 'cuda' if torch.cuda.is_available() else 'cpu'#加载模型参数self.model = torch.load(model, map_location=self.device)#把模型加载到运算设备中self.model.to(self.device)self.model.eval()# 根据当前状态,预测下一个指令def predict(self, game_state):return self.model.predict(game_state)if __name__ == "__main__":# 初始化游戏和玩家game = Game()ai_player = AIPlayer('model_best.pth')game.set_player(ai_player)game.start()打开配套资源中的ai_play.py程序,适当修改代码,选择自己训练的模型或使用配套资源提供的模型,然后运行程序,观察智能系统自动玩游戏的效果。四、调用模型玩游戏 第30课 学习内容人工智能的操作是完美无缺的吗?为什么它会在某些情况下出错?目前这个会玩游戏的人工智能,是否具备人类的“应变能力”或“创造性思维”呢?四、调用模型玩游戏 1. 强化学习的原理是让智能系统通过与环境交互不断学习决策方法,以实现奖励的最大化。2.为实现强化学习,需要构建完整的训练体系,包括对当前状态的描述、动作的确定以及奖励机制的设计等。3.训练模型的初期探索率高,智能系统更多随机选择动作进行探索。随着训练的推进,探索率逐步降低,随机动作逐渐减少。第30课 课堂总结第30课 拓展与提升需要对《赛车》游戏中的状态、动作和奖励机制等进行思考和设计。尝试用同样的思路,训练模型玩配套资源中的《赛车》游戏。 展开更多...... 收起↑ 资源预览 当前文档不提供在线查看服务,请下载使用!