习题4-1 对于一个神经元(wx + b),并使用梯度下降优化参数w时如果输入x 恒大于0,其收敛速度会比零均值化的输入更慢
当输入x恒大于0时,神经元的收敛速度通常会比零均值化的输入更慢。这是因为在梯度下降优化参数w时,如果输入x恒大于0,则对应的梯度值也会是正数。在每次更新参数时,这些正数的梯度值会使得参数w朝着更大的方向更新,从而导致收敛速度较慢。相比之下,当输入x经过零均值化处理后,其平均值接近于0,可能包含正负两种情况。这样,在梯度下降优化参数w时,正负梯度值会相互抵消,从而促使参数w朝着更快的方向更新,加快了收敛速度。
因此,对于神经元(wx + b),如果输入x恒大于0,其收敛速度会比零均值化的输入更慢。
习题4-5 如果限制一个神经网络的总神经元数量(不考虑输入层)为N +1输入层大小为Mo,输出层大小为1,隐藏层的层数为L,每个隐藏层的神经元数量为一,试分析参数数量和隐藏层层数L的关系.
每一个神经元 y=w*x+b,对于每个隐藏层,有一个权重矩阵和一个偏置向量。对于输入层到隐藏层之间的连接,权重矩阵大小为Mo × 1,偏置向量大小为1。对于隐藏层到隐藏层之间的连接,权重矩阵大小为1 × 1,偏置向量大小为1。因此,在每个隐藏层中,参数数量为 (Mo + 2)。
输入层到第一个隐藏层之间的参数数量:
权重矩阵大小为 Mo ×1(Mo是输入层大小)。偏置向量大小为 N(每个隐藏层的神经元数量)。 所以,输入层到第一个隐藏层之间的参数数量为 Mo + 1。
隐藏层到隐藏层之间的参数数量:
第一个隐藏层到最后一个隐藏层之间的参数数量(如果存在多个隐藏层):每个隐藏层之间的权重矩阵大小都为 1 × 1。
每个隐藏层的偏置向量大小为 1。 所以,隐藏层到隐藏层之间的参数数量为2L 个(L是隐藏层的层数)。
最后,我们计算隐藏层到输出层之间的参数数量:
最后一个隐藏层到输出层之间的参数数量:权重矩阵大小为1。
偏置向量大小为 1(输出层的神经元数量为1)。 所以,隐藏层到输出层之间的参数数量为 2。总的参数:Mo+2L+3
换句话说,隐藏层层数L的增加会导致参数数量的线性增加。这是因为每个隐藏层都需要一个权重矩阵和一个偏置向量,而且随着层数的增加,这些参数数量会累积。
习题4-7 为什么在神经网络模型的结构化风险函数中不对偏置b进行正则化?
正则化主要是为了防止过拟合,而过拟合一般表现为模型对于输入的微小改变产生了输出的较大差异。
1、例如y=w*x+b,过拟合就是对输入的微小改变有较大的差异,而差异的大小是(x1-x2)*w,显然和b无关,所以不用对b进行正则化。
2、偏置b是用来调整神经元激活函数的阈值或者偏移量,就是让那条拟合的线上下移动。而正则化的目的是为了防止过拟合,它是通过惩罚模型参数的大小来降低模型复杂度,但是对偏置项进行正则化可能会影响到模型学习的能力,所以不用对b进行正则化。
3、正则化会使得模型更加倾向于选择接近零的偏置项,可能拟合效果反而不好。
这些就可以看出正则化是偏向于倾向于0
习题4-8 为什么在用反向传播算法进行参数学习时要采用随机参数初始化的方式而不是直接令 w =0,b =0?
1、如果将所有参数初始化为零,那么每个神经元的梯度更新将完全相同,这会导致多个神经元学习相同的特征。通过随机参数初始化,使得每个神经元具有不同的起始状态,从而增加网络的表达能力和学习能力。
2、如果所有参数都初始化为零,那么无论训练数据如何,模型的输出都将一样,这可能导致模型陷入局部最优解。通过随机参数初始化,可以使得模型具有更大的搜索空间,有更高的概率找到全局最优解或更好的解决方案。
3、随机参数初始化可以帮助模型更快地收敛到较好的结果。通过引入随机性,可以使得模型在不同的初始状态下探索不同的参数空间,有助于更快找到合适的参数组合,并加快收敛速度。
习题4-9 梯度消失问题是否可以通过增加学习率来缓解?
梯度消失问题主要是由于深层神经网络中反向传播过程中梯度逐层相乘导致的,较小的梯度可能会在每一层中逐渐减小而接近于零。
梯度更新公式:
通过增加学习率,可以使得权重参数的更新幅度变大,从而在一定程度上增大梯度值。这可能有助于避免梯度完全消失。但是吧,过高的学习率也会引入其它问题,如无法收敛、发散等。
诚载斯言,增加学习率可能在一定程度上缓解梯度消失问题,但它并不是一个完全有效的解决方案。结合其他策略如更好的权重初始化等可以更好地解决梯度消失问题。