前言:
本篇内容记录笔者学习深度学习的学习过程,如果你有任何想询问的问题,欢迎在以下任何平台提问!
参考书:《动手学深度学习》
Bilibili:space.bilibili.com/57089326
注:本文将会随着笔者的学习过程随时补充。
多层感知机:
从单层神经网络到多层神经网络。
隐藏层:
激活函数:
权重衰减:
权重衰减可以帮助缓解过拟合问题。
在深度学习中,模型的过拟合问题通常是由于模型过于复杂或训练数据不足等原因造成的。
权重衰减是一种正则化技术,它通过在模型的损失函数中增加一个惩罚项来减少模型中的过度拟合。
- 正则化:是处理过拟合的常用方法:在训练集的损失函数中加入惩罚项,以降低学习到的模型的复杂度。
- 保持模型简单的一个特别的选择是使用L_2惩罚的权重衰减。这会导致学习算法更新步骤中的权重衰减。
- 权重衰减功能在深度学习框架的优化器中提供。
- 在同一训练代码实现中,不同的参数集可以有不同的更新行为。
权重衰减通过在损失函数中添加L1或L2范数惩罚项来实现。
- L1惩罚项将模型中所有参数的绝对值之和作为惩罚项
- L2惩罚项将模型中所有参数的平方和作为惩罚项。
这些惩罚项的引入使得模型在训练过程中更加倾向于使用较小的参数值,从而减少了过拟合的风险。
Dropout - 暂退法:
我们希望模型能够深度挖掘特征,即将其权重分散到多个特征中,而不是过于依赖少数潜在的虚假关联。
重新审视过拟合:
扰动的稳健性:
所以说,Dropout可以改进深层网络的泛化性。
Dropout是一种在神经网络中进行正则化的方法,
它通过在训练期间随机屏蔽一部分神经元来减少模型的复杂度,从而避免过拟合的问题。
在每次训练迭代中,
dropout会随机选择一些神经元,
将其输出设置为0,
从而减少这些神经元的贡献,
同时也促使神经元之间的相互作用变得更加分散和平均。
前向 / 反向传播和计算图:
前向传播:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果。
反向传播:计算神经网络参数梯度的方法。 该方法根据微积分中的链式规则,按相反的顺序从输出层到输入层遍历网络。
计算图有助于我们可视化计算中操作符和变量的依赖关系。
前向传播计算图:
- 前向传播在神经网络定义的计算图中按顺序计算和存储中间变量,它的顺序是从输入层到输出层。
- 反向传播按相反的顺序(从输出层到输入层)计算和存储神经网络的中间变量和参数的梯度。
- 在训练深度学习模型时,前向传播和反向传播是相互依赖的。
- 训练比预测需要更多的内存。
数值稳定性和模型初始化:
梯度爆炸指的是在深度神经网络训练过程中,梯度值变得异常巨大,导致网络中的某些权重值在更新时发生了非常大的变化。这会导致模型的参数更新过于剧烈,使得模型在训练过程中无法收敛到合适的解决方案,也可能导致数值计算溢出等问题。
相反,梯度消失是指在深度神经网络训练过程中,梯度值变得非常小,甚至接近于0,导致网络的某些权重值几乎不会被更新,从而使得模型无法学习到足够的特征和模式,导致模型欠拟合的问题。
梯度爆炸和梯度消失通常是由于神经网络结构太深,导致梯度在反向传播过程中指数级别地增加或减少,使得梯度难以传播到浅层网络,或者使得梯度不稳定而难以优化。为了缓解这些问题,可以采取一些技术,如权重初始化、使用梯度截断和层归一化等方法来稳定训练过程,并提高深度神经网络的性能和泛化能力。
结论:
- 梯度消失和梯度爆炸是深度网络中常见的问题。在参数初始化时需要非常小心,以确保梯度和参数可以得到很好的控制。
- 需要用启发式的初始化方法来确保初始梯度既不太大也不太小。
- ReLU激活函数缓解了梯度消失问题,这样可以加速收敛。
- 随机初始化是保证在进行优化前打破对称性的关键。
- Xavier初始化表明,对于每一层,输出的方差不受输入数量的影响,任何梯度的方差不受输出数量的影响。
附注:
关于环境和分布偏移,这里先以一言以蔽之:
环境偏移指的是训练和测试数据之间的差异,而分布偏移指的是测试数据和目标分布之间的差异。
有关内容纷繁复杂,后续单开一篇文章来记录。
本文正在参加 人工智能创作者扶持计划