机器学习中的数学基础 5

article/2025/9/14 1:21:15

优化问题简介

最优化定义

最优化,是应用数学的一个分支。主要研究在特定情况下最大化或最小化某一特定函数或变量。

数学表示:

Y Y Y 是 随机变量 X X X 的函数,求 y ^ = f θ ( X ) \widehat{y} = f_{\theta}(X) y =fθ(X) ,令:

θ ^ = arg ⁡ min ⁡ θ ( d i f f ( Y , y ^ ) ) \widehat{\theta} = \arg \min _{{\theta }}(diff(Y, \widehat{y})) θ =argθmin(diff(Y,y ))

问题拆解

loss function

损失函数或成本函数是指一种将一个事件(在一个样本空间中的一个元素)映射到一个表达与其事件相关的经济成本或机会成本的实数上的一种函数,借此直观表示的一些"成本"与事件的关联。一个最佳化问题的目标是将损失函数最小化。

平方法

最小二乘法例子:定义最小二乘法 L 2 L_2 L2 损失函数 ∑ i = 1 n ( Y i − Y ^ i ) 2 {\displaystyle \sqrt{\sum_{i=1}^{n}(Y_i-\widehat{Y}_i)}^2} i=1n(YiY i) 2 同理可定义 距离损失函数 L P L_P LP

Huber loss

相比平方误差损失,Huber损失对于数据中异常值的敏感性要差一些。

https://blog.csdn.net/u013841196/article/details/89923475

Hinge loss

在这里插入图片描述

https://zhuanlan.zhihu.com/p/35708936

Cross Entropy

在机器学习中(特别是分类模型),模型训练时,通常都是使用交叉熵(Cross-Entropy)作为损失进行最小化:

求分布和分布之间的差异:

C E ( p , q ) = − ∑ i = 1 C p i l o g ( q i ) CE(p,q)=−\sum_{i=1}^C p_ilog(q_i) CE(p,q)=i=1Cpilog(qi)

其中 C C C 代表类别数。 p i p_i pi 为真实, q i q_i qi 为预测。

https://blog.csdn.net/guolindonggld/article/details/79250642v
https://zhuanlan.zhihu.com/p/35709485

method

  • 容易计算则直接计算:如最小二乘法
  • 不容易计算,则迭代法,如 arg ⁡ min ⁡ x g ( x ) \arg \min _{x} g(x) argminxg(x), 令 x 1 = x 0 + Δ x x_1 = x_0 + \Delta x x1=x0+Δx
    • 0阶: 直接根据函数值
    • 1阶: 根据函数值加导数
    • 2阶: 根据 Hessian 矩阵
  • 随机性
    • 模拟退火
    • 进化

优化问题的要求

  • 必须存在最优解
  • 解尽量唯一
  • 损失函数连续

最速下降法

梯度下降方法基于以下的观察:如果实值函数 F ( x F({\mathbf {x}} F(x)在点 a \mathbf {a} a 处可微且有定义,那么函数 F ( x F({\mathbf {x}} F(x)在 a \mathbf {a} a 点沿着梯度相反的方向 − ∇ F ( a -\nabla F({\mathbf {a}} F(a) 下降最多。

因而,如果

b = a − γ ∇ F ( a ) {\mathbf {b}}={\mathbf {a}}-\gamma \nabla F({\mathbf {a}}) b=aγF(a)

对于 γ > 0 \gamma >0 γ>0 为一个够小数值时成立,那么 F ( a ) ≥ F ( b F({\mathbf {a}})\geq F({\mathbf {b}} F(a)F(b)。

下面先给出最速梯度下降法的计算步骤:

由以上计算步骤可知,最速下降法迭代终止时,求得的是目标函数驻点的一个近似点

https://zhuanlan.zhihu.com/p/32709034

共轭梯度法

共轭梯度法对最优梯度法进行了修正,搜索方向为共轭方向,将负梯度方向旋转了一个角度,每次往最优方向需要在负梯度方向进行修正。算法如下:

https://zhuanlan.zhihu.com/p/64227658
https://blog.csdn.net/qq547276542/article/details/78186050
https://flat2010.github.io/2018/10/26/%E5%85%B1%E8%BD%AD%E6%A2%AF%E5%BA%A6%E6%B3%95%E9%80%9A%E4%BF%97%E8%AE%B2%E4%B9%89/#8-%E5%85%B1%E8%BD%AD%E6%A2%AF%E5%BA%A6%E6%B3%9
https://blog.csdn.net/LittleEmperor/article/details/105073755

牛顿法

为了求 Δ x \Delta x Δx 通过把 Hessian 矩阵的逆矩阵转为求线性方程组,避免求逆矩阵。

比之前方法迭代少,但是计算量大。

拟牛顿法

核心思想,构造近似的 Hessian 矩阵的逆矩阵,使得:

H k − 1 + Δ H = H k + 1 − 1 H_k^{-1} + \Delta H = H_{k+1}^{-1} Hk1+ΔH=Hk+11

https://garfielder007.github.io/2015/12/16/Newton-QuasiNewton-Method.html
https://zhuanlan.zhihu.com/p/306635632

约束非线性优化

对偶性

在最优化理论中的对偶(duality)或对偶性原则(duality principle)是指最佳化问题可以用两种观点来看待的理论,两种观点分别是“原始问题”(primal problem)及“对偶问题”(dual problem)。对偶问题的解提供了原始问题(假设是最小化问题)的下限[1],不过一般而言,原始问题和对偶问题的最佳解不相同。两个最佳解的差距为对偶间隙。若是凸优化问题,对偶间隙也称为是卡鲁什-库恩-塔克条件。

强对偶、弱对偶参考 https://blog.csdn.net/Cyril_KI/article/details/107741019
https://zhuanlan.zhihu.com/p/258762446

KKT条件

在数学中,卡罗需-库恩-塔克条件(英文原名:Karush-Kuhn-Tucker Conditions常见别名:Kuhn-Tucker,KKT条件,Karush-Kuhn-Tucker最优化条件,Karush-Kuhn-Tucker条件,Kuhn-Tucker最优化条件,Kuhn-Tucker条件)是在满足一些有规则的条件下,一个非线性规划(Nonlinear Programming)问题能有最优化解法的一个必要和充分条件。这是一个广义化拉格朗日乘数的成果。

Karush-Kuhn-Tucker (KKT)条件是非线性规划(nonlinear programming)最佳解的必要条件。KKT条件将Lagrange乘数法(Lagrange multipliers)所处理涉及等式的约束优化问题推广至不等式。在实际应用上,KKT条件(方程组)一般不存在代数解,许多优化算法可供数值计算选用。

在这里插入图片描述

https://zhuanlan.zhihu.com/p/38163970
https://zhuanlan.zhihu.com/p/33229011
https://blog.csdn.net/qq_36896268/article/details/121588597


http://chatgpt.dhexx.cn/article/CU7mL0ZK.shtml

相关文章

微信小程序真机测试 Provisional headers are shown 问题解决办法

微信开发工具请求正常,真机调试出现 Provisional headers are shown 图片源自:https://blog.csdn.net/xyphf/article/details/90045286 网上大部分原因为ssl证书问题,使用以下2个ssl证书检测工具 1.https://www.myssl.cn/tools/check-serve…

JS提示框效果

提示框 js事件 //提示确认删除 <a href"javascript:if(confirm(确实要删除该内容吗?))locationhttp://www.google.com">弹出窗口</a> function tusi(txt, fun) {   $(.tusi).remove();    var div $(<div style"background: url(/images/…

图图片

示例图片啊

Sturts

Sturts是什么&#xff1f; Sturts是JSP模式2(MVC)基础上突出实现的一个框架&#xff0c;是使用JSPServlet组成&#xff1b; Sturts框架提供&#xff1a; 标记库&#xff1a;也没黑色记者可以控制&#xff1b;支持国际化处理如:JSP显示为中文&#xff0c;可以转换为英文等...;…

tupian

转载于:https://www.cnblogs.com/yanyiyi/p/8295315.html

Gwallet小百科 | 一文透析腾讯区块链技术

作为后互联网时代下的新产物,区块链技术有着巨大想象空间,依托可溯源、不可篡改、去中心化等特性,构建起技术与应用场景融合的新生态体系。 自2015年起,腾讯便开始关注区块链技术并进行自主研发,腾讯FIT的TrustSQL聚焦于底层开发平台的研发和定制化的区块链应用落地;腾讯…

Gerrit常见命令及最佳实践

概述 本文记录了笔者在使用Gerrit&#xff08;一种免费、开放源代码的代码审查软件&#xff09;过程中的一些微小的经验&#xff0c;在这里做个简单的分享。 克隆工程 git clone ssh://tusixx.xx.cn:29428/project-name 如果使用了Git代理&#xff0c;请将xx.xx.cn:29428换成代…

quart定时任务

在SSM项目里面使用quart实现定时任务每10秒插入一条数据,使用xml配置方式实现。 1.创建定时任务类 package com.tencent.tusi.test.quartzTest;import com.tencent.tusi.business.entity.TSystemUsers; import com.tencent.tusi.business.service.TSystemUsersService; impor…

腾讯安全携手北京方正公证处开启智慧司法之路,全面保护电子数据存证安全

4 月17 日,腾讯安全联合北京市方正公证处举办了网络战略合作暨领御区块链-北京方正公证取证平台上线发布会,宣布在“区块链+司法”领域建立合作,应用区块链技术深化电子数据存证服务。北京市方正公证处副主任杨和平、腾讯领御总经理申子熹、腾讯TUSI区块链安全实验室专家王强…

tutos

2010-10-08 这个软件有一个不好的感觉就是菜单比较灵活&#xff0c;对于刚使用的人来说就会感觉有些乱。 而且ui不够友好&#xff1b;图标比较少&#xff0c;不够直观。所以准备试一下dotproject&#xff0c;用了后发现dotproject在我当前使用的php5.3上根本不能启动&#xff0…

quart定时任务从数据库获取定时时间

在ssm项目里面实现定时任务从数据库获取定时时间 1.创建定时时间表 2.创建定时任务类 package com.tencent.tusi.test.quartzTest;import com.tencent.tusi.business.entity.TSystemUsers; import com.tencent.tusi.business.service.TSystemUsersService; import org.spring…

递推—双关系递推数列

题目描述&#xff1a; 算法思想&#xff1a; 首先定义三个“指针”i,p2&#xff0c;p5&#xff0c;计算出2*p21,和5*p5-1&#xff0c;进行比较&#xff0c;按从小到大的顺序排好&#xff08;有点像归并&#xff09; 实现代码&#xff1a; #include<iostream> #include&…

两类递推数列

此博客是抄论文的&#xff0c;你可以认为是转载的 1.线性递推数列 有限数列显然是线性递推数列。 无限数列 a i a_i ai​设其生成函数为 A ( x ) A(x) A(x) 那么如果 A ( x ) A(x) A(x)能被表示为 C ( x ) B ( x ) \frac {C(x)}{B(x)} B(x)C(x)​的形式&#xff0c;其中 B ( …

整式递推数列

详见钟子谦IOI2019国家集训队论文。 对于无限数列 { a i } \{a_i\} {ai​}和有限多项式数列 { P i } \{P_i\} {Pi​}满足 P 0 P_0 P0​非 0 0 0多项式。 若对任意 p > ∣ { P } ∣ − 1 p>|\{P\}|-1 p>∣{P}∣−1有 ∑ i 0 ∣ { P } ∣ − 1 a p − i P i ( p ) \su…