当前位置: 首页 > news >正文

LLM损失函数面试会问到的

介绍一下KL散度

KL(Kullback-Leibler散度衡量了两个概率分布之间的差异。其公式为:
D K L ( P / / Q ) = − ∑ x ∈ X P ( x ) log ⁡ 1 P ( x ) + ∑ x ∈ X P ( x ) log ⁡ 1 Q ( x ) D_{KL}(P//Q)=-\sum_{x\in X}P(x)\log\frac{1}{P(x)}+\sum_{x\in X}P(x)\log\frac{1}{Q(x)} DKL(P//Q)=xXP(x)logP(x)1+xXP(x)logQ(x)1

写一下交叉熵损失函数,其物理意义是什么

交叉熵损失函数(Cross-Entropy Loss Function)是用于度量两个概率分布之间的差异的一种损失函数。在分类问题中,它通常用于衡量模型的预测分布与实际标签分布之间的差异

H ( p , q ) = − ∑ i = 1 N p i log ⁡ ( q i ) − ( 1 − p i ) log ⁡ ( 1 − q i ) H(p,q)=-\sum_{i=1}^Np_i\log(q_i)-(1-p_i)\log(1-q_i) H(p,q)=i=1Npilog(qi)(1pi)log(1qi)

注:其中,p 表示真实标签,q 表示模型预测的标签,N 表示样本数量。该公式可以看作是一个基于概率分布的比较方式,即将真实标签看做一个概率分布,将模型预测的标签也看做一个概率分布,然后计算它们之间的交叉熵。
物理意义:交叉熵损失函数可以用来衡量实际标签分布与模型预测分布之间的“信息差”。当两个分布完全一致时,交叉熵损失为0,表示模型的预测与实际情况完全吻合。当两个分布之间存在差异时,损失函数的值会增加,表示预测错误程度的大小。

KL散度与交叉熵的区别

KL散度指的是相对熵,KL散度是两个概率分布P和Q差别的非对称性的度量。KL散度越小表示两个分布越接近。
也就是说KL散度是不对称的,且KL散度的值是非负数。(也就是熵和交叉熵的差)

  • 交叉熵损失函数是二分类问题中最常用的损失函数,由于其定义出于信息学的角度,可以泛化到多分类问题中
  • KL散度是一种用于衡量两个分布之间差异的指标,交叉熵损失函数是KL散度的一种特殊形式。在二分类问题中,交叉熵函数只有一项,而在多分类问题中有多项。

多任务学习各loss差异过大怎么样去处理

多任务学习中,如果各任务的损失差异过大,可以通过动态调整损失权重、使用任务特定的损失函数、改变模型架构或引入正则化等方法来处理。目标是平衡各任务的贡献,以便更好地训练模型。

分类问题为什么用交叉熵损失函数而不用均方误差(MSE)

交叉熵损失函数通常在分类问题中使用,而均方误差(MSE)损失函数通常用于回归问题。这是因为分类问题和回归问题具有不同的特点和需求。
分类问题的目标是将输入样本分到不同的类别中,输出为类别的概率分布。交叉熵损失函数可以度量两个概率分布之间的差异,使得模型更好地拟合真实的类别分布。它对概率的细微差异更敏感,可以更好地区分不同的类别。此外,交叉熵损失函数在梯度计算时具有较好的数学性质,有助于更稳定地进行模型优化。
相比之下,均方误差(MSE)损失函数更适用于回归问题,其中目标是预测连续数值而不是类别。MSE损失函数度量预测值与真实值之间的差异的平方,适用于连续数值的回归问题。在分类问题中使用MSE损失函数可能不 太合适,因为它对概率的微小差异不够敏感,而且在分类问题中通常需要使用激活函数(如sigmoid或softmax)
将输出映射到概率空间,使得MSE的数学性质不再适用。
综上所述,交叉熵损失函数更适合分类问题,而MSE损失函数更适合回归问题

什么是信息增益

信息增益是在决策树算法中用于选择最佳特征的一种评价指标。在决策树的生成过程中,选择最佳特征来进行节点的分裂是关键步骤之一,信息增益可以帮助确定最佳特征。
信息增益衡量了在特征已知的情况下,将样本集合划分成不同类别的纯度提升程度。它基于信息论的概念,使用熵来度量样本集合的不确定性。具体而言,信息增益是原始集合的熵与特定特征下的条件熵之间的差异。
在决策树的生成过程中,选择具有最大信息增益的特征作为当前节点的分裂标准,可以将样本划分为更加纯净的子节点。信息增益越大,意味着使用该特征进行划分可以更好地减少样本集合的不确定性,提高分类的准确性。

多分类的损失函数(Softmax)

多分类的分类损失函数采用Softmax交叉熵(Softmax Cross Entropy)损失函数。Softmax函数可以将输出值归一化为概率分布,用于多分类问题的输出层。Softmax交叉熵损失函数可以写成:

− ∑ i = 1 n y i log ⁡ ( p i ) -\sum_{i=1}^ny_i\log(p_i) i=1nyilog(pi)

Softmax和交叉熵损失怎么计算,二值交叉熵呢?

softmax:

y = e f i ∑ j e f j y=\frac{e^{f_i}}{\sum_je^{f_j}} y=jefjefi

在这里插入图片描述

如果softmax的e次方超过float的值怎么办

将分子分母同时除以x中的最大值,可以解决。

x ~ k = e x k − max ⁡ ( x ) e x 1 − max ⁡ ( x ) + e x 2 − max ⁡ ( x ) + … + e x k − max ⁡ ( x ) + … + e x n − max ⁡ ( x ) \mathrm{\tilde{x}_k~=~\frac{e^{xk-\max(x)}}{e^{x_1-\max(x)}+e^{x_2-\max(x)}+\ldots+e^{x_k-\max(x)}+\ldots+e^{x_n-\max(x)}}} x~k = ex1max(x)+ex2max(x)++exkmax(x)++exnmax(x)exkmax(x)

相关文章:

  • 【Azure Redis 缓存】关于Azure Cache for Redis 服务在传输和存储键值对(Key/Value)的加密问题
  • 在Spring Boot 中如何配置MongoDB的副本集 (Replica Set) 或分片集群 (Sharded Cluster)?
  • HTTP协议网络读卡器通讯报文
  • WebSoket的简单使用
  • Rice Science∣武汉大学水稻研究团队发现水稻壁相关激酶OsWAKg16和OsWAKg52同时调控水稻抗病性和产量
  • 关系型数据库与非关系型数据库深度对比:从设计哲学到应用场景的全解析
  • 在Star-CCM+中实现UDF并引用场数据和网格数据
  • 【C语言】初阶数据结构相关习题(一)
  • Leetcode 刷题记录 07 —— 链表
  • 小土堆pytorch--transform
  • 关于loadstartcode使用
  • 使用 Poco C++ 库构建轻量级 HTTP 服务器
  • 小微企业SaaS ERP管理系统,SpringBoot+Vue+ElementUI+UniAPP
  • Oracle中游标和集合的定义查询及取值
  • Flutter开发HarmonyOS实战-鸿蒙App商业项目
  • 极速轻量,Rust 网络开发新选择:Hyperlane 框架深度解析
  • C++学习之路,从0到精通的征途:priority_queue类的模拟实现
  • 20250506异形拼图块(圆形、三角、正方,椭圆/半圆)的中2班幼儿偏好性测试(HTML)
  • 高频面试题:设计秒杀系统,用Redis+Lua解决超卖
  • SpringBoot教学管理平台源码设计开发
  • 十四届全国政协原常委、民族和宗教委员会原副主任苟仲文被提起公诉
  • 言短意长|党政主官如何塑造流量城市?
  • 强沙尘暴压城近万名游客被困,敦煌如何用3小时跑赢12级狂风?
  • 胡塞武装称以色列所有机场均为其打击目标
  • 郭旭涛转任河北省科协党组书记、常务副主席,曾任团省委书记
  • 国防部新闻发言人就日本民用飞机侵闯中国钓鱼岛领空答记者问