机器学习_12_梯度下降法、拉格朗日、KKT

文章目录

  • [1 梯度下降法](#1 梯度下降法)
    • [1.1 导数、梯度](#1.1 导数、梯度)
    • [1.2 梯度下降法](#1.2 梯度下降法)
    • [1.3 梯度下降法的优化思想](#1.3 梯度下降法的优化思想)
    • [1.4 梯度下降法的调优策略](#1.4 梯度下降法的调优策略)
    • [1.5 BGD、SGD、MBGD](#1.5 BGD、SGD、MBGD)
      • [1.5.1 BGD、SGD、MBGD的区别](#1.5.1 BGD、SGD、MBGD的区别)
  • [2 有约束的最优化问题](#2 有约束的最优化问题)
  • [3 拉格朗日乘子法](#3 拉格朗日乘子法)
    • [3.1 拉格朗日乘子法理解](#3.1 拉格朗日乘子法理解)
    • [3.2 对偶问题](#3.2 对偶问题)
  • [4 KKT条件](#4 KKT条件)
    • [4.1 KKT条件理解](#4.1 KKT条件理解)
    • [4.2 KKT公式理解](#4.2 KKT公式理解)
    • [4.3 KKT条件总结](#4.3 KKT条件总结)
  • [5 高中距离知识回顾](#5 高中距离知识回顾)

1 梯度下降法

1.1 导数、梯度

  • 导数:一个函数在某一点的导数描述了这个函数在这一点附近的变化率 ,也可以认为是函数在某一点的导数就是该函数所代表的曲线在这一点的切线斜率。导数值越大,表示函数在该点处的变化越大。
  • 梯度:梯度是一个向量,表示某一函数在该点处的方向导数沿着该方向取的最大值,即函数在该点处沿着该方向变化最快,变化率最大(即该梯度向量的模);当函数为一维函数的时候,梯度其实就是导数。

1.2 梯度下降法

  • 梯度下降法(Gradient Descent, GD)常用于求解无约束 情况下凸函数 (ConvexFunction)的极小值 ,是一种迭代类型的算法 ,因为凸函数只有一个极值点,故求解出来的极小值点就是函数的最小值点

1.3 梯度下降法的优化思想

  • 梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以梯度下降法也被称为"最速下降法"。梯度下降法中越接近目标值,变量变化越小。计算公式如下:

  • α被称为步长或者学习率(learning rate),表示自变量x每次迭代变化的大小。

  • 收敛条件:当目标函数的函数值变化非常小的时候或者达到最大迭代次数的时候,就结束循环。

1.4 梯度下降法的调优策略

由于梯度下降法中负梯度方向作为变量的变化方向,所以有可能导致最终求解的值是局部最优解,所以在使用梯度下降的时候,一般需要进行一些调优策略:

  • 学习率的选择:学习率过大,表示每次迭代更新的时候变化比较大,有可能会跳过最优解;学习率过小,表示每次迭代更新的时候变化比较小,就会导致迭代速度过慢,很长时间都不能结束;
  • 算法初始参数值的选择:初始值不同,最终获得的最小值也有可能不同,因为梯度下降法求解的是局部最优解,所以一般情况下,选择多次不同初始值运行算法,并最终返回损失函数最小情况下的结果值;
  • 标准化:由于样本不同特征的取值范围不同,可能会导致在各个不同参数上迭代速度不同,为了减少特征取值的影响,可以将特征进行标准化操作。

1.5 BGD、SGD、MBGD

1.5.1 BGD、SGD、MBGD的区别

  • 当样本量为m的时候,每次迭代BGD算法中对于参数值更新一次,SGD算法中对于参数值更新m次,MBGD算法中对于参数值更新m/n次,相对来讲SGD算法的更新速度最快;
  • SGD算法中对于每个样本都需要更新参数值,当样本值不太正常的时候,就有可能会导致本次的参数更新会产生相反的影响,也就是说SGD算法的结果并不是完全收敛的,而是在收敛结果处波动的;
  • SGD算法是每个样本都更新一次参数值,所以SGD算法特别适合样本数据量大的情况以及在线机器学习(Online ML)。

2 有约束的最优化问题

最优化问题一般是指对于某一个函数而言,求解在其指定作用域上的全局最小值问题,一般分为以下三种情况(备注:以下几种方式求出来的解都有可能是局部极小值,只有当函数是凸函数的时候,才可以得到全局最小值):

  • 无约束问题:求解方式一般求解方式梯度下降法、牛顿法、坐标轴下降法等;
  • 等式约束条件:求解方式一般为拉格朗日乘子法
  • 不等式约束条件:求解方式一般为KKT条件

3 拉格朗日乘子法

拉格朗日乘子法就是当我们的优化函数存在等值约束的情况下的一种最优化求解方式;其中参数α被称为拉格朗日乘子 ,要求α不等于0

3.1 拉格朗日乘子法理解

3.2 对偶问题

在优化问题中,目标函数f(x)存在多种形式,如果目标函数和约束条件都为变量x的线性函数,则称问题为线性规划 ;如果目标函数为二次函数,则称最优化问题为二次规划 ;如果目标函数或者约束条件为非线性函数,则称最优化问题为非线性优化 。每个线性规划问题都有一个对应的对偶问题。对偶问题具有以下几个特性:

  • 对偶问题的对偶是原问题;
  • 无论原始问题是否是凸的,对偶问题都是凸优化问题;
  • 对偶问题可以给出原始问题的一个下界;
  • 当满足一定条件的时候,原始问题和对偶问题的解是完美等价的 。

4 KKT条件

KKT条件是泛拉格朗日乘子法的一种形式;主要应用在当我们的优化函数存在不等值约束的情况下的一种最优化求解方式;KKT条件即满足不等式约束情况下的条件 :

4.1 KKT条件理解

  • 可行解必须在约束区域g(x)之内,由图可知可行解x只能在g(x)<0和g(x)=0的区域取得;
    • 当可行解x在g(x)<0的区域中的时候,此时直接极小化f(x)即可得到;
    • 当可行解x在g(x)=0的区域中的时候,此时直接等价于等式约束问题的求解。
  • 当可行解在约束内部区域的时候,令β=0即可消去约束。
  • 对于参数β的取值而言,在等值约束中,约束函数和目标函数的梯度只要满足平行即可;而在不等式约束中,若β≠0,则说明可行解在约束区域的边界上,这个时候可行解应该尽可能的靠近无约束情况下的解,所以在约束边界上,目标函数的负梯度方向应该远离约束区域朝无约束区域时的解,此时约束函数的梯度方向与目标函数的负梯度方向应相同;从而可以得出β>0。

4.2 KKT公式理解

4.3 KKT条件总结

5 高中距离知识回顾

参考资料:https://wenku.baidu.com/view/d26d2ba39e31433239689374.html

相关推荐
靴子学长29 分钟前
基于字节大模型的论文翻译(含免费源码)
人工智能·深度学习·nlp
AI_NEW_COME1 小时前
知识库管理系统可扩展性深度测评
人工智能
海棠AI实验室2 小时前
AI的进阶之路:从机器学习到深度学习的演变(一)
人工智能·深度学习·机器学习
hunteritself2 小时前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
IT古董3 小时前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
centurysee3 小时前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa3 小时前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
四口鲸鱼爱吃盐3 小时前
Pytorch | 从零构建GoogleNet对CIFAR10进行分类
人工智能·pytorch·分类
蓝天星空3 小时前
Python调用open ai接口
人工智能·python
睡觉狂魔er3 小时前
自动驾驶控制与规划——Project 3: LQR车辆横向控制
人工智能·机器学习·自动驾驶