一些损失函数的学习

CrossEntropy loss

  • 交叉熵是用来衡量两个概率分布之间的差异性或不相似性的度量
  • 交叉熵定义为两个概率分布p和q之间的度量。其中,p通常是真实分布,而q是模型预测的分布
  • 交叉熵还等于信息熵 + 相对熵
  • 这里,x遍历所有可能的事件,p(x)是真实分布中事件 发生的概率,而q(x)是模型预测该事件发生的概率

Negative log Likelihodd loss

似然(Likelihood)

似然是在给定特定模型参数的情况下,观察到当前数据的概率。如果模型参数用0表示,观察
到的数据用X表示,那么似然通常写作L(θ|X)或P(X|θ)。
最大似然估计(MLE)就是寻找能最大化观察到的数据似然的参数值

公式

  • 假设有一个统计模型,其参数为0,并且有一组观测数据X={X1,X2,X3,…Xn}。似然函数L(θ|X)定义为给定参数θ下观测数据X出现的概率:
    L(θ|X)= P(X|θ)
  • 对于独立同分布的数据点,似然可以表示为各个数据点概率的乘积

对数似然(Log-Likelihood)

对数似然是似然的对数形式,通常表示为1ogL(θ|X),对数变换是单调的,不改变似然函数
的最优参数位置。
对数变换通常在数学处理上更方便。特别是当似然是多个概率的乘积时,对数变换可以将乘法转化为加法,简化计算。
在最大似然估计中,通常最大化对数似然而不是似然,因为这在数学上更容易处理。
  • 对数似然是似然函数的自然对数,它在数学处理上更方便,尤其是将乘法转换为加法。对数似然表示为:

负对数似然(Negative Log-Likelihood, NLL)

负对数似然是对数似然的负值,表示为—logL(θ|X),这种形式在优化问题中更为常见。
负对数似然常用作损失函数,由于优化算法通常设计为最小化一个函数,将对数似然取负值可以将似然最大化问题转化为最小化问题
  • 负对数似然是对数似然的负值,常用作损失函数,特别是在最大似然估计中。它的表达式是:

交叉熵就是负对数似然

  • 似然可以写为各个数据点的概率乘积
  • 除以N取平均,再log变成为加,变为对数似然,刚好变为负交叉熵定义式

KL(Kullback–Leibler) divergence也叫相对熵

  • 带入均值和标准差

交叉熵等于信息熵+KL散度

信息熵

  • 它是衡量信息量的一个度量,或者更精确地说,是衡量随机变量不确定性的度量

  • 熵高意味着随机变量的不确定性高,熵低则意味着不确定性低。例如,如果一个随机变量只能取一个值,那么其熵为0,因为这个事件发生的概率是1,没有不确定性

  • 当所有可能事件都具有相同概率时,熵达到最大值,表示最大的不确定性。

  • p是真实分布,q是预测的分布

  • 当在做一个机器学习目标函数时,用交叉熵或KLD单独来看效果是一样的,因为信息熵如果是一个delta(one-hot)分布,那它的值就是0,如果是一个非delta分布,那它也是一个常数,常数对于神经网络的参数更新是没有任何贡献的,所以优化交叉熵loss和KLDloss效果是一样的,只不过数值上不一样(如果目标是delta分布,那数值也一样,这个时候用KLD时把target转换为one-hot向量就可以了)

Binary Cross Entropy二分类交叉熵

  • NLLloss 是BCEloss 的一般形式,所以,可以用NLLloss代替BCEloss来算


调用cosine similarity loss 余弦相似度

  • 余弦相似度是一种用于衡量两个非零向量在方向上的相似程度的度量
  • 可以用来做图片的相似,比如拿一个图片,想要在1百万张图片两找出前100个相似的图片,可以先用resnet等方法得到它的向量表征,然后拿这个图片的向量表征去和这1百万张做余弦相似度,然后得出最相近的前一百个即可
  • 余弦值的范围在 -1 到 1 之间,其中 1 表示两个向量方向完全相同,-1 表示两个向量方向完全相反,0 表示向量之间的角度是 90 度,即它们正交或不相关
  • 余弦相似度衡量的是方向上的相似性,而不是大小上的相似性。这意味着它会忽略两个向量的长度或大小,只关注它们的方向

学习资料:https://www.bilibili.com/video/BV1Sv4y1A7dz/

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

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

相关文章

OpenAI与微软合作,构建 ChatGPT 5 模型;10天准确天气预报

🦉 AI新闻 🚀 OpenAI与微软合作,构建 ChatGPT 5 模型,下一代人工智能或拥有超级智能 摘要:OpenAI首席执行官 Sam Altman 在接受采访时表示,OpenAI正在与微软合作构建下一代人工智能模型 ChatGPT 5&#x…

element UI表格中设置文字提示(tooltip)或弹出框(popover)时候注意的地方

在表格中自定义内容的时候需要使用标签,否则无法正常显示 文档中有两种写法:1、使用 slot“reference” 的具名插槽,2、使用自定义指令v-popover指向 Popover 的索引ref。 使用tooltip 时用具名 slot 分发content,替代tooltip中…

如何将文字、图片、视频、链接等内容生成一个二维码?

通过二维彩虹的【H5编辑】功能,就可以将文字、图片、视频、文件、链接等多种格式的内容编辑在一个页面,然后生成一个自定义的二维码——H5编辑二维码。扫描后,即可查看二维码中的详细图文视频等内容了。这个功能大受欢迎! 这个H5…

html主页框架,前端首页通用架构,layui主页架构框架,首页框架模板

html主页框架 前言功能说明效果使用初始化配置菜单加载主题修改回调 其他非iframe页面内容使用方式iframe页面内容使用方式 前言 这是一个基于layui、jquery实现的html主页架构 平时写的系统后台可以直接套用此框架 由本人整合编写实现,简单上手,完全免…

接口测试基础与接口测试用例设计思路详解

接口测试简介 1.什么是接口 接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,就好比usb接口,他是系统向外接提供的一种用于物理数据传输的一个接口,当然仅仅是一个接口是不能进行传输的&#x…

【数据结构】栈

1.58.33 栈 栈栈的概念及基本结构栈的存储栈的基本操作栈的置空初始化---StackInit()栈的初始化2.0---给栈开辟一点空间StackInit1()栈的销毁---StackDestory()入栈----StackPush()出栈----StackPop()获取栈中元素的数量---StackSize()判断栈是否为空---StackEmpty()获取栈顶元…

自动化测试系列 —— UI自动化测试

UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG。了解用户将如何在用户和网站之间进行交互以执行 UI 测试至关重要,通过执行 UI 测试…

值得学习的演示文稿制作范例

1,在第一张幻灯片前插入1张新幻灯片,设置幻灯片大小为“全屏显示(16:9) ”;为整个演示文稿应用“离子会议室”主题,放映方式为“观众自行浏览”;除了标1题幻灯片外其它每张幻灯片中的页脚插入“晶泰来水晶吊坠”七个字。 2,第一张幻灯片的版式设置为“标题幻灯片”,主标题为“…

音视频技术在手机上的应用与挑战

// 编者按:随着手机相机功能日益强大,4k,8k,各类特色短视频的拍摄,编辑、播放需求日益增长,短视频应用的火爆也对当前的手机音视频技术提出了更高的要求,如何更好地提高用户体验成为了行业共同…

蓝桥杯 大小写转换

islower/isupper函数 islower和issupper是C标准库中的字符分类函数&#xff0c;用于检查一个字符是否为小写字母或大写字母 需要头文件< cctype>,也可用万能头包含 函数的返回值为bool类型 char ch1A; char ch2b; //使用islower函数判断字符是否为小写字母 if(islower(…

SpringMVC 进阶

SpringMVC 进阶 一、拦截器 SpringMVC 中 Interceptor 拦截器的主要作⽤是拦截⽤⼾的请求并进⾏相应的处理。⽐如通过它来进⾏权限验证&#xff0c;或者是来判断⽤⼾是否登陆等操作。对于 SpringMVC 拦截器的定义⽅式有两种&#xff1a; 实现接⼝&#xff1a;org.springfram…

如何在3DMax中使用超过16个材质ID通道?

3DMAX效果通道扩展插件EffectsChannelEx教程 3DMax的材质ID通道允许我们生成渲染元素&#xff0c;这些元素可用于在合成或其他软件中产生处理或特殊效果。如对渲染或动画进行颜色校正。你可以在Photoshop中为你的静态3D渲染图像做这件事。或者使用After Effects、Blackmagic Fu…

竞赛选题 目标检测-行人车辆检测流量计数

文章目录 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 行人车辆目标检测计数系统 …

JAVA小游戏 “拼图”

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 创建一个代码类 和一个运行类 代码如下&#xff1a; package heima;import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import jav…

企业微信机器人定时发送图文信息,后续无需人工操作

企业微信群机器人是企业微信的内置功能&#xff0c;可以理解为是一个群提醒通知工具&#xff0c;接收数据并自动发送信息到企业微信群中。 数环通实现打通定时器和企业微信机器人的对接&#xff0c;定时执行自动化流程&#xff0c;无需人工干预&#xff0c;实现工作流程自动化&…

【EI会议征稿】2024年电气技术与自动化工程国际学术会议 (ETAE 2024)

2024年电气技术与自动化工程国际学术会议 (ETAE 2024) 2024 International Conference on Electrical Technology and Automation Engineering 2024年电气技术与自动化工程国际学术会议 (ETAE 2024) 将于2024年3月8-10日在中国杭州召开。电气工程及其自动化和人们的日常生活…

电磁场与电磁波part5--均匀平面波在无界空间的传播

目录 1、相位速度 2、波阻抗 3、理想介质中均匀平面波的传播特点 4、色散现象 5、导电媒质中均匀平面波的传播特点 6、趋肤效应 7、电磁波的极化 1、相位速度 电磁波的等相位面在空间中的移动速度&#xff08;相速&#xff09; 在自由空间&#xff08;自由空间的光速&a…

SpringBoot——入门及原理

SpringBoot用来简化Spring应用开发&#xff0c;约定大于配置&#xff0c;去繁从简&#xff0c;是由Pivotal团队提供的全新框架。其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff08;有特殊需求可以添加自己的配置覆盖默认配…

linux上交叉编译qt库

linux上交叉编译qt库 Qt程序从X86平台Linux移植到ARM平台Linux需要做什么 1.在ubuntu上使用qt的源码交叉编译出Qt库 2.将编译好的库拷贝到开发板上并设置相应的环境变量&#xff08;库路径啥的&#xff09; 前两步一劳永逸&#xff0c;做一次就行 3.X86上写好程序代码&…

浅谈多回路电表在荷兰光伏系统配电项目中的应用

1.背景信息 Background&#xff1a; 随着全球化石能源&#xff08;石油&#xff0c;煤炭&#xff09;越来越接近枯竭&#xff0c;污染日趋严重&#xff0c;气候日益变暖等问题&#xff0c;全球多个国家和地区相继出台了法规政策&#xff0c;推动了光伏产业的发展。但是现有的光…