1.6 Chapter 1 练习题:深度学习简介
1. 神经网络可以看成一个带参数的函数:
\[ \hat{y} = f(x;\theta) \]
其中,\(\theta\) 表示模型的 ______。训练神经网络的过程,本质上就是不断调整 \(\theta\),使训练数据上的损失函数尽可能 ______。
2. 关于反向传播和参数更新,下列说法正确的是:
A. 反向传播会在计算梯度的同时自动修改模型参数。
B. 反向传播负责计算参数梯度,而参数更新负责根据梯度真正修改参数。
C. 只要完成前向传播,模型参数就会根据 loss 自动更新。
D. 梯度下降负责计算梯度,反向传播负责选择学习率。
3. 在高维神经网络的损失地形中,如果某一点满足梯度为 0,下列说法正确的是:
A. 该点一定是全局最小值。
B. 该点一定是局部最小值。
C. 该点可能是局部最小值、局部最大值或鞍点,还需要结合局部曲率进一步判断。
D. 该点说明梯度下降算法已经失效,无法继续训练。
4. 运行下面的代码,观察一次梯度下降更新前后的参数和 loss:
theta = 5.0
lr = 0.1
loss1 = (theta - 3) ** 2
grad = 2 * (theta - 3)
theta = theta - lr * grad
loss2 = (theta - 3) ** 2
print(f'theta: {theta:.4f}')
print(f'loss1: {loss1:.4f}')
print(f'loss2: {loss2:.4f}')请写出程序输出,并解释为什么这一步更新会让 theta 向 3 靠近。
参考答案
1. 答案:参数;减小
\(\theta\) 决定了模型当前实现的函数。训练的目标就是不断调整这些参数,使模型预测与真实目标之间的损失尽可能小。
2. 答案:B
反向传播通过计算图和链式法则得到各参数的梯度,但不会自动修改参数。真正的参数更新发生在梯度下降等更新步骤中。
3. 答案:C
梯度为 0 只能说明该点是一类临界点,并不能保证它一定是最小值。在高维参数空间中,它还可能是局部最大值或鞍点,可以结合 Hessian 等局部曲率信息进一步判断。
4. 答案:4.6;4.0;2.56
初始时:
\[ \theta = 5 \]
梯度为:
\[ \frac{dL}{d\theta} = 2(\theta - 3) = 4 \]
梯度为正,说明继续增大 \(\theta\) 会使 loss 增大,因此梯度下降沿负梯度方向更新:
\[ \theta \leftarrow 5 - 0.1\times 4 = 4.6 \]
更新后参数向最小值所在的 \(\theta=3\) 靠近,loss 也从 4.0 降到了 2.56。