神经网络模型训练
神经网络模型训练
参数初始化:神经网络的参数(包括权重和偏置)在训练开始前会被随机初始化。
前向传播:在训练过程中,输入数据通过神经网络进行前向传播,计算出模型的输出。这个过程涉及将输入数据与每一层的权重和偏置进行线性组合,然后应用激活函数来引入非线性。
反向传播:利用反向传播算法来计算损失函数相对于模型参数的梯度。这个过程涉及从输出层开始,逐层计算损失对参数的偏导数,并将这些梯度信息从输出层传播回输入层。
参数更新:得到梯度后,使用优化算法(如随机梯度下降SGD、Adam、RMSprop等)来更新模型的参数。优化算法根据计算出的梯度来调整模型参数,以最小化损失函数。
迭代训练:上述步骤(从前向传播到参数更新)会反复进行,直到模型在验证集上的性能达到满意的水平,或者达到预设的训练轮数(epochs)。
神经网络算法 - 一文搞懂模型预训练Pre-training
数据集
训练集 (Training Set):这是模型学习的基础,就像课堂上学习的知识。通过反复学习和实践,模型能够逐渐掌握数据的特征和规律,从而学会如何做出预测。
验证集 (Validation Set):在训练过程中,验证集就像课后的练习题。模型通过完成这些练习题来检验自己的学习成果,并根据反馈进行调整。在模型训练中,验证集用于调整超参数、选择最佳模型(如基于验证集上的性能)以及进行早停(防止过拟合)。
测试集 (Testing Set):测试集就像期末考试,用于全面检验模型的学习效果。在机器学习中,测试集是在模型训练完成后使用的,它提供了对模型泛化能力的无偏估计。通过比较模型在测试集上的性能,我们可以了解模型在实际应用中的表现。
反向传播(Back Propagation):反向传播算法利用链式法则,通过从输出层向输入层逐层计算误差梯度,高效求解神经网络参数的偏导数,以实现网络参数的优化和损失函数的最小化。
利用链式法则:反向传播算法基于微积分中的链式法则,通过逐层计算梯度来求解神经网络中参数的偏导数。
从输出层向输入层传播:算法从输出层开始,根据损失函数计算输出层的误差,然后将误差信息反向传播到隐藏层,逐层计算每个神经元的误差梯度。
计算权重和偏置的梯度:利用计算得到的误差梯度,可以进一步计算每个权重和偏置参数对于损失函数的梯度。
参数更新:根据计算得到的梯度信息,使用梯度下降或其他优化算法来更新网络中的权重和偏置参数,以最小化损失函数。
神经网络算法 - 一文搞懂Back Propagation(反向传播)
损失函数(Loss Function):用于衡量模型预测值与真实值之间的差距。损失函数越小,模型的预测性能就越好。
在监督学习中,我们通常有一组带有标签(即真实值)的训练数据,损失函数就是用来指导模型学习过程的工具。在每次迭代中,模型都会根据损失函数的值来调整其参数,以最小化预测值与真实值之间的差距。
损失函数调整参数
神经网络算法 - 一文搞懂Loss Function(损失函数)
初始化参数:选择一个初始的参数值。
计算梯度:计算损失函数在当前参数值下的梯度。
更新参数:沿着梯度的反方向更新参数,通常使用一个学习率(Learning Rate)来控制更新的步长。
重复迭代:重复步骤2和3,直到满足停止条件(如达到最大迭代次数、损失函数值小于一个阈值等)。
梯度下降
随机梯度下降(SGD):随机梯度下降在每次迭代中仅随机选择一个样本来计算损失函数的梯度,并根据这个梯度来更新模型的一个或多个参数。
随机梯度下降
批量梯度下降(BGD):与随机梯度下降不同,在每次迭代中,批量梯度下降使用整个数据集来计算损失函数的梯度,并根据这个梯度来更新模型的所有参数。
批量梯度下降
神经网络算法 - 一文搞懂Gradient Descent(梯度下降)
神经网络动画素材来源于3Blue1Brown,想了解更多查看参考资料网址。
3Blue1Brown 是一个由 Grant Sanderson 创建的YouTube 频道。这个频道从独特的视觉角度解说高等数学,内容包括线性代数、微积分、人工神经网络、黎曼猜想、傅里叶变换以及四元数等。
Grant Sanderson 毕业于斯坦福大学,并获得了数学学士学位。