梯度下降算法

梯度下降算法是许多机器学习算法中用来最小化代价函数的优化算法。梯度下降算法用于更新学习模型的参数。

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

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

使用的变量:

设‘k’为训练数据集的个数。

让‘j’为数据集中的要素数量。

如果 p == k ,小批量梯度下降的行为将类似于批量梯度下降。(其中‘p’为批量梯度下降)

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

设 h θ (a) 为线性回归的假设。那么成本函数将由下式给出:

让σ代表从 t = 1 到 k 的所有训练数据集的总和。

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
}

其中 a g (t) 代表 t th 训练数据集的 g th 特征,假设如果“ k 非常大(例如,700 万个训练数据集),那么批量梯度下降将花费数小时甚至数天来完成该过程。因此,对于大的训练数据集,不建议用户使用批量梯度下降,因为这会减慢机器的学习过程。

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

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

让p = 10**k = 100**;

然而,用户可以调整批量大小。这通常写成 2 的幂。

重复{对于 t = 1,11,21,…..,91 设σ为 d .θ<sub>g</sub>=θ<sub>g</sub>-(学习率/大小(p))*σ(h<sub>θ</sub>(a<sup>(d)</sup>)-b<sup>(d)</sup>)a<sub>g</sub><sup>(d)</sup>
每 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

        }
}

结论

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


原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/235523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 11:51
下一篇 2024-12-12 11:55

相关推荐

  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python实现爬楼梯算法

    本文介绍使用Python实现爬楼梯算法,该算法用于计算一个人爬n级楼梯有多少种不同的方法。 有一楼梯,小明可以一次走一步、两步或三步。请问小明爬上第 n 级楼梯有多少种不同的爬楼梯…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • Harris角点检测算法原理与实现

    本文将从多个方面对Harris角点检测算法进行详细的阐述,包括算法原理、实现步骤、代码实现等。 一、Harris角点检测算法原理 Harris角点检测算法是一种经典的计算机视觉算法…

    编程 2025-04-29
  • 数据结构与算法基础青岛大学PPT解析

    本文将从多个方面对数据结构与算法基础青岛大学PPT进行详细的阐述,包括数据类型、集合类型、排序算法、字符串匹配和动态规划等内容。通过对这些内容的解析,读者可以更好地了解数据结构与算…

    编程 2025-04-29
  • 瘦脸算法 Python 原理与实现

    本文将从多个方面详细阐述瘦脸算法 Python 实现的原理和方法,包括该算法的意义、流程、代码实现、优化等内容。 一、算法意义 随着科技的发展,瘦脸算法已经成为了人们修图中不可缺少…

    编程 2025-04-29
  • 神经网络BP算法原理

    本文将从多个方面对神经网络BP算法原理进行详细阐述,并给出完整的代码示例。 一、BP算法简介 BP算法是一种常用的神经网络训练算法,其全称为反向传播算法。BP算法的基本思想是通过正…

    编程 2025-04-29
  • 粒子群算法Python的介绍和实现

    本文将介绍粒子群算法的原理和Python实现方法,将从以下几个方面进行详细阐述。 一、粒子群算法的原理 粒子群算法(Particle Swarm Optimization, PSO…

    编程 2025-04-29
  • Python回归算法算例

    本文将从以下几个方面对Python回归算法算例进行详细阐述。 一、回归算法简介 回归算法是数据分析中的一种重要方法,主要用于预测未来或进行趋势分析,通过对历史数据的学习和分析,建立…

    编程 2025-04-28
  • 象棋算法思路探析

    本文将从多方面探讨象棋算法,包括搜索算法、启发式算法、博弈树算法、神经网络算法等。 一、搜索算法 搜索算法是一种常见的求解问题的方法。在象棋中,搜索算法可以用来寻找最佳棋步。经典的…

    编程 2025-04-28

发表回复

登录后才能评论