机器学习极值问题

给出二次函数 f ( x ) = 1 2 x T P x + q T x + r f(x) = \frac{1}{2}x^TPx + q^Tx + r f(x)=21xTPx+qTx+r的极小值点。(P是对称矩阵)

解:

  1. 对f(x)求导数:

f ( x + Δ x ) − f ( x ) = 1 / 2 ( x + Δ x ) T P ( x + Δ x ) + q T ( x + Δ x ) + r − 1 / 2 x T P x − q T x − r = 1 / 2 ( x T + Δ x T ) P ( x + Δ x ) + q T ( x + Δ x ) + r − 1 / 2 x T P x − q T x − r = 1 / 2 ( x T P + Δ x T P ) ( x + Δ x ) + q T ( x + Δ x ) + r − 1 / 2 x T P x − q T x − r = 1 / 2 ( x T P x + x T P Δ x + Δ x T P x + Δ x T P Δ x ) + q T ( x + Δ x ) + r − 1 / 2 x T P x − q T x − r = 1 / 2 ( x T P Δ x + Δ x T P x + Δ x T P Δ x ) + q T Δ x = x T P Δ x + q T Δ x + 1 / 2 Δ x T P Δ x (1.1) f(x + \Delta x) - f(x) = 1/2(x + \Delta x)^TP(x+\Delta x) + q^T(x + \Delta x) + r - 1/2x^TPx - q^Tx - r =\\ 1/2(x ^T+ \Delta x^T)P(x+\Delta x) + q^T(x + \Delta x) + r - 1/2x^TPx - q^Tx - r =\\ 1/2(x ^TP+ \Delta x^TP)(x+\Delta x) + q^T(x + \Delta x) + r - 1/2x^TPx - q^Tx - r =\\ 1/2(x ^TPx+x ^TP\Delta x + \Delta x^TPx +\Delta x^TP\Delta x ) + q^T(x + \Delta x) + r - 1/2x^TPx - q^Tx - r =\\ 1/2(x ^TP\Delta x + \Delta x^TPx +\Delta x^TP\Delta x ) + q^T\Delta x \tag{1.1}=\\ x^TP\Delta x + q^T \Delta x + 1/2 \Delta x ^ T P \Delta x f(x+Δx)f(x)=1/2(x+Δx)TP(x+Δx)+qT(x+Δx)+r1/2xTPxqTxr=1/2(xT+ΔxT)P(x+Δx)+qT(x+Δx)+r1/2xTPxqTxr=1/2(xTP+ΔxTP)(x+Δx)+qT(x+Δx)+r1/2xTPxqTxr=1/2(xTPx+xTPΔx+ΔxTPx+ΔxTPΔx)+qT(x+Δx)+r1/2xTPxqTxr=1/2(xTPΔx+ΔxTPx+ΔxTPΔx)+qTΔx=xTPΔx+qTΔx+1/2ΔxTPΔx(1.1)
注意到,若P是对称矩阵,则上式(1.1)中是一个二次型,其中第一项和第二项是一样的,可以合并。

lim ⁡ Δ x → 0 f ( x + Δ x ) − f ( x ) Δ x = x T P + q T + 1 / 2 Δ x T P \lim_{\Delta x \to 0} \frac{f(x+\Delta x) - f(x)}{\Delta x} = x^TP + q^T + 1/2 \Delta x^T P Δx0limΔxf(x+Δx)f(x)=xTP+qT+1/2ΔxTP

将计算出的矩阵转置一下,可得:

D f ( x ) = P x + q Df(x)= P x+ q Df(x)=Px+q

  1. 根据极值的性质,将导数置为0,可得:

x = − P − 1 q x = - P^{-1} q x=P1q

需要注意,在求导时,列向量的每个分量、包括矩阵每个元素的自增量 Δ x \Delta x Δx是相同的

比如如下二次型:

( x 1 x 2 ) ( a b c d ) ( Δ x 1 Δ x 2 ) = ( a x 1 + c x 2 b x 1 + d x 2 ) ( Δ x 1 Δ x 2 ) = a x 1 Δ x 1 + c x 2 Δ x 1 + b x 1 Δ x 2 + d x 2 Δ x 2 = a x 1 Δ x + c x 2 Δ x + b x 1 Δ x + d x 2 Δ x ( 注意: Δ x 1 = Δ x 2 ) \begin {pmatrix} x_1 & x_2\end{pmatrix} \begin {pmatrix} a & b\\c&d\end{pmatrix} \begin {pmatrix} \Delta x_1 \\ \Delta x_2\end{pmatrix} = \\ \begin {pmatrix} ax_1 + cx_2&bx_1 + dx_2\end{pmatrix} \begin {pmatrix} \Delta x_1 \\ \Delta x_2\end{pmatrix} =\\ ax_1 \Delta x_1+cx_2 \Delta x_1 + bx_1 \Delta x_2+dx_2 \Delta x_2=\\ ax_1 \Delta x+cx_2 \Delta x + bx_1 \Delta x+dx_2 \Delta x \color{red}(注意:\Delta x_1 = \Delta x_2) (x1x2)(acbd)(Δx1Δx2)=(ax1+cx2bx1+dx2)(Δx1Δx2)=ax1Δx1+cx2Δx1+bx1Δx2+dx2Δx2=ax1Δx+cx2Δx+bx1Δx+dx2Δx(注意:Δx1=Δx2)

( Δ x 1 Δ x 2 ) ( a b c d ) ( x 1 x 2 ) = ( a Δ x 1 + c Δ x 2 b Δ x 1 + d Δ x 2 ) ( x 1 x 2 ) = a Δ x 1 x 1 + c Δ x 2 x 1 + b Δ x 1 x 2 + d Δ x 2 x 2 = a Δ x x 1 + c Δ x x 1 + b Δ x x 2 + d Δ x x 2 \begin {pmatrix} \Delta x_1 & \Delta x_2\end{pmatrix} \begin {pmatrix} a & b\\c&d\end{pmatrix} \begin {pmatrix} x_1 \\ x_2\end{pmatrix} = \\ \begin {pmatrix} a \Delta x_1 + c \Delta x_2&b \Delta x_1 + d \Delta x_2\end{pmatrix} \begin {pmatrix} x_1 \\ x_2\end{pmatrix} =\\ a \Delta x_1x_1+c \Delta x_2x_1 + b\Delta x_1x_2+d \Delta x_2x_2=\\ a \Delta xx_1+c \Delta xx_1 + b\Delta xx_2+d \Delta xx_2 (Δx1Δx2)(acbd)(x1x2)=(aΔx1+cΔx2bΔx1+dΔx2)(x1x2)=aΔx1x1+cΔx2x1+bΔx1x2+dΔx2x2=aΔxx1+cΔxx1+bΔxx2+dΔxx2

还需要注意的是,矩阵求导是对每个列向量x求导,而不是对矩阵的每个元素求导

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/101145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TIME-LLM: TIME SERIES FORECASTING BY REPROGRAMMING LARGE LANGUAGE MODELS

本文是LLM系列文章,针对《TIME-LLM: TIME SERIES FORECASTING BY REPROGRAMMING LARGE LANGUAGE MODELS》的翻译。 time-llm:通过重新编程大型语言模型来预测时间序列 摘要1 引言2 相关工作3 方法4 主要结果5 结论和未来工作 摘要 时间序列预测在许多现实世界的动…

优化 if-else 语句的最佳方案

文章目录 前言一、条件表达式优化1、先行计算条件表达式 二、条件判断结构优化1、使用三目运算符2、省略最后的 else3、减少 if 语句包裹的内容4、异常状态先行返回5、条件匹配案例 三、使用 Optional 类1、对象判空 - 对象为空,则抛出异常2、对象判空 - 对象非空&a…

SpringBoot 如何使用 Ehcache 作为缓存

使用Spring Boot Sleuth进行分布式跟踪 在现代分布式应用程序中,跟踪请求和了解应用程序的性能是至关重要的。Spring Boot Sleuth是一个分布式跟踪解决方案,它可以帮助您在分布式系统中跟踪请求并分析性能问题。本文将介绍如何在Spring Boot应用程序中使…

选择适合变更管理的产品开发工具的要点和建议

什么是变更管理? 变更管理是指导组织改进的学科。由于可观察到的行为变化,它会导致永久性变化。它确保您的组织以彻底、有序和可持续的方式学习和改进。成功的改进项目需要个人和团队保持一致,他们有共同的愿景,他们知道如何定义…

指数移动平均EMA

指数移动平均EMA 介绍示例代码 补充:torch.lerp 介绍 指数移动平均(Exponential Moving Average,简称 EMA)是一种常用的平滑方法,通常用于时间序列数据的平滑处理。EMA 可以减小噪声的影响,使得数据更加平…

收录一些常见的算法题型

常用算法 字符串 s.trim():去掉字符串首尾的空格s.split("\\s"):按照空格对字符串分割 树 前中后序遍历 /*** 统一一下* param root* return*///前序public static List<Integer> preOrder(TreeNode root){List<Integer> list new ArrayList();Stac…

MidJourney | AI绘画也有艺术

免费绘画&#xff0c;体验更多AI可关&注公&众&号&#xff1a;AI研究工厂

大数据学习(2)Hadoop-分布式资源计算hive(1)

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博>主哦&#x…

【.net core】yisha框架 SQL SERVER数据库 反向递归查询部门(子查父)

业务service.cs中ListFilter方法中内容 //反向递归查询部门列表List<DepartmentEntity> departmentList await departmentService.GetReverseRecurrenceList(new DepartmentListParam() { Ids operatorInfo.DepartmentId.ToString() });if (departmentList ! null &am…

如何将gif变成视频?3个转换方法

如何将gif变成视频&#xff1f;没错&#xff0c;GIF是一种动态图片格式&#xff0c;与视频在本质上有所区别。在一些自媒体平台上&#xff0c;我们无法直接分享GIF格式的图片&#xff0c;但可以将其转换为视频格式后再进行分享。因此&#xff0c;当我们想要分享我们喜欢的GIF图…

香港硬防服务器的防御有什么优缺点?

​  在选择服务器时&#xff0c;安全性是一个重要的考虑因素。而对于那些需要高级防御功能的用户来说&#xff0c;香港硬防服务器可能是一个不错的选择。它也有一些优缺点需要考虑。 香港硬防服务器优点&#xff1a; 强大的硬件资源&#xff1a;香港硬防服务器拥有足够的硬件…

nginx如何安装 以及nginx的配置文件

Nginx 网站服务 是一个高性能 轻量级web服务软件&#xff0c; 高新能&#xff1a;对http并发连接的处理能很高&#xff0c;单台处理器可支持30000-50000个并发请求&#xff0c;&#xff08;一般设置在20000个左右&#xff09; 轻量级&#xff1a;nginx软件很小&#xff0c;安装…

ChromeDriver驱动最新版下载

下载地址ChromeDriver - WebDriver for Chrome - Downloads selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 113 Current browser version is 117.0.5938.150 with binar…

vim基础指令(自用)

这个是自己随便写的&#xff0c;类似于笔记 vim 多模式编辑器 查看指令&#xff1a; gg&#xff1a; 定位光标到最开始行 shift(按)g 定位到最结尾行 nshift(按)g 定位到任意行 shift&#xff04; 定位到本行结尾 0 定位到本行开头 w&#xff1a;跨单词移动 h.j.k,l: 左下上右 …

Python 快速排序

快速排序使用分治法&#xff08;Divide and conquer&#xff09;策略来把一个序列&#xff08;list&#xff09;分为较小和较大的2个子序列&#xff0c;然后递归地排序两个子序列。 步骤为&#xff1a; 挑选基准值&#xff1a;从数列中挑出一个元素&#xff0c;称为"基准&…

【RuoYi-Cloud项目研究】【ruoyi-gateway模块】Spring Gatewaye和Sentinel实现网关流控

文章目录 1. RuoYi 实现了对服务的限流2. 网关与普通服务的限流区别2.1. 引入的组件有差别2.2. 配置文件有差别 3. 注意事项 备注&#xff1a; 1、RuoYi 网关默认只在 nacos 配置中心的 Sentinel 限流配置中配置了对“服务限流”&#xff0c;而没有详细控制到限流的 URL。 2、各…

tensorflow中的常见方法

1.tf.argmax(input,axis) tf.argmax(input,axis)根据axis取值的不同返回每行或者每列最大值的索引。 axis 0: 比较每一列的元素&#xff0c;将每一列最大元素所在的索引记录下来&#xff0c;最后输出每一列最大元素所在的索引数组。 test[0] array([1, 2, 3]) test[1] …

各种业务场景调用API代理的API接口教程

API代理的API接口在各种业务场景中具有广泛的应用&#xff0c;本文将介绍哪些业务场景可以使用API代理的API接口&#xff0c;并提供详细的调用教程和代码演示&#xff0c;同时&#xff0c;我们还将讨论在不同场景下使用API代理的API接口所带来的好处。 哪些业务场景可以使用API…

42. QT中开发Android配置QFtp功能时遇到的编译问题

1. 说明 此问题仅适用在QT中开发Android程序时&#xff0c;需要适用QFtp功能的情况。一般情况下&#xff0c;如果开发的是Windows或者Linux系统下的程序&#xff0c;可能不会出现该问题。 2. 问题 【Android】在将QFtp的相关代码文件加入到项目中后&#xff0c;编译项目时会…

PyTorch 入门

一、说明 深度学习是机器学习的一个分支&#xff0c;其中编写的算法模仿人脑的功能。深度学习中最常用的库是 Tensorflow 和 PyTorch。由于有各种可用的深度学习框架&#xff0c;人们可能想知道何时使用 PyTorch。以下是人们更喜欢使用 Pytorch 来完成特定任务的原因。 Pytorch…