梯度下降【无约束最优化问题】(一)

简介: 本文属于 线性回归算法【AIoT阶段三】(尚未更新),这里截取自其中一段内容,方便读者理解和根据需求快速阅读。本文通过公式推导+代码两个方面同时进行,因为涉及到代码的编译运行,如果你没有NumPy,Pandas,Matplotlib的基础,建议先修文章:数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解),本文是梯度下降的第一部分,后续还会有:三种梯度下降方法与代码实现,梯度下降优化,梯度下降优化进阶 (暂未更新)

前言

本文属于 线性回归算法【AIoT阶段三】(尚未更新),这里截取自其中一段内容,方便读者理解和根据需求快速阅读。本文通过公式推导+代码两个方面同时进行,因为涉及到代码的编译运行,如果你没有NumPy,Pandas,Matplotlib的基础,建议先修文章:数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解),本文是梯度下降的第一部分,后续还会有:三种梯度下降方法与代码实现梯度下降优化梯度下降优化进阶 (暂未更新)


1.无约束最优化

🚩无约束最优化问题(unconstrained optimizationproblem)指的是从一个问题的所有可能的备选方案中,选择出依某种指标来说是最优的解决方案。从数学上说,最优化是研究在一个给定的集合S上泛函J(θ)的极小化或极大化问题:广义上,最优化包括数学规划、图和网络、组合最优化、库存论、决策论、排队论、最优控制等。狭义上,最优化仅指数学规划。


大白话说就是,比如对于一个二次函数我们要求其极值,无约束的意思就是 x  的取值是任意的,在 R 上都可取,对于有约束可以形象化理解为我们对 x的范围进行了限制,比如我们要求 x > 0 。


2.梯度下降

🚩梯度下降法  (Gradient Descent)是一个算法,但不是像多元线性回归那样是一个具体做回归任务的算法,而是一个非常通用的优化算法来帮助一些机器学习算法(都是无约束最优化问题)求解出最优解所谓的通用就是很多机器学习算法都是用梯度下降,甚至深度学习也是用它来求解最优解。所有优化算法的目的都是期望以最快的速度把模型参数θ求解出来,梯度下降法就是一种经典常用的优化算法。

image.png

image.jpeg

其实这就跟生活中的情形很像,比如你问一个朋友的工资是多少,他说你猜?那就很难了,他说你猜完我告诉你是猜高了还是猜低了,这样你就可以奔着对的方向一直猜下去,最后总会猜对!梯度下降法就是这样的,多次尝试。并且,在试的过程中还得想办法知道是不是在猜对的路上,说白了就是得到正确的反馈再调整然后继续猜才有意义~


这个就好比道士下山,我们把 Loss (或者称为 Cost,即损失)曲线看成是山谷,如果走过了,就再往回返,所以是一个迭代的过程。


3.梯度下降公式

🚩这里梯度下降法的公式就是一个式子指导计算机迭代过程中如何去调整 θ ,可以通过泰勒公式一阶展开来进行推导和证明:

image.pngimage.jpeg

image.png

image.jpeg

所以观察上图我们可以发现不是某一个 θ 0或 θ 1 找到最小值就是最优解,而是它们一起找到J(θ) 最小值才是最优解。

4.学习率

🚩根据我们上面讲的梯度下降公式,我们知道 η 设置大的学习率 w j每次调整的幅度就大,设置小的学习率w j每次调整的幅度就小,然而如果步子迈的太大也会有问题,俗话说步子大了容易扯着蛋!学习率大,可能一下子迈过了,到另一边去了(从曲线左半边跳到右半边),继续梯度下降又迈回来, 使得来来回回震荡。步子太小呢,就像蜗牛一步步往前挪,也会使得整体迭代次数增加。

image.png

学习率的设置是门一门学问,一般我们会把它设置成一个比较小的正整数,0.1,0.01,0.001,0.000,都是常见的设定数值(然后根据情况调整)。一般情况下学习率在整体迭代过程中是不变,但是也可以设置成随着迭代次数增多学习率逐渐变小,因为越靠近山谷我们就可以步子迈小点,可以更精准的走入最低点,同时防止走过。还有一些深度学习的优化算法会自己控制调整学习率这个值,后面学习过程中这些策略在讲解代码中我们会一一讲到。

image.png


image.pngimage.png







目录
相关文章
|
机器学习/深度学习 传感器 算法
【MOSMA】基于粘菌算法求解多目标优化问题附matlab代码
【MOSMA】基于粘菌算法求解多目标优化问题附matlab代码
|
7月前
|
算法 Python
梯度下降法
梯度下降法
81 0
|
机器学习/深度学习 算法 数据处理
无约束最优化(五) 最小二乘法问题的解法
无约束最优化(五) 最小二乘法问题的解法
191 0
|
机器学习/深度学习 算法 决策智能
基于遗传算法和非线性规划的函数寻优算法(Matlab代码实现)
基于遗传算法和非线性规划的函数寻优算法(Matlab代码实现)
208 0
|
机器学习/深度学习 并行计算 算法
基于遗传算法和非线性规划的函数寻优算法
以下内容大部分来源于《MATLAB智能算法30个案例分析》,仅为学习交流所用。
|
机器学习/深度学习 传感器 算法
基于随机油漆优化器 (MOSPO)求解多目标优化问题附matlab代码
基于随机油漆优化器 (MOSPO)求解多目标优化问题附matlab代码
|
机器学习/深度学习 传感器 算法
基于蛇群算法求解多目标优化问题附matlab代码MOSO
基于蛇群算法求解多目标优化问题附matlab代码MOSO
|
算法
《最优化方法》——数学基础知识&线性规划&无约束优化算法初步
《最优化方法》——数学基础知识&线性规划&无约束优化算法初步
152 0
《最优化方法》——数学基础知识&线性规划&无约束优化算法初步
|
人工智能 开发者
最小二乘法推导与求解 | 学习笔记
快速学习最小二乘法推导与求解
最小二乘法推导与求解 | 学习笔记
|
算法 数据可视化 数据挖掘
梯度下降【无约束最优化问题】(二)
本文属于 线性回归算法【AIoT阶段三】(尚未更新),这里截取自其中一段内容,方便读者理解和根据需求快速阅读。本文通过公式推导+代码两个方面同时进行,因为涉及到代码的编译运行,如果你没有NumPy,Pandas,Matplotlib的基础,建议先修文章:数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解),本文是梯度下降的第一部分,后续还会有:三种梯度下降方法与代码实现,梯度下降优化,梯度下降优化进阶 (暂未更新)
144 0
梯度下降【无约束最优化问题】(二)