深度学习相关问题(一)

深度学习相关问题(一)

2022李宏毅老师《机器学习》课程
学习中遇到的问题

1.为什么在深度学习中,特征归一化可以使梯度下降的收敛速度更快?

在深度学习中,特征归一化可以使梯度下降的收敛速度更快的主要原因是它有助于消除特征之间的尺度差异。当特征具有不同的尺度时,梯度下降算法可能需要更多的迭代步骤才能达到最优解。

通过特征归一化,将所有特征缩放到相似的尺度范围内,例如将其缩放到0到1之间或使用标准化(均值为0,标准差为1)。这样做可以确保梯度下降算法在更新模型参数时对所有特征都以相似的步长进行调整。

如果特征之间存在较大的尺度差异,梯度下降可能会在特征值较大的方向上迅速前进,而在特征值较小的方向上进展缓慢。这种不平衡会导致收敛速度变慢,因为梯度下降需要花费更多的时间来调整特征值较小的参数。

通过特征归一化,梯度下降算法可以更加均匀地更新所有参数,而不会被特征的尺度差异所干扰。这有助于避免算法在训练过程中陷入局部最优解或需要更多的迭代才能达到全局最优解。因此,特征归一化可以加快梯度下降的收敛速度。

2.为什么Batch Normalization中,用Sigmoid比ReLU训练困难

在Batch Normalization(批标准化)中,使用Sigmoid激活函数相对于ReLU激活函数训练困难的原因有两个主要方面:

(1)梯度饱和问题:Sigmoid函数在输入值较大或较小时会饱和,即函数的导数接近于零。这导致在反向传播过程中,梯度会以指数级衰减,这被称为梯度消失问题。当使用Sigmoid激活函数时,层与层之间的梯度传递变得困难,使得网络的训练变得缓慢且不稳定。

(2)均值偏移问题:在深度神经网络中,随着信息的传递,每一层的输入分布可能会发生变化。这被称为均值偏移问题。Sigmoid激活函数的输出范围在(0, 1)之间,当输入值偏离均值时,Sigmoid函数会饱和并产生小的梯度,从而减缓网络的收敛速度。

相比之下,ReLU激活函数没有梯度饱和问题,并且在正区间具有线性激活,能够更好地传递梯度。它的导数在正区间为常数1,而在负区间为零。这种特性使得ReLU在训练过程中更易于优化,并且对均值偏移问题也更具有鲁棒性。

因此,Batch Normalization结合ReLU激活函数通常能够更好地训练深度神经网络,提高网络的收敛速度和训练稳定性。

3. Transformer 中为何使用Layer Norm 而不是 Batch Norm?

在Transformer模型中使用Layer Normalization而不是Batch Normalization的主要原因是Transformer的结构和运算方式。

(1)逐样本处理:Transformer模型的核心是自注意力机制,其中每个样本都独立地进行注意力计算。与传统的卷积神经网络或循环神经网络不同,Transformer的处理方式是逐样本进行的,而不是按批次处理。这意味着在Transformer中,无法获得Batch Normalization所需的样本间的统计信息。

(2)序列长度变化:Transformer模型中序列长度可以是可变的,而Batch Normalization要求输入数据具有相同的批次维度。由于Transformer处理的是变长序列,每个序列的长度可能不同,无法直接使用Batch Normalization进行归一化。

(3)减少计算复杂度:Batch Normalization需要在批次维度上计算均值和方差,这会增加计算量。在Transformer模型中,由于逐样本处理,使用Batch Normalization会引入额外的计算开销,降低模型的效率。

相比之下,Layer Normalization(层归一化)是一种逐通道进行归一化的方法,适用于逐样本处理的情况。它通过计算每个样本在通道维度上的均值和方差来进行归一化,保持样本之间的独立性。Layer Normalization在Transformer模型中更适用,可以在每个自注意力层或前馈神经网络层之后应用,有助于提高模型的收敛性和稳定性。

因此,由于Transformer模型的结构和运算特点,Layer Normalization更适合用于归一化处理,而Batch Normalization在这种情况下并不适用。

4.在decoder中,为什么NAT通常比AT效果差?

在Transformer模型中,NAT(Non-Autoregressive Transformer)和AT(Autoregressive Transformer)是用于解码器部分的两种不同策略。

(1)Autoregressive Transformer (AT):
在Autoregressive Transformer中,解码器通过逐步生成序列的方式,每个时间步骤上生成一个输出,并将其作为下一个时间步骤的输入。在每个时间步骤,模型通过自回归方式预测当前位置的输出,直到生成完整的序列。AT的优点是能够考虑到上下文信息,逐步生成的方式可以捕捉到序列中的依赖关系。但是,由于生成过程的串行性质,导致了较慢的推断速度,因为每个时间步骤必须等待前面的时间步骤生成输出。

(2)Non-Autoregressive Transformer (NAT):
在Non-Autoregressive Transformer中,解码器通过并行地生成所有位置的输出,而不需要依赖上下文信息。NAT通过引入一种机制来估计所有位置的条件分布,使得所有位置的输出可以同时生成。NAT的优点是推断速度更快,因为不需要依次生成每个位置的输出。然而,由于不考虑上下文信息,NAT在捕捉序列中的依赖关系方面比AT差,容易导致生成的序列缺乏准确性和一致性。

因此,尽管NAT在推断速度方面具有优势,但由于缺乏逐步生成的依赖关系,导致其在生成准确性和一致性方面通常比AT差。NAT在处理自然语言生成任务(如机器翻译)时可能会产生一些不连贯或不完整的输出,而AT通过逐步生成可以更好地捕捉到上下文信息和序列依赖关系。因此,在许多情况下,AT通常比NAT表现更好。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值