☰
【零基础学AI】第 21 章课后练习与答案
2026/11/2 1:43:30 网站建设 项目流程

第 21 章练习与参考答案

全部数字为原创教学设定,先算再运行。

🌈 关于《AI 零基础 36 讲》课后训练

📚与正式讲解配套学习

本篇是《AI 零基础 36 讲》的配套课后训练,与对应章节的正式讲解一起使用。整个系列面向初学者,从日常 AI
使用逐步进入编程、模型训练和大模型应用开发。

✍️先独立作答,再核对答案

训练围绕本章知识安排概念判断、结果分析或动手任务,并提供参考答案与解释。建议先读完对应的正式文章,再独立作答;遇到困难时回看相关例子,最后核对答案。

💻代码题请亲手运行

观察程序输出,确认自己能解释结果、发现错误并完成修复。做完一道题,也要弄清答案为什么成立。

练习

  1. 初始输入[1, 2]的两个加权和是什么,经过 ReLU 后又是什么?
  2. 输入改成[2, 1],保持初始参数,最终输出是多少?
  3. 输出偏置从 0.5 改到 1.0,初始输入的预测怎样变化?
  4. 为什么x * W1不能代替x @ W1?本章两种输出各是什么形状?
  5. 用两个隐藏节点计算ReLU(x) + ReLU(-x),输入为 -3 时输出多少?删掉激活函数后呢?
  6. 输出偏置初始梯度为 3,学习率 0.02,更新后多少?二十次拟合一条记录能否证明新数据可靠?

参考答案

第一题加权和为[2.5, -0.5],激活后为[2.5, 0],最终输出 5.5。

第二题第一节点为2 × 0.5 + 1 × 1 = 2,第二节点为2 × (-1) + 1 × 0.5 - 0.5 = -2,激活后为[2, 0],输出 4.5。

第三题预测增加 0.5,变为 6.0。这一改动发生在最后的加法处,不改变两个隐藏节点。

fromexamples.network_coreimportinitial_parameters,forward parameters=initial_parameters()print("第二题",forward([2,1],parameters))parameters["b2"]=parameters["b2"]+0.5print("第三题",forward([1,2],parameters)["output"])

第四题*为逐元素乘法,当前广播结果为(2, 2);@完成加权求和,结果为(2,)。本章形状检查与手算应一起使用,因为方阵转置后可能形状相同但含义错误。

第五题得到 3,移除激活后为零。这个网络由人工指定权重,只展示表达能力,没有训练证据。

第六题为0.5 - 0.02 × 3 = 0.44。仅一条训练记录的低损失无法证明新样本可靠,应保留验证和测试数据评估。

fromexamples.network_coreimportX,TARGET,initial_parameters,gradients,update parameters=initial_parameters()new_parameters=update(parameters,gradients(X,TARGET,parameters),rate=0.02)print("输出偏置",new_parameters["b2"])assertabs(float(new_parameters["b2"])-0.44)<1e-12

如果想检查一个梯度,可从差分对照表中挑出 W1 的第一项。解析值为 6,数值差分约为 6,两者的小差异来自浮点计算。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询