首页 > 试题广场 > 请用简练的语言(2~3句话)回答以下问题: 1) 为什
[问答题]

请用简练的语言(2~3句话)回答以下问题:

1) 为什么一般需要划分出额外的校验集(validation set)用于超参数调整,而不选择直接使用测试集(test set)?

2) 请解释何为鞍点(saddle point)?批量梯度下降(Batch Gradient Descent)和随机梯度下降(Stochastic Gradient Descent)在应对鞍点时有何不同的表现?

3) 当一个模型训练完后若发现训练集上的loss非常高,请问如何在不对代码进行全面排查的前提下,以最快速度定位是模型本身的拟合能力不足还是代码的实现存在某种错误?
4) 假设我们在训练一个使用Sigmoid激活函数的全连接神经网络。在对其权重进行初始化时,为什么一般会倾向于让初始值的绝对值偏小?如果需要这样,为何不直接使用0进行初始化?
1. 为了防止出现过拟合现象
2. 鞍点的正交函数求导为0,但是不管在任何轴上都不是一个局部最优点; 如果使用gradien descent,那么此时训练速度会非常慢甚至停滞,但是loss function 并没有得到很好的优化。 
批量梯度算法: 当陷入鞍点或较差的局部最优点时,梯度很难跑出来,因此可能难以保证每次得到的都是最优解
随机梯度算法: 在一定程度上能够避开鞍点
3. 设置测试集, 如果训练集 loss 不断上升,测试集 loss不断上升:说明网络结构设计不当,训练超参数设置不当;
4. 权重的初值如果太大, 会造成梯度爆炸, 梯度爆炸可能导致神经网络不稳定,使之不能从训练数据中学习,
如果权重初值为0, 则会造成梯度下降失效, 权重无法更新,

发表于 2019-06-13 12:02:04 回复(0)