一、超分辨率重建loss

1、感知损失(Perceptual Losses)

论文地址

动机:MSE损失能够取得很高的PSNR,但是对图片高频部分(边缘)会过去平滑,如图:

方法:与比较pixel-wised的loss不同,将原始图片与生成图片都通过一个CNN,变成比较feature_map-wised的loss。


二、生成对抗

1、GAN原始损失。

论文地址

以下GAN的原始损失解释大部分转载自GAN: 原始损失函数详解 - walter_xh - 博客园

GAN的原始损失函数是这样的

损失函数定义:

注意:公式中的E是指一个batch数据的平均_link。

一切损失计算都是在D(判别器)输出处产生的,而D的输出一般是fake/true的判断,所以整体上采用的是二进制交叉熵函数。

左边包含两部分minG和maxD。

  首先看一下maxD部分。maxD就是保持G不变,训练D来尽可能max 。因为训练一般是先保持G(生成器)不变训练D的。D的训练目标是正确区分fake/true,如果我们以1/0代表true/fake,则对第一项E因为输入采样自真实数据所以我们期望D(x)趋近于1,也就是第一项更大。同理第二项E输入采样自G生成数据,所以我们期望D(G(z))趋近于0更好,也就是说第二项又是更大。所以是这一部分是期望训练使得整体更大了,也就是maxD的含义了。

maxD部分训练样本以及对应标签的给定

  第二部分minG部分。minG就是保持D不变,训练G来尽可能min 。这个时候只有第二项E有用了,关键来了,因为我们要迷惑D,所以这时将label设置为1(我们知道是fake,所以才叫迷惑),希望D(G(z))输出接近于1更好,也就是这一项越小越好,这就是minG。当然判别器哪有这么好糊弄,所以这个时候判别器就会产生比较大的误差,误差会更新G,那么G就会变得更好了,这次没有骗过你,只能下次更努力了。

minG部分训练样本以及对应标签的给定

2、Feature matching Loss

论文地址:Improved Techniques for training GANS

GANs的loss是建立在discriminator的输出上的,即discriminator输出的交叉熵,这可能导致GANs训练不稳定,毕竟给予generator的信息太少了,而图像空间又太大了。为了让训练更稳定,作者提出了featurematching的方法。所谓的feature matching,即是要求generator产生的图像在经过discriminator时,提取的特征尽可能地接近(匹配)自然图像经过discriminator时提取的特征。设discriminator的某个中间层对于输入x的输出为f(x),作者提出的featurematching,实际上是用下面的loss function替换以前的交叉熵loss:

这个loss比交叉熵loss更加直接,对generator的指导作用更大一些。

三、语义分割

1、语义分割损失。

标准语义分割损失

普通分类问题与语义分割分类问题的区别。体现在loss就是普通分类中  和  都为1。

普通分类​​​​​

语义分割

四、人脸识别损失

人脸识别:损失函数总结


未分类

1. 对比损失 (Contrastive Loss)

论文地址

以下转载自Link

在孪生神经网络(siamese network)中,其采用的损失函数是contrastive loss,这种损失函数可以有效的处理孪生神经网络中的paired data的关系。contrastive loss的表达式如下: 

其中,代表两个样本特征的欧氏距离,y为两个样本是否匹配的标签,y=1代表两个样本相似或者匹配,y=0则代表不匹配,margin为设定的阈值。

观察上述的contrastive loss的表达式可以发现,这种损失函数可以很好的表达成对样本的匹配程度,也能够很好用于训练提取特征的模型。当y=1(即样本相似)时,损失函数只剩下,即原本相似的样本,如果在特征空间的欧式距离较大,则说明当前的模型不好,因此加大损失。而当y=0时(即样本不相似)时,损失函数为,即当样本不相似时,其特征空间的欧式距离反而小的话,损失值会变大,这也正好符号我们的要求。

这张图表示的就是损失函数值与样本特征的欧式距离之间的关系,其中红色虚线表示的是相似样本的损失值,蓝色实线表示的不相似样本的损失值。

2. 余弦损失(discrepancy loss)。link

余弦损失最大的作用就是能够增大两个分布之间的差异性。为什么说是增大呢,因为  的时候,实际上就是    ,其中, 就是  与   之间的夹角。当  时,最小,而此时,  与  在角度上差异最大

3. 交叉熵损失。

【单个样本的分类情况】

# --- 多分类时 ---#

单个样本输入为 ,其中   为one-hot编码的标签[0, 0, 0, 1, 0],公式如下:

输入输出

其中,

 : 表示分类的类别总数。

 : 表示分类器中分类口的位置。

 : 表示当前输入  的第  个分类口的预测概率输出。(注:one-hot编码使得每个分类口都有值)

 : 表示当前输入  的第  个分类口的标签值。(注:one-hot编码使得每个分类口都有值)

 : 表示概率分布预测函数,one-hot编码的多分类的一般采用 softmax函数,输出是各个类别的概率。

# --- 二分类时 ---#

情况1:  是softmax函数,输出是二维,标签  采用二维one-hot编码。使用上面多分类。

标题

公式中有两个logit (  ),那么就是cross-entropy的损失。

情况2:  是sigmoid函数,输出是一维,标签  是标量

标题

单个样本  ,公式如下:丨公式推导丨

其中,

 : 表示当前输入  的标签值,是一维标量

 : 表示sigmoid函数的预测概率,是一维标量,

【多个样本(batch)的分类情况】

# --- 多分类时 ---#

多个样本输入为  ,其中   为one-hot编码的标签[0, 0, 0, 1, 0],公式如下:

### 资料

丨资料1丨

4. 中心损失(Center Loss)

原始论文链接:link

5. KL散度损失。

定义:所谓KL散度,是指当某分布q(x)被用于近似p(x)时的信息损失。

  • 现在  是离散随机变量 (即特征向量的个属性) 的联合分布。
  •  中的  表示随机变量  在取值范围内取第  个值。

参考文献:丨知乎-两个多变量高斯分布之间的KL散度丨知乎-如何计算两个多维离散分布的KL散度?丨知乎-KL Divergence丨

备忘

1. 实际应用情况1:

6. 负对数似然NLL。

通常,当我们在实做最大似然函数时候,我们通常会把 最大化似然函数 转化成 最小化似然函数的负对数

图片转载自:link

比如说,正常我们的似然函数是这么写的: ,变换一下就是

7. InfoNCE Loss

InfoNCE常见于 自监督学习 中,用于让模型学会样本的独特表示。其实 InfoNCE 和用于分类任务的 CrossEntropy(CE) Loss很像。只不过在 CE Loss 中,上面公式中的  是 样本特征  与 该样本与其类中心  的内积。

而在 InfoNCE 中,  和  分别是两个样本的向量。如下图(来自MoCo)


资源汇总

1. metric learning 损失函数。博客

2. 一种写法统一人脸Loss:Pytorch实现及Mnist可视化


备忘知识

1. 梯度的负方向是寻找最小值。

【机器学习】专题学习丨1. 损失函数loss积累丨相关推荐

  1. 《深度学习笔记》——“损失函数loss乘以正数因子a是否等价于学习率lr乘以a呢?”

    致谢 感谢知乎回答"loss的尺度的影响的本质上取决于优化器"给予我的启发! 1 问题描述 最近我在调参时,想到一个问题:"损失函数loss乘以正数因子a是否等价于学习率 ...

  2. 如何融合多任务学习 (Multi-Task Learning ) 损失函数loss

    目录 1 Uncertainty Weighting 1.1 基础概念 1.2 方法 2 GradNorm 2.1 原理 2.2 方法 3 Multi-Objective Optimisation 3 ...

  3. Python数据科学学习笔记之——机器学习专题

    机器学习专题 1.专题:朴素贝叶斯分类 1.1.朴素贝叶斯分类 朴素贝叶斯分类器建立在贝叶斯分类方法的基础上,其数学基础是贝叶斯定理--一个描述统计量条件概率关系的公式.在贝叶斯分类中,我们希望确定一 ...

  4. 深度学习——知识点总结3(损失函数Loss)

    Q:损失函数有几种?原理是什么?有什么特点? 损失函数(loss function)是用来估量模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失 ...

  5. 机器学习中的目标函数、损失函数、代价函数有什么区别?

    作者:zzanswer 链接:https://www.zhihu.com/question/52398145/answer/209358209 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权 ...

  6. 机器学习线性回归学习心得_机器学习中的线性回归

    机器学习线性回归学习心得 机器学习中的线性回归 (Linear Regression in Machine Learning) There are two types of supervised ma ...

  7. PyTorch框架学习十二——损失函数

    PyTorch框架学习十二--损失函数 一.损失函数的作用 二.18种常见损失函数简述 1.L1Loss(MAE) 2.MSELoss 3.SmoothL1Loss 4.交叉熵CrossEntropy ...

  8. 机器学习深度学习知识点总结

    1.Overfitting是什么?怎么解决? overfitting就是过拟合, 其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在 ...

  9. 机器学习的几种分类损失函数

    1. 机器学习的几种分类损失函数 1.1 信息量 信息量也叫做香农信息量,常用于刻画消除随机变量X在x处的不确定性所需的信息量\color{red}刻画消除随机变量X在x处的不确定性所需的信息量刻画消 ...

最新文章

  1. Struts 2(八):文件上传
  2. 用python解“混合类型数据格式输入”题
  3. 比利牛斯獒犬 flask web
  4. git http仓库账号密码缓存至本地:不用每次git push都需要输入密码的方法(类似于windows的凭据管理)
  5. NLP哪个细分方向最具社会价值?
  6. SpringCloud Gateway 服务网关,断言
  7. html压缩原理,webpack--前端性能优化与Gzip原理
  8. [转载] 6.3 cmath--数学函数
  9. 2019 年 9 月全国程序员工资统计,你是什么水平?
  10. Nginx 解决 Tomcat 集群下的 Session共享
  11. rtmp直播推流软件推荐
  12. 元胞自动机:森林火灾模拟(Python:numpy、seaborn)
  13. 如何把信息做成二维码?如何制作二维码的内容?
  14. PS平面设计零基础如何学好PS平面设…
  15. 解压缩文件并将其中的excel文件汇总
  16. Java IDEA的使用
  17. 异常信息:test02FlexController”不存在,wufa
  18. 机器学习四大数据降维方法详解
  19. 【Spring】Spring事务管理
  20. Arduino实现压力传感器(使用HX711模块)

热门文章

  1. Linux-mdadm命令实现软RAID
  2. rjs 合并压缩完 js 后 js 不压缩的问题
  3. oracle apex ajax process + dy 校验
  4. FPGA驱动RGB灯带WS2812B
  5. 不要混淆事件的互不相容和互相独立
  6. 【深入理解TcaplusDB技术】入门Tcaplus-JDBC开发
  7. android connection refused 模拟器,Docker:Docker Appium 镜像连接夜安卓神模拟器,并处理 connection refused 异常...
  8. ubuntu怎么设置系统语言英文_Ubuntu系统设置中文语言的方法教程,Ubuntu系统怎么设置中文语言?...
  9. app 上架到苹果应用商店
  10. Cisco-小型网络拓扑(DNS、DHCP、网站服务器、无线路由器)