梯度下降是一种优化算法,用于许多机器学习算法中的成本函数最小化。梯度下降算法用于更新学习模型的参数。

以下是不同类型的梯度下降:

  • 批量梯度下降: 批量梯度下降是一种梯度下降算法,用于在每次梯度下降迭代时处理所有训练数据集。假设训练数据集的数量很大,批量梯度下降将相对昂贵。因此,如果训练数据集的数量很大,建议用户不使用批量梯度下降,而是使用小批量梯度下降。
  • 小批量梯度下降: 小批量梯度下降是梯度下降的一种类型,它比其他两种梯度下降类型更快。假设用户有“p”(其中“p”是批量梯度下降)数据集,其中p < m(其中“m”是小批量梯度下降)将在每次迭代中处理。因此,即使“p”训练数据集的数量很大,小批量梯度下降也会在一次尝试中以“p”个训练数据集的批处理方式处理它。因此,它可以处理具有较少迭代次数的大型训练数据集。
  • 随机梯度下降: 随机梯度下降是一种梯度下降类型,它可以在每次迭代中处理一个训练数据集。因此,参数将在每次迭代后更新,每次处理一个数据集。这种梯度下降比批量梯度下降快。但是,即使训练数据集的数量很大,它也将一次处理一个数据集。因此,迭代次数将很大。

使用的变量:

'k'是训练数据集的数量。

'j'是数据集中的特征数量。

如果p == k,小批量梯度下降将类似于批量梯度下降。 (其中'p'是批量梯度下降)

用于批量梯度下降的算法:

hθ(a)表示线性回归的假设。然后成本函数将由以下公式给出:

Σ表示从t = 1k的所有训练数据集的总和。

Gtrain(θ) = (1/2k) Σ (hθ(a(t)) - b(t))2

Repeat {
θg = θg - (learning rate/k) * Σ (hθ(a(t)) - b(t))ag(t)
   For every g = 0 …j
}

其中ag(t)表示t th训练数据集的g th特征,假设'k'很大(例如,700万个训练数据集),则批量梯度下降将花费几小时甚至几天来完成该过程。因此,对于大型训练数据集,不建议用户使用批量梯度下降,因为它会减慢机器学习的学习过程。

用于小批量梯度下降的算法

假设“p”是一个批次中的数据集数量,其中p < k

p = 10k = 100

但是用户可以调整批处理大小。通常将其编写为2的幂。

Repeat { 
   For t = 1, 11, 21, ….., 91
      
      Let Σ be the summation from t to t+9 represented by d. 
      
      Θg = θg - (learning rate/size of (p)) * Σ (hθ(a(d)) - b(d))ag(d)
        For every g = 0 …j
}

用于随机梯度下降的算法:

  • 此梯度下降将随机洗牌数据集以训练每种数据。
  • 随机梯度下降每次迭代只采用一个数据集。
Hence,
Let (a(t), b(t)) be the training dataset
Cost(θ, (a(t), b(t))) = (1/2) Σ (hθ(a(t)) - b(t))2

Gtrain(θ) = (1/k) Σ Cost (θ, (a(t), b(t)))

Repeat {
  For t = 1 to k{
      Θg = θg - (learning rate) * Σ (hθ(a(t)) - b(t))ag(t)
        For every g = 0 …j
        
        }
}

结论

在本教程中,我们讨论了不同类型的梯度下降算法及其变体。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程