首页 > 其他分享 >梯度下降法求最小值

梯度下降法求最小值

时间:2024-09-12 19:52:58浏览次数:3  
标签:10 迭代 梯度 list 最低点 最小值 append 法求

 梯度:是一个向量         

例如: y=x^{2}

图1

        给定一个初始值 x=5,这是一个一元函数,自变量有两个运动方向,向左和向右。向右边运动,越走越高,函数值在增加,这个方向被称为梯度方向;向左边运动,越走越低,函数值在减小这个方向为梯度的反方向。

        显然,要走到最低处,应该选择梯度的反方向。假设走了一段走到某处,再次对方向进行判断,继续朝着梯度的反方向移动,重复这个逻辑,不断朝着梯度的反方向运动,到达最低点附近。

        要想达到最低点,要考虑每一次移动多少:

图2

        假设  f= x^{2} ,梯度为 2x,起始点位置 x0=10,第一个移动的位置为 x1 等于 x0 减去其在 x0 处的梯度值,得到 x1=-10;第二次移动 x2 等于 x1 减去其在 x1 处的梯度值,得到 x2=10;同样 x3=-10, x4=10 ······。但是一直在10和-10之间振荡,并没有降低到最低点。

        为此需要一个参数来控制移动的距离,这个参数成为学习率(步长) \eta

        上述过程的学习率 \eta = 1(图2)。

        如果将学习率调到1.05,多次迭代后不仅不会降低到最低点,甚至越走越高(图3)。而如果将学习率降低到较小的值,比如0.02,每次迭代后位置确实在降低,但降低的幅度比较小(图4)。如果将学习率调到0.2,迭代多次后基本就能降到最低处(图5)。因此完成梯度下降,需要选择合适的学习率,不能太大,也不能太小。

图3
图4
图5

      \eta = 0.2 时,每次迭代后,梯度值都在不断的下降。到第10次的时候降到了0.12,来到最最低点的附近(图6)。梯度为0时的位置,就是最低点的位置。因此选择较小的梯度值作为终止条件是比较自然的,比如希望最后的梯度值小于等于0.01,那么只需要迭代15次;小于等于0.001,就需要迭代19次。只要学习率选择的合适,梯度就可以下降到任意小。

图6

代码:

lr = 0.2  # 学习率
n = 15  # 迭代的次数
x = 10  # 初始值
y = x ** 2  # 目标函数

x_list = []  # 记录每次迭代的x值
y_list = []  # 记录每次迭代的y值
x_list.append(x)
y_list.append(y)

print(f'初始值:   x0={x:.4f}   y0={x ** 2:.4f}')
# 梯度下降法求最小值
for i in range(n):
    i = i + 1
    x = x - lr * 2 * x
    y = x ** 2
    x_list.append(x)
    y_list.append(y)
    print(f'第{i}次迭代:x{i} = {x:.4f} y{i}={x ** 2:.4f}')

运行结果:

标签:10,迭代,梯度,list,最低点,最小值,append,法求
From: https://blog.csdn.net/m0_74895132/article/details/142181455

相关文章

  • 遗传算法求解VRP路径规划问题
    文章目录题目:快递公司送货策略VRP问题简介遗传算法项目地址代码说明代码结构求解流程举例求解目标求解步骤总结打数模国赛前拿来练手的题,现在题目求解思路分享给大家,包括所有源代码和高清pdf论文,希望能对大家有所帮助!题目:快递公司送货策略VRP问题简介VR......
  • 遗传与进化计算会议(Genetic and Evolutionary Computation Conference,简称GECCO)多目标
    遗传与进化计算会议(GeneticandEvolutionaryComputationConference,简称GECCO)是进化计算领域内最大的同行评审会议,也是计算机学会(ACM)遗传与进化计算特别兴趣小组(SIGEVO)的主要会议。它涵盖了遗传算法、遗传编程、蚁群优化和群体智能、复杂系统、进化组合优化和元启发式、进......
  • 【04】深度学习——训练的常见问题 | 过拟合欠拟合应对策略 | 过拟合欠拟合示例 | 正
    深度学习1.常见的分类问题1.1模型架构设计1.2万能近似定理1.3宽度or深度1.4过拟合问题1.5欠拟合问题1.6相互关系2.过拟合欠拟合应对策略2.1问题的本源2.2数据集大小的选择2.3数据增广2.4使用验证集2.5模型选择2.6K折交叉验证2.7提前终止3.过拟合欠拟合示例3.1导入库3.2......
  • 手动用梯度下降法和随机梯度下降法实现一元线性回归
    手动用梯度下降法实现一元线性回归实验目的本次实验旨在通过手动实现梯度下降法和随机梯度下降法来解决一元线性回归问题。具体目标包括:生成训练数据集,并使用matplotlib进行可视化。设计一个`LinearModel`类来实现一元线性回归的批量梯度下降法。使用matplotlib显示拟合结果......
  • 梯度下降方法,求解问题 最入门思想
    第一部分:求下面函数取得的最小值时,此时X的值是多少?何为梯度下降,本质就是从该点切线方向,慢慢走下去。切线方向:就是给定一个很小的增量值,试探一下方向。  1、方向的增量值: 2、不断迭代,当增量为很小时,意味着x应该是 1#超参数2m=0.023n=0.000000014#代码函......
  • 基于matlab的通过解方程来动态调整学习率的想法和固定学习率的梯度下降法
    通过解方程来动态调整学习率的想法,在实际应用中可能并不实用,因为它涉及到解符号方程,这可能会非常复杂或无法解析地求解,同时会增加计算复杂度和时间,固定学习率或基于某种规则(如线搜索)调整学习率更为常见。建议探索更高级的梯度下降变体(如Adam、RMSprop等),这些算法自动调整学习率......
  • 什么是GPT-3的自回归架构?为什么GPT-3无需梯度更新和微调
    文章目录知识回顾GPT-3的自回归架构何为自回归架构为什么架构会影响任务表现自回归架构的局限性与双向模型的对比小结为何无需梯度更新和微调为什么不需要怎么做到不需要......
  • 【机器学习】梯度提升和随机森林的概念、两者在python中的实例以及梯度提升和随机森林
    引言梯度提升(GradientBoosting)是一种强大的机器学习技术,它通过迭代地训练决策树来最小化损失函数,以提高模型的预测性能随机森林(RandomForest)是一种基于树的集成学习算法,它通过组合多个决策树来提高预测的准确性和稳定性文章目录引言一、梯度提升1.1基本原理1.1.1......
  • 基于教与学优化算法求解置换流水车间调度问题
    目录1.算法原理2.置换流水车间调度问题(PFSP)3.结果展示4.参考文献5.代码获取1.算法原理【智能算法】教与学优化算法(TLBO)原理及实现2.置换流水车间调度问题(PFSP)置换流水车间调度问题(permutationflowshopschedulingproblem,PFSP)是流水车间调度中经典的......
  • 第六章习题1-用筛选法求100以内的素数
     ......