• 机器学习总结(三)——梯度下降详解


    梯度下降通俗解释

    机器学习的问题中,线性回归问题是一个特殊的情况,线性回归可以直接求解,但是其他问题不行!在这里插入图片描述

    举一个通俗的例子

    在这里插入图片描述
    针对我们的问题,我们想要找到loss最小值所对应的θ值。我们“下山”的路有很多条,哪一条下山最快呢?
    那必定是对应点处的切线方向啊,也叫对应点的梯度反方向。
    在这里插入图片描述
    每下降一步(或者叫“下山”一步),对应的点都会改变,所以对应的梯度方向也会改变。
    我们每次走一步,一步应该多大呢?
    在这里插入图片描述
    在这里插入图片描述

    步长应该小一些!!!

    参数更新方法

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    优化参数设置

    在这里插入图片描述

    批量梯度下降(GD)

    在这里插入图片描述
    批量梯度下降非常耗时!(因为要计算大量样本的梯度!!!!)
    我们从样本中随机选取一个,算梯度下降不就可以节约很多时间!!!
    这是个一个不错的idea,这个叫做随机梯度下降——SGD

    随机梯度下降(SGD)

    在这里插入图片描述
    随机梯度下降虽然节约时间,但是结果并不好。结果不一定朝着收敛的方向。就像上图一样,结果是浮动的!!!

    GD结果虽然好,但是太耗时!!!
    SGD虽然节约时间,但是结果不理想!!!

    那怎么办呀?

    我们可以结合一下这两种方法!!!

    小批量梯度下降,应运而生!!!

    小批量梯度下降

    在这里插入图片描述
    在这里插入图片描述
    batch设置的大的话,结果越精准,但是耗时大!
    batch设置的小的话,计算速度快,但是结果不是很准确!
    那我们如何权衡呢?
    在咋们机器性能能接受的范围内,尽可能设置的大一些!!!

    batch大的话,吃显存!!

    学习率(步长)

    在这里插入图片描述
    LR一般自己设置为0.01或者0.001这些比较小的数值!!!
    在这里插入图片描述

    学习率设置的小,一次更新的小。学习率设置的大,一次更新的大。

    附录

    在机器学习中,基本不可能直接求解,而是通过优化求解的。

  • 相关阅读:
    JetBrains Annotations:将NPE杀死在编译期
    说说对React中类组件和函数组件的理解?有什么区别?
    统计学习第一章
    第8章 如何启动和推广 Micro SaaS 应用程序
    保护您的 Web 应用程序的最佳开源 Web 应用程序防火墙
    Redis高级篇——Redis的优化
    【MindSpore易点通】数据处理之Numpy数组的使用
    DataX实现Mysql与ElasticSearch(ES)数据同步
    echarts使用dataset数据集创建单轴散点图
    Java基础面试题
  • 原文地址:https://blog.csdn.net/Elon15/article/details/126291128