NNDL 作业五 第四章课后题

习题4-1对于一个神经元σ(w’x + b),并使用梯度下降优化参数w时,如果输入x恒大于0,其收敛速度会比零均值化的输入更慢.

如下图, s i g m o i d sigmoid sigmoid函数的导数,在输入值 x x x较大时,其导数接近于0,即梯度趋近于0。这种情况下,梯度下降优化算法在更新参数时,梯度的大小会逐渐减小,导致收敛速度变慢。
而如果对 x x x进行了零均值化,那么 x x x会分布在0附近,此时,sigmoid函数的导数值较大,可以是模型更快的收敛到最优。
在这里插入图片描述
已知, y = f ( w 1 x 1 + w 2 x 2 + b ) y=f\left( w_1x_1+w_2x_2+b \right) y=f(w1x1+w2x2+b) E = 1 2 ( y ^ − y ) 2 E=\frac{1}{2}\left( \widehat{y}- y\right) ^2 E=21(y y)2求梯度:
∂ E ∂ w 1 = ( y ^ − y ) y ( 1 − y ) x 1 \frac{\partial E}{\partial w_1}=\left( \widehat{y}-y \right) y\left( 1-y \right) x_1 w1E=(y y)y(1y)x1 ∂ E ∂ w 2 = ( y ^ − y ) y ( 1 − y ) x 2 \frac{\partial E}{\partial w_2}=\left( \widehat{y}-y \right) y\left( 1-y \right) x_2 w2E=(y y)y(1y)x2

如果 x 1 x1 x1 x 2 x2 x2恒大于0,那么 w 1 w1 w1 w 2 w2 w2梯度的符号都是一样的(要么都大于0,要么都小于0),此时 w 1 w1 w1 w 2 w2 w2要么同时减小(此时更新的方向为左下),要么同时增大(此时更新的方向为右上),如下图。锯齿式下降,此时收敛速度较慢。
而如果零均值化后, x x x既有正的又有负的,那么就可以沿着绿色的线进行收敛了,此时收敛速度较快。

在这里插入图片描述在这里插入图片描述

习题4-5如果限制一个神经网络的总神经元数量(不考虑输入层)为 N + 1 N+1 N+1,输入层大小为 M 0 M_0 M0 ,输出层大小为 1 1 1,隐藏层的层数为 L L L,每个隐藏层的神经元数量为 N L \frac{N}{L} LN ,试分析参数数量和隐藏层层数 L L L的关系.

在这里插入图片描述

习题4-7为什么在神经网络模型的结构化风险函数中不对偏置b进行正则化?

偏置的作用:

  1. 使神经元更容易激活,从而增加了模型的表达能力。具体来说,偏置可以将神经元的输出整体上移或下移,从而改变神经元的激活阈值。如果没有偏置,神经元只能通过调整权重来改变激活阈值,这可能导致神经元的激活函数无法完全适应数据,从而影响模型的表现能力。
  2. 偏置也可以帮助神经网络更好地拟合训练数据,特别是在处理多类别分类问题时。因为不同类别的数据可能具有不同的基线,如果不添加偏置,神经网络可能无法学习到这些基线信息,从而影响模型的性能。

正则化的作用:
正则化通过对模型的参数进行约束,降低过拟合风险并提高泛化能力。正则化方法通常通过在损失函数中引入一个正则化项,来抑制模型复杂度,防止模型过于拟合训练数据。

不对 b b b进行正则化的主要原因:

  1. 正则化的目的是通过限制参数的大小来避免过拟合,而对偏置参数进行正则化可能会降低模型的灵活性,导致模型在训练集上的性能下降。
  2. 偏置参数的调整可以通过模型的训练过程自动学习得到,不容易出现过拟合的问题。
  3. 偏置参数的大小并不会对模型的复杂度产生很大的影响,因为它们只是用来调整激活函数的阈值,而不会改变模型的层次结构或非线性能力。

习题4-8为什么在用反向传播算法进行参数学习时要采用随机参数初始化的方式而不是直接令W =0,b= 0?

如果直接将所有参数初始化为0,会导致所有神经元输出相同,从而使得每个隐藏层单元都采用相同的输入、执行相同的计算,最终导致所有隐藏层单元输出相同(对称权重问题)。也就是说,由于网络无法学习到不同的权重,模型就失去了学习的能力。
另外,随机初始化还可以防止陷入局部极小值。在模型训练过程中,优化器会不断调整参数以最小化损失函数,但是如果所有参数都初始化为相同的值,那么每个参数在训练过程中的更新也会相同,这可能会导致在某些情况下陷入局部最小值无法跳出去。

拿刚刚做完的前馈神经网络二分类举例:

使用正态分布对w进行初始化

在这里插入图片描述在这里插入图片描述

使用0对w进行初始化

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

增大步长

在这里插入图片描述在这里插入图片描述

可以看出,使用正态分布对w进行初始化,模型可以收敛到误差最小值,效果很好。
而使用0初始化的w,模型收敛不到最小值,而且分类效果也比较差。通过最后一次的梯度,可以看出梯度非常非常小,趋于0,参数几乎不再更新。
尝试增大步长,但是损失最终还是不能达到0,个人感觉可能是因为梯度消失(但是我不太确定到底是梯度消失还是达到了局部最小,这一点,待日后解决)。

习题4-9梯度消失问题是否可以通过增加学习率来缓解?

梯度消失问题不可以通过增加学习率来缓解,因为梯度消失不是指梯度太小,而是指梯度在最后一层往前传的过程中不断减小,这个消失,指的是最底层的梯度和最高层的梯度量级的差别。
如果增大了学习率,底层的学习可能确实更加有效了,高层的梯度就可能炸了。

从上图中也可以看出,当步长为1时,模型未收敛到最优,可能产生了梯度消失,而当步长增加为10后,模型依然未收敛到最优,仍然存在梯度消失的问题。

梯度消失产生的原因:

  1. 链式法则的乘积效应。
  2. 使用饱和激活函数。
  3. 不合适的权重初始化。
  4. 深度网络结构。

如何解决梯度消失:

  1. 使用合适的激活函数。
  2. 合适的参数初始化方式。
  3. 残差连接:残差连接是在深层网络中引入跨层连接,将前一层的输出直接添加到后一层的输入中。这样可以让信息更直接地传递到较深的层次,有助于避免梯度消失的问题,并且提高了网络的表达能力。
  4. 批归一化:批归一化技术可以将每一层的输入进行归一化处理,使得输入的均值保持在0附近、方差接近1,从而加速网络的训练过程并减轻梯度消失问题。它通过对输入数据进行规范化,使得每层的输入保持在一个合理的范围内,有助于缓解梯度消失。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值