首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客145335972号
北京邮电大学 算法工程师
发布于北京
关注
已关注
取消关注
@Les1ie:
损失函数/指标:算法工程师必备的损失函数/指标知识点
损失函数(指标)知识点整理 损失函数(指标)的设计、选择与评估 损失函数的设计与选择需要结合实际问题进行。 分析角度 以回归问题为例,需要以下角度对损失函数进行分析,假设预测值与真实值分别为 和 : 对称性,即 loss 的值是否能较好地区分满足 值相同(交换 和 的值)的两种情况(如 和 ); 相对区分性,即 loss 的值能否较好地区分 相同的多种情况(如 和 ); 绝对区分性,即 loss 的值能否较好地区分 相同的多种情况(如 和 ); 输入输出值域,即 loss 所能处理的输入值域以及对于大部分样本所输出的值域,需留意是否包含 0 和负值,如 MSLE 就不支持小于 的输入; 异常值敏感性,即对于一个 batch 中可能存在的极少数异常值,loss 能否反映出这种情况(如所有 , 大部分 ,极少数 )。 选择与使用 在实际的任务场景中,可能难以找到完美的损失函数,因此会对以上不同的性质有不同的容忍程度。如: 在房价预测任务中,能允许 loss 拥有较差的绝对区分性但要求其相对区分性较强,因为相比房价在不同数量级上的差异,人们或许更能接受房价在同数量级内的差异; 同时可以搭配使用多个常用的损失函数, 互相取长补短进行 trade off。考虑 batch size 为 的如下案例: # Case MSE MSLE Case 1 30 20 100 0.02861 Case 2 30000 20000 100 000 000 0.03100 Case 3 20 10 100 0.07886 Case 4 20 30 100 0.02861 Case 1、3、4 中,仅使用 MSE 均无法区分,此时引入 MSLE 能帮助区分误差(引入时可对 MSLE 进行缩放,如 ); Case 1、2 中,仅使用 MSLE 的区分度很小,可引入 MSE 来进一步帮助区分(引入时可对 MSE 进行缩放,如 ); References Mean squared logarithmic error (MSLE) | Peltarion Platform 分类 分类模型的输出一般有多种形式: Logits:预测分数,一般是对模型最终学习到的 Embeddings 使用 MLP 输出得到,未经过 Softmax 的归一化。 Probabilities:分类概率,一般是对 Logits 进行 Softmax 归一化得到。 交叉熵 Cross Entropy 基础计算 对于 K 个类别的 对每一个样本,其输入的 和 均为一个长度为类别数的向量, 为 one-hot 向量表示该样本是否属于某一类别, 为概率向量表示模型判断该样本属于各类别的概率分数大小。 如对一个包含 个类别的分类任务,其交叉熵的输入可能为:, 。 细分变体 根据不同的任务,交叉熵可以进一步被细分为: 二元交叉熵(Binary Cross Entropy,BCE),可以被认为是一种用于二分类任务的简化版本,对于单个样本而言,其 和 都能简化为单个数表示其属于二分类中单个类别的概率(另一个类别的概率则为 )和标签( 表示属于该类, 表示属于另一类)。 在PyTorch中,有专门的BCELoss实现,用于处理更为精简的输入,并优化 log 函数的输出值为 以确保其 loss 不为inf以及反向传播可正常进行。 文档相关描述 [4] Our solution is that BCELoss clamps its log function outputs to be greater than or equal to -100. This way, we can always have a finite loss value and a linear backward method. 优化改进 Label Smoothing 在每次计算交叉熵时,针对模型输出的分类概率使用 进行平滑。 在共包含 个类别的场景下,某个样本在第 个类别的概率 被平滑为 。 作用:相当于缩紧了所有类别的概率上下界 ,同时防止了单一类别的概率分数过高而其他类别的被忽略导致计算得到的交叉熵过大。 原论文相关描述 [3] Note that LSR (label-smoothing regularization) achieves the desired goal of preventing the largest logit from becoming much larger than all others. Indeed, if this were to happen, then a single would approach while all others would approach . This would result in a large cross-entropy with because, unlike , all have a positive lower bound. Label Weight 可以手动对每一个类别指定一个专门的权重,在样本标签不均匀的情况下可能能派上用场。 细节 交叉熵一般会搭配 Softmax 使用,PyTorch中CrossEntropyLoss的输入是 Logits,而不是 Softmax 后的 Probabilities,其内部会进行LogSoftmax和 NLLLoss ^[5]^。 为什么不能使用 MSE 作为分类问题的损失: 物理意义上,MSE 衡量的是几何空间的欧氏距离,而分类问题中每个类别的标签是离散的 和 ,本身不具备几何空间的意义; 信息学中,交叉熵衡量的是两个分布之间的差异,可用于衡量模型预测的概率分布和真实标签的类别分布是否相似。 计算上,分类模型输出的概率一般会经过 softmax 归一化,归一化后的值使用 MSE 会导致不符合预期的梯度,而使用交叉熵则无此问题。 如三分类问题中,标签为 ,模型输出为 ,此时的损失值为: 可以看到,MSE 会考虑各个类别的概率,其最小化的目标除了让正确类别的概率最大化外,还会让错误类别的概率平均(这一步是不必要的,可能会导致梯度不符合预期),这也是反向传播时优化函数不是凸函数难以优化的表现; 而交叉熵则只针对正确的类别进行计算,就没存在 MSE 中的问题。 References: bilibili:“交叉熵”如何做损失函数?打包理解“信息量”、“比特”、“熵”、“KL散度”、“交叉熵” bilibili:“损失函数”是如何设计出来的?直观理解“最小二乘法”和“极大似然估计法” Rethinking the Inception Architecture for Computer Vision torch.nn.BCELoss torch.nn.CrossEntropyLoss Precision、Recall Precision 查准率,Recall 查全率,数值越高表示模型的准确度越高。 查准率与查全率是矛盾的,大部分情况下一个高了另一个就会低。 P-R Curve 以 Recall 、Precision 为横纵坐标轴的曲线图,其面积越大表示模型的学习能力越强,如果某一个分类器的 PR 曲线被另一个分类器包住则说明后者的性能优于前者。 绘制过程:按照模型输出的分类概率,从高至低依次将每一个样本视为正例计算 P、 R 并绘制。 对于 PR 曲线,亦可以使用平衡点(Break-Even Point)作为度量,为 P=R 时的值。 Fα Score 一种能结合具体场景调整 P、R 相对重要性的评估指标。 基础计算 时,即为 F1-Score: ; 时,查全率 R 有着更大的影响; 时,查准率 P 有着更大的影响。 ROC 将横、纵轴的计算替换成: 类似 PR 曲线的绘制方法:给定 个正例、 个负例,依照模型输出值依次将每一个样本视为正例,对于前一个点的坐标 ,若当前样本为真正例则坐标为 ,否则为 ,即可绘制出 ROC 曲线。 AUC Area Under the Curve,表示的是 ROC 曲线下的面积,由于通过点连接得到的 ROC 曲线是非光滑的,因此 AUC 的计算为: AUC 亦可以通过 1 减去曲线上方的面积计算得到: 回归 均方误差 MSE、均方对数误差 MSLE MSE 和 MSLE 用于简单的比较和衡量预测值与真实值之间的差距。 基础计算 细节 MSE 有着几何学上的意义:欧几里得距离; 相比于 MSE, MSLE 有着更小的输出值域且对输入值域有限制(不小于 ),其他比较可见 损失函数(指标)的设计、选择与评估-选择与使用 。 References torchmetrics.MeanSquaredLogError torchmetrics.MeanSquaredError R-squared 又称 R2、R 平方、R 方、判定系数(Coefficient Of Determination),用于衡量回归模型的表现。 基础计算 细节 R-squared 通过残差平方和(residual sum of squares)和总平方和(total sum of squares)对数据进行评估,当回归模型能完美地拟合数据的分布时有 。 References R2 Score_Coefficient Determination torchmetrics.R2Score 其他问题 聚类 聚类是比较经典的一类无监督任务,旨在将样本集划分为若干个不相交的子集合(簇),使得每个子集合内部样本的相似度(簇内相似度)尽可能高、不同子集合的样本相似度(簇间相似度)尽可能低。 References 机器学习 周志华著 其他模型 BERT BERT 中使用了两种无监督的训练任务用于预训练模型。 Masked Language Model,MLM 在输入的所有 token 中每次随机遮住(mask)一个 token 并通过未遮住的部分去预测被遮住的 token。 MLM 是一个多分类问题。 原论文相关描述 [1] we simply mask some percentage of the input tokens at random, and then predict those masked tokens. Next Sentence Prediction,NSP 每次在语料库中选择两个句子 A 和 B,B 有 50% 的概率为 A 的下一个句子,50% 的概率为从语料库中随机选择的一个句子。 NSP 是一个二分类问题。 两个预训练的任务均为无监督的分类任务,使用的 Loss 是交叉熵。 References BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding - arXiv GraphSAGE GraphSAGE 中使用了一种无监督的 Loss 用于:最小化相邻节点的特征差异、最大化非相邻节点的特征差异,其计算公式如下: 其中: 表示是模型通过邻近节点生成的节点特征(不是直接 Transductive 学习得到的,可应用于图中有新增节点的场景); 原论文相关表述 [1] the representations that we feed into this loss function are generated from the features contained within a node’s local neighborhood, rather than training a unique embedding for each node (via an embedding look-up). 是被采样到的 的邻近节点, 是负样本数量, 是负采样的概率分布。 References Inductive representation learning on large graphs 总结 对于最经典的两类问题(分类和回归),其损失函数往往不能通用,一般需要针对性地进行适配或优化才能跨问题领域使用; 除了某一类问题通用的损失函数外,部分模型还会基于模型特性或问题特性设计一些新的有监督或无监督任务(如 GraphSAGE 或 BERT),在这些任务中可能会使用一些特殊的 Loss 。
点赞 0
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
10-31 00:32
已编辑
广东工业大学 嵌入式软件开发
嵌入式软件求拷打求支招
至今0offer,网申0回应11月是不是秋招已经结束了
点赞
评论
收藏
分享
09-28 10:59
已编辑
百度_高级研发工程师
为什么谈薪这么难啊
第一家谈薪只给了7000块,还一副施舍的态度,现在就业行情这么差了吗。破防了家人们。当时校园招聘会人山人海,但是没有几家大企业,毕竟双非院校嘛,华为腾讯字节阿里,都不可能去的,都是本地的小企业,还有一些北京的小企业,也很趾高气扬,施舍一样。更看不惯的,还有阿谀奉承之流,你说要是有什么好机会,你去舔舔就算了,见人就舔,见人就舔,给人舔的舒服了,以为我们学校都是这种货色。话说回来,人家高考多考的几十分总不能白费,以后要靠努力去弥补差距了。来自于2020年的我。
verge&0904:
小企业摆出阿里脸,给着白菜价
校招谈薪技巧
点赞
评论
收藏
分享
10-25 16:13
卓越里程_中台运营(准入职员工)
卓越教育内推,卓越教育内推码
卓越助教面试经验分享参加卓越小学助教首先是要笔试(线上的),选语数英三科中的两到三科进行笔试,有80分就算过。题目很简单,就是小学六年级的知识点。然后你把成绩截图并且简历发给招聘负责人,等待面试。面试(线上微信视频通话)1.进行一个简单的自我介绍,并说出你做助教的个人优势。个人优势:担任过班委,班级管理经验。有家教经验,懂得如何和小朋友相处。2.情景问答题从2-9中选一个数字,回答对应的问题。1.到了上课时间老师还没来,你应该怎么办?先和老师联系,了解情况。然后告诉学生情况,安抚大家的情绪,带领学生拿出复习资料和课本进行学习,等待老师到达。2.如果上课过程中有孩子嬉笑打闹,你应该怎么办?分成三...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
造谣刑法老师媚男,反被老师法院起诉
1.3W
2
...
现在出海,是不是相当于十年前加入互联网?
7706
3
...
秋招小失败-后端小小劝退(大结局)
7001
4
...
9本秋招后端收获9+offer, 我做对了什么?
5394
5
...
你们说,人会一直倒霉吗?
5137
6
...
一个大专学历15年IT之路的感悟
4700
7
...
挑战全网最早的美团开奖!
3279
8
...
别问了,在校生千万千万别逃课!
3184
9
...
秋招能拿多个大厂offer的其实就两种人
2760
10
...
字节懂车帝日常一面二面面经(已挂)
2727
创作者周榜
更多
正在热议
更多
#
校招生月薪1W算什么水平
#
34410次浏览
189人参与
#
哪一瞬间觉得自己长大了
#
38226次浏览
493人参与
#
“vivo”个offer
#
38873次浏览
280人参与
#
如果上班像打游戏,你最想解锁什么技能
#
8166次浏览
70人参与
#
vivo工作体验
#
27917次浏览
124人参与
#
为了实习逃课值吗?
#
28664次浏览
270人参与
#
工作后明白的那些道理
#
21726次浏览
225人参与
#
一人一个landing小技巧
#
123872次浏览
1441人参与
#
我是面试官,请用一句话让我破防
#
26618次浏览
128人参与
#
实习最想跑路的瞬间
#
87461次浏览
543人参与
#
中美关税战对我们有哪些影响
#
43001次浏览
361人参与
#
机械制造2023笔面经
#
149558次浏览
840人参与
#
如果重来一次你还会读研吗
#
201621次浏览
1932人参与
#
AI时代,哪些岗位最容易被淘汰
#
3347次浏览
27人参与
#
中美关系回暖,你会选择出海吗?
#
6690次浏览
107人参与
#
华为保温
#
107658次浏览
408人参与
#
哪些行业值得去?
#
5362次浏览
50人参与
#
i人适合做什么工作
#
11399次浏览
97人参与
#
美团开奖
#
222750次浏览
1150人参与
#
读研or工作,哪个性价比更高?
#
78247次浏览
769人参与
#
如果秋招能重来,我会____
#
37489次浏览
300人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务