Torch - 优化器和损失函数



Torch 中的优化器和损失函数对于训练神经网络非常重要。常见的损失函数度量标准包括用于回归任务的均方误差 (MSE) 和用于分类任务的交叉熵损失。Torch 中的每个组件在训练循环中协同工作,其中优化器根据完成损失函数的梯度重新更新模型参数。

优化器

Adam 和随机优化器确定参数以最小化损失函数,该函数度量实际值和预测值之间的差异。

  • 随机梯度下降 (SGC):这是一种优化算法,用于最小化机器学习模型中的损失函数。它使用整个数据集计算梯度,并仅使用单个或少量训练迭代更新模型参数。

  • 自适应矩估计 (Adam):它结合了随机梯度下降扩展的其他两个优点。它为每个参数计算自适应学习率。

  • RMSprop:学习率是平方梯度的指数衰减平均值的除数。

损失函数

损失函数在机器学习中至关重要,因为它们量化了模型预测与实际数据之间的差异。它们衡量预测输出与真实输出之间的差异,并指导优化过程。常见的损失函数包括用于回归任务的均方误差,它计算实际值和预测值之间的差异。

  • MSELoss(均方误差):它衡量实际值和预测值之间的平均平方差,通常用于回归任务。

  • CrossEntropyLoss(交叉熵损失):它将 NLLoss 和 LogSoftmax 结合在一个类中。它用于分类任务。每个损失函数在多类问题中都特别有效,其中它计算真实分布与预测概率分布之间的差异。

  • NLLoss(负对数似然):它用于输出是概率分布的分类问题。在处理多分类任务时,此损失函数特别有效。

常用机器

Torch 使用面向对象的范式开发,它可以通过修改现有算法或设计新算法来实现。以下是常用方法:

梯度机器

这是机器学习中一项重要的技术,由反向传播算法引入。它是将简单的梯度下降应用于复杂的可微函数。Torch 确定训练好的梯度下降函数。

数学表示如下:

$$\mathrm{f_{(w)}(x)=v_0+\sum^{N}{j=1}v_j\:tanh\:(v{j0}+\sum^{d}{i=1}u{ji}x^{i})}$$

此公式通过为训练集中每个示例迭代更新函数来优化权重。它计算成本函数的导数。文本说明了 Torch 的模块化特性,它允许实现不同的梯度机器和成本函数。这种方法简化了复杂模型的创建。

支持向量机 (SVM)

支持向量机是一种非常强大的机器学习算法,广泛用于分类任务。它们在不同的分类问题中表现出良好的性能。

数学表示如下:

$$\mathrm{k(x,x_{j})=exp(\:(−\gamma)\lVert x_{i}−x_{j}\lVert^{2})(\gamma \:\epsilon \:R)}$$

训练 SVM 包括解决一个优化问题,表示为:

$$\mathrm{y=sign (\sum^{T}_{i=1}y_i\:\alpha_i\:K(x,x_i)+b)}$$

最常用的高斯核:

$$\mathrm{Q(\alpha)=−\sum^{T}{i=1}\alpha{i}+\frac{1}{2}\sum^{T}{i=1}\sum^{T}{j=1}\alpha_i \alpha_j y_iy_jk(x_i x_j)}$$

分布

Torch 分布是一个对象,例如高斯分布,它计算数据集的概率、似然或密度。可以使用各种训练算法(例如期望最大化或维特比算法)来确定此分布中的参数。Torch 分布指定训练好的梯度机器以优化不同的标准,或者我们可以创建非常复杂的机器。

广告