NNDL作业五--前馈神经网络作业题
1、习题4-1对于一个神经元,并使用梯度下降优化参数w时,如果输入x恒大于0,其收敛速度会比零均值化的输入更慢.回答如图1右边那个图为sigmoid的导数曲线可以看到导数均为正值。当使用梯度下降优化参数w时会对w进行求导其结果是损失函数L关于输出y的梯度*x*sigmoid的导数x与sigmoid的导数都恒大于0每个w共用同一个损失函数L关于输出y的梯度故对每个w进行求导的结果对应梯度同正或同负所以更新的方向如图2不是右上方向就是左下方向如果最优解在右下方向需要迭代更多次收敛速度更慢一些。另一版本零均值化的输入使得神经元在0附近sigmoid函数在零点处的导数最大所有收敛速度最快。总之记住为了权重参数收敛更快一点数据记得零均值化一下~图1 Sigmoid函数曲线和导数曲线图2 全负或全正时的收敛情况2、习题4-5如果限制一个神经网络的总神经元数量(不考虑输入层)为N1,输入层大小为M,输出层大小为1,隐藏层的层数为L,每个隐藏层的神经元数量为,试分析参数数量和隐藏层层数L的关系.回答未考虑偏置3、习题4-7为什么在神经网络模型的结构化风险函数中不对偏置b进行正则化?回答L2正则化可以防止过拟合的原因在于它对模型中的权重进行约束使权重趋向于较小的值避免它得到的权重值过大对训练数据的过度学习。另外一方面省的输入细微的变化会导致输出值的突变。对权重正则化是因为权重与输入有一个相乘的步骤权重的大小严重影响着输入与输出的联系而偏置不会和输入x有运算影响不大。浅插一句偏置为啥存在偏置的存在是为了更好的拟合数据。比如说输入是个非零的数你想让她输出是0无论怎么改权重结果都得不到零加个偏置就可以啦4、习题4-8为什么在用反向传播算法进行参数学习时要采用随机参数初始化的方式而不是直接令W0,b0?回答当W0,b0在输入层之后的所有隐藏层神经元接收到的输入都是一样的这样每一层的输出都一样反向传播时每一个梯度也都一样当直接令w0b0时会让下一层神经网络中所有神经元进行着相同的计算具有同样的梯度同样权重更新。权重更新方向一致可能会出现第1小问中图2的现象而且在作业4中提到当使用Relu激活函数时相关参数均为0参数不更新。Sigmoid函数收敛速度可能慢些但最后能够达到很好的值。作业45、习题4-9梯度消失问题是否可以通过增加学习率来缓解?回答梯度消失在链式法则中是多个导数值相乘有那么几个导数趋于0就可能导致整体趋于0也就是梯度消失学习率更新权重的步长两者没有很大的关系通过增加学习率可能会缓解梯度消失问题但是也可能加重也可能导致梯度爆炸都有可能。适当地增加学习率可以加快收敛速度但是增的太多也不好会导致跳过全局最优去找局部最优。摘自同学的博客梯度消失问题的原因在于对参数求偏导时根据链式法则得到的连乘式中多个几乎为0的导数值连乘导致。导数小会导致每次更新时的值过小从而使训练变得困难。比如激活函数为类似于sigmoid与tanh其值太大或太小时导数都趋于0(左右趋近于饱和)。参考1、什么是零均值什么是零均值化2、机器学习中L2正则化的原理及其可以防止过拟合的原因_l2正则化为什么能够减小过拟合-CSDN博客