IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习中的数学——拉格朗日乘子法(一):等式约束的拉格朗日乘子法 -> 正文阅读

[人工智能]机器学习中的数学——拉格朗日乘子法(一):等式约束的拉格朗日乘子法

拉格朗日乘子法是一种寻找多元函数在一组约束下的极值的方法。通过引入拉格朗日乘子,可将有 d d d个变量与 k k k个约束条件的最优化问题转化为具有 d + k d+k d+k个变量的无约束优化问题求解。

先考虑一个等式约束的优化问题。假定 x x x d d d维向量,欲寻找 x x x的某个取值 x ? x^* x?,使目标函数 f ( x ) f(x) f(x)最小且同时满足 g ( x ) = 0 g(x)=0 g(x)=0的约束。从几何角度看,该问题的目标是在由方程 g ( x ) = 0 g(x)=0 g(x)=0确定的 d ? 1 d-1 d?1维曲面上寻找能使目标函数 f ( x ) f(x) f(x)最小化的点。此时可以得到如下结论:

  • 对于约束曲面上的任意点 x x x,该点的梯度 ? g ( x ) \nabla g(x) ?g(x)正交于约束曲面
  • 在最优点 x ? x^* x?,目标函数在该点的梯度 ? f ( x ? ) \nabla f(x^*) ?f(x?)正交于约束曲面

由此可知,在最优点 x ? x^* x?,如下图所示,梯度 ? g ( x ) \nabla g(x) ?g(x) ? f ( x ? ) \nabla f(x^*) ?f(x?)的方向必相同或相反,即存在 λ ≠ 0 \lambda\neq0 λ?=0使得:
? f ( x ? ) + λ ? g ( x ? ) = 0 \nabla f(x^*) + \lambda\nabla g(x^*) =0 ?f(x?)+λ?g(x?)=0
λ \lambda λ称为拉格朗日乘子,我们定义拉格朗日函
L ( x , λ ) = f ( x ) + λ g ( x ) L(x,\lambda)=f(x)+\lambda g(x) L(x,λ)=f(x)+λg(x)
不难发现,将其对 x x x的偏导数 ? x L ( x , λ ) \nabla_x L(x,\lambda) ?x?L(x,λ)置零即得上式。同时,将其对入的偏导数 ? λ L ( x , λ ) \nabla_\lambda L(x,\lambda) ?λ?L(x,λ)置零即得约束条件 g ( x ) = 0 g(x)=0 g(x)=0

等式约束
于是,原约束优化问题可转化为对拉格朗日函数 L ( x , λ ) L(x,\lambda) L(x,λ)的无约束优化问题。

现在我们以一个常见的例子来考虑拉格朗日乘子法。假设 x x x为2维向量,且:
g ( x ) = x 1 2 x 2 ? 3 = 0 g(x)=x_1^2x_2-3=0 g(x)=x12?x2??3=0
现在我们想求其上的点与原点的最短距离,即:
min ? f ( x ) = x 1 2 + x 2 2 \min f(x)=x_1^2+x_2^2 minf(x)=x12?+x22?
此时,圆( f ( x ) f(x) f(x))和曲线( g ( x ) g(x) g(x))相切,也就是在该点切线相同:

示例图

此时 f f f梯度:
? f x 1 = 2 x 1 ? f x 2 = 2 x 2 \nabla f_{x_1}=2x_1 \\ \nabla f_{x_2}=2x_2 ?fx1??=2x1??fx2??=2x2?
此时 g g g梯度:
? g x 1 = 2 x 1 x 2 ? g x 2 = x 1 2 \begin{aligned} &\nabla g_{x_1}=2x_1x_2\\ &\nabla g_{x_2}=x_1^2 \end{aligned} ??gx1??=2x1?x2??gx2??=x12??

梯度向量平行,我们可以写为:
? f = λ ? g \nabla f=\lambda \nabla g ?f=λ?g

所以我们可得:
? f = λ ? g g ( x ) = x 1 2 x 2 ? 3 = 0 \begin{aligned} \nabla f&=\lambda \nabla g\\ g(x)&=x_1^2x_2-3=0 \end{aligned} ?fg(x)?=λ?g=x12?x2??3=0?
我们构造拉格朗日函数:
L ( x , λ ) = f ( x ) + λ g ( x ) L(x,\lambda)=f(x)+\lambda g(x) L(x,λ)=f(x)+λg(x)
并利用拉格朗日乘子法即可得到与上式相同的等式:
? λ L ( x , λ ) = ? f + λ ? g = 0 ? λ L ( x , λ ) = g ( x ) = x 1 2 x 2 ? 3 = 0 \begin{aligned} \nabla_\lambda L(x,\lambda)&=\nabla f+\lambda \nabla g=0\\ \nabla_\lambda L(x,\lambda)&=g(x)=x_1^2x_2-3=0 \end{aligned} ?λ?L(x,λ)?λ?L(x,λ)?=?f+λ?g=0=g(x)=x12?x2??3=0?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-16 11:44:45  更:2021-08-16 11:45:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 20:29:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码