习题4-1 对于一个神经元,并使用梯度下降优化参数w时,如果输入x恒大于0,其收敛速度会比零均值化的输入更慢。
零均值化会将输入x集中到0附近,对于sigmoid激活函数,它在自变量取0的时候,梯度最大。也就是说这个时候,梯度下降算法的收敛速度是最快的。输入x恒大于零,这时候梯度会比在0附近小,收敛速度相较于零均值化后的数据慢。如果换做是其它激活函数就不一定了。
习题4-5 如果限制一个神经网络的总神经元数量(不考虑输入层)为N+1,输入层大小为,输出层大小为1,隐藏层的层数为L,每个隐藏层的神经元数量为,试分析参数数量和隐藏层层数L的关系。
第一项是输入层与第一个隐藏层之间的权重参数个数,第二项是隐藏层之间的权重参数个数,第三项是隐藏层与输出层的权重参数个数,最后一项是每个神经元的偏置。
习题4-7 为什么在神经网络模型的结构化风险函数中不对偏置b进行正则化?
偏置b对函数来讲只是只是一个平移,无论是变大还是变小,对结果的贡献度也只是一个偏置。只起到偏移、微调的作用。
习题4-8 为什么在反向传播算法进行参数学习时要采用随即参数初始化的方式而不是直接令W=0,b=0?
在反向传播算法中,通过计算每一个参数对于损失值的影响,即计算偏导数。拿偏导数乘学习率或者叫步长,再更新每一个参数。没传播一遍,参数就更新一遍。然后再前向传播,计算损失,再反向传播更新参数。直到损失值最小。如果将权重和偏置都初始化为0,那么每个神经元都会重复着相同的运算,有相同的梯度,每一层参数更新都一样。就相当于隐层只有一个神经元。
习题4-9 梯度消失问题是否可以通过增加学习率来缓解?
梯度消失是指:梯度接近于零,网络中的参数更新的微乎其微甚至不更新,这样无论程序运行多久,参数就相当于没变。
通过增加学习率是无法缓解梯度消失的问题的。增大学习率,梯度接近于零,二者相乘,结果还是非常小,参数还是几乎不更新。反而会导致那些高层的梯度会发生梯度爆炸问题。