【人工智能基础06】人工神经网络基础(二):1. 权值初始化(权值优化、避免梯度爆炸、消失)、2. 权值衰减(防止过拟合)与 3. 权值共享(卷积核)
文章目录一. 权值初始化1. 零初始化Zero Initialization2. 随机初始化Random Initialization3. Xavier初始化4. Kaiming初始化Kaiming Initialization二. 权值衰减通过正则防止过拟合1. 作用机制2. 目的3. 应用场景三. 权值共享与卷积处理过拟合的问题1. 定义2. 作用2.1. 减少参数数量2.2. 平移不变性3. 实现逻辑一. 权值初始化权值初始化是深度学习中的一个重要步骤指的是在训练神经网络之前为网络中的权重和偏置设置初始值。合适的权值初始化对于网络的训练效率和最终性能至关重要。权值初始化主要有以下作用打破对称性避免神经元因初始权值相同而等价使每个神经元能学习不同特征。避免梯度问题防止梯度消失或梯度爆炸像Xavier和Kaiming初始化方法能根据网络情况稳定梯度。加速收敛让网络在训练初期处于良好状态加快损失函数下降提升训练效率。1. 零初始化Zero Initialization零初始化将神经网络中的所有权值都初始化为0。 这种方法简单但存在严重问题。在神经网络中如果所有神经元的权重初始值都相同那么在反向传播时所有神经元将计算出相同的梯度导致它们的权重更新也相同。这样多个神经元就会变得完全等价相当于只有一个神经元在起作用网络无法学习到有效的特征。因此零初始化一般不被采用尤其是在深层神经网络中。2. 随机初始化Random Initialization从一个特定的概率分布如均匀分布或正态分布中随机采样来初始化权值。例如使用均值为0、标准差为1的正态分布来初始化权重。这种方法打破了对称性问题使每个神经元具有不同的初始权重能够学习到不同的特征。然而随机初始化存在一个潜在问题如果随机分布的标准差选择不当可能会导致梯度消失或梯度爆炸问题尤其是在深层神经网络中。例如在深层网络中如果权重初始值过大在前向传播过程中激活值可能会迅速增大导致梯度爆炸反之如果权重初始值过小激活值可能会迅速趋近于0导致梯度消失。3. Xavier初始化由Xavier Glorot提出对于线性激活函数如tanh权重的初始化通常基于均匀分布U ( − 1 n i n , 1 n i n ) U\left(-\frac{1}{\sqrt{n_{in}}},\frac{1}{\sqrt{n_{in}}}\right)U(−nin1,nin1)其中n i n n_{in}nin是输入神经元的数量对于ReLU激活函数基于正态分布N ( 0 , 2 n i n n o u t ) N\left(0,\frac{2}{n_{in} n_{out}}\right)N(0,ninnout2)其中n i n n_{in}nin是输入神经元数量n o u t n_{out}nout是输出神经元数量。适应场景Xavier初始化的目的是使得每一层的输入和输出的方差尽量相等从而缓解梯度消失和梯度爆炸问题。它适用于具有线性激活函数如tanh和ReLU激活函数的神经网络特别是在浅层到中层的神经网络中表现较好。4. Kaiming初始化Kaiming Initialization由何恺明提出针对ReLU及其变种激活函数如Leaky - ReLU权重初始化基于正态分布N ( 0 , 2 n i n ) N\left(0,\sqrt{\frac{2}{n_{in}}}\right)N(0,nin2)。由于ReLU激活函数在x 0 x 0x0时输出为0导致神经元输出的方差会有偏差。Kaiming初始化通过考虑ReLU的这种特性使得每一层的输出方差保持相对稳定有效缓解了使用ReLU激活函数时的梯度消失问题。它特别适用于以ReLU及其变种为激活函数的深层神经网络。权值初始化总结好的初始化方法可以防止前向传播过程中的信息消失也可以解决反向传递过程中的梯度消失。激活函数选择双曲正切(ReLU)或者Sigmoid时建议使用Xaizer初始化方法;激活函数选择ReLY或Leakly ReLU时推荐使用He初始化方法。二. 权值衰减通过正则防止过拟合权值衰减是一种在神经网络训练过程中用于防止过拟合的正则化技术。1. 作用机制从优化的角度看权值衰减项相当于对权重施加了一个约束。在训练过程中当更新权重时这个惩罚项会使得权重倾向于朝着使权重范数减小的方向更新。例如在梯度下降更新权重时对于L2权值衰减权重更新公式变为w t 1 w t − α ( ∇ L o r i g i n a l ( w t ) 2 λ w t ) w_{t 1}w_{t}-\alpha\left(\nabla L_{original}(w_{t}) 2\lambda w_{t}\right)wt1wt−α(∇Loriginal(wt)2λwt)其中α \alphaα是学习率∇ L o r i g i n a l ( w t ) \nabla L_{original}(w_{t})∇Loriginal(wt)是原始损失函数关于权重的梯度。可以看到权值衰减项(2\lambda w_{t})会使权重的更新受到抑制尤其是当权重较大时。2. 目的防止过拟合在神经网络训练过程中如果模型过于复杂或者训练数据有限很容易出现过拟合现象。权值衰减通过限制权重的大小使得模型不能过于依赖某些特定的特征或者权重组合从而降低模型的复杂度。提高模型的泛化能力通过权值衰减模型能够更好地适应不同的数据分布减少对训练数据中噪声的过度拟合。例如在图像分类任务中如果没有权值衰减模型可能会过度学习训练图像中的一些细微特征如特定的噪声、背景图案等而权值衰减可以使模型更关注于图像中的主要物体特征从而在新的图像上也能正确分类。3. 应用场景深度神经网络的训练例如在训练一个用于手写数字识别的卷积神经网络时添加权值衰减可以有效防止模型对训练数据中某些特定数字的书写风格过度拟合从而提高模型在新的手写数字样本上的识别准确率。模型复杂度较高的情况当模型具有大量的参数如深层网络、具有大量神经元的网络等时权值衰减尤其有用。因为参数越多模型越容易过拟合权值衰减可以有效地约束这些参数防止模型过于复杂。三. 权值共享与卷积处理过拟合的问题1. 定义权值共享是卷积神经网络CNN中的一个核心概念。在 CNN 的卷积层中卷积核滤波器在整个输入图像或输入特征图上滑动并且在不同位置上使用相同的权重参数。例如一个 3×3 的卷积核在输入图像上滑动时无论它在图像的左上角还是右下角进行卷积操作其内部的 9 个权重参数都是相同的。2. 作用2.1. 减少参数数量在处理图像等数据时如果不使用权值共享对于一个大尺寸的输入图像全连接网络需要学习的参数数量会极其庞大。例如一张 1080p1920×1080的图像包含约 200 万个像素值若使用一个有 1000 个神经元的全连接隐藏层来处理该图像仅这一层就包含约 20 亿个参数。而权值共享使得网络参数数量只与卷积核的大小和数量有关与输入图像的大小无关大大减少了需要学习的参数数量降低了计算成本和内存需求同时也减少了过拟合的风险。2.2. 平移不变性权值共享使网络具有平移不变性。这意味着无论目标物体在图像中的哪个位置出现卷积核都能以相同的方式检测到它因为在不同位置使用的是相同的权重。例如在人脸识别任务中不管人脸出现在图像的中心还是边缘卷积神经网络都能够利用权值共享机制通过相同的卷积核来提取人脸的特征这对于图像识别等任务非常重要。3. 实现逻辑在卷积神经网络的计算过程中通过将卷积核在输入图像上按一定的步长滑动在每个滑动位置进行卷积操作。这个操作的数学过程是将卷积核的权重与对应的输入图像局部区域的像素值进行逐元素相乘然后求和得到输出特征图中的一个元素。由于在整个滑动过程中卷积核的权重保持不变从而实现了权值共享。例如对于一个输入为n × n n×nn×n的图像和一个k × k k×kk×k的卷积核k n k nkn以步长为s ss进行滑动卷积输出特征图的大小为( n − k ) / s 1 (n - k)/s 1(n−k)/s1而在这个过程中卷积核的权重在所有滑动位置上都是共享的。