损失函数

机器学习之模型的选择

狂风中的少年 提交于 2020-03-02 10:52:32
模型的选择 机器学习中,如果参数过多,模型过于复杂,容易造成过拟合(overfit)。即模型在训练样本数据上表现的很好,但在实际测试样本上表现的较差,不具备良好的泛化能力。 L2 正则化公式非常简单,直接在原来的损失函数基础上加上权重参数的平方和 我们知道,正则化的目的是限制参数过多或者过大,避免模型更加复杂。例如,使用多项式模型,如果使用 10 阶多项式,模型可能过于复杂,容易发生过拟合。所以,为了防止过拟合,我们可以将其高阶部分的权重 w 限制为 0,这样,就相当于从高阶的形式转换为低阶。 为了达到这一目的,最直观的方法就是限制 w 的个数,但是这类条件属于 NP-hard 问题,求解非常困难。所以,一般的做法是寻找更宽松的限定条件: 上式是对 w 的平方和做数值上界限定,即所有w 的平方和不超过参数 C。这时候,我们的目标就转换为:最小化训练样本误差,但是要遵循 w 平方和小于 C 的条件。 正则化的作用 正则化:防止数据过拟合。 对损失函数加上一个正则项。 正则化的主要作用是防止过拟合,对模型添加正则化项可以限制模型的复杂度,使得模型在复杂度和性能达到平衡。 常用的正则化方法有L1正则化和L2正则化。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。 L1正则化的模型建叫做Lasso回归

论文笔记2.2——PFLD: A Practical Facial Landmark Detector

故事扮演 提交于 2020-03-01 19:04:42
2.Methodology Against the aforementioned challenges, effective mea sures need to be taken. In this section, we fifirst focus on the design of loss function, which simultaneously takes care of Challenges #1, #2, and #3. Then, we detail our architecture. The whole deep network consists of a backbone subnet for predicting landmark coordinates, which specififically consid ers Challenge #4, as well as an auxiliary one for estimating geometric information. 为了应对以上提到的种种挑战,需要采取高效的方法。在这一部分,我们首先关注损失函数的设计,同时兼顾挑战 #1 #2 #3,然后我们详述我们的结构的一些细节。整个深度学习网络由用来预测关键点坐标的主干网络组成,也同时特地考虑到了挑战#4,用来辅助计算几何信息。 2.1 损失函数 The

PyTorch学习笔记(17)损失函数(二)

泪湿孤枕 提交于 2020-02-28 05:15:42
损失函数 nn.L2Loss 功能 计算inputs 与 target 之差的绝对值 l n = ∣ x n − y n ∣ l_{n}=\left|x_{n}-y_{n}\right| l n ​ = ∣ x n ​ − y n ​ ∣ nn.MSELoss 功能 计算inputs 与 target 之差的平方 l n = ( x n − y n ) 2 l_{n}=\left(x_{n}-y_{n}\right)^{2} l n ​ = ( x n ​ − y n ​ ) 2 主要参数 reduction 计算模式,可为none/sum/mean none -逐个元素计算 sum -所有元素求和,返回标量 mean -加权平均,返回标量 SmoothL1Loss 功能 平滑的L1Loss 主要参数 reduction 计算模式,可为none/sum/mean none -逐个元素计算 sum -所有元素求和,返回标量 mean -加权平均,返回标量 loss ⁡ ( x , y ) = 1 n ∑ i z i \operatorname{loss}(x, y)=\frac{1}{n} \sum_{i} z_{i} l o s s ( x , y ) = n 1 ​ i ∑ ​ z i ​ z i = { 0.5 ( x i − y i ) 2 , if ∣ x i − y i

损失函数优化器总结

一世执手 提交于 2020-02-28 00:54:28
# adadelta optimizer = tf.train.AdadeltaOptimizer(learning_rate=0.001, rho=0.95, epsilon=1e-8, use_locking=False, name="Adadelta") # adagrad optimizer = tf.train.AdagradOptimizer(learning_rate=0.001, initial_accumulator_value=0.1, use_locking=False, name="Adagrad") # adam optimizer = tf.train.AdamOptimizer(learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8, use_locking=False, name="Adam") # ftrl optimizer = tf.train.FtrlOptimizer(learning_rate=0.001, learning_rate_power=-0.5, initial_accumulator_value=0.1, l1_regularization_strength=0.0, l2_regularization_strength=0.0, use_locking=False

几种常见的损失函数

梦想的初衷 提交于 2020-02-26 10:04:59
1. 损失函数、代价函数与目标函数    损失函数(Loss Function) :是定义在单个样本上的,是指一个样本的误差。    代价函数(Cost Function) :是定义在整个训练集上的,是所有样本误差的平均,也就是所有损失函数值的平均。    目标函数(Object Function) :是指最终需要优化的函数,一般来说是经验风险+结构风险,也就是(代价函数+正则化项)。 -- 2. 常用的损失函数   这一节转载自 博客 (1)0-1损失函数(0-1 loss function) L ( y , f ( x ) ) = { 1 , 0 , y ≠ f ( x ) y = f ( x ) L(y,f(x))={1,y≠f(x)0,y=f(x)   也就是说,当预测错误时,损失函数为1,当预测正确时,损失函数值为0。该损失函数不考虑预测值和真实值的误差程度。只要错误,就是1。 (2)平方损失函数(quadratic loss function) L ( y , f ( x ) ) = ( y − f ( x ) ) 2 L(y,f(x))=(y−f(x))2   是指预测值与实际值差的平方。 (3)绝对值损失函数(absolute loss function) L ( y , f ( x ) ) = | y − f ( x ) | L(y,f(x))=|y−f(x)|

李航《统计学习方法》学习笔记——ch1统计学习概论

喜欢而已 提交于 2020-02-24 20:34:11
1. 统计学习概论 1.1. 概念 定义 统计学习假设数据存在一定统计规律,计算机基于数据构建概率统计模型,并运用模型对数据进行预测与分析一门学科。 主要内容 监督学习(supervised learning)、非监督学习(unsupervised learning)、半监督学习(semi-supervised learning)、强化学习(reinforcement learnin)等。 三要素 模型(model) : 模型的假设空间 策略(strategy) : 模型选择的准则,即确定使用什么样的损失函数 算法(algorithm) : 模型学习的算法,即在最小化损失函数时求解模型参数的算法,如随机梯度下降算法。 术语 输入空间(input space) : 输入所有可能取值的集合 输出空间(output space) : 输出所有可能取值的集合 特征向量(feature vector) : 每一个具体输入的实例(instance),通常由特征向量表示 特征空间(feature space) :所有特征向量存在的空间,特征空间的每一维对应一个特征。 样本(sample) :输入与输出对,又称样本点。 假设空间(hypothesis space) :输入空间到输出空间的映射的集合,模型假设空间的确定意味着学习范围的确定。 注:(1)有时假设输入空间与特征空间为相同的空间;(2

转载:yolov3损失函数公式笔记,绝对良心(能和darknet源码对应)

与世无争的帅哥 提交于 2020-02-24 10:52:11
有句话说“把知识讲的农妇都能听懂,那才是真的懂了” 本人小白,毕设正在做 基于yolov3的目标检测系统研究 ,在网上找了一万遍,基本没有靠谱的损失函数, 全是假的或者旧版本的,害人不浅 ,最后终于找到一个靠谱的。本人花了两天好不容易在源码中找到了其位置并对应上,源码超级零散,各种调用,创作者用的变量定义也不知道是不是故意的,竟然有好几个重名,还没有注释,弄得我 差点拉裤 。 为了避免各位同学不再重蹈覆辙,现将正经八本的损失函数奉上: 入obj是该cell中存在物体时就是1,否则就是0 看不清的脚标是:r 注意:源码里的变量和图中的完全不一样,让人头大 一共分为三大块相加:坐标做损失(中心坐标xy和宽高wh放在一起了?)+类做损失(class)+置信度做损失(conf) 个人理解:wx+b→sigmod函数激活,添加非线性成分来归一化?→预测值predict→SSE→LOSS 其实就是偏差的平方和(SSE),每一块都是,然后加起来,找它的最小值,就是最小loss,效果才能最好。 这个是用SSE有平方,构造的损失函数,还可以改成我用的TSE(引用的参考文献),或者把平方换成绝对值(抗干扰性更好),还可能用平方和绝对值混合的计算方法(弹性损失,我不会),不一定哪个效果更好,得试。 由于我也是小白,可能有些地方打问号不太确定,理解的也不是很到位,还请大家多多指正 参考文献: 吕铄,蔡烜

DL notes 02: ML/DL模型训练的Tips

ε祈祈猫儿з 提交于 2020-02-16 21:55:11
文章目录 一、基本概念 二、应对欠拟合和过拟合的解决方法 2.1 欠拟合的解决办法 2.2 过拟合的解决办法 2.2.1 权重衰减 / L 2 L_{2} L 2 ​ 范数正则化 2.2.2 dropout 三、梯度消失和梯度爆炸 四、随机初始化模型参数 PyTorch的默认随机初始化 Xavier随机初始化(这里需要检查) 五、考虑环境因素 协变量偏移 标签偏移 概念偏移 Q&A 一、基本概念 训练误差(training error) :指模型在训练数据集(train dataset)上表现出的误差。 泛化误差(generalization error) :指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集(test dataset)上的误差来近似。 损失函数(loss function) :计算训练误差和泛化误差可以使用之前介绍过的损失函数,例如线性回归(linear regression)用到的平方损失(squared loss)函数和softmax回归用到的交叉熵(cross entropy)损失函数。 训练数据集(train dataset) :【模型】(Model)训练的过程其实就是在求【参数】的过程,我们先假定某类【模型】(比如决策树模型),然后用【训练集】来训练,学习到对应的最优的【参数】。但是问题在于,我们没有办法保证我们假设的那个【模型

LinearRegression

孤街醉人 提交于 2020-02-15 16:10:07
线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现 线性回归的基本要素 模型 为了简单起见,这里我们假设价格只取决于房屋状况的两个因素,即面积(平方米)和房龄(年)。接下来我们希望探索价格与这两个因素的具体关系。线性回归假设输出与各个输入之间是线性关系: p r i c e = w a r e a ⋅ a r e a + w a g e ⋅ a g e + b price=w_{area}⋅area+w_{age}⋅age+b p r i c e = w a r e a ​ ⋅ a r e a + w a g e ​ ⋅ a g e + b 数据集 我们通常收集一系列的真实数据,例如多栋房屋的真实售出价格和它们对应的面积和房龄。我们希望在这个数据上面寻找模型参数来使模型的预测价格与真实价格的误差最小。在机器学习术语里,该数据集被称为训练数据集(training data set)或训练集(training set),一栋房屋被称为一个样本(sample),其真实售出价格叫作标签(label),用来预测标签的两个因素叫作特征(feature)。特征用来表征样本的特点。 损失函数 1、 M A E / L 1 + M S E / L 2 MAE / L1 + MSE / L2 M A E / L 1 + M S E / L

CS224n学习笔记(一)

旧巷老猫 提交于 2020-02-14 04:30:40
How do we have usable meaning in a computer? Represents the words as discrete symbols, (离散型变量) Use the one-hot vector to represent the word in sentence, (Traditional way, we can use Distributional semantics) Distributional semantics : A word's meaning is giving by words that frequently appear close-by. when a word w appear in a text, its context words is the set of words that appears nearby. We can use many contexts of w to build up a representation of w . Word Vector :We build a dense(稠密的) vector for each word, chosen so that it's similar to vector of words that appear in similar contexts, it