1、考虑一个二维数据集,其中所有满足 x1 > x2 的点属于正类,所有满足 x1 ≤ x2 的点属于负类。因此,这两类的真实分隔器是由 x1 - x2 = 0 定义的线性超平面(直线)。现在,在正象限的单位正方形内随机生成 20 个点创建一个训练数据集。根据第一个坐标 x1 是否大于第二个坐标 x2 来标记每个点。实现感知机算法,用上述 20 个点对其进行训练,并在单位正方形内随机生成的 1000 个点上测试其准确性。使用与训练点相同的过程生成测试点。
需按照以下步骤完成:
- 在正象限的单位正方形内随机生成 20 个点作为训练数据集,并根据 x1 和 x2 的大小关系标记点的类别。
- 实现感知机算法,用这 20 个训练点训练感知机。
- 在单位正方形内随机生成 1000 个点作为测试数据集,使用与训练点相同的生成过程。
- 用训练好的感知机对测试数据集进行预测,并计算预测的准确性。
2、一些网络,如循环神经网络,在多层中使用共享权重。讨论为什么在这种情况下更有可能出现梯度消失和梯度爆炸的问题。
在循环神经网络中,不同时间层的共享权重相同。在反向传播更新时,梯度会与相同的量相乘:
- 当共享权重 $ w < 1 $ 时,这种乘法会导致梯度有持续消失的倾向;
- 当 $ w > 1 $ 时,梯度会有持续爆炸的倾向。
此外,激活函数的选择也会产生影响:
- 例如,tanh 激活函数的导数几乎总是小于 1,这会增加梯度消失问题出现的可能性。
对于有多个单元的隐藏层,梯度更新归结为与同一个矩阵 $ A $ 的重复相乘:
- 当矩阵 $ A $ 的最大特征值 $ \lambda < 1 $ 时,矩阵 $ A $ 的 $ t $ 次幂的元素会随着 $ t $ 的增加趋于 0,导致梯度消失;
- 当 $ \lambda > 1 $ 时,矩阵 $ A $ 的 $ t $ 次幂的元素会发散到较大值,导致梯度爆炸。
激活函数也会改变梯度消失或爆炸的阈值:
- 如 sigmoid 激活函数导数最大值为 0.25,当最大特征值小于 4 时,肯定会出现梯度消失问题。
3、考虑一个二特征线性回归问题,其中x1始终位于区间[8, 9]内,x2始终位于区间[8000, 9000]内。通过考察一个包含三个示例的玩具训练集上的目标函数,说明为什么特征归一化后梯度下降可能会更高效。
当某些特征的方差比其他特征大很多时,会使一些权重对损失函数的影响远大于其他权重。损失函数对不同权重的敏感性不同,会导致梯度下降出现锯齿状行为。
因此,常用标准化方法使所有输入的方差相等。
白化还能消除特征之间的相关性,将权重的相关移动合并为更少的非冗余权重。
特征中心化也有帮助,它使不同输入特征值有不同的符号,确保从输入层指向同一神经元的所有权重不会被限制在同一方向移动,从而避免锯齿状现象。
所以,特征归一化后梯度下降可能更高效。
4、权重剪枝、矩阵分解和模仿模型都是压缩技术。如果要组合使用它们,应该按什么顺序应用,为什么?
- 模型压缩流程
-
权重剪枝
- 去掉绝对值较小的权重,并微调网络。
- 适度剪枝可通过正则化提高模型精度。
- 可结合霍夫曼编码和量化进一步压缩模型。
-
矩阵分解
- 将冗余的权重矩阵近似表示为两个矩阵的乘积。
- 减少参数数量,提升模型效率。
- 有助于实现更好的正则化效果。
-
模仿模型
- 利用原模型生成新的训练数据,用于训练更小的网络。
- 在不显著损失精度的前提下,实现模型压缩。
5、考虑两个用于回归建模的神经网络,每个网络都有一个输入层、10个各含100个单元的隐藏层和一个线性输出单元。唯一的区别是,其中一个在隐藏层使用线性激活函数,另一个使用Sigmoid激活函数。哪个模型的预测方差更高?
使用Sigmoid激活函数的模型预测方差更高。因为使用线性激活函数时,多层神经网络会退化为单层感知机,只能学习线性关系,模型复杂度低,方差小;而Sigmoid激活函数是非线性的,多层网络能学习复杂的非线性关系,模型复杂度高,更容易过拟合,导致预测方差更高。
6、假设有四个属性x1… x4,因变量y满足y = 2x1。创建一个包含5个不同示例的小型训练数据集,使得无正则化的线性回归模型在w1 = 0时有无数个系数解。讨论该模型在样本外数据上的表现。为什么正则化会有帮助?
对于无正则化的线性回归模型,若在 $ w_1 = 0 $ 时有无数个系数解,这意味着模型无法唯一确定系数,可能会过度拟合训练数据中的噪声和随机特征。
在样本外数据上,由于模型没有正确捕捉到真正的关系($ y = 2x_1 $),其预测性能会很差,可能会产生较大的误差。
正则化会有帮助是因为它可以限制模型的复杂度,减少模型的自由度,防止模型过度拟合训练数据。通过添加正则化项,如 L1 或 L2 正则化,可以使模型更加平滑,更倾向于选择简单的模型,从而提高模型在样本外数据上的泛化能力。
此外,正则化还可以防止模型对某些特征赋予过高的权重,使得模型更加稳定和可靠。
7、假设你有一个模型,在训练数据和样本外测试数据上都能达到约80%的准确率。你会建议增加数据量还是调整模型来提高准确率?
由于训练数据和样本外测试数据的准确率相近,没有明显的过拟合或欠拟合迹象。此时增加