机器学习---拉格朗日乘子法、Huber Loss、极大似然函数取对数的原因

news2024/11/25 22:30:33

1. 拉格朗日乘子法

拉格朗日乘子法(Lagrange multipliers)是一种寻找多元函数在一组约束下的极值的方法。通过引

入拉格朗日乘子,可将有d个变量与k个约束条件的最优化问题转化为具有d+k个变量的无约束优化

问题求解。本文希望通过一个直观简单的例子尽力解释拉格朗日乘子法和KKT条件的原理。以包含

一个变量一个约束的简单优化问题为例。

如图所示,我们的目标函数是f(x)=x2+4x-1,讨论两种约束条件g(x):1)在满足x≤-1约

束条件下求目标函数的最小值;2)在满足x≥-1约束条件g(x)下求目标函数的最小值。

我们可以直观的从图中得到,

对于约束1)使目标值f(x)最小的最优解是x=-2;

对于约束2)使目标值f(x)最小的最优解是x=-1。下面我们用拉格朗日乘子来求解这个最优解。

当没有约束的时候,我们可以直接令目标函数的导数为0,求最优值。

可现在有约束,那怎么边考虑约束边求目标函数最优值呢?

最直观的办法是把约束放进目标函数里,由于本例中只有一个约束,所以引入一个朗格朗日乘子

入,构造一个新的函数,拉格朗日函数h(x),

该拉格朗日函数h(x)最优解可能在g(x)<0区域中,或者在边界g(x)=0上,下面具体分析这两种情

况,当g(x)<0时,也就是最优解在g(x)<0区域中,对应约束1)x≤-1的情况。此时约束对求目标函

数最小值不起作用,等价于λ=0,直接通过条件∇f(x*)=0,得拉格朗日函数h(x)最优解x=-2。

当g(x)=0时,也就是最优解在边界g(x)=0上,对应约束1)x≥-1的情况。此时不等式约束转换为等

式约束,也就是在λ>0、约束起作用的情况下,通过求∇f(x*)+λ∇g(x*)=0,得拉格朗日

函数h(x)最优解x=-1。

所以整合这两种情况,必须满足λg(x)=0。因此约束g(x)最小化f(x)的优化问题,可通过引入拉格朗

日因子转化为在如下约束下,最小化拉格朗日函数h(x),

上述约束条件称为KKT条件。

该KKT条件可扩展到多个等式约束和不等式约束的优化问题。

2. Huber Loss

Huber Loss是一个用于回归问题的带参损失函数,优点是能增强平方误差损失函数(MSE,mean

square error)对离群点的鲁棒性。当预测偏差小于ō时,它采用平方误差,当预测偏差大于ō时,

采用的线性误差。相比于最小二乘的线性回归,Huber Loss降低了对离群点的惩罚程度,所以

Huber Loss是一种常用的鲁棒的回归损失函数。

Huber Loss 定义如下:

ō是Huber Loss的参数,y是真实值,f(x)是模型的预测值,

通过如上公式,我们可以发现,这个函数对于小一些的(y - f(x))误差函数是二次的,而对大的值误

差函数是线性的。Huber Loss 参数变化图:

 3. 极大似然函数取对数的原因

①减少计算量

在计算一个独立同分布数据集的联合概率时,如:

其联合概率是每个数据点概率的连乘:

两边取对数则可以将连乘化为连加:

乘法变成加法,从而减少了计算量;同时,如果概率中含有指数项,如高斯分布,能把指数项也化

为求和形式,进一步减少计算量;另外,在对联合概率求导时,和的形式会比积的形式更方便。

②利于结果更好的计算

但其实可能更重要的一点是,因为概率值都在[0,1]之间,因此,概率的连乘将会变成一个很小

的值,可能会引起浮点数下溢,尤其是当数据集很大的时候,联合概率会趋向于0,非常不利于之

后的计算。

③取对数并不影响最后结果的单调性

因为相同的单调性,它确保了概率的最大对数值出现在与原始概率函数相同的点上。因此,可以用

更简单的对数似然来代替原来的似然。

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

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

相关文章

java工程师面试笔试题,阿里+头条+抖音+百度+蚂蚁+京东面经

前言 分布式事务主要解决分布式一致性的问题。说到底就是数据的分布式操作导致仅依靠本地事务无法保证原子性。与单机版的事务不同的是,单机是把多个命令打包成一个统一处理,分布式事务是将多个机器上执行的命令打包成一个命令统一处理。 MySQL 提供了…

软件测试计划包括哪些内容?专业第三方软件测试机构推荐

软件测试计划是为确保软件质量而制定的详细计划,它在软件开发周期中扮演着至关重要的角色。一个良好的软件测试计划可以确保软件在交付给最终用户之前经过全面的测试和验证,减少软件出现缺陷和问题的可能性。 软件测试计划一般包括以下内容:…

汇编程序中引用头文件

文章目录 写在前面x86汇编示例(AT&T风格ARM汇编示例运行结果 写在前面 汇编程序中也是可以使用头文件的,因为头文件实际上就是预处理中的一环,使用预处理器也对汇编程序中的头文件进行预处理 本文使用的汇编例程: x86版 AT&T汇编hel…

打印螺旋矩阵

打印螺旋矩阵 题目 如:输入 n 5; 输出: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9解题 这种规律打印题我个人感觉是真的不好写,一看答案感觉也就那回事,真自己琢磨,半…

15 实战:Kaggle房价预测 + 课程竞赛:加州2020年房价预测【李沐动手学深度学习课程笔记】

15 实战:Kaggle房价预测 课程竞赛:加州2020年房价预测【李沐动手学深度学习课程笔记】https://zhuanlan.zhihu.com/p/685343754 写在前面:这里格式很乱,代码直接去知乎copy 1 实战Kaggle比赛:预测房价 1.1 实现几个函…

flowable使用taskService.addComment新增评论需要full_msg字段进行读取

背景 在构建创业项目JeecgFlow过程中,在调用taskService.addComment接口出现了异常。就是数据存储的Message信息出现了截取,也就是存储不完整。 效果如下. flowable版本6.7.2 问题排查 接口详解及问题代码 //新增评论的接口说明 Comment addComment(…

华为OD机试“HJ5 进制转换”Java编程解答

描述 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。 数据范围:保证结果在 1≤n≤231−1 输入描述: 输入一个十六进制的数值字符串。 输出描述: 输出该数值的十进制字符串。不同组的测试用例用\…

OpenAI高管联名回击:马斯克曾提议并入特斯拉,认为OpenAI注定失败

丨划重点 ① OpenAI周二发文回应马斯克提起的诉讼,称对双方走到这一步感到很难过。 ② 这篇博文的作者包括了OpenAI五位高管,其中首席科学家苏茨凯弗已经久违露面。 ③ OpenAI证实,只从马斯克处获得不到4500万美元资金,其他支持者…

企业对接Walmart平台API流程 On-request Reports API(二)

对接On-request Reports API 1、对接指南1.1 报告生成时间1.2 报告保留期1.3 请求限制1.4 报告请求工作流如何申请报告第 1 步:申请取消报告第 2 步:获取报表可用性状态第 3 步:下载报告 URL 2、代码实现2.1、获取访问API的token2.2、构建公共…

【记录】IDA|IDA设置text view为默认,并解决IDA7.6打开新固件卡顿的问题

版本:IDA Pro 7.6 Graph View(控制流视图)其实我真的看得很少,因为遇到分析难题时总是是因为间接调用,它根本分析不出来。但是一开IDA它就自动分析这个特别卡。所以今天想彻底解决一下,让默认打开为Text V…

day7-网络编程

1>基于UDP的网络聊天室 Ser.c #include <myhead.h> #define SER_IP "10.211.55.9" // 服务器IP #define SER_PORT 9999struct user {char usrName[20];struct sockaddr_in cin; }; int main(int argc, char const *argv[]) {// 1.创建用于监听的套接字int…

2024-3-6-数据库作业

作业&#xff1a;数据库操作的增、删、改完成 &#xff08;目前只能实现静态管理&#xff09; 源代码&#xff1a; #include <myhead.h> void do_add(sqlite3 *ppDb) {char *errmsg NULL;char sql[128] "insert into Worker values(1001,小张,15000);";//…

《中学综合素质》黄金卷(二)

2.对下图漫画描述不正确的是&#xff08;A &#xff09;。 A.忽视了平等待生 B.忽视了学生的个性发展 C.忽视了学生的差异性 D.违背了素质教育观 8.“任何组织或者个人不得隐匿、毁弃、非法删除未成年人的信件、日记、电子邮件或者其 他网络通讯内容”&#xff0c;对照《中华…

离散数学例题——3.计数和集合论(集合与二元关系)

幂集与子集数目 集合运算 集合的证明 集合构建符号证明 用集合成员表证明 用集合运算定律证明 无限集、等势、无限可数集和无限不可数集的基数 关系的定义、个数 关系的表示 关系的运算 使用矩阵运算实现关系的运算 关系的证明 关系的性质 自反性和反自反性&#xff08;矩阵对…

大唐杯学习笔记:Day5

1.1 小区搜索 搜索流程 PLMN选择 自动模式&#xff1a;UE根据NAS的请求或自主地向NAS报告可用的PLMN 手动模式&#xff1a;通过手动选择一个可用的VPLMN获取正常服务 频点选择 5G NR中,3GPP主要指定了两个频率范围,一个是6GHZ以下,另一个是毫米波,分别称之为FR1和FR2。 N…

CorelDRAW Graphics Suite2024订阅版费用与永久版的区别

CorelDRAW Graphics Suite的订阅版是一种按周期付费的软件使用模式&#xff0c;允许用户以一定的费用在一段时间内访问和使用CorelDRAW Graphics Suite的全部或部分功能。这种模式通常不涉及软件的所有权转让&#xff0c;而是提供使用权。 CDR2024绿色版下载链接: https://pan…

显示高考天数倒计时——vba实现

以下代码实现高考倒计时&#xff1a; Sub 高考倒计时() 高考日期 CDate("06,07," & Year(Date)) If Date > 高考日期 Then高考日期 CDate("06-07-" & Year(Date) 1) End If 年月日 Year(Date) & "年" & Month(Date) &am…

【OpenGL的着色器03】内置变量和函数(gl_Position等)

目录 一、说明 二、着色器的变量 2.1 着色器变量 2.2 着色器内置变量 三、最常见内置变量使用范例 3.1 常见着色器变量 3.2 示例1&#xff1a; gl_PointSize 3.3 示例2&#xff1a;gl_Position 3.4 gl_FragColor 3.5 渲染点片元坐标gl_PointCoord 3.6 gl_PointCoo…

如何阅读“计算机界三大计算思维神书”之一 ——SICP

《计算机程序的构造和解释》&#xff08;Structure and Interpretation of Computer Programs&#xff0c;简记为SICP&#xff09;是MIT的基础课教材&#xff0c;出版后引起计算机教育界的广泛关注&#xff0c;对推动全世界大学计算机科学技术教育的发展和成熟产生了很大影响。…

【ESP32 IDF】I2C层次结构、I2C协议

文章目录 前言一、I2C的结构层次1.1 怎样在两个设备之间传输数据1.2 I2C如何传输数据1.3 硬件框图1.4 软件层次 二、IIC协议2.1 硬件连接2.2 I2C 总线的概念2.3 传输数据类比2.3 I2C信号2.4 I2C数据的含义 总结 前言 I2C&#xff08;Inter-Integrated Circuit&#xff09;是一…