1、考虑一个数据集,其中两个点 {(-1, -1), (1, 1)} 属于一个类别,另外两个点 {(1, -1), (-1, 1)} 属于另一个类别。从感知机参数值 (0, 0) 开始,使用 α = 1 进行几次随机梯度下降更新。在进行随机梯度下降更新时,以任意顺序遍历训练点。(a) 该算法是否在目标函数的变化随时间变得极小的意义上收敛?(b) 解释 (a) 中情况发生的原因。
- (a) 该算法不会收敛。
- (b) 此数据集不是线性可分的,感知机算法在数据不是线性可分的情况下不能保证收敛,所以目标函数的变化不会随时间变得极小。
2、使用自编码器进行非负矩阵分解:设D是一个具有非负元素的n×d数据矩阵。说明如何通过使用一个具有d个输入和输出的自编码器架构,将D近似分解为两个非负矩阵U和V,即D ≈ UVᵀ。[提示:在隐藏层选择合适的激活函数,并修改梯度下降更新。]
- 可以在隐藏层使用能保证输出非负的激活函数,如ReLU函数。
- 当使用ReLU函数时,它将小于0的值置为0,大于0的值保持不变,从而保证隐藏层输出U是非负的。
- 对于V,由于它是解码器的权重矩阵,在梯度下降更新过程中,对权重更新的规则进行修改,例如在更新时将使得权重变为负数的更新量截断为0,以此保证V的非负性。
- 这样,通过自编码器架构,利用ReLU激活函数和修改后的梯度下降更新,可将D近似分解为两个非负矩阵U和V,即D ≈ UVᵀ。
3、考虑一个双输入神经元,它将两个输入x1和x2相乘得到输出o。设L是在o处计算的损失函数。假设已知∂L / ∂o = 5,x1 = 2,x2 = 3。计算∂L / ∂x1和∂L / ∂x2的值。
根据链式法则:
$$
\frac{\partial L}{\partial x_1} = \frac{\partial L}{\partial o} \cdot \frac{\partial o}{\partial x_1}
$$
因为 $ o = x_1 \cdot x_2 $,所以:
$$
\frac{\partial o}{\partial x_1} = x_2
$$
已知:
$$
\frac{\partial L}{\partial o} = 5, \quad x_2 = 3
$$
可得:
$$
\frac{\partial L}{\partial x_1} = 5 \cdot 3 = 15
$$
同理:
$$
\frac{\partial L}{\partial x_2} = \frac{\partial L}{\partial o} \cdot \frac{\partial o}{\partial x_2}
$$
因为:
$$
\frac{\partial o}{\partial x_2} = x_1
$$
已知:
$$
x_1 = 2
$$
可得:
$$
\frac{\partial L}{\partial x_2} = 5 \cdot 2 = 10
$$
因此:
- $ \frac{\partial L}{\partial x_1} $ 的值为 15
- $ \frac{\partial L}{\partial x_2} $ 的值为 10
4、请讨论为什么在使用通过与雅可比矩阵相乘来对任意函数进行反向传播这种以矩阵为中心的方法时必须要谨慎。[提示:计算关于 sigmoid 函数的雅可比矩阵]
使用矩阵中心方法的注意事项
使用矩阵中心方法时需谨慎,因为在反向传播中,层间的反向传播更新包含矩阵乘法,就像重复标量乘法本质上不稳定一样,重复矩阵乘法也不稳定。
梯度消失与梯度爆炸问题
例如在使用 sigmoid 激活函数时,导数最大值不超过 0.25,会导致梯度更新幅度随层数增加急剧下降,出现 梯度消失问题 ;若尝试增大激活函数梯度或权重,又可能导致 梯度爆炸 。
导数变化与稳定性
而且激活函数的导数会随迭代变化,很难使每个边的权重和激活函数导数的乘积恰好为 1,从而导致偏导数大小不稳定。
循环神经网络中的问题
此外,在某些情况下如循环神经网络中,雅可比矩阵的稳定性条件很难精确满足,模型易出现梯度消失和爆炸问题。
5、考虑两个用于回归建模的神经网络,它们具有相同的结构,即一个输入层和10个隐藏层,每个隐藏层包含100个单元。在这两种情况下,输出节点都是一个具有线性激活的单一单元。唯一的区别是,其中一个在隐藏层使用线性激活,另一个使用Sigmoid激活。哪个模型的预测方差更高?
使用Sigmoid激活函数的模型预测方差更高。因为Sigmoid函数能使模型更复杂,复杂模型在训练数据不足时更易捕捉随机数据中的虚假模式,导致预测方差更大。而线性激活函数相对简单,模型复杂度低,预测方差也相对较低。
6、Bob将有标签的分类数据分为用于模型构建的部分和用于验证的部分。然后,Bob通过在模型构建部分学习参数(反向传播)并在验证部分测试其准确性,测试了1000种神经网络架构。讨论为什么与验证数据相比,所得模型在样本外测试数据上的准确性可能较差,即使验证数据未用于学习参数。你对Bob使用他的1000次验证结果有什么建议?
模型在样本外测试数据上准确性可能较差的原因
- 多次在验证集上测试不同架构,会使模型过度适应验证集特征,导致在样本外测试数据上泛化能力变差。
- 验证集数据有限,不能完全代表样本外测试数据的分布,基于验证集选择的模型可能不适合样本外测试数据。
建议
- 将数据进一步划分为训练集、验证集和测试集,用测试集评估最终模型。
- 采用交叉验证,提高模型泛化能力。
- 结合其他正则化方法,如早停法、权重衰减,降低过拟合风险。
- 不要仅依据验证集结果选择模型,综合考虑模型复杂度、训练时间等因素。
7、讨论为什么径向基函数(RBF)网络是最近邻分类器的监督式变体。
RBF网络与最近邻分类器的关系
RBF网络的第二层每个节点包含一个原型,激活由输入数据与原型的相似度定义。这些激活值与下一层训练好的权重相结合以做出最终预测。此方法与最近邻分类器非常相似,不同之处在于第二层的权重提供了额外的监督。所以说,RBF网络是最近邻分类器的监督式变体。
8、玻尔兹曼机用于协同过滤时,学习模型使用对比散度算法的离散采样,推理最后阶段使用实值Sigmoid和Softmax激活函数。讨论如何利用这一情况,通过反向传播来微调已学习的模型。
尽管$\hat{h}_j$代表第$j$个隐藏单元的期望值,但对$\hat{h}_j$的实值版本再次应用Sigmoid函数,只能大致近似$v_i$的期望值。不过,实

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



