损失函数

pytorch常用损失函数

无人久伴 提交于 2019-12-19 03:21:45
损失函数的基本用法: criterion = LossCriterion() #构造函数有自己的参数 loss = criterion(x, y) #调用标准时也有参数 得到的loss结果已经对mini-batch数量取了平均值 1.BCELoss(二分类) CLASS torch.nn.BCELoss(weight=None, size_average=None, reduce=None, reduction='mean') 创建一个衡量目标和输出之间二进制交叉熵的criterion unreduced loss函数(即reduction参数设置为'none')为: N表示batch size,x n 为输出,y n 为目标 如果reduction不为'none'(默认设为'mean'),则: 即默认情况下,loss会基于 element求 平均值,如果 size_average=False 的话, loss 会被累加。 这是用来测量误差error的重建,例如一个自动编码器 。注意 0<=target[i]<=1。 参数: weight ( Tensor , 可选 ) – 每批元素损失的手工重标权重。如果给定,则必须是一个大小为“nbatch”的张量。 size_average ( bool , 可选 ) – 弃用(见 reduction 参数)。默认情况下,设置为True

决策树

余生颓废 提交于 2019-12-18 10:47:07
   决策树 是一种基本的分类与回归方法。决策树模型呈树形结构,可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。其主要优点是模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。决策树学习通常包括3个步骤: 特征选择 、 决策树的生成 和 决策树的修剪 。    定义(决策树): 决策树由结点(node)和 有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶节点(leaf node)。内部结点表示一个特征或属性,叶节点表示一个类。   决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥并且完备。这就是说,每一个实例都被一条路径或一条规则所覆盖,而且只被一条路径或一条规则所覆盖。   决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。决策树学习算法包括 特征选择 、 决策树生成 与 决策树的剪枝 过程。决策树学习常用的算法有 ID3 、 C4.5 与 CART 。    特征选择    通常特征选择的准则是 信息增益 或 信息增益比 。    特征增益   在信息论与概率统计中,熵(entropy)是表示随机变量不确定性的度量

Feature Fusion for Online Mutual Knowledge Distillation (CVPR 2019)

时光毁灭记忆、已成空白 提交于 2019-12-16 13:06:50
一、解决问题 如何将特征融合与知识蒸馏结合起来,提高模型性能 二、创新点 支持多子网络分支的在线互学习 子网络可以是相同结构也可以是不同结构 应用特征拼接、depthwise+pointwise,将特征融合和知识蒸馏结合起来 三、实验方法和理论 1.Motivation DML (Deep Mutual Learning) 算法思想: ​ 用两个子网络(可以是不同的网络结构)进行在线互学习,得到比单独训练性能更好的网络 损失函数: ​ 传统监督损失函数: ​ 模仿性的损失函数: ​ 单个网络的损失函数: ONE (On-the-FlyNative Ensemble) 算法思想: ​ 通过在网络深层次构造多分支结构,每个分支作为学生网络,融合logit分布,生成更强的教师网络,进而通过学生/教师网络的共同在线学习,互相蒸馏,训练得性能优越的单分支或多分支融合模型。 logit融合 (Gate Module:FC、BN、ReLU、Softmax): 损失函数: DualNet 算法思想: ​ 通过融合两个互补parallel networks生成的特征,使得融合后的性能比单独训练的性能更好 损失函数: 启发 :结合DML、ONE和DualNet的思想,构造一个支持(相同或者不同的)多个子网络分支进行特征融合的网络结构,进而让融合分类器和分类器进行在线互学习,互蒸馏的方式

SSD算法的实现

一曲冷凌霜 提交于 2019-12-15 20:26:52
本文目的:介绍一个超赞的项目—— 用Keras来实现SSD算法 。 本文目录: 0 前言 1 如何训练SSD模型 2 如何评估SSD模型 3 如何微调SSD模型 4 其他注意点 0 前言 我在学习完SSD算法之后,对具体细节有很多的疑惑,记录如下: SSD的网络是怎么实现的? 已有的数据是什么样子的? 如何把一张图像打散成anchors? 如何根据标注把各anchors打上标签? 正负样本是如何定义的?匹配策略是咋回事? 困难负样本挖掘是怎么实现的? 数据是怎么喂进去的?出来的又是什么? L2 Normalization在哪,如何实现的? Atrous层在哪? SSD的损失函数是怎么实现的? 数据在模型中是怎么流动的? 数据增强是怎么实现的? 预测的结果如何在原图上画框? 如何计算模型在Pascal VOC或MS COCO上的mAP? 在github上搜索时,发现了这个超赞的项目—— 用Keras来实现SSD算法 ,非常适合那些学习了SSD算法,但具体细节有些模糊的同学(主要是我自己)。文档注释非常详细,且提供非常清晰的操作指导,比如如何训练SSD模型,如何评估模型的性能,如何在自己的数据集上微调预训练的模型等等。 为了便于快速理解,现以其中一个简单版本的SSD网络为例(ssd7_training.ipynb文件)来记录总结,具体细节可参考项目文档注释。 1 如何训练SSD模型

算法

情到浓时终转凉″ 提交于 2019-12-14 22:35:00
kmeans 的K如何确定 以及 原理 缺点 如何改进 EM算法 不用看 支持向量机知道有哪些核函数 损失函数等 推导不用会 损失函数 hinge loss 时SVM的损失函数 评估 hold out 流出法 工业界用的多 A-B-test 是在线的评估方法 其他三个是离线的评估方法 libsvm 适合稀疏矩阵 libFM 用于2分类 以及模型的迭代 优化等 判别模型是对条件概率建模 生成模型是对联合概率建模 逻辑回归后面继续听 来源: CSDN 作者: 算法黑哥 链接: https://blog.csdn.net/weixin_41504611/article/details/103452765

gan判别器:可学习的损失函数

一曲冷凌霜 提交于 2019-12-11 23:49:33
gan判别器:可学习的损失函数gan判别器:可学习的损失函数 gan判别器:可学习的损失函数 GAN 网络提出了一种可学习的损失函数,即判别器(Discriminator),自适应地度量两个总体分布之间的差异,即连续的概率分布。(不同于 MSE、MAE、Huber Loss 等固定的损失函数,度量两个样本之间的差异,即离散的概率分布)。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示; 全新的 KaTeX数学公式 语法; 增加了支持 甘特图的mermaid语法 1 功能; 增加了 多屏幕编辑 Markdown文章功能; 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间; 增加了 检查列表 功能。 功能快捷键 撤销: Ctrl/Command + Z 重做: Ctrl/Command + Y 加粗: Ctrl/Command + B 斜体: Ctrl/Command + I 标题: Ctrl/Command +

L1 Loss,L2 Loss和Smooth L1 Loss 的对比

霸气de小男生 提交于 2019-12-11 13:02:13
总结对比下 L 1 L_1 L 1 ​ 损失函数, L 2 L_2 L 2 ​ 损失函数以及 Smooth L 1 \text{Smooth} L_1 Smooth L 1 ​ 损失函数的优缺点。 均方误差MSE ( L 2 L_2 L 2 ​ Loss) 均方误差(Mean Square Error,MSE)是模型预测值 f ( x ) f(x) f ( x ) 与真实样本值 y y y 之间差值平方的平均值,其公式如下 M S E = ∑ i = 1 n ( f x i − y i ) 2 n MSE = \frac{\sum_{i=1}^n(f_{x_i} - y_i)^2}{n} M S E = n ∑ i = 1 n ​ ( f x i ​ ​ − y i ​ ) 2 ​ 其中, y i y_i y i ​ 和 f ( x i ) f(x_i) f ( x i ​ ) 分别表示第 i i i 个样本的真实值及其对应的预测值, n n n 为样本的个数。 忽略下标 i i i ,设 n = 1 n=1 n = 1 ,以 f ( x ) − y f(x) - y f ( x ) − y 为横轴,MSE的值为纵轴,得到函数的图形如下: MSE的函数曲线光滑、连续,处处可导,便于使用梯度下降算法,是一种常用的损失函数。 而且,随着误差的减小,梯度也在减小,这有利于收敛

信息抽取——关系抽取(一)

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-11 00:40:41
目录 简介 关于关系抽取 Pipline模型 Model 1: Relation Classification via Convolutional Deep Neural Network Model 2: Relation Extraction: Perspective from Convolutional Neural Networks Model 3: Classifying Relations by Ranking with Convolutional Neural Networks Model 4: Bidirectional Long Short-Term Memory Networks for Relation Classification Model 5: Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification Model 6: Relation Classification via Multi-Level Attention CNNs Model 7: Bidirectional Recurrent Convolutional Neural Network for Relation Classification 简介 信息抽取

3-Tensorflow-线性回归

社会主义新天地 提交于 2019-12-10 09:13:09
import warnings warnings . filterwarnings ( 'ignore' ) import numpy as np import matplotlib . pyplot as plt % matplotlib inline from sklearn . linear_model import LinearRegression import tensorflow as tf # 版本1.50 X = np . linspace ( 2 , 12 , 50 ) . reshape ( - 1 , 1 ) w = np . random . randint ( 1 , 6 , size = 1 ) [ 0 ] b = np . random . randint ( - 5 , 5 , size = 1 ) [ 0 ] y = X * w + b + np . random . randn ( 50 , 1 ) * 0.7 plt . scatter ( X , y ) <matplotlib.collections.PathCollection at 0x1ec43188b38> print ( X . shape , y . shape ) (50, 1) (50, 1) linear = LinearRegression ( ) linear .

ArcFace算法笔记

回眸只為那壹抹淺笑 提交于 2019-12-06 21:06:38
论文:ArcFace: Additive Angular Margin Loss for Deep Face Recognition 论文链接: https://arxiv.org/abs/1801.07698 代码链接: https://github.com/deepinsight/insightface 这篇文章提出一种新的用于人脸识别的损失函数:additive angular margin loss,基于该损失函数训练得到人脸识别算法ArcFace(开源代码中为该算法取名为insightface,二者意思一样,接下来都用ArchFace代替)。ArcFace的思想(additive angular margin)和SphereFace以及不久前的CosineFace(additive cosine margin )有一定的共同点, 重点在于:在ArchFace中是直接在角度空间(angular space)中最大化分类界限,而CosineFace是在余弦空间中最大化分类界限,这也是为什么这篇文章叫ArcFace的原因,因为arc含义和angular一样 。除了损失函数外,本文的作者还清洗了公开数据集MS-Celeb-1M的数据,并强调了干净数据的对实验结果的影响,同时还对网络结构和参数做了优化。总体来说ArcFace这篇文章做了很多实验来验证additive angular