梯度下降法

简介: 梯度下降法

梯度下降

(一)算法介绍

(二)python代码实现

class GD():
    def __init__(self, objFunction, GDFunction, accurate):
        self.objFunction = objFunction
        self.GDFuction = GDFunction
        self.accurate = accurate
        self.lamta = 0.01
    def GDFunction(self):
        x = 1
        self.objFunction_value = eval(self.objFunction)
        while eval(self.GDFuction) > self.accurate:
            x = x - self.lamta * eval(self.GDFuction)
            self.objFunction_current_value = eval(self.objFunction)
            if abs(self.objFunction_current_value - self.objFunction_value) < self.accurate:
                break
            else:
                self.objFunction_value = self.objFunction_current_value
        return x, self.objFunction_value
if __name__ == "__main__":
    objFunction = input('Please input object Function:')
    GDFunction = input('Please input gradient descent:')
    # accurate = float(input('Please input accurate.'))
    # objFunction = "(x-1) ** 2 + 1"
    # GDFunction = "2 * (x - 1)"
    accurate = 0.00000001
    GD = GD(objFunction, GDFunction, accurate)
    print("x = %.2f, min_value = %.2f" % GD.GDFunction())
目录
相关文章
|
机器学习/深度学习 数据可视化 Python
逻辑回归那些事—使用牛顿法解决实际问题
逻辑回归是机器学习中的重要章节,本文将带你从公式推导到算法实现详细讲述这部分内容,想学习这个高大上的技能么,快来看吧!!!
5486 0
|
5月前
|
算法
梯度下降算法(二)
梯度下降法中,学习率选择至关重要。0.3的学习率导致无法找到最小值且产生震荡,而0.01则使结果接近最优解(2.99998768)。当学习率进一步减小至0.001,点远离最低点。通过迭代次数增加至1000次,可更接近最低点(2.999999999256501)。梯度下降用于最小化损失,学习率控制参数更新步长,需平衡收敛速度和稳定性。迭代次数和初始点也影响模型性能,合适的初始化能加速收敛并避开局部极小值。
|
5月前
|
机器学习/深度学习 存储 算法
梯度下降算法(一)
梯度下降是一种迭代优化算法,用于找到多变量函数的最小值。它不直接求解方程,而是从随机初始点开始,沿着梯度(函数增大幅度最大方向)的反方向逐步调整参数,逐步逼近函数的最小值。在单变量函数中,梯度是导数,而在多变量函数中,梯度是一个包含所有变量偏导数的向量。通过计算梯度并乘以学习率,算法更新参数以接近最小值。代码示例展示了如何用Python实现梯度下降,通过不断迭代直到梯度足够小或达到预设的最大迭代次数。该过程可以类比为在雾中下山,通过感知坡度变化来调整前进方向。
|
5月前
|
机器学习/深度学习 算法 Serverless
代价函数详解
代价函数详解
|
5月前
|
机器学习/深度学习 算法
损失函数
【6月更文挑战第14天】损失函数。
44 2
|
6月前
|
机器学习/深度学习 算法 调度
多元线性回归梯度下降法
梯度下降法是一种通用的优化算法,尤其适用于机器学习中找到最优解。与解析解法不同,它不局限于特定情况,能在数据规模较大时依然有效。该方法通过迭代逐步接近最优解,每次迭代利用损失函数的梯度信息调整参数。学习率是控制参数更新幅度的关键因素,太大会导致发散,太小则收敛慢。全量梯度下降每次使用所有样本更新,收敛稳定但速度慢;随机梯度下降每次仅用一个样本,速度快但可能产生较大波动;小批量梯度下降取两者之间,以一定的样本批量进行更新,兼顾速度和稳定性。
76 1
|
算法 异构计算
连载|梯度下降
连载|梯度下降
|
机器学习/深度学习 算法 搜索推荐
导数、梯度、最优化方法|学习笔记
快速学习导数、梯度、最优化方法
166 0
导数、梯度、最优化方法|学习笔记
|
机器学习/深度学习 存储 算法
导数、梯度、最优化方法|学习笔记
快速学习导数、梯度、最优化方法
导数、梯度、最优化方法|学习笔记
|
机器学习/深度学习 算法 数据挖掘
梯度下降【无约束最优化问题】(一)
本文属于 线性回归算法【AIoT阶段三】(尚未更新),这里截取自其中一段内容,方便读者理解和根据需求快速阅读。本文通过公式推导+代码两个方面同时进行,因为涉及到代码的编译运行,如果你没有NumPy,Pandas,Matplotlib的基础,建议先修文章:数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解),本文是梯度下降的第一部分,后续还会有:三种梯度下降方法与代码实现,梯度下降优化,梯度下降优化进阶 (暂未更新)
186 0
梯度下降【无约束最优化问题】(一)