【机器学习】专题学习丨1. 损失函数loss积累丨
一、超分辨率重建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的含义了。
第二部分minG部分。minG就是保持D不变,训练G来尽可能min 。这个时候只有第二项E有用了,关键来了,因为我们要迷惑D,所以这时将label设置为1(我们知道是fake,所以才叫迷惑),希望D(G(z))输出接近于1更好,也就是这一项越小越好,这就是minG。当然判别器哪有这么好糊弄,所以这个时候判别器就会产生比较大的误差,误差会更新G,那么G就会变得更好了,这次没有骗过你,只能下次更努力了。
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。
通常,当我们在实做最大似然函数时候,我们通常会把 最大化似然函数 转化成 最小化似然函数的负对数。
比如说,正常我们的似然函数是这么写的: ,变换一下就是
7. InfoNCE Loss
InfoNCE常见于 自监督学习 中,用于让模型学会样本的独特表示。其实 InfoNCE 和用于分类任务的 CrossEntropy(CE) Loss很像。只不过在 CE Loss 中,上面公式中的 是 样本特征 与 该样本与其类中心 的内积。
而在 InfoNCE 中, 和 分别是两个样本的向量。如下图(来自MoCo)
资源汇总
1. metric learning 损失函数。博客
2. 一种写法统一人脸Loss:Pytorch实现及Mnist可视化
备忘知识
1. 梯度的负方向是寻找最小值。
【机器学习】专题学习丨1. 损失函数loss积累丨相关推荐
- 《深度学习笔记》——“损失函数loss乘以正数因子a是否等价于学习率lr乘以a呢?”
致谢 感谢知乎回答"loss的尺度的影响的本质上取决于优化器"给予我的启发! 1 问题描述 最近我在调参时,想到一个问题:"损失函数loss乘以正数因子a是否等价于学习率 ...
- 如何融合多任务学习 (Multi-Task Learning ) 损失函数loss
目录 1 Uncertainty Weighting 1.1 基础概念 1.2 方法 2 GradNorm 2.1 原理 2.2 方法 3 Multi-Objective Optimisation 3 ...
- Python数据科学学习笔记之——机器学习专题
机器学习专题 1.专题:朴素贝叶斯分类 1.1.朴素贝叶斯分类 朴素贝叶斯分类器建立在贝叶斯分类方法的基础上,其数学基础是贝叶斯定理--一个描述统计量条件概率关系的公式.在贝叶斯分类中,我们希望确定一 ...
- 深度学习——知识点总结3(损失函数Loss)
Q:损失函数有几种?原理是什么?有什么特点? 损失函数(loss function)是用来估量模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失 ...
- 机器学习中的目标函数、损失函数、代价函数有什么区别?
作者:zzanswer 链接:https://www.zhihu.com/question/52398145/answer/209358209 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权 ...
- 机器学习线性回归学习心得_机器学习中的线性回归
机器学习线性回归学习心得 机器学习中的线性回归 (Linear Regression in Machine Learning) There are two types of supervised ma ...
- PyTorch框架学习十二——损失函数
PyTorch框架学习十二--损失函数 一.损失函数的作用 二.18种常见损失函数简述 1.L1Loss(MAE) 2.MSELoss 3.SmoothL1Loss 4.交叉熵CrossEntropy ...
- 机器学习深度学习知识点总结
1.Overfitting是什么?怎么解决? overfitting就是过拟合, 其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在 ...
- 机器学习的几种分类损失函数
1. 机器学习的几种分类损失函数 1.1 信息量 信息量也叫做香农信息量,常用于刻画消除随机变量X在x处的不确定性所需的信息量\color{red}刻画消除随机变量X在x处的不确定性所需的信息量刻画消 ...
最新文章
- Struts 2(八):文件上传
- 用python解“混合类型数据格式输入”题
- 比利牛斯獒犬 flask web
- git http仓库账号密码缓存至本地:不用每次git push都需要输入密码的方法(类似于windows的凭据管理)
- NLP哪个细分方向最具社会价值?
- SpringCloud Gateway 服务网关,断言
- html压缩原理,webpack--前端性能优化与Gzip原理
- [转载] 6.3 cmath--数学函数
- 2019 年 9 月全国程序员工资统计,你是什么水平?
- Nginx 解决 Tomcat 集群下的 Session共享
- rtmp直播推流软件推荐
- 元胞自动机:森林火灾模拟(Python:numpy、seaborn)
- 如何把信息做成二维码?如何制作二维码的内容?
- PS平面设计零基础如何学好PS平面设…
- 解压缩文件并将其中的excel文件汇总
- Java IDEA的使用
- 异常信息:test02FlexController”不存在,wufa
- 机器学习四大数据降维方法详解
- 【Spring】Spring事务管理
- Arduino实现压力传感器(使用HX711模块)
热门文章
- Linux-mdadm命令实现软RAID
- rjs 合并压缩完 js 后 js 不压缩的问题
- oracle apex ajax process + dy 校验
- FPGA驱动RGB灯带WS2812B
- 不要混淆事件的互不相容和互相独立
- 【深入理解TcaplusDB技术】入门Tcaplus-JDBC开发
- android connection refused 模拟器,Docker:Docker Appium 镜像连接夜安卓神模拟器,并处理 connection refused 异常...
- ubuntu怎么设置系统语言英文_Ubuntu系统设置中文语言的方法教程,Ubuntu系统怎么设置中文语言?...
- app 上架到苹果应用商店
- Cisco-小型网络拓扑(DNS、DHCP、网站服务器、无线路由器)