神经网络基础

从感知机到多层网络的表达能力、ReLU 非线性与训练要点,深度学习课程笔记

神经网络基础

从感知机到深度网络

神经网络的基本单元是感知机,它实现了一个线性分类器。给定输入x,感知机计算分数w·x,根据分数的正负输出+1或-1。训练时如果预测错误,就按照w←w+yxw \leftarrow w + yx的规则更新权重。这里y是正确的标签,x是输入向量。这个规则的直观理解是:如果应该输出+1但输出了-1,说明权重不够,需要增加wx;如果应该输出-1但输出了+1,说明权重过大,需要减少wx。

单层感知机的表达能力有限,它只能解决线性可分问题。为了处理更复杂的模式,需要多层网络。一个两层的神经网络可以这样表示:f(x)=relu(x⋅W1+b1)⋅W2+b2f(x) = \text{relu}(x\cdot W_1 + b_1) \cdot W_2 + b_2。第一层线性变换后接非线性激活函数ReLU,再接第二层线性变换。ReLU定义为relu(x) = max(x, 0),它的作用是引入非线性,使网络能够拟合任意函数。

深层网络通过添加更多层来增强表达能力。三层网络的公式是relu(relu(x⋅W1+b1)⋅W2+b2)⋅W3+b3relu(\text{relu}(x\cdot W_1 + b_1) \cdot W_2 + b_2) \cdot W_3 + b_3。注意最后一层通常不加激活函数,因为我们希望输出能产生任意实数值。对于回归任务,输出可以是任意数;对于分类任务,输出的logits可以取正负值来表达相对优势。

训练神经网络

训练神经网络需要定义损失函数和优化算法。对于回归任务,常用均方误差损失:L=1/2NΣ(yi−y^i)2L = 1/2N Σ(y_i - \hat{y}_i)^2。损失函数衡量预测与真实的差距,优化的目标是最小化损失。梯度下降算法通过计算损失对参数的梯度,沿着梯度的反方向更新参数。

学习率是梯度下降中最重要的超参数。学习率太大会导致损失震荡甚至发散到无穷大,学习率太小会导致收敛极慢。实践中通常从较小的学习率开始尝试,比如0.001或0.0001。批次大小也会影响训练,较小的批次需要较低的学习率。

训练循环包含几个标准步骤。首先用DataLoader创建数据迭代器,设置batch_size和shuffle。然后创建优化器实例,比如Adam或SGD。每个epoch内遍历所有batch:清零梯度、前向传播计算预测、计算损失、反向传播计算梯度、更新参数。重复这个过程直到验证集准确率达到目标或达到最大epoch数。

架构设计建议

设计神经网络架构需要系统化的尝试。建议从浅层网络开始,一个隐藏层往往足够解决问题。深层网络有指数级的超参数组合,错一个就可能毁掉性能。隐藏层大小在100到500之间是合理的起点,太大会增加计算时间且收益递减。批次大小在1到128之间,学习率在0.0001到0.01之间。

架构设计的一个重要原则是不要忘记基本检查。确保loss在下降,如果loss不变化或变成NaN,通常是学习率过大或其他bug。确保训练集准确率能达到较高水平,如果连训练集都拟合不好,说明模型容量不足或实现有误。然后检查验证集准确率,如果验证集准确率远低于训练集,说明过拟合,需要减少模型容量或增加正则化。

卷积神经网络

卷积神经网络专为处理具有网格结构的数据(如图像)设计。卷积操作将一个权重矩阵在输入上滑动,在每个位置计算对应区域的加权和。具体来说,对于位置(i,j),输出aij=ΣmΣninputi+m,j+n⋅weightm,na_{ij} = \Sigma_m \Sigma_n input_{i+m, j+n} \cdot weight_{m,n}。这种操作具有局部性和平移不变性,符合图像的特性。

卷积后通常接激活函数和池化层。池化层(如最大池化)在一个小区域内取最大值,起到降维和提取主要特征的作用。卷积层的参数共享特性大大减少了模型参数数量——同一个卷积核在所有位置重复使用。

在实践中,可以先手动实现卷积来理解原理。卷积操作的核心是双重循环遍历输出位置,在每个位置提取输入的对应patch,计算patch与权重矩阵的内积。理解卷积输出大小的计算很重要:如果输入大小是H×W,卷积核大小是KH×KW,输出大小就是(H-KH+1)×(W-KW+1)。

注意力机制

注意力机制是深度学习中的重要创新,它让模型能够动态关注输入的不同部分。自注意力机制的核心公式是softmax(M(QKT/dk))Vsoftmax(M(QK^T/\sqrt{d_k}))V,其中Q、K、V分别代表查询、键、值。这个公式可以理解为:用Q去"查询"哪些K是相关的,相关性得分经过softmax归一化后作为权重,加权求和V得到输出。

缩放因子1/dk1/\sqrt{d_k}防止点积值过大导致softmax进入饱和区。注意力机制的一个关键特性是可以并行计算所有位置的注意力,这与循环网络的顺序处理不同。

因果掩码是自回归模型中的重要技术。创建一个下三角矩阵,对角线及下方为1,上方为0。在应用softmax前,将注意力分数的上三角部分设为负无穷大,确保每个位置只能关注之前的位置。这防止了模型"偷看"未来信息,在语言建模等任务中至关重要。

100%