训练过程(Training Process)
训练神经网络涉及以下步骤:
准备数据:通过 DataLoader 加载数据。定义损失函数和优化器。前向传播:计算模型的输出。计算损失:与目标进行比较,得到损失值。反向传播:通过 loss.backward() 计算梯度。更新参数:通过 optimizer.step() 更新模型的参数。重复上述步骤,直到达到预定的训练轮数。激活函数(Activation Function)
激活函数决定了神经元是否应该被激活。它们是非线性函数,使得神经网络能够学习和执行更复杂的任务。常见的激活函数包括:
Sigmoid:用于二分类问题,输出值在 0 和 1 之间。Tanh:输出值在 -1 和 1 之间,常用于输出层之前。ReLU(Rectified Linear Unit):目前最流行的激活函数之一,定义为 f(x) = max(0, x),有助于解决梯度消失问题。Softmax:常用于多分类问题的输出层,将输出转换为概率分布。损失函数(Loss Function)
损失函数用于衡量模型的预测值与真实值之间的差异。
常见的损失函数包括:
均方误差(MSELoss):回归问题常用,计算输出与目标值的平方差。交叉熵损失(CrossEntropyLoss):分类问题常用,计算输出和真实标签之间的交叉熵。BCEWithLogitsLoss:二分类问题,结合了 Sigmoid 激活和二元交叉熵损失。优化器(Optimizer)
优化器负责在训练过程中更新网络的权重和偏置。
常见的优化器包括:
SGD(随机梯度下降)Adam(自适应矩估计)RMSprop(均方根传播)测试与评估
训练完成后,需要对模型进行测试和评估。
常见的步骤包括:
计算测试集的损失:测试模型在未见过的数据上的表现。计算准确率(Accuracy):对于分类问题,计算正确预测的比例。