权重

Focal Loss 损失函数简述

ⅰ亾dé卋堺 提交于 2019-12-05 03:05:21
Focal Loss 摘要 Focal Loss 目标是解决样本类别不平衡 以及 样本分类难度不平衡等问题 ,如目标检测中大量简单的background,很少量较难的foreground样本。 Focal Loss通过修改交叉熵函数,通过增加类别权重 \(\alpha\) 和 样本难度权重调因子(modulating factor) \((1-p_t)^\gamma\) ,来减缓上述问题,提升模型精确。 一、技术背景 我们知道object detection的算法主要可以分为两大类:two-stage detector和one-stage detector。前者是指类似Faster RCNN,RFCN这样需要region proposal的检测算法,这类算法可以达到很高的准确率,但是速度较慢。虽然可以通过减少proposal的数量或降低输入图像的分辨率等方式达到提速,但是速度并没有质的提升。后者是指类似YOLO,SSD这样不需要region proposal,直接回归的检测算法,这类算法速度很快,但是准确率不如前者。 作者提出focal loss的出发点也是希望one-stage detector可以达到two-stage detector的准确率,同时不影响原有的速度。 二、拟解决问题 作者认为one-stage detector的准确率不如two-stage

km算法入门

≡放荡痞女 提交于 2019-12-05 00:29:21
km算法入门 https://www.cnblogs.com/logosG/p/logos.html 本文知识均由笔者自学,文章有错误之处请不吝指出。 笔者刷数模题的时候有一道题考到了“二分图最大权分配”,需要用到KM算法,但是书上对KM算法的介绍又臭又长,更何况有些同学“匈牙利算法”也没学过(由匈牙利数学家Edmonds提出),自然难以理解所谓的KM算法。本文旨在用通俗易懂的语言,向读者介绍匈牙利算法和KM算法。 一、匈牙利算法 匈牙利算法用于解决什么问题? 匈牙利算法用于解决二分图的 最大匹配 问题。 什么是二分图?我们不妨来考虑这样一个问题,在一家公司里,有员工A,B,C,有三种工作a,b,c,如果员工和工作之间有线相连,则代表员工能胜任这份工作。 如图所示,员工A能胜任a,c工作,员工B能胜任a,b,c工作,而员工C只能胜任c工作。 上图就是所谓的“二分图”(请忽略图中箭头),简单的说,上图可划分为两个集合{员工},{工作},两个集合之间的元素可以相连,同一个集合内的元素不能相连。 下面请解决这样一个问题:请给出一个方案,让尽可能多的员工有 不同 的工作做。“匈牙利算法”的出现就是为了解决这个问题。 下面给出这个问题的解决方案:(读者看到这里可能会想,解决这个问题不是很简单吗?A→a,B→b,C→c不就好了?请注意:任何算法的给出都是为了 规整化 一个问题的解决步骤

标签.类名的权重是多少?

情到浓时终转凉″ 提交于 2019-12-04 14:12:44
博客为何而来:今天遇到一个问题:标签.类名的权重是多少?这个我也不是很清楚,本来想走捷径:问问别人,百度一下啊……问了一个同学,他开口直接说是20;我问为毛是20,他说标签名10,类名是10,共计20。在我指出标签名权重是1后,他也觉得自己说错了。我百度了一下,也没有得到什么结果。觉得自己的验证过程可以写篇小博客,然后此刻也不是很慢,那我就不拖拉,就是干咯。 类名.标签,可以解释为:标签中有此类名的元素。 大家都知道 : id选择器的权重加0,1,0,0; 类选择器、属性选择器或伪类的权重加0,0,1,0; 元素和伪元素的权重加0,0,0,1; 元素和伪元素的权重加0,0,0,1; 通配选择器*对权重没有贡献,即0,0,0,0; 最后比较特殊的一个标志!important,它的优先级是最高的,为了方便记忆,可以认为它的权重为1,0,0,0,0; 权重越高,样式被应用的优先级也就越高,约难被其他样式覆盖; 话不多说,计算权重代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content=

深度学习基础

倖福魔咒の 提交于 2019-12-04 11:49:50
摘要:本文主要介绍了深度学习中的一些基础知识和CNN的相关内容。 1、关于目标函数的选取 目标函数用于衡量训练出来的模型的输出值和给定样本数据实际输出值的误差。目标函数会直接参与到误差的反向传播的计算当中,一个较好的目标函数会对各层的权重的调整起到更好的效果,所以选择好的目标函数尤为重要。下面列举出两种目标函数: 在上面两种比较常见的目标函数的对比中,我们可以清楚的看到, 交叉熵目标函数的图像更加陡峭,因此移动相同的步数,那么目标函数的变化也就更加明显,那么也就更有利于寻找最小值(最优值),最终确定相应的模型权重 。 2、关于全连接层Softmax Softmax是神经网络的最后一层,用于处理经过各个层计算后得到的最后结果。如下图: 在上面的图中,z代表经过各层计算得到的输出值,将z值带入上面的逻辑计算中,最后得到了的输出值有这样的特点: 将原来的输出结果映射到了0-1范围内,并且这些值相加为1 。 那么为什么要进行这样做呢? 经过Softmax处理得到的输出值可以用在以交叉熵作为目标函数的情况中。 利用概率的形式进行处理,更加明确了各个输出值对精度的影响状况,进而更有利于对各层权重进行调整。 3、采用RELU激活函数,而不采用Sigmoid函数的原因 在梯度下降过程中,会对激活函数求导,Sigmoid函数求导之后的峰值为0.25,而且在调整权重的过程中w的绝对值一般都是小于1的

html、css 高级

纵然是瞬间 提交于 2019-12-04 10:47:28
表格元素及相关样式 1、<table>标签:声明一个表格 2、<tr>标签:定义表格中的一行 3、<td>和<th>标签:定义一行中的一个单元格,td代表普通单元格,th表示表头单元格 表格相关样式属性 border-collapse 设置表格的边线合并,如:border-collapse:collapse; <style> .table01{ width:500px; height:200px; border:1px solid black; /* 设置表格的边线合并 */ border-collapse:collapse; /* 设置表格水平居中 */ margin:0px auto; } .table01 th{ border:1px solid black; background:lightskyblue; color:white; } .table01 td{ border:1px solid black; /* 设置文字水平居中 */ text-align:center; } </style> <body> <!-- table>(tr>td*5)*4 --> <table class="table01"> <tr> <th>序号</th> <th>姓名</th> <th>性别</th> <th>年龄</th> <th>班级</th> </tr> <tr> <td>1<

神经网络中的几种权重初始化方法

别等时光非礼了梦想. 提交于 2019-12-04 06:02:28
神经网络中的几种权重初始化方法 在深度学习中,对神经网络的权重进行初始化(weight initialization)对模型的收敛速度和性能的提升有着重要的影响。 在神经网络在计算过程中需要对权重参数w不断的迭代更新,已达到较好的性能效果。但在训练的过程中,会遇到梯度消失和梯度爆炸等现象。因此,一个好的初始化权重能够对这两个问题有很好的帮助,并且,初始化权重能够有利于模型性能的提升,以及增快收敛速度。 1.是否可以将权重初始化为0 答案是不可能的,如果所有的参数都为0,那么神经元的输出都将会相同,那么在BP的时候同一层的神经元学到的东西相同,gradient相同,weight update也相同。 2.pre-training pre-training是早期训练神经网络的有效初始化方法: pre-training阶段,将神经网络中的每一层取出,构造一个auto-encoder做训练,使得输入层和输出层保持一致。在这一过程中,参数得以更新,形成初始值 fine-tuning阶段,将pre-train过的每一层放回神经网络,利用pre-train阶段得到的参数初始值和训练数据对模型进行整体调整。在这一过程中,参数进一步被更新,形成最终模型。 随着数据量的增加以及activation function的发展,pre-training的概念已经渐渐发生变化。目前

pytorch自定义初始化权重

风格不统一 提交于 2019-12-04 06:02:11
在常见的pytorch代码中,我们见到的初始化方式都是调用init类对每层所有参数进行初始化。但是,有时我们有些特殊需求,比如用某一层的权重取优化其它层,或者手动指定某些权重的初始值。 核心思想就是构造和该层权重同一尺寸的矩阵去对该层权重赋值。但是,值得注意的是,pytorch中各层权重的数据类型是nn.Parameter,而不是Tensor或者Variable。 import torch import torch.nn as nn import torch.optim as optim import numpy as np # 第一一个卷积层,我们可以看到它的权值是随机初始化的 w=torch.nn.Conv2d(2,2,3,padding=1) print(w.weight) # 第一种方法 print("1.使用另一个Conv层的权值") q=torch.nn.Conv2d(2,2,3,padding=1) # 假设q代表一个训练好的卷积层 print(q.weight) # 可以看到q的权重和w是不同的 w.weight=q.weight # 把一个Conv层的权重赋值给另一个Conv层 print(w.weight) # 第二种方法 print("2.使用来自Tensor的权值") ones=torch.Tensor(np.ones([2,2,3,3])) #

pytorch指定权重初始化方式

我只是一个虾纸丫 提交于 2019-12-04 06:00:43
如果网络权重不初始化,pytorch有一套默认初始化机制,本人没有研究具体怎么初始化的,和tensorflow标准正态分布初始化效果一样,下面是指定初始化代码: conv = nn.Conv2d(*args, **kwargs) conv.weight.data.normal_() #w以标准正态分布初始化 conv.bias.data.zero_() #偏置以0初始化 来源: CSDN 作者: 头发光了你就强了 链接: https://blog.csdn.net/qq_33345917/article/details/89884239

css&html面试知识点

别来无恙 提交于 2019-12-04 03:59:52
CSS优先级算法 参考: http://www.bslxx.com/a/miansh... http://www.bslxx.com/a/miansh... http://www.bslxx.com/a/miansh... http://www.bslxx.com/a/miansh... 优先级就近原则,同权重情况下样式定义最近者为准 载入样式以最后载入的定位为准 优先级为: !important > id > class > tag important 比 内联优先级高 important声明比js的优先级要高 第一等:代表内联样式,如: style=””,权值为1000。 第二等:代表ID选择器,如:#content,权值为0100。 第三等:代表类,伪类和属性选择器,如.content,权值为0010。 第四等:代表类型选择器和伪元素选择器,如div p,权值为0001。 通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。 继承的样式没有权值。 css定义的权重 / 以下是权重的规则:标签的权重为1,class的权重为10,id的权重为100,以下/// 例子是演示各种定义的权重值: /*权重为1*/ div{ } /*权重为10*/ .class1{ } /*权重为100*/ #id1{ } /*权重为100+1=101*/ #id1 div{ } /

带有关于特征线性模块的图神经网络:GNN-FiLM

独自空忆成欢 提交于 2019-12-03 23:52:24
带有关于特征线性模块的图神经网络:GNN-FiLM 链接:https://arxiv.org/pdf/1906.12192 该文介绍了一种新的图神经网络(GNN)类型,关于特征的线性模块(FiLM)。许多GNN变量沿着图的边传播信息,仅仅计算每条边的源表示信息。在GNN-FiLM中,额外地使用一条边的目标节点表示来计算可用于所有进入信息的转换,使用的是基于过去信息的关于特征的模块。在GNN-FiLM和一系列基准方法上的实验以及相关的扩展显示了GNN-FiLM优于基准方法,同时速度也没有明显变慢。 模型 标记: 定义L为边类型的有限集(通常较小)。图G = (V, E) ,其中V为节点,有类型的边E ⊆V×L×V,(u, l, v) E 代表从节点u到节点v的边,类型为l,通常写作uv。 图神经网络: 每一个节点与初始表示(比如从那个节点的标签或其他模型组件获得)。然后GNN层使用该节点在图中邻居的节点表示来更新该节点的表示,产生表示。这个过程可按时间重复地使用相同的更新函数来展开,并产生表示...。或者,不同层的这种GNN更新机制可以被堆叠,直观上与按时间展开相似,但在每一个时间步使用不同的参数增加了GNN的容量。 在门控图神经网络(GGNN)中,更新使用的是递归单元r(也就是GRU或LSTM cell)在前一个时间步的节点表示,产生以下定义式子: